Migrando de Completions de Texto
Migrando de Completions de Texto para Messages
Ao migrar de Completions de Texto para Messages, considere as seguintes mudanças.
Entradas e saídas
A maior mudança entre Completions de Texto e Messages é a forma como você especifica as entradas do modelo e recebe as saídas do modelo.
Com Completions de Texto, as entradas são strings brutas:
Com Messages, você especifica uma lista de mensagens de entrada em vez de um prompt bruto:
Cada mensagem de entrada tem um role
e content
.
Nomes dos papéis
A API de Completions de Texto espera turnos alternados de \n\nHuman:
e \n\nAssistant:
, mas a API de Messages espera papéis user
e assistant
. Você pode ver documentação referindo-se a turnos “human” ou “user”. Estes se referem ao mesmo papel e serão “user” daqui para frente.
Com Completions de Texto, o texto gerado pelo modelo é retornado nos valores completion
da resposta:
Com Messages, a resposta é o valor content
, que é uma lista de blocos de conteúdo:
Colocando palavras na boca do Claude
Com Completions de Texto, você pode pré-preencher parte da resposta do Claude:
Com Messages, você pode alcançar o mesmo resultado fazendo com que a última mensagem de entrada tenha o papel assistant
:
Ao fazer isso, o content
da resposta continuará a partir do content
da última mensagem de entrada:
Prompt do sistema
Com Completions de Texto, o prompt do sistema é especificado adicionando texto antes do primeiro turno \n\nHuman:
:
Com Messages, você especifica o prompt do sistema com o parâmetro system
:
Nomes dos modelos
A API de Messages requer que você especifique a versão completa do modelo (por exemplo, claude-3-opus-20240229
).
Anteriormente, suportávamos especificar apenas o número da versão principal (por exemplo, claude-2
), o que resultava em atualizações automáticas para versões menores. No entanto, não recomendamos mais esse padrão de integração, e Messages não o suporta.
Razão de parada
Completions de Texto sempre têm uma stop_reason
de:
"stop_sequence"
: O modelo encerrou seu turno naturalmente, ou uma de suas sequências de parada personalizadas foi gerada."max_tokens"
: O modelo gerou seumax_tokens
especificado de conteúdo, ou atingiu seu máximo absoluto.
Messages têm uma stop_reason
com um dos seguintes valores:
"end_turn"
: O turno da conversa terminou naturalmente."stop_sequence"
: Uma das sequências de parada personalizadas especificadas foi gerada."max_tokens"
: (inalterado)
Especificando tokens máximos
- Completions de Texto: parâmetro
max_tokens_to_sample
. Sem validação, mas valores limitados por modelo. - Messages: parâmetro
max_tokens
. Se passar um valor maior do que o modelo suporta, retorna um erro de validação.
Formato de streaming
Ao usar "stream": true
com Completions de Texto, a resposta incluía eventos server-sent de completion
, ping
e error
. Veja streaming de Completions de Texto para detalhes.
Messages podem conter múltiplos blocos de conteúdo de tipos variados, e então seu formato de streaming é um pouco mais complexo. Veja streaming de Messages para detalhes.