Grok Delphi API Cliente

· Componentes

Grok, desarrollado por xAI, es un modelo de IA de alto rendimiento diseñado para respuestas rápidas e inteligentes con conocimiento en tiempo real y capacidades de razonamiento avanzadas. Para los desarrolladores Delphi que quieren integrar Grok en sus aplicaciones, sgcWebSockets ofrece TsgcHTTP_API_Grok — un componente nativo que envuelve toda la API Grok de xAI con código Delphi limpio y con seguridad de tipos.

Tanto si estás creando asistentes conversacionales, analizando imágenes, orquestando flujos de trabajo aumentados con herramientas o haciendo streaming de respuestas en tiempo real, este componente te da acceso directo a todas las características de Grok. Sin boilerplate REST. Sin lidiar con JSON. Solo tienes que añadir el componente, configurar tu API key y empezar a construir.

Cobertura completa de la API

Todas las características principales de la API Grok de xAI están soportadas de serie.

Chat Completions
Envía mensajes con system prompts, recibe respuestas de forma síncrona o por streaming. Control total sobre temperature, top-p, frequency y presence penalties.
Streaming en tiempo real
Haz streaming de respuestas token a token usando Server-Sent Events. Construye interfaces de usuario reactivas que muestren las respuestas a medida que se generan.
Vision
Analiza imágenes enviando datos codificados en base64 o URLs de imágenes junto con prompts de texto. Grok describe, interpreta y razona sobre contenido visual.
Tool Use — Function Calling
Define herramientas personalizadas con JSON Schema. Grok decide cuándo invocarlas, habilitando flujos de trabajo agénticos y de varios pasos.
Gestión de modelos
Lista todos los modelos Grok disponibles de forma programática. Consulta los IDs y capacidades de los modelos para seleccionar el más adecuado.
Retry y logging integrados
Reintento automático en fallos transitorios con número de intentos e intervalos de espera configurables. Logging completo de petición/respuesta para depuración.

Primeros pasos

Integra xAI Grok en tu proyecto Delphi en menos de un minuto. Añade el componente, configura tu API key y envía tu primer mensaje.

// 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;

Dos estilos de API. Cada característica ofrece tanto métodos de conveniencia (basados en strings, con código mínimo) como clases tipadas de request/response (control total, seguridad de tipos). Elige el enfoque que mejor se adapte a tu caso de uso.

Chat Completions y Streaming

La API Chat Completions es la base de toda interacción con Grok. Envía texto con system prompts opcionales y recibe respuestas de forma síncrona o por streaming en tiempo real.

System Prompts

Controla el comportamiento de Grok proporcionando un system prompt que establezca el contexto, la personalidad o las restricciones de la conversación.

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 en tiempo real

Para interfaces de usuario reactivas, haz streaming de la respuesta de Grok token a token usando Server-Sent Events. Asigna el manejador de eventos OnHTTPAPISSE y llama a _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 avanzada

Para un control total sobre los parámetros de la petición — temperature, top-p, frequency penalty, presence penalty, stop sequences, número de completions — usa las clases tipadas de petición y respuesta.

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 — Comprensión de imágenes

Grok puede analizar y razonar sobre imágenes. Envía fotografías, capturas de pantalla, diagramas o gráficos junto con un prompt de texto y recibe descripciones detalladas, extracción de datos o preguntas y respuestas visuales.

// 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. Automatiza el análisis de informes, extrae datos de capturas de pantalla, genera descripciones de contenido visual o construye asistentes con capacidades visuales — todo desde código Delphi nativo.

Tool Use — Function Calling

Define herramientas personalizadas con JSON Schema, y Grok decidirá cuándo y cómo invocarlas. Esta es la base para construir flujos de trabajo agénticos y de varios pasos que conectan la IA con tu lógica de negocio.

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;

Gestión de modelos

Consulta los modelos Grok disponibles de forma programática. Lista todos los modelos para descubrir nuevas capacidades a medida que están disponibles.

// 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;

Configuración y opciones

Ajusta el comportamiento del componente con opciones de configuración completas.

Propiedad Descripción
GrokOptions.ApiKey Tu API key de xAI (obligatorio)
HttpOptions.ReadTimeout Timeout de lectura HTTP en milisegundos (predeterminado: 60000)
LogOptions.Enabled Activa el logging de petición/respuesta
RetryOptions.Enabled Reintento automático en fallos transitorios
RetryOptions.Retries Número máximo de intentos de reintento (predeterminado: 3)
RetryOptions.Wait Tiempo de espera entre reintentos en milisegundos (predeterminado: 3000)

Parámetros de la petición

Parámetro Descripción
Temperature Temperatura de muestreo (0.0–2.0). Valores más bajos = más determinista.
TopP Nucleus sampling (0.0–1.0). Controla el corte de probabilidad acumulada.
MaxTokens Número máximo de tokens en la respuesta (predeterminado: 4096).
FrequencyPenalty Penaliza tokens en función de la frecuencia en el texto hasta el momento.
PresencePenalty Penaliza tokens en función de si aparecen en el texto hasta el momento.
N Número de completions a generar (predeterminado: 1).
ToolChoice Controla la selección de herramientas: 'auto', 'none' o 'required'.

¿Por qué Grok? Construido por xAI con un enfoque en la utilidad y el conocimiento en tiempo real, Grok destaca en tareas que requieren información actualizada y razonamiento matizado. El componente sgcWebSockets facilita cambiar entre Grok y otros proveedores de IA manteniendo tu código Delphi limpio y consistente.