Completado de texto en streaming
API heredada
La API de completado de texto es una API heredada. Los modelos y características futuros requerirán el uso de la API de mensajes, y recomendamos migrar tan pronto como sea posible.
Al crear un completado de texto, puedes establecer "stream": true
para transmitir la respuesta de forma incremental usando eventos enviados por el servidor (SSE). Si estás usando nuestras bibliotecas de cliente, el análisis de estos eventos se manejará automáticamente por ti. Sin embargo, si estás construyendo una integración directa de la API, necesitarás manejar estos eventos tú mismo.
Ejemplo
curl https://api.anthropic.com/v1/complete \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--data '
{
"model": "claude-2",
"prompt": "\n\nHuman: ¡Hola, mundo!\n\nAssistant:",
"max_tokens_to_sample": 256,
"stream": true
}
'
event: completion
data: {"type": "completion", "completion": " Hola", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": "!", "stop_reason": null, "model": "claude-2.0"}
event: ping
data: {"type": "ping"}
event: completion
data: {"type": "completion", "completion": " Mi", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " nombre", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " es", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " Claude", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": ".", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": "", "stop_reason": "stop_sequence", "model": "claude-2.0"}
Eventos
Cada evento incluye un tipo de evento con nombre y datos JSON asociados.
Tipos de eventos: completion
, ping
, error
.
Tipos de eventos de error
Ocasionalmente podemos enviar errores en el flujo de eventos. Por ejemplo, durante períodos de alto uso, puedes recibir un overloaded_error
, que normalmente correspondería a un HTTP 529 en un contexto sin streaming:
event: completion
data: {"completion": " Hola", "stop_reason": null, "model": "claude-2.0"}
event: error
data: {"error": {"type": "overloaded_error", "message": "Sobrecargado"}}
Versiones anteriores de la API
Si estás usando una versión de la API anterior a 2023-06-01
, la forma de la respuesta será diferente. Consulta versioning para más detalles.