Cliente API Grok para Delphi

· Componentes

O Grok, desenvolvido pela xAI, é um modelo de IA de alto desempenho projetado para respostas rápidas e inteligentes com conhecimento em tempo real e capacidades avançadas de raciocínio. Para desenvolvedores Delphi que desejam integrar o Grok em suas aplicações, o sgcWebSockets disponibiliza o TsgcHTTP_API_Grok — um componente nativo que encapsula toda a API Grok da xAI com código Delphi limpo e com tipagem segura.

Seja para criar assistentes conversacionais, analisar imagens, orquestrar fluxos de trabalho aumentados por ferramentas ou transmitir respostas em tempo real, este componente oferece acesso direto a todos os recursos do Grok. Sem boilerplate REST. Sem manipulação de JSON. Basta adicionar o componente, definir sua API key e começar a construir.

Cobertura Completa da API

Todos os principais recursos da API Grok da xAI são suportados nativamente.

Chat Completions
Envie mensagens com prompts de sistema e receba respostas de forma síncrona ou em streaming. Controle total sobre temperatura, top-p, penalidades de frequência e presença.
Streaming em Tempo Real
Transmita respostas token a token usando Server-Sent Events. Crie interfaces responsivas que exibem as respostas conforme são geradas.
Vision
Analise imagens enviando dados codificados em base64 ou URLs de imagens junto com prompts de texto. O Grok descreve, interpreta e raciocina sobre conteúdo visual.
Uso de Ferramentas — Function Calling
Defina ferramentas personalizadas com JSON Schema. O Grok decide quando invocá-las, possibilitando fluxos de trabalho agênticos e de múltiplas etapas.
Gerenciamento de Modelos
Liste todos os modelos Grok disponíveis programaticamente. Consulte IDs e capacidades dos modelos para selecionar o mais adequado.
Retry & Logging Integrados
Retry automático em falhas transitórias com tentativas e intervalos configuráveis. Log completo de requisições/respostas para depuração.

Primeiros Passos

Integre o Grok da xAI ao seu projeto Delphi em menos de um minuto. Adicione o componente, configure sua API key e envie sua primeira mensagem.

// Create the component and configure the API key
var
  Grok: TsgcHTTP_API_Grok;
  vResponse: string;
begin
  Grok := TsgcHTTP_API_Grok.Create(nil);
  Try
    Grok.GrokOptions.ApiKey := 'YOUR_API_KEY';
    // Send a simple message to Grok
    vResponse := Grok._CreateMessage(
      'grok-3', 'Hello, Grok!');
    ShowMessage(vResponse);
  Finally
    Grok.Free;
  End;
end;

Dois estilos de API. Cada recurso oferece tanto métodos de conveniência (baseados em string, código mínimo) quanto classes tipadas de requisição/resposta (controle total, segurança de tipos). Escolha a abordagem que melhor se adapta ao seu caso de uso.

Chat Completions & Streaming

A API de Chat Completions é a base de toda interação com o Grok. Envie texto com prompts de sistema opcionais e receba respostas de forma síncrona ou em streaming em tempo real.

Prompts de Sistema

Controle o comportamento do Grok fornecendo um prompt de sistema que define o contexto, a personalidade ou as restrições da conversa.

vResponse := Grok._CreateMessageWithSystem(
  'grok-3',
  'You are a helpful assistant that responds in Spanish.',
  'What is the capital of France?');
// Returns: "La capital de Francia es París."

Streaming em Tempo Real

Para interfaces de usuário responsivas, transmita a resposta do Grok token a token usando Server-Sent Events. Atribua o handler do evento OnHTTPAPISSE e chame _CreateMessageStream.

// Enable streaming via SSE
Grok.OnHTTPAPISSE := OnSSEEvent;
Grok._CreateMessageStream('grok-3',
  'Explain the theory of relativity.');
procedure TForm1.OnSSEEvent(Sender: TObject;
  const aEvent, aData: string; var Cancel: Boolean);
begin
  // aData: JSON payload with generated content
  Memo1.Lines.Add(aData);
end;

API Tipada Avançada

Para controle total sobre os parâmetros da requisição — temperatura, top-p, penalidade de frequência, penalidade de presença, sequências de parada, número de conclusões — use as classes tipadas de requisição e resposta.

var
  oRequest: TsgcGrokClass_Request_ChatCompletion;
  oMessage: TsgcGrokClass_Request_Message;
  oResponse: TsgcGrokClass_Response_ChatCompletion;
begin
  oRequest := TsgcGrokClass_Request_ChatCompletion.Create;
  Try
    oRequest.Model := 'grok-3';
    oRequest.MaxTokens := 2048;
    oRequest.Temperature := 0.7;
    oRequest.TopP := 0.9;
    oRequest.FrequencyPenalty := 0.5;
    oRequest.N := 1;
    oMessage := TsgcGrokClass_Request_Message.Create;
    oMessage.Role := 'user';
    oMessage.Content := 'Explain quantum computing in simple terms.';
    oRequest.Messages.Add(oMessage);
    oResponse := Grok.CreateMessage(oRequest);
    Try
      if Length(oResponse.Choices) > 0 then
        ShowMessage(oResponse.Choices[0].Message.Content);
    Finally
      oResponse.Free;
    End;
  Finally
    oRequest.Free;
  End;
