CCDV-F · Aplicaciones e integración
Tiempo real o Message Batches, streaming, caché y Claude a través de terceros
Todos los meses, un proceso etiqueta diez mil recetas con sus restricciones alimentarias. Pasaron a lotes para ahorrar, y ahora las etiquetas son correctas pero quedan en la receta equivocada. Mientras tanto, otro equipo usa la API en tiempo real para un trabajo nocturno que nadie mira, y paga el precio completo. Los dos eligieron mal la forma de llamar a la API o la usaron mal.
Tiempo real o lotes
| Si… | Usá |
|---|---|
| Alguien espera la respuesta (un chat, un formulario, un agente interactivo) | Messages API, en tiempo real |
| El trabajo puede esperar horas (clasificar un archivo histórico, evaluaciones, informes nocturnos) | API de lotes de mensajes (Message Batches API) |
La Message Batches API procesa los pedidos de forma asíncrona, a mitad de precio. La mayoría de los lotes termina en menos de una hora, pero el plazo puede llegar a 24 horas; lo que no se procesó en ese tiempo vence. Cada pedido del lote es un pedido normal de la Messages API, así que admite herramientas, imágenes y system prompt.
Lo que más se pregunta:
- Cada pedido lleva un identificador propio del pedido (custom_id) único, por ejemplo el ID de la receta.
- Los resultados pueden volver en cualquier orden. Se cruzan siempre por
custom_id, nunca por posición. - Cada resultado tiene un tipo:
succeeded,errored,canceledoexpired. Los que fallaron o vencieron se vuelven a mandar, no se dan por buenos.
Streaming, visión y thinking, lo justo
- Streaming: si una persona mira la pantalla y la respuesta es larga, se transmite de a pedazos para que vea progreso desde el primer segundo. Tarda lo mismo, pero deja de parecer colgada. Los eventos están en la lección del SDK.
- Visión: las imágenes y los PDF van como bloques de contenido (en base64, por URL o por ID de archivo, según la plataforma). Conviene poner la imagen antes de la pregunta y validar lo que se extrae, igual que con texto.
- Thinking: el razonamiento del modelo llega en bloques propios. En un loop con herramientas, esos bloques se devuelven tal cual en el historial; si tu código los descarta o los edita, la API puede rechazar el pedido.
Caché: el orden del prompt importa
La caché de prompts (prompt caching) reutiliza un prefijo exacto del pedido, en el orden herramientas, system y mensajes. Si la primera línea del system prompt tiene el nombre del usuario y la hora, el prefijo cambia en cada llamada y la caché se escribe siempre y no se lee nunca. La regla:
- Lo fijo primero: definiciones de herramientas, instrucciones, manuales de referencia.
- El punto de caché (cache breakpoint) al final de lo fijo.
- Lo variable (usuario, fecha, pregunta) después.
El costo y la medición se ven en el dominio de selección de modelos.
Claude a través de terceros
Claude también se usa desde Amazon Bedrock, Google Cloud (Vertex AI) y otras nubes. La forma de los mensajes es la misma, pero cambian varias cosas:
- Autenticación: credenciales de la nube (por ejemplo, un rol de IAM en AWS), con el cliente del SDK para esa plataforma, no la API key de Anthropic.
- IDs de modelo: cada plataforma tiene su formato y sus endpoints regionales o globales; ahí se resuelve la residencia de datos.
- Disponibilidad de funciones (feature availability): no todo está en todas partes ni al mismo tiempo. En Bedrock, por ejemplo, no hay fuentes de imagen por URL ni Files API. Antes de migrar, se verifica cada función que usa la aplicación.
- Ciclo de vida: cada plataforma fija sus propias fechas de retiro.
Las trampas típicas
- Llamadas síncronas en paralelo para un trabajo que puede esperar.
- Cruzar los resultados de un lote por orden, o dar por buenos los
erroredyexpired. - Poner datos variables al principio del prompt y esperar aciertos de caché.
- Migrar a una nube cambiando solo la URL, sin revisar autenticación, IDs y funciones.
En el examen
Primero preguntate si alguien espera la respuesta: eso decide entre tiempo real y lotes. Si los resultados del lote están bien pero en el lugar equivocado, buscá custom_id. Si la caché nunca se lee, buscá la opción que mueve lo variable después del punto de caché. Y si el escenario migra a Bedrock o Vertex AI, elegí las opciones de credenciales de la nube, IDs de la plataforma y verificación de funciones.
Pregunta rápida
Una pregunta del simulacro sobre este dominio. Cuenta para tu progreso.
An insurance-claims platform asks Claude to read adjuster notes and return a JSON object with claim_id, damage_type, estimated_amount and a list of follow-up actions. The system prompt describes the fields in prose and ends with "Respond only with valid JSON." The backend parses the reply and posts it to the claims REST API.
About 2% of replies fail to parse. In the logs, some failing replies stop in the middle of the follow-up list, others are missing estimated_amount, and a few start with a sentence before the opening brace.
The team lead wants a fix that removes the parse failures at their source rather than adding more retry logic on top of the parser.
Which TWO changes should the team make? Select two.
Elegí todas las que correspondan.