Migrando desde Completaciones de Texto
Migrando desde Completaciones de Texto a Mensajes
Al migrar desde Completaciones de Texto a Mensajes, considere los siguientes cambios.
Entradas y salidas
El cambio más significativo entre las Completaciones de Texto y los Mensajes es la forma en que se especifican las entradas del modelo y se reciben las salidas del modelo.
Con Completaciones de Texto, las entradas son cadenas de texto sin procesar:
Con Mensajes, especificas una lista de mensajes de entrada en lugar de un prompt sin procesar:
Cada mensaje de entrada tiene un role
y content
.
Nombres de roles
La API de Completaciones de Texto espera turnos alternados de \n\nHuman:
y \n\nAssistant:
, pero la API de Mensajes espera roles de user
y assistant
. Puede ver documentación que se refiera a turnos de “human” o “user”. Estos se refieren al mismo rol, y será “user” en adelante.
Con Completaciones de Texto, el texto generado por el modelo se devuelve en los valores completion
de la respuesta:
Con Mensajes, la respuesta es el valor content
, que es una lista de bloques de contenido:
Poniendo palabras en boca de Claude
Con Completaciones de Texto, puedes pre-llenar parte de la respuesta de Claude:
Con Mensajes, puedes lograr el mismo resultado haciendo que el último mensaje de entrada tenga el rol assistant
:
Al hacer esto, el content
de la respuesta continuará desde el último mensaje de entrada content
:
Prompt del sistema
Con Completaciones de Texto, el prompt del sistema se especifica agregando texto antes del primer turno \n\nHuman:
:
Con Mensajes, especificas el prompt del sistema con el parámetro system
:
Nombres de modelos
La API de Mensajes requiere que especifiques la versión completa del modelo (por ejemplo, claude-3-opus-20240229
).
Anteriormente admitíamos especificar solo el número de versión principal (por ejemplo, claude-2
), lo que resultaba en actualizaciones automáticas a versiones menores. Sin embargo, ya no recomendamos este patrón de integración, y los Mensajes no lo admiten.
Razón de parada
Las Completaciones de Texto siempre tienen una stop_reason
de:
"stop_sequence"
: El modelo terminó su turno naturalmente, o se generó una de tus secuencias de parada personalizadas."max_tokens"
: El modelo generó tumax_tokens
especificado de contenido, o alcanzó su máximo absoluto.
Los Mensajes tienen una stop_reason
de uno de los siguientes valores:
"end_turn"
: El turno de conversación terminó naturalmente."stop_sequence"
: Se generó una de tus secuencias de parada personalizadas especificadas."max_tokens"
: (sin cambios)
Especificando tokens máximos
- Completaciones de Texto: parámetro
max_tokens_to_sample
. Sin validación, pero valores limitados por modelo. - Mensajes: parámetro
max_tokens
. Si se pasa un valor más alto que el que admite el modelo, devuelve un error de validación.
Formato de streaming
Al usar "stream": true
con Completaciones de Texto, la respuesta incluía eventos enviados por el servidor de completion
, ping
y error
. Consulta streaming de Completaciones de Texto para más detalles.
Los Mensajes pueden contener múltiples bloques de contenido de diferentes tipos, por lo que su formato de streaming es algo más complejo. Consulta streaming de Mensajes para más detalles.