Glosario — Crea tu Propio Chatbot con Claude

A

API key. Credencial secreta que autentica tus llamadas a la API (formato sk-ant-...). Vive en la variable de entorno ANTHROPIC_API_KEY, jamás en el código ni en el frontend: quien la tenga gasta tu crédito.

Alucinación. Respuesta plausible pero falsa generada por el modelo (un precio inventado, una política inexistente). Mitigaciones del libro: herramientas para datos exactos (cap. 3), RAG con citas y umbral (cap. 4), y un system prompt que dé salida digna al "no sé" (cap. 2).

B

Backoff exponencial. Estrategia de reintentos donde la espera se duplica en cada intento (1s, 2s, 4s...). El SDK de Anthropic la aplica automáticamente ante errores 429 y 5xx.

C

Chunking. Trocear un documento en fragmentos (chunks) para indexarlos por separado en RAG. La unidad de recuperación: ni el documento entero (recupera todo) ni oraciones sueltas (sin contexto). Típico: 300-800 tokens con solapamiento.

Contexto (ventana de). Máximo de tokens que un modelo acepta por request (1M en Opus 4.8; 200K en Haiku 4.5). Incluye system prompt, historial, herramientas y contexto RAG.

count_tokens. Endpoint que cuenta los tokens de un request sin ejecutarlo ni cobrarte la respuesta: client.messages.count_tokens(...). Para Claude se usa esto — nunca tiktoken, que es el tokenizador de OpenAI.

E

Embedding. Vector de números reales que representa el significado de un texto; textos similares producen vectores cercanos. En este libro: 384 dimensiones con sentence-transformers, gratis y local.

end_turn. Valor de stop_reason que indica que el modelo terminó su respuesta naturalmente. Los otros valores: max_tokens (cortado por tu tope), tool_use (pide ejecutar herramientas), refusal (declinó por seguridad).

F

Function calling. Sinónimo de tool use: la capacidad del modelo de pedir (no ejecutar) la invocación de funciones que tu código define, describe con JSON Schema y ejecuta.

H

Historial. Lista de turnos {"role": "user"/"assistant", "content": ...} que constituye la "memoria" del bot. Tu código la acumula y la reenvía completa en cada llamada, porque la API es stateless. Debe alternar roles y empezar con user.

I

Inyección de prompts (prompt injection). Ataque donde la entrada del usuario (directa) o un documento recuperado (indirecta) contiene texto que el modelo interpreta como instrucciones ("ignorá tus reglas y..."). No tiene mitigación total: se reduce con delimitadores y prompts firmes, y se contiene con herramientas acotadas, validación en servidor y límites económicos.

is_error. Campo del bloque tool_result que marca que la ejecución de la herramienta falló. Permite que el modelo entienda el fallo y reaccione (reintentar, disculparse) en vez de tratar el mensaje de error como dato válido.

J

JSON Schema. Lenguaje declarativo para describir la estructura de los parámetros de una herramienta (input_schema): tipos, propiedades, enum, required. Es el contrato que el modelo respeta al armar sus llamadas.

JSONL. Formato de log con un objeto JSON por línea. Ideal para registrar intercambios del bot: se agrega con append y se procesa línea a línea.

L

Latencia percibida (TTFT). Tiempo hasta el primer token visible. El streaming la reduce de segundos a fracciones de segundo aunque el tiempo total no cambie; es LA métrica de experiencia en chat.

LLM (Large Language Model). Modelo de lenguaje que genera texto prediciendo el siguiente token. El motor del chatbot — pero sin memoria, identidad ni manos: todo eso lo agrega tu código.

M

max_tokens. Parámetro obligatorio que limita los tokens de salida de una llamada. Es el freno económico principal: la salida es la parte cara ($25/MTok en Opus 4.8 contra $5 la entrada).

messages. El parámetro central del endpoint: la lista de turnos de la conversación. Junto con system, tools y max_tokens forma el request completo.

P

Prompt caching. Mecanismo que cachea el prefijo estable del prompt (típicamente el system prompt) declarándolo con cache_control: {"type": "ephemeral"}. Lecturas a ~0.1× del precio de entrada; escrituras a ~1.25×. Matchea por prefijo exacto: nada volátil al inicio.

Prompt (system). Ver system prompt.

R

RAG (Retrieval-Augmented Generation). Patrón que conecta el LLM con tus documentos: trocear → indexar con embeddings → buscar top-k por similitud → inyectar los fragmentos en el prompt → responder citando. Alternativa: contexto directo + caching cuando el corpus es chico y estable.

Rate limit (429). Límite de requests/tokens por minuto del API. El SDK lo reintenta automáticamente; tu código debe manejar anthropic.RateLimitError cuando los reintentos se agotan.

refusal. stop_reason que indica que el modelo declinó responder por motivos de seguridad. Tu código debe contemplarlo antes de leer content.

S

Server-Sent Events (SSE). Protocolo de streaming servidor→navegador sobre HTTP: eventos data: ...\n\n que el cliente procesa al llegar. Lo que usa el capítulo 5 para llevar el stream del bot al frontend.

Sesión (session_id). Identificador que asocia a cada cliente web con SU historial en el servidor. Debe ser impredecible (secrets.token_urlsafe), nunca secuencial.

Similitud coseno. Medida de cercanía entre vectores: cos(θ)=abab\cos(\theta) = \frac{\vec{a}\cdot\vec{b}}{|\vec{a}||\vec{b}|}. Con vectores normalizados se reduce a un producto punto — la búsqueda contra todo el índice es una multiplicación matriz-vector en numpy.

Solapamiento (overlap). Caracteres/tokens repetidos entre chunks consecutivos para que ninguna oración quede partida entre dos fragmentos. Sin él, hay preguntas que el RAG no puede responder bien.

Stateless. Propiedad de la API: el servidor no guarda nada entre llamadas. Implica que la memoria es responsabilidad de tu código (reenviar el historial) y que pagás por re-procesar el contexto en cada turno.

Streaming. Recibir la respuesta token a token a medida que se genera (client.messages.stream(...)stream.text_stream), en vez de esperar el texto completo. Al final, stream.get_final_message() da el objeto completo con usage.

System prompt. Instrucciones de rol que definen personalidad, tono, reglas y límites del bot, enviadas en el parámetro system de cada llamada. Es la "personalidad por escrito" — y no es una caja fuerte: no pongás secretos ahí.

T

Token. Unidad de procesamiento del modelo: fragmentos de palabras (~1.3 tokens por palabra en español). Todo se factura por token, separando entrada y salida.

tool_result. Bloque con el que tu código devuelve el resultado de una herramienta: {"type": "tool_result", "tool_use_id": ..., "content": ...} dentro de un turno user, uno por cada tool_use, todos juntos.

tool_use. (1) El patrón general de herramientas. (2) El bloque concreto con que el modelo pide ejecutar una: .id, .name, .input (dict ya parseado). (3) El stop_reason que señala que hay bloques de este tipo en la respuesta.

top-k. Los k resultados más similares de una búsqueda semántica (k=3-8 típico). Se combina con un umbral de relevancia: top-k responde "¿cuáles son los más cercanos?", el umbral "¿alguno es realmente cercano?".

U

usage. Campo de la respuesta con los tokens consumidos (input_tokens, output_tokens, y los de caché cuando aplica). La base de toda contabilidad de costos del libro.

V

Ventana deslizante. Recorte de historial que conserva solo los últimos K turnos. Acota costo y latencia a cambio de olvidar lo anterior; debe respetar la alternancia de roles y no partir pares tool_use/tool_result.