Migrazione dalle Text Completions
Migrazione dalle Text Completions ai Messages
Durante la migrazione dalle Text Completions ai Messages, considera i seguenti cambiamenti.
Input e output
Il cambiamento più significativo tra Text Completions e Messages è il modo in cui si specificano gli input del modello e si ricevono gli output dal modello.
Con Text Completions, gli input sono stringhe grezze:
Con Messages, si specifica invece una lista di messaggi di input invece di un prompt grezzo:
Ogni messaggio di input ha un role
e un content
.
Nomi dei ruoli
L’API Text Completions si aspetta turni alternati di \n\nHuman:
e \n\nAssistant:
, ma l’API Messages si aspetta i ruoli user
e assistant
. Potresti vedere documentazione che fa riferimento sia a turni “human” che “user”. Questi si riferiscono allo stesso ruolo e saranno “user” d’ora in avanti.
Con Text Completions, il testo generato dal modello viene restituito nei valori completion
della risposta:
Con Messages, la risposta è il valore content
, che è una lista di blocchi di contenuto:
Mettere le parole in bocca a Claude
Con Text Completions, puoi pre-compilare parte della risposta di Claude:
Con Messages, puoi ottenere lo stesso risultato facendo in modo che l’ultimo messaggio di input abbia il ruolo assistant
:
In questo caso, il content
della risposta continuerà dall’ultimo messaggio di input content
:
Prompt di sistema
Con Text Completions, il prompt di sistema viene specificato aggiungendo testo prima del primo turno \n\nHuman:
:
Con Messages, si specifica il prompt di sistema con il parametro system
:
Nomi dei modelli
L’API Messages richiede che si specifichi la versione completa del modello (es. claude-3-opus-20240229
).
In precedenza supportavamo la specifica solo del numero di versione principale (es. claude-2
), che risultava in aggiornamenti automatici alle versioni minori. Tuttavia, non raccomandiamo più questo pattern di integrazione, e Messages non lo supporta.
Motivo di arresto
Text Completions ha sempre un stop_reason
che può essere:
"stop_sequence"
: Il modello ha terminato naturalmente il suo turno, o è stata generata una delle tue sequenze di stop personalizzate."max_tokens"
: Il modello ha generato il tuomax_tokens
specificato di contenuto, o ha raggiunto il suo massimo assoluto.
Messages ha un stop_reason
con uno dei seguenti valori:
"end_turn"
: Il turno conversazionale è terminato naturalmente."stop_sequence"
: È stata generata una delle sequenze di stop personalizzate specificate."max_tokens"
: (invariato)
Specificare i token massimi
- Text Completions: parametro
max_tokens_to_sample
. Nessuna validazione, ma valori limitati per modello. - Messages: parametro
max_tokens
. Se si passa un valore superiore a quello supportato dal modello, restituisce un errore di validazione.
Formato di streaming
Quando si usa "stream": true
con Text Completions, la risposta includeva eventi server-sent di tipo completion
, ping
, e error
. Vedi Streaming Text Completions per i dettagli.
Messages può contenere più blocchi di contenuto di vari tipi, quindi il suo formato di streaming è un po’ più complesso. Vedi Streaming Messages per i dettagli.