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.