end;

Vision — Compreensão de Imagens

O Grok consegue analisar e raciocinar sobre imagens. Envie fotografias, capturas de tela, diagramas ou gráficos junto com um prompt de texto e receba descrições detalhadas, extração de dados ou perguntas e respostas visuais.

// Load an image and ask Grok to analyze it
var
  vBase64: string;
begin
  vBase64 := sgcBase64Encode(LoadFileToBytes('dashboard-screenshot.png'));
  ShowMessage(Grok._CreateVisionMessage(
    'grok-3',
    'Analyze this dashboard and summarize the key metrics.',
    vBase64, 'image/png'));
end;

Caso de uso. Automatize a análise de relatórios, extraia dados de capturas de tela, gere descrições de conteúdo visual ou crie assistentes com percepção de imagens — tudo a partir de código nativo Delphi.

Uso de Ferramentas — Function Calling

Defina ferramentas personalizadas com JSON Schema e o Grok decidirá quando e como invocá-las. Esta é a base para construir fluxos de trabalho agênticos e de múltiplas etapas que conectam a IA à sua lógica de negócio.

var
  oRequest: TsgcGrokClass_Request_ChatCompletion;
  oTool: TsgcGrokClass_Request_Tool;
  oResponse: TsgcGrokClass_Response_ChatCompletion;
begin
  // Define a tool with JSON Schema
  oTool := TsgcGrokClass_Request_Tool.Create;
  oTool.Name := 'search_database';
  oTool.Description := 'Search the product database by keyword';
  oTool.Parameters :=
    '{"type":"object","properties":{"query":{"type":"string",' +
    '"description":"Search keyword"}},"required":["query"]}';
  oRequest.Tools.Add(oTool);
  oRequest.ToolChoice := 'auto';
  oResponse := Grok.CreateMessage(oRequest);
  // Check if Grok wants to call a tool
  if oResponse.Choices[0].FinishReason = 'tool_calls' then
  begin
    for i := 0 to Length(oResponse.Choices[0].Message.ToolCalls) - 1 do
    begin
      vToolId   := oResponse.Choices[0].Message.ToolCalls[i].Id;
      vFuncName := oResponse.Choices[0].Message.ToolCalls[i].FunctionCall.Name;
      vFuncArgs := oResponse.Choices[0].Message.ToolCalls[i].FunctionCall.Arguments;
      // Execute the tool and return the result
    end;
  end;

Gerenciamento de Modelos

Consulte os modelos Grok disponíveis programaticamente. Liste todos os modelos para descobrir novos recursos conforme ficam disponíveis.

// List all available Grok models
vModels := Grok._GetModels;
// Typed API: access model properties directly
var
  oModels: TsgcGrokClass_Response_Models;
  i: Integer;
begin
  oModels := Grok.GetModels;
  Try
    for i := 0 to Length(oModels.Data) - 1 do
      Memo1.Lines.Add(oModels.Data[i].Id);
  Finally
    oModels.Free;
  End;
end;

Configuração & Opções

Ajuste o comportamento do componente com opções de configuração abrangentes.

Propriedade Descrição
GrokOptions.ApiKey Sua API key da xAI (obrigatória)
HttpOptions.ReadTimeout Timeout de leitura HTTP em milissegundos (padrão: 60000)
LogOptions.Enabled Habilitar log de requisições/respostas
RetryOptions.Enabled Retry automático em falhas transitórias
RetryOptions.Retries Número máximo de tentativas de retry (padrão: 3)
RetryOptions.Wait Tempo de espera entre retries em milissegundos (padrão: 3000)

Parâmetros da Requisição

Parâmetro Descrição
Temperature Temperatura de amostragem (0,0–2,0). Valores menores = mais determinístico.
TopP Nucleus sampling (0,0–1,0). Controla o corte de probabilidade cumulativa.
MaxTokens Número máximo de tokens na resposta (padrão: 4096).
FrequencyPenalty Penaliza tokens com base na frequência no texto até o momento.
PresencePenalty Penaliza tokens com base em sua presença no texto até o momento.
N Número de conclusões a gerar (padrão: 1).
ToolChoice Controle a seleção de ferramentas: 'auto', 'none' ou 'required'.

Por que Grok? Desenvolvido pela xAI com foco em utilidade e conhecimento em tempo real, o Grok se destaca em tarefas que exigem informações atualizadas e raciocínio apurado. O componente sgcWebSockets facilita a troca entre o Grok e outros provedores de IA, mantendo seu código Delphi limpo e consistente.