Migration depuis les Complétions de Texte
Migration depuis les Complétions de Texte vers les Messages
Lors de la migration depuis Text Completions vers Messages, considérez les changements suivants.
Entrées et sorties
Le plus grand changement entre Text Completions et Messages est la façon dont vous spécifiez les entrées du modèle et recevez les sorties du modèle.
Avec Text Completions, les entrées sont des chaînes brutes :
Avec Messages, vous spécifiez une liste de messages d’entrée au lieu d’un prompt brut :
Chaque message d’entrée a un role
et un content
.
Noms des rôles
L’API Text Completions attend des tours alternés \n\nHuman:
et \n\nAssistant:
, mais l’API Messages attend des rôles user
et assistant
. Vous pourriez voir de la documentation faisant référence aux tours “human” ou “user”. Ceux-ci font référence au même rôle, et ce sera “user” à l’avenir.
Avec Text Completions, le texte généré par le modèle est retourné dans les valeurs completion
de la réponse :
Avec Messages, la réponse est la valeur content
, qui est une liste de blocs de contenu :
Mettre des mots dans la bouche de Claude
Avec Text Completions, vous pouvez pré-remplir une partie de la réponse de Claude :
Avec Messages, vous pouvez obtenir le même résultat en faisant que le dernier message d’entrée ait le rôle assistant
:
Ce faisant, le content
de la réponse continuera à partir du content
du dernier message d’entrée :
Prompt système
Avec Text Completions, le system prompt est spécifié en ajoutant du texte avant le premier tour \n\nHuman:
:
Avec Messages, vous spécifiez le prompt système avec le paramètre system
:
Noms des modèles
L’API Messages exige que vous spécifiiez la version complète du modèle (par exemple claude-3-opus-20240229
).
Nous prenions auparavant en charge la spécification uniquement du numéro de version majeure (par exemple claude-2
), ce qui entraînait des mises à niveau automatiques vers les versions mineures. Cependant, nous ne recommandons plus ce modèle d’intégration, et Messages ne le prennent pas en charge.
Raison d’arrêt
Text Completions ont toujours un stop_reason
de soit :
"stop_sequence"
: Le modèle a soit terminé son tour naturellement, soit l’une de vos séquences d’arrêt personnalisées a été générée."max_tokens"
: Soit le modèle a généré votre nombre spécifié demax_tokens
de contenu, soit il a atteint son maximum absolu.
Messages ont un stop_reason
de l’une des valeurs suivantes :
"end_turn"
: Le tour conversationnel s’est terminé naturellement."stop_sequence"
: L’une de vos séquences d’arrêt personnalisées spécifiées a été générée."max_tokens"
: (inchangé)
Spécification des tokens maximum
- Text Completions : paramètre
max_tokens_to_sample
. Pas de validation, mais valeurs plafonnées par modèle. - Messages : paramètre
max_tokens
. Si vous passez une valeur supérieure à ce que le modèle prend en charge, retourne une erreur de validation.
Format de streaming
Lors de l’utilisation de "stream": true
avec Text Completions, la réponse incluait n’importe lequel des événements server-sent-events completion
, ping
, et error
. Voir Text Completions streaming pour les détails.
Messages peuvent contenir plusieurs blocs de contenu de types variés, et donc son format de streaming est quelque peu plus complexe. Voir Messages streaming pour les détails.