Grok, sviluppato da xAI, è un modello AI ad alte prestazioni progettato per risposte rapide e intelligenti con conoscenza in tempo reale e capacità di ragionamento avanzate. Per gli sviluppatori Delphi che vogliono integrare Grok nelle loro applicazioni, sgcWebSockets fornisce TsgcHTTP_API_Grok — un componente nativo che incapsula l'intera API xAI Grok con codice Delphi pulito e type-safe.
Che tu stia creando assistenti conversazionali, analizzando immagini, orchestrando flussi di lavoro aumentati da tool o trasmettendo risposte in tempo reale, questo componente ti dà accesso diretto a ogni funzionalità di Grok. Niente boilerplate REST. Niente lotte con il JSON. Basta posare il componente, impostare la tua API key e iniziare a costruire.
Copertura completa dell'API
Ogni funzionalità principale dell'API xAI Grok è supportata fin da subito.
|
Chat Completions Invia messaggi con prompt di sistema, ricevi risposte sincrone o in streaming. Pieno controllo su temperature, top-p, frequency e presence penalty. |
Streaming in tempo reale Trasmetti le risposte token per token usando Server-Sent Events. Costruisci UI reattive che mostrano le risposte mentre vengono generate. |
Vision Analizza immagini inviando dati codificati in base64 o URL di immagini insieme ai prompt testuali. Grok descrive, interpreta e ragiona sui contenuti visivi. |
|
Tool Use — Function Calling Definisci tool personalizzati con JSON Schema. Grok decide quando invocarli, abilitando flussi di lavoro agentici e multi-step. |
Gestione dei modelli Elenca tutti i modelli Grok disponibili in modo programmatico. Interroga gli ID e le capacità dei modelli per scegliere quello più adatto. |
Retry e logging integrati Retry automatico in caso di errori transitori con tentativi e intervalli di attesa configurabili. Logging completo di richieste/risposte per il debug. |
Per iniziare
Integra xAI Grok nel tuo progetto Delphi in meno di un minuto. Posa il componente, configura la tua API key e invia il tuo primo messaggio.
// 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;
Due stili di API. Ogni funzionalità offre sia metodi convenienti (basati su stringhe, codice minimo) sia classi tipizzate di richiesta/risposta (pieno controllo, type safety). Scegli l'approccio più adatto al tuo caso d'uso.
Chat Completions e Streaming
L'API Chat Completions è il fondamento di ogni interazione con Grok. Invia testo con prompt di sistema opzionali e ricevi risposte sincrone o in streaming in tempo reale.
Prompt di sistema
Controlla il comportamento di Grok fornendo un prompt di sistema che imposta il contesto, la personalità o i vincoli per la conversazione.
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 in tempo reale
Per interfacce utente reattive, trasmetti la risposta di Grok token per token usando Server-Sent Events. Assegna il gestore di evento OnHTTPAPISSE e chiama _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 tipizzata avanzata
Per il pieno controllo sui parametri della richiesta — temperature, top-p, frequency penalty, presence penalty, stop sequence, numero di completamenti — usa le classi tipizzate di richiesta e risposta.
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 — Comprensione delle immagini
Grok può analizzare e ragionare sulle immagini. Invia fotografie, screenshot, diagrammi o grafici insieme a un prompt testuale e ricevi descrizioni dettagliate, estrazione di dati o Q&A visivo.
// 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 d'uso. Automatizza l'analisi dei report, estrai dati dagli screenshot, genera descrizioni di contenuti visivi o costruisci assistenti consapevoli delle immagini — il tutto da codice Delphi nativo.
Tool Use — Function Calling
Definisci tool personalizzati con JSON Schema e Grok deciderà quando e come invocarli. Questa è la base per costruire flussi di lavoro agentici e multi-step che collegano l'AI alla tua logica di business.
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;
Gestione dei modelli
Interroga i modelli Grok disponibili in modo programmatico. Elenca tutti i modelli per scoprire nuove capacità man mano che diventano disponibili.
// 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;
Configurazione e opzioni
Affina il comportamento del componente con opzioni di configurazione complete.
| Proprietà | Descrizione |
|---|---|
GrokOptions.ApiKey |
La tua API key xAI (obbligatoria) |
HttpOptions.ReadTimeout |
Timeout di lettura HTTP in millisecondi (predefinito: 60000) |
LogOptions.Enabled |
Abilita il logging di richieste/risposte |
RetryOptions.Enabled |
Retry automatico in caso di errori transitori |
RetryOptions.Retries |
Numero massimo di tentativi di retry (predefinito: 3) |
RetryOptions.Wait |
Tempo di attesa tra i retry in millisecondi (predefinito: 3000) |
Parametri della richiesta
| Parametro | Descrizione |
|---|---|
Temperature |
Temperatura di campionamento (0.0–2.0). Valori più bassi = più deterministico. |
TopP |
Nucleus sampling (0.0–1.0). Controlla il cutoff della probabilità cumulativa. |
MaxTokens |
Numero massimo di token nella risposta (predefinito: 4096). |
FrequencyPenalty |
Penalizza i token in base alla frequenza nel testo finora. |
PresencePenalty |
Penalizza i token in base al fatto che compaiano o meno nel testo finora. |
N |
Numero di completamenti da generare (predefinito: 1). |
ToolChoice |
Controlla la selezione del tool: 'auto', 'none' o 'required'. |
Perché Grok? Costruito da xAI con un focus su utilità e conoscenza in tempo reale, Grok eccelle nei compiti che richiedono informazioni aggiornate e ragionamento sfumato. Il componente sgcWebSockets rende facile passare tra Grok e altri provider AI mantenendo il tuo codice Delphi pulito e coerente.
