Anthropic Claude
Anthropic è un'azienda specializzata nella sicurezza dell'IA che sviluppa sistemi di intelligenza artificiale affidabili, interpretabili e orientabili. La sua famiglia di modelli di punta è Claude, che eccelle nel dialogo ragionato, nella creazione di contenuti, nel ragionamento complesso, nella programmazione e molto altro.
La libreria sgcWebSockets fornisce un componente Delphi TsgcHTTP_API_Anthropic per interagire con l'API Anthropic Claude.
Anthropic API
L'API Anthropic fornisce accesso ai modelli Claude per la creazione di applicazioni basate sull'intelligenza artificiale. L'API supporta la generazione di testo, la visione (comprensione delle immagini), l'uso di strumenti (function calling), il pensiero esteso, l'elaborazione di documenti/PDF, il prompt caching, le citazioni, la ricerca web, lo streaming, il conteggio dei token e i batch di messaggi.
Funzionalità
Configurazione
L'API Anthropic utilizza chiavi API per l'autenticazione. Visiti la Sua pagina API Keys nella Anthropic Console per recuperare la chiave API che utilizzerà nelle Sue richieste.
Ricordare che la propria chiave API è segreta! Non condividerla con altri né esporla in alcun codice lato client.
Questa API Key deve essere configurata nella proprietà AnthropicOptions.ApiKey del componente. La proprietà AnthropicOptions.AnthropicVersion specifica la versione dell'API (predefinita: 2023-06-01).
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
Proprietà
AnthropicOptions
- ApiKey: La chiave API per l'autenticazione con l'API Anthropic.
- AnthropicVersion: La stringa della versione API (predefinita: 2023-06-01).
- BetaHeaders: Header facoltativi per funzionalità beta, da utilizzare per abilitare funzionalità API in pre-rilascio (es. files-api-2025-04-14, mcp-client-2025-11-20).
- HttpOptions: Impostazioni di connessione HTTP.
- ReadTimeout: Timeout in millisecondi per la lettura delle risposte HTTP. Il valore predefinito è 0 (nessun timeout).
- LogOptions: Configurazione del logging.
- Enabled: Quando True, le richieste e le risposte HTTP vengono registrate in un file.
- FileName: Il percorso del file in cui viene scritto l'output del log.
- RetryOptions: Configurazione del retry automatico per le richieste API non riuscite.
- Enabled: Quando è True, le richieste non riuscite vengono ritentate automaticamente.
- Retries: Numero massimo di tentativi di retry.
- Wait: Tempo di attesa in millisecondi tra i tentativi di retry.
Messaggi
Inviare un elenco strutturato di messaggi di input con contenuto testuale e/o immagini, e il modello genererà il prossimo messaggio nella conversazione.
- CreateMessage: Crea un messaggio con il modello e i parametri specificati.
- Model: Il modello da utilizzare (es. claude-sonnet-4-20250514).
- Message: Il contenuto del messaggio dell'utente.
- MaxTokens: Il numero massimo di token da generare (obbligatorio, predefinito 4096).
- CreateMessageWithSystem: Crea un messaggio con un prompt di sistema.
- System: Prompt di sistema che definisce il comportamento dell'assistente.
- CreateMessageStream: Crea un messaggio con streaming (SSE) abilitato. Gli eventi vengono consegnati tramite il gestore dell'evento OnHTTPAPISSE.
- CreateMessageJSON: Crea un messaggio che restituisce JSON strutturato conforme a uno schema JSON fornito.
- Schema: Una stringa JSON Schema che definisce il formato di output.
- CreateMessageWithThinking: Crea un messaggio con il pensiero esteso abilitato.
- BudgetTokens: Budget massimo di token per il pensiero (minimo 1024).
- CreateDocumentMessage: Crea un messaggio con un documento in base64 (PDF o testo).
- DocumentBase64: I dati del documento codificati in base64.
- MediaType: Il tipo MIME (ad es. application/pdf).
Vision
Claude può comprendere immagini passate come blocchi di contenuto con codifica base64 all'interno dei messaggi.
- CreateVisionMessage: Invia un'immagine con un prompt testuale.
- ImageBase64: I dati dell'immagine codificati in base64.
- MediaType: Il tipo MIME (image/jpeg, image/png, image/gif, image/webp).
- Prompt: Il prompt testuale da accompagnare all'immagine.
Tool Use
Claude può utilizzare strumenti (function calling) per interagire con sistemi esterni. Si definiscono gli strumenti con i rispettivi nomi, descrizioni e schemi di input, e Claude genererà blocchi di contenuto tool_use quando desidera chiamare uno strumento.
Models
Elenca e descrive i modelli Claude disponibili.
- GetModels: Elenca tutti i modelli disponibili.
- GetModel: Recupera informazioni su un modello specifico.
- ModelId: L'ID del modello da recuperare.
Extended Thinking
Il pensiero esteso consente a Claude di ragionare passo dopo passo prima di rispondere, migliorando la qualità per attività complesse come matematica, codice e analisi.
- ThinkingType: Imposti su 'enabled' per attivare il thinking, 'disabled' per disattivarlo.
- ThinkingBudgetTokens: Budget di token per il ragionamento (minimo 1024, deve essere inferiore a MaxTokens).
- CreateMessageWithAdaptiveThinking: Crea un messaggio con pensiero adattivo, lasciando che Claude decida autonomamente la profondità di ragionamento.
Documenti
Claude può elaborare documenti PDF e file di testo inviati come blocchi di contenuto. Supporta i tipi di origine base64, text e URL.
- CreateDocumentMessage: Invia un documento con un prompt testuale.
- DocumentBase64: I dati del documento codificati in base64.
- MediaType: Il tipo MIME (application/pdf, text/plain).
Prompt Caching
Memorizzare nella cache il contesto utilizzato di frequente (prompt di sistema, blocchi di contenuto, definizioni di strumenti) tra le chiamate API per ridurre i costi fino al 90% sulle letture dalla cache.
- SystemCacheControl: impostare su True nella richiesta per memorizzare nella cache il prompt di sistema.
- CacheControl: Impostare su 'ephemeral' sui blocchi di contenuto o sulle definizioni degli strumenti.
- BetaHeaders: Header opzionali per funzionalità beta in AnthropicOptions.
Citazioni
Quando i documenti vengono inviati con le citazioni abilitate, Claude include riferimenti alle fonti nella sua risposta. I tipi di citazione includono char_location (testo), page_location (PDF), content_block_location (contenuto personalizzato) e web_search_result_location (ricerca web).
Web Search
Claude può cercare informazioni in tempo reale sul web utilizzando lo strumento integrato web_search. Altri strumenti integrati includono code_execution e computer use.
- CreateMessageWithWebSearch: Crea un messaggio con la ricerca web abilitata.
- Model: Il modello da utilizzare.
- Message: La query dell'utente.
Conteggio token
Conta il numero di token in un messaggio prima di inviarlo.
- CountTokens: Conta il numero di token di input di un messaggio.
- Model: Il modello da utilizzare per il conteggio dei token.
- Message: Il contenuto del messaggio di cui contare i token.
Batch di messaggi
L'API Message Batches consente di elaborare grandi volumi di messaggi in modo asincrono.
- ListBatches: elenca tutti i batch di messaggi.
- GetBatch: Recupera un batch specifico tramite ID.
- CancelBatch: Annulla un batch ancora in elaborazione.
- GetBatchResults: Recupera i risultati di un batch completato.
Output Strutturati
Forzare Claude a restituire JSON valido conforme a uno schema JSON fornito. Combinare con il parametro Effort per controllare la qualità dell'output rispetto al costo.
- CreateMessageJSON: Crea un messaggio con output in schema JSON.
- Schema: Una stringa JSON Schema che definisce il formato di output.
- OutputFormatSchema: (Proprietà della richiesta) Schema JSON per l'output strutturato.
- Effort: (proprietà della Richiesta) Controlla qualità vs. costo: 'low', 'medium', 'high', 'max'.
- Strict: (proprietà Tool) Quando è True, gli input del tool sono garantiti corrispondere all'input_schema.
Files API
Caricamento, elenco, recupero, download ed eliminazione di file. I file caricati possono essere referenziati nei messaggi utilizzando blocchi di contenuto documento con tipo di sorgente file. Richiede l'intestazione beta files-api-2025-04-14.
- UploadFile: Carica un file locale. Restituisce i metadati del file.
- ListFiles: Elenca i file caricati con paginazione.
- GetFile: Recupera i metadati di un file specifico.
- DownloadFile: Scarica il contenuto del file.
- DeleteFile: Elimina definitivamente un file.
Parametri della Richiesta
Parametri di richiesta aggiuntivi disponibili nell'API Messages.
- ServiceTier: Controlla l'utilizzo del livello di priorità: 'auto' (predefinito) o 'standard_only'.
- InferenceGeo: Controlla la geografia dell'inferenza: 'global' (predefinito) o 'us'.
- Container: ID del container per il riutilizzo degli ambienti di esecuzione del codice tra le richieste.
- IsError: (proprietà del blocco di contenuto) Impostare su True nei blocchi tool_result per indicare un errore nell'esecuzione dello strumento.
- CacheTTL: Tempo di vita della cache estesa: '5m' (predefinito) o '1h'.
- ThinkingType: Impostare su 'adaptive' per consentire a Claude di decidere automaticamente la profondità del thinking.
MCP Connector
Collega Claude a server MCP (Model Context Protocol) esterni per accedere a strumenti di terze parti. Richiede l'header beta mcp-client-2025-11-20.
- CreateMessageWithMCP: Crea un messaggio con una connessione al server MCP.
- MCPServerUrl: URL HTTPS del server MCP.
- MCPServerName: Nome univoco per il server.
- MCPServers: (proprietà Request) Array di definizioni di server MCP con ServerType, Url, Name, AuthorizationToken.
- MCPServerName: (proprietà dello strumento) Fa riferimento a un server MCP quando ToolType è 'mcp_toolset'.