Batch di Messaggi (beta)
L’API Message Batches è un modo potente ed economico per elaborare in modo asincrono grandi volumi di richieste di Messaggi. Questo approccio è adatto a compiti che non richiedono risposte immediate, riducendo i costi del 50% mentre aumenta il throughput.
L’API Message Batches è in beta
Siamo entusiasti di annunciare che l’API Batches è ora in beta pubblica! Per accedere a questa funzionalità, dovrai includere l’header anthropic-beta: message-batches-2024-09-24
nelle tue richieste API, o utilizzare client.beta.messages.batches
nelle tue chiamate SDK.
Continueremo a iterare su questa beta aperta nelle prossime settimane, quindi apprezziamo il tuo feedback. Condividi le tue idee e suggerimenti utilizzando questo modulo.
Puoi esplorare direttamente il riferimento API, oltre a questa guida.
Come funziona l’API Message Batches
Quando invii una richiesta all’API Message Batches:
- Il sistema crea un nuovo Batch di Messaggi con le richieste di Messaggi fornite.
- Il batch viene quindi elaborato in modo asincrono, con ogni richiesta gestita indipendentemente.
- Puoi interrogare lo stato del batch e recuperare i risultati quando l’elaborazione è terminata per tutte le richieste.
Questo è particolarmente utile per operazioni in blocco che non richiedono risultati immediati, come:
- Valutazioni su larga scala: Elabora migliaia di casi di test in modo efficiente.
- Moderazione dei contenuti: Analizza grandi volumi di contenuti generati dagli utenti in modo asincrono.
- Analisi dei dati: Genera approfondimenti o riassunti per grandi set di dati.
- Generazione di contenuti in blocco: Crea grandi quantità di testo per vari scopi (es. descrizioni di prodotti, riassunti di articoli).
Limitazioni dei batch
- Un Batch di Messaggi è limitato a 10.000 richieste di Messaggi o 32 MB di dimensione, a seconda di quale limite viene raggiunto per primo.
- Il batch impiega fino a 24 ore per generare risposte, anche se l’elaborazione può terminare prima. I risultati del tuo batch non saranno disponibili fino al termine dell’elaborazione dell’intero batch. I batch scadranno se l’elaborazione non viene completata entro 24 ore.
- I risultati dei batch sono disponibili per 29 giorni dopo la creazione. Dopo di che, potrai ancora visualizzare il Batch, ma i suoi risultati non saranno più disponibili per il download.
- I batch sono limitati a un Workspace. Puoi visualizzare tutti i batch—e i loro risultati—che sono stati creati all’interno del Workspace a cui appartiene la tua chiave API.
- I limiti di velocità si applicano alle richieste HTTP dell’API Batches piuttosto che al numero di richieste in un batch. Inoltre, potremmo rallentare l’elaborazione in base alla domanda corrente e al volume delle tue richieste. In tal caso, potresti vedere più richieste scadere dopo 24 ore.
- A causa dell’elevato throughput e dell’elaborazione concorrente, i batch potrebbero superare leggermente il limite di spesa configurato del tuo Workspace.
Modelli supportati
L’API Message Batches attualmente supporta:
- Claude 3.5 Sonnet (
claude-3-5-sonnet-20240620
eclaude-3-5-sonnet-20241022
) - Claude 3.5 Haiku (
claude-3-5-haiku-20241022
) - Claude 3 Haiku (
claude-3-haiku-20240307
) - Claude 3 Opus (
claude-3-opus-20240229
)
Cosa può essere messo in batch
Qualsiasi richiesta che puoi fare all’API Messages può essere inclusa in un batch. Questo include:
- Visione
- Uso degli strumenti
- Messaggi di sistema
- Conversazioni multi-turno
- Qualsiasi funzionalità beta
Poiché ogni richiesta nel batch viene elaborata indipendentemente, puoi mischiare diversi tipi di richieste all’interno di un singolo batch.
Prezzi
L’API Batches offre significativi risparmi sui costi. Tutto l’utilizzo viene addebitato al 50% dei prezzi API standard.
Modello | Input Batch | Output Batch |
---|---|---|
Claude 3.5 Sonnet | $1.50 / MTok | $7.50 / MTok |
Claude 3 Opus | $7.50 / MTok | $37.50 / MTok |
Claude 3 Haiku | $0.125 / MTok | $0.625 / MTok |
Come utilizzare l’API Message Batches
Preparare e creare il tuo batch
Un Batch di Messaggi è composto da una lista di richieste per creare un Messaggio. La forma di una singola richiesta è composta da:
- Un
custom_id
univoco per identificare la richiesta di Messaggi - Un oggetto
params
con i parametri standard API Messages
Puoi creare un batch passando questa lista nel parametro requests
:
In questo esempio, due richieste separate sono raggruppate insieme per l’elaborazione asincrona. Ogni richiesta ha un custom_id
univoco e contiene i parametri standard che useresti per una chiamata API Messages.
Testa le tue richieste batch con l’API Messages
La validazione dell’oggetto params
per ogni richiesta di messaggio viene eseguita in modo asincrono, e gli errori di validazione vengono restituiti quando l’elaborazione dell’intero batch è terminata. Puoi assicurarti di costruire correttamente il tuo input verificando prima la forma della tua richiesta con l’API Messages.
Quando un batch viene creato per la prima volta, la risposta avrà uno stato di elaborazione in_progress
.
Monitorare il tuo batch
Il campo processing_status
del Batch di Messaggi indica la fase di elaborazione in cui si trova il batch. Inizia come in_progress
, poi si aggiorna a ended
una volta che tutte le richieste nel batch hanno terminato l’elaborazione e i risultati sono pronti. Puoi monitorare lo stato del tuo batch visitando la Console, o utilizzando l’endpoint di recupero:
Puoi interrogare questo endpoint per sapere quando l’elaborazione è terminata.
Recuperare i risultati del batch
Una volta terminata l’elaborazione del batch, ogni richiesta di Messaggi nel batch avrà un risultato. Ci sono 4 tipi di risultato:
Tipo di Risultato | Descrizione |
---|---|
succeeded | La richiesta ha avuto successo. Include il risultato del messaggio. |
errored | La richiesta ha incontrato un errore e non è stato creato un messaggio. I possibili errori includono richieste non valide ed errori interni del server. Non ti verrà addebitato il costo di queste richieste. |
canceled | L’utente ha annullato il batch prima che questa richiesta potesse essere inviata al modello. Non ti verrà addebitato il costo di queste richieste. |
expired | Il batch ha raggiunto la sua scadenza di 24 ore prima che questa richiesta potesse essere inviata al modello. Non ti verrà addebitato il costo di queste richieste. |
Vedrai una panoramica dei tuoi risultati con i request_counts
del batch, che mostra quante richieste hanno raggiunto ciascuno di questi quattro stati.
I risultati del batch sono disponibili per il download sia nella Console che all’URL results_url
sul Batch di Messaggi. A causa della potenziale grande dimensione dei risultati, si raccomanda di trasmettere i risultati in streaming piuttosto che scaricarli tutti in una volta.
I risultati saranno in formato .jsonl
, dove ogni riga è un oggetto JSON valido che rappresenta il risultato di una singola richiesta nel Batch di Messaggi. Per ogni risultato trasmesso in streaming, puoi fare qualcosa di diverso a seconda del suo custom_id
e tipo di risultato. Ecco un esempio di set di risultati:
Se il tuo risultato ha un errore, il suo result.error
sarà impostato sulla nostra forma di errore standard.
I risultati del batch potrebbero non corrispondere all’ordine di input
I risultati del batch possono essere restituiti in qualsiasi ordine e potrebbero non corrispondere all’ordinamento delle richieste quando il batch è stato creato. Nell’esempio sopra, il risultato per la seconda richiesta del batch viene restituito prima della prima. Per far corrispondere correttamente i risultati con le loro richieste corrispondenti, usa sempre il campo custom_id
.
Migliori pratiche per un batching efficace
Per ottenere il massimo dall’API Batches:
- Monitora regolarmente lo stato di elaborazione del batch e implementa una logica di ripetizione appropriata per le richieste fallite.
- Usa valori
custom_id
significativi per far corrispondere facilmente i risultati con le richieste, poiché l’ordine non è garantito. - Considera di suddividere set di dati molto grandi in più batch per una migliore gestibilità.
- Esegui una prova a secco di una singola forma di richiesta con l’API Messages per evitare errori di validazione.
Risoluzione dei problemi comuni
Se si verificano comportamenti inaspettati:
- Verifica che la dimensione totale della richiesta batch non superi i 32 MB. Se la dimensione della richiesta è troppo grande, potresti ricevere un errore 413
request_too_large
. - Controlla di utilizzare modelli supportati per tutte le richieste nel batch.
- Assicurati che ogni richiesta nel batch abbia un
custom_id
univoco. - Assicurati che siano passati meno di 29 giorni dal tempo
created_at
del batch (non dal tempoended_at
dell’elaborazione). Se sono passati più di 29 giorni, i risultati non saranno più visualizzabili. - Conferma che il batch non sia stato annullato.
Nota che il fallimento di una richiesta in un batch non influisce sull’elaborazione delle altre richieste.
Archiviazione e privacy dei batch
-
Isolamento del Workspace: I batch sono isolati all’interno del Workspace in cui sono stati creati. Possono essere accessibili solo da chiavi API associate a quel Workspace, o da utenti con il permesso di visualizzare i batch del Workspace nella Console.
-
Disponibilità dei risultati: I risultati del batch sono disponibili per 29 giorni dopo la creazione del batch, consentendo un ampio tempo per il recupero e l’elaborazione.