Processo di richiesta
Per utilizzare Claude Messages API, prima di tutto vai al Ace Data Cloud Console per ottenere il tuo API Token, da conservare per uso futuro.
Se non hai ancora effettuato il login o la registrazione, verrai automaticamente reindirizzato alla pagina di login che ti invita a registrarti e accedere; una volta completato, verrai riportato automaticamente alla pagina corrente.
Un API Token è sufficiente per accedere a tutti i servizi della piattaforma, senza necessità di richiederne uno per ogni servizio. La prima richiesta ti darà un credito gratuito, permettendoti di provare senza costi; quando il credito è insufficiente, puoi ricaricare il saldo generale nella console.
📘 Documentazione completa: Claude Messages API →
Utilizzo di base
Il percorso di richiesta per Claude Messages API è/v1/messages, mantenendo la coerenza con l’API ufficiale di Anthropic. Dobbiamo fornire almeno tre parametri obbligatori:
model: seleziona il modello Claude da utilizzare. L’ultimo flagship èclaude-fable-5-1(1 milione di token di contesto, output massimo 128K token); il precedenteclaude-fable-5è ancora compatibile e disponibile.messages: array di messaggi in input, ogni messaggio contienerole(ruolo) econtent(contenuto), doverolesupportausereassistant.max_tokens: numero massimo di token in output, utilizzato per limitare la lunghezza della risposta singola.
system: prompt di sistema, utilizzato per impostare il comportamento e il ruolo del modello.temperature: casualità nella generazione, tra 0 e 1, valori più alti producono risposte più disperse.stream: se utilizzare la risposta in streaming, impostato sutrueper ottenere un effetto di restituzione parola per parola.stop_sequences: sequenze di arresto personalizzate, il modello smetterà di generare quando incontra questi testi.top_p: parametro di campionamento nucleare, in combinazione con la temperatura per controllare la casualità della generazione.top_k: campiona solo tra le K opzioni con la probabilità più alta.tools: definizione degli strumenti, per consentire al modello di invocare funzioni esterne.tool_choice: controlla come il modello utilizza gli strumenti forniti.cache_control: crea automaticamente un punto di interruzione della cache all’ultimo blocco di contenuto cacheabile nella richiesta; può anche essere scritto su un blocco di contenuto specifico.
Esempio cURL
Esempio Python
id: identificatore unico per questo messaggio.type: sempremessage.role: sempreassistant.content: array di contenuti di risposta, ogni elemento contienetype(cometext) e il contenuto corrispondente.model: nome del modello che ha elaborato la richiesta.stop_reason: motivo di arresto. I valori stabili includonoend_turn,max_tokens,stop_sequence,tool_use,pause_turn(può restituire il contenuto attuale dell’assistente per continuare),refusalemodel_context_window_exceeded.stop_sequence: se l’arresto è avvenuto a causa di una sequenza di arresto personalizzata, mostra il testo della sequenza di arresto corrispondente.stop_details: quandostop_reasonèrefusal, può contenere categorie e spiegazioni di rifiuto.usage: statistiche sull’uso dei token.input_tokensè l’input non cacheabile;cache_creation_input_tokensecache_read_input_tokenssono rispettivamente la scrittura e la lettura della cache;output_tokensè il numero di token in output. Il prezzo ufficiale di lettura della cache per Fable 5.1 è di 12.50 e $20/milione di token; i prezzi effettivi della piattaforma sono calcolati in base agli sconti del pacchetto. Le risposte non in streaming possono anche includere ilcostregistrato da Ace Data Cloud.
Prompt di sistema
Claude Messages API supporta la definizione di prompt di sistema tramite il camposystem, utilizzato per definire il comportamento, il ruolo e il contesto del modello.
Esempio Python
system, è possibile controllare con precisione il ruolo e il comportamento di Claude.
Risposta in streaming
Questa interfaccia supporta anche la risposta in streaming, impostando il parametrostream su true per ottenere un effetto di restituzione graduale, molto adatto per implementare la visualizzazione parola per parola in una pagina web.
Esempio Python
event: e data:. I tipi di eventi in streaming includono:
message_start: inizio del messaggio, contiene le informazioni di base del messaggio e il nome del modello.content_block_start: inizio del blocco di contenuto.content_block_delta: aggiornamento incrementale del blocco di contenuto, contiene nuovi frammenti di testo generati.content_block_stop: fine del blocco di contenuto.message_delta: aggiornamento incrementale a livello di messaggio, contiene informazioni sustop_reasoneusagefinale.message_stop: fine del messaggio.
content_block_delta nella risposta in streaming contiene il contenuto del testo generato passo dopo passo, concatenando tutti i text_delta si può ottenere la risposta completa.
Esempio JavaScript
Conversazione multipla
Se desideri integrare la funzionalità di conversazione multipla, devi alternare i messaggi dei ruoliuser e assistant nell’array messages, includendo la cronologia della conversazione precedente.
Esempio Python
messages, Claude può fornire risposte accurate in base al contesto.
Modello di pensiero profondo
Il pensiero di Claude e il riassunto del pensiero sono due concetti diversi: il modello può effettuare ragionamenti interni, ma l’API non restituirà la catena di pensiero originale. Quando è necessario mostrare il processo di ragionamento, l’API restituisce un riassunto elaborato. Il modello attuale consiglia di utilizzare il pensiero adattivo e di controllare l’impegno complessivo di ragionamento tramiteoutput_config.effort:
display: "summarized"restituisce un riassunto di pensiero leggibile; non è la catena di pensiero originale.display: "omitted"restituiscethinking: "", ma mantiene comunque lasignatureopaca per supportare le conversazioni successive.- I modelli Fable 5.1, Fable 5, Opus 5, Sonnet 5, Opus 4.8 e Opus 4.7 hanno come valore predefinito
omittedper il display; i modelli Opus 4.6, Sonnet 4.6 e precedenti che supportano il pensiero utilizzano per defaultsummarized. - Il display influisce solo sul contenuto restituito e sulla latenza in streaming, non disabilita il ragionamento e non riduce la fatturazione dei token di pensiero.
- Se il pensiero è abilitato per default e il valore di display predefinito sono due questioni indipendenti. Opus 5 e Sonnet 5 abilitano per default il pensiero adattivo; Opus 4.8, 4.7 e 4.6 devono essere esplicitamente abilitati.
budget_tokensè utilizzato solo per i vecchi modelli che supportano ancora un budget di pensiero fisso. I nuovi modelli dovrebbero utilizzarethinking.type=adaptiveeoutput_config.effort; il pensiero di Fable 5.1 è sempre attivo e non può essere disabilitato esplicitamente.- Durante le conversazioni multiple e le chiamate agli strumenti, il blocco di pensiero completo restituito dall’assistente e la signature devono essere restituiti così come sono; non modificare o generare autonomamente la signature.
- Alcuni router compatibili non possono gestire senza perdita
redacted_thinkingo disabilitare esplicitamente il pensiero, in tal caso restituiranno un errore di parametro, senza silenziosamente scartare o modificare il significato della richiesta.
summarized genererà thinking_delta; omitted non genererà thinking_delta, mantenendo solo il ciclo di vita del blocco di pensiero e signature_delta.
Modello visivo
Utilizzo di immagini URL
Esempio cURL
image/jpeg, image/png, image/gif, image/webp.
Documenti e PDF
I PDF utilizzano il blocco di contenutodocument, supportando due fonti stabili: Base64 e URL. La fonte Base64 deve utilizzare application/pdf:
{"type":"url","url":"https://example.com/report.pdf"}. Il document supporta anche text/plain e fonti content composte da blocchi di testo/immagine; i campi opzionali includono title, context e citations. La fonte file_id dell’API Files è una funzionalità beta indipendente e non rientra nel contratto stabile di questa interfaccia.
Cache dei suggerimenti
Ilcache_control di alto livello posizionerà automaticamente i punti di interruzione della cache all’ultimo blocco memorizzabile:
cache_control nei blocchi di contenuto text, image, document, tool_use, tool_result o definizioni di strumenti. ttl supporta 5m (predefinito) e 1h; si prega di controllare usage.cache_creation_input_tokens e usage.cache_read_input_tokens per determinare la scrittura e il colpo della cache.
Esempio di risultato restituito:
Chiamata agli strumenti (Tool Use)
L’API Messages di Claude supporta nativamente la funzionalità di chiamata agli strumenti, consentendo al modello di chiamare strumenti/funzioni predefiniti quando necessario.Esempio Python
tool_use:
stop_reason è tool_use, il che indica che il modello ha bisogno di chiamare uno strumento. Dopo aver ricevuto questo risultato, è necessario eseguire la funzione dello strumento e restituire il risultato sotto forma di tool_result al modello:
Differenze con l’API di Chat Completion
Ace Data Cloud offre due formati di API Claude, le principali differenze sono le seguenti: L’usage.input_tokens dell’API Messages indica solo l’input non memorizzato, cache_read_input_tokens e cache_creation_input_tokens sono fatturati in modo indipendente; i tre verranno calcolati separatamente secondo i rispettivi prezzi.
Se il tuo sistema è già integrato con l’API in formato OpenAI, puoi utilizzare l’API Chat Completion per un passaggio senza soluzione di continuità. Se hai bisogno di utilizzare tutte le capacità native di Claude, si consiglia di utilizzare l’API Messages.
Gestione degli errori
Le risposte di errore dell’interfaccia pubblica utilizzano l’involucro della piattaforma Ace Data Cloud:error.code è un codice di errore stabile, error.message è una descrizione, trace_id è utilizzato per il debug delle richieste. Gli stati HTTP comuni includono:
400: Parametri della richiesta o contenuto del protocollo non validi.401: Token di autorizzazione non valido, mancante o scaduto.403: Accesso vietato, saldo insufficiente o quota limitata.404: API o modello non esistente.413: Corpo della richiesta troppo grande.429: Troppe richieste.500/503/504: Errore del servizio, temporaneamente non disponibile o timeout di elaborazione.
Esempio di risposta di errore
error.code.

