Claude é capaz de fornecer citações detalhadas ao responder perguntas sobre documentos, ajudando você a rastrear e verificar fontes de informações em respostas.
Todos os modelos ativos suportam citações, com exceção do Haiku 3.
Citações com Claude Sonnet 3.7
Claude Sonnet 3.7 pode ser menos provável de fazer citações em comparação com outros modelos Claude sem instruções mais explícitas do usuário. Ao usar citações com Claude Sonnet 3.7, recomendamos incluir instruções adicionais na volta do user, como "Use citations to back up your answer." por exemplo.
Também observamos que quando o modelo é solicitado a estruturar sua resposta, é improvável que use citações a menos que seja explicitamente instruído a usar citações dentro desse formato. Por exemplo, se o modelo for solicitado a usar tags <result> em sua resposta, você deve adicionar algo como "Always use citations in your answer, even within <result> tags."
Por favor, compartilhe seus comentários e sugestões sobre o recurso de citações usando este formulário.
Aqui está um exemplo de como usar citações com a API Messages:
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?"
}
]
}
]
}'Comparação com abordagens baseadas em prompt
Em comparação com soluções de citações baseadas em prompt, o recurso de citações tem as seguintes vantagens:
cited_text não conta para seus tokens de saída.cited_text, as citações são garantidas de conter ponteiros válidos para os documentos fornecidos.Integre citações com Claude nestas etapas:
Forneça documento(s) e ative citações
citations.enabled=true em cada um de seus documentos. Atualmente, as citações devem ser ativadas em todos ou nenhum dos documentos dentro de uma solicitação.Documentos são processados
Claude fornece resposta citada
Chunking automático vs conteúdo personalizado
Por padrão, documentos de texto simples e PDF são automaticamente divididos em sentenças. Se você precisar de mais controle sobre a granularidade de citação (por exemplo, para pontos de bala ou transcrições), use documentos de conteúdo personalizado. Veja Tipos de Documento para mais detalhes.
Por exemplo, se você quiser que Claude seja capaz de citar sentenças específicas de seus chunks RAG, você deve colocar cada chunk RAG em um documento de texto simples. Caso contrário, se você não quiser nenhuma divisão adicional a ser feita, ou se quiser personalizar qualquer divisão adicional, você pode colocar chunks RAG em documento(s) de conteúdo personalizado.
source de um documento pode ser citado.title e context são campos opcionais que serão passados para o modelo, mas não serão usados para conteúdo citado.title é limitado em comprimento, então você pode achar o campo context útil para armazenar qualquer metadado de documento como texto ou json stringificado.content fornecida no documento de conteúdo personalizado.cited_text é fornecido por conveniência e não conta para tokens de saída.cited_text também não é contado para tokens de entrada.As citações funcionam em conjunto com outros recursos da API, incluindo prompt caching, contagem de tokens e processamento em lote.
Citações e Saídas Estruturadas são incompatíveis
As citações não podem ser usadas junto com Saídas Estruturadas. Se você ativar citações em qualquer documento fornecido pelo usuário (blocos de Documento ou RequestSearchResultBlock) e também incluir o parâmetro output_config.format (ou o parâmetro output_format descontinuado), a API retornará um erro 400.
Isso ocorre porque as citações exigem intercalação de blocos de citação com saída de texto, o que é incompatível com as restrições de esquema JSON rigorosas de saídas estruturadas.
Citações e prompt caching podem ser usadas juntas efetivamente.
Os blocos de citação gerados em respostas não podem ser armazenados em cache diretamente, mas os documentos de origem que eles referenciam podem ser. Para otimizar o desempenho, aplique cache_control aos seus blocos de conteúdo de documento de nível superior.
import anthropic
client = anthropic.Anthropic()
# Long document content (e.g., technical documentation)
long_document = "This is a very long document with thousands of words..." + " ... " * 1000 # Minimum cacheable length
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"} # Cache the document content
},
{
"type": "text",
"text": "What does this document say about API features?"
}
]
}
]
)Neste exemplo:
cache_control no bloco de documentoSuportamos três tipos de documento para citações. Os documentos podem ser fornecidos diretamente na mensagem (base64, texto ou URL) ou carregados via API de Arquivos e referenciados por file_id:
| Tipo | Melhor para | Chunking | Formato de citação |
|---|---|---|---|
| Texto simples | Documentos de texto simples, prosa | Sentença | Índices de caracteres (indexado em 0) |
| Arquivos PDF com conteúdo de texto | Sentença | Números de página (indexado em 1) | |
| Conteúdo personalizado | Listas, transcrições, formatação especial, citações mais granulares | Sem chunking adicional | Índices de bloco (indexado em 0) |
Arquivos .csv, .xlsx, .docx, .md e .txt não são suportados como blocos de documento. Converta-os para texto simples e inclua diretamente no conteúdo da mensagem. Veja Trabalhando com outros formatos de arquivo.
Documentos de texto simples são automaticamente divididos em sentenças. Você pode fornecê-los inline ou por referência com seu file_id:
Documentos PDF podem ser fornecidos como dados codificados em base64 ou por file_id. O texto PDF é extraído e dividido em sentenças. Como citações de imagem ainda não são suportadas, PDFs que são digitalizações de documentos e não contêm texto extraível não serão citáveis.
Documentos de conteúdo personalizado lhe dão controle sobre a granularidade de citação. Nenhum chunking adicional é feito e os chunks são fornecidos ao modelo de acordo com os blocos de conteúdo fornecidos.
{
"type": "document",
"source": {
"type": "content",
"content": [
{"type": "text", "text": "First chunk"},
{"type": "text", "text": "Second chunk"}
]
},
"title": "Document Title", # optional
"context": "Context about the document that will not be cited from", # optional
"citations": {"enabled": True}
}Quando as citações são ativadas, as respostas incluem múltiplos blocos de texto com citações:
{
"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 respostas de streaming, adicionamos um tipo citations_delta que contém uma única citação a ser adicionada à lista citations no bloco de conteúdo de texto atual.
Was this page helpful?