Claude es capaz de proporcionar citas detalladas al responder preguntas sobre documentos, ayudándote a rastrear y verificar fuentes de información en las respuestas.
Todos los modelos activos admiten citas, con la excepción de Haiku 3.
Citas con Claude Sonnet 3.7
Claude Sonnet 3.7 puede ser menos probable que haga citas en comparación con otros modelos de Claude sin instrucciones más explícitas del usuario. Al usar citas con Claude Sonnet 3.7, recomendamos incluir instrucciones adicionales en el turno del user, como "Usa citas para respaldar tu respuesta." por ejemplo.
También hemos observado que cuando se le pide al modelo que estructure su respuesta, es poco probable que use citas a menos que se le indique explícitamente que use citas dentro de ese formato. Por ejemplo, si se le pide al modelo que use etiquetas <result> en su respuesta, deberías agregar algo como "Siempre usa citas en tu respuesta, incluso dentro de etiquetas <result>."
Por favor, comparte tu retroalimentación y sugerencias sobre la función de citas usando este formulario.
Aquí hay un ejemplo de cómo usar citas con la API de Mensajes:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "text",
"media_type": "text/plain",
"data": "The grass is green. The sky is blue."
},
"title": "My Document",
"context": "This is a trustworthy document.",
"citations": {"enabled": true}
},
{
"type": "text",
"text": "What color is the grass and sky?"
}
]
}
]
}'Comparación con enfoques basados en prompts
En comparación con soluciones de citas basadas en prompts, la función de citas tiene las siguientes ventajas:
cited_text no cuenta hacia tus tokens de salida.cited_text, se garantiza que las citas contengan punteros válidos a los documentos proporcionados.Integra citas con Claude en estos pasos:
Proporciona documento(s) y habilita citas
citations.enabled=true en cada uno de tus documentos. Actualmente, las citas deben habilitarse en todos o ninguno de los documentos dentro de una solicitud.Los documentos se procesan
Claude proporciona respuesta citada
División automática vs contenido personalizado
Por defecto, los documentos de texto plano y PDF se dividen automáticamente en oraciones. Si necesitas más control sobre la granularidad de las citas (por ejemplo, para viñetas o transcripciones), usa documentos de contenido personalizado en su lugar. Consulta Tipos de Documentos para más detalles.
Por ejemplo, si deseas que Claude pueda citar oraciones específicas de tus fragmentos de RAG, deberías poner cada fragmento de RAG en un documento de texto plano. De lo contrario, si no deseas que se realice más división, o si deseas personalizar cualquier división adicional, puedes poner fragmentos de RAG en documento(s) de contenido personalizado.
source de un documento se puede citar.title y context son campos opcionales que se pasarán al modelo pero no se usarán hacia el contenido citado.title está limitado en longitud, por lo que puedes encontrar que el campo context es útil para almacenar cualquier metadato del documento como texto o json stringificado.content proporcionada en el documento de contenido personalizado.cited_text se proporciona por conveniencia y no cuenta hacia los tokens de salida.cited_text tampoco se cuenta hacia los tokens de entrada.Las citas funcionan en conjunto con otras características de la API incluyendo almacenamiento en caché de prompts, conteo de tokens y procesamiento por lotes.
Las citas y las salidas estructuradas son incompatibles
Las citas no se pueden usar junto con Salidas Estructuradas. Si habilitas citas en cualquier documento proporcionado por el usuario (bloques de Documento o RequestSearchResultBlock) e incluyes también el parámetro output_config.format (o el parámetro deprecado output_format), la API devolverá un error 400.
Esto se debe a que las citas requieren intercalar bloques de citas con salida de texto, lo cual es incompatible con las restricciones de esquema JSON estricto de las salidas estructuradas.
Las citas y el almacenamiento en caché de prompts se pueden usar juntos de manera efectiva.
Los bloques de citas generados en respuestas no se pueden almacenar en caché directamente, pero los documentos fuente a los que hacen referencia sí pueden almacenarse en caché. Para optimizar el rendimiento, aplica cache_control a tus bloques de contenido de documento de nivel superior.
import anthropic
client = anthropic.Anthropic()
# Contenido de documento largo (por ejemplo, documentación técnica)
long_document = "This is a very long document with thousands of words..." + " ... " * 1000 # Longitud mínima almacenable en caché
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "text",
"media_type": "text/plain",
"data": long_document
},
"citations": {"enabled": True},
"cache_control": {"type": "ephemeral"} # Almacena en caché el contenido del documento
},
{
"type": "text",
"text": "What does this document say about API features?"
}
]
}
]
)En este ejemplo:
cache_control en el bloque del documentoAdmitimos tres tipos de documentos para citas. Los documentos se pueden proporcionar directamente en el mensaje (base64, texto o URL) o cargarse a través de la API de Archivos y referenciarse por file_id:
| Tipo | Mejor para | División | Formato de cita |
|---|---|---|---|
| Texto plano | Documentos de texto simple, prosa | Oración | Índices de caracteres (indexado en 0) |
| Archivos PDF con contenido de texto | Oración | Números de página (indexado en 1) | |
| Contenido personalizado | Listas, transcripciones, formato especial, citas más granulares | Sin división adicional | Índices de bloques (indexado en 0) |
Los archivos .csv, .xlsx, .docx, .md y .txt no se admiten como bloques de documentos. Conviértelos a texto plano e inclúyelos directamente en el contenido del mensaje. Consulta Trabajar con otros formatos de archivo.
Los documentos de texto plano se dividen automáticamente en oraciones. Puedes proporcionarlos en línea o por referencia con su file_id:
Los documentos PDF se pueden proporcionar como datos codificados en base64 o por file_id. El texto PDF se extrae y se divide en oraciones. Como las citas de imágenes aún no se admiten, los PDFs que son escaneos de documentos y no contienen texto extraíble no serán citables.
Los documentos de contenido personalizado te dan control sobre la granularidad de las citas. No se realiza división adicional y los fragmentos se proporcionan al modelo según los bloques de contenido proporcionados.
{
"type": "document",
"source": {
"type": "content",
"content": [
{"type": "text", "text": "First chunk"},
{"type": "text", "text": "Second chunk"}
]
},
"title": "Document Title", # opcional
"context": "Context about the document that will not be cited from", # opcional
"citations": {"enabled": True}
}Cuando las citas están habilitadas, las respuestas incluyen múltiples bloques de texto con citas:
{
"content": [
{
"type": "text",
"text": "According to the document, "
},
{
"type": "text",
"text": "the grass is green",
"citations": [{
"type": "char_location",
"cited_text": "The grass is green.",
"document_index": 0,
"document_title": "Example Document",
"start_char_index": 0,
"end_char_index": 20
}]
},
{
"type": "text",
"text": " and "
},
{
"type": "text",
"text": "the sky is blue",
"citations": [{
"type": "char_location",
"cited_text": "The sky is blue.",
"document_index": 0,
"document_title": "Example Document",
"start_char_index": 20,
"end_char_index": 36
}]
},
{
"type": "text",
"text": ". Information from page 5 states that ",
},
{
"type": "text",
"text": "water is essential",
"citations": [{
"type": "page_location",
"cited_text": "Water is essential for life.",
"document_index": 1,
"document_title": "PDF Document",
"start_page_number": 5,
"end_page_number": 6
}]
},
{
"type": "text",
"text": ". The custom document mentions ",
},
{
"type": "text",
"text": "important findings",
"citations": [{
"type": "content_block_location",
"cited_text": "These are important findings.",
"document_index": 2,
"document_title": "Custom Content Document",
"start_block_index": 0,
"end_block_index": 1
}]
}
]
}Para respuestas de streaming, hemos agregado un tipo citations_delta que contiene una sola cita que se agregará a la lista citations en el bloque de contenido text actual.
Was this page helpful?