Claude é capaz de fornecer citações detalhadas ao responder perguntas sobre documentos, ajudando você a rastrear e verificar fontes de informação nas 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 propenso a fazer citações comparado a 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 no turno do user, como "Use citações para apoiar sua resposta." 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 "Sempre use citações em sua resposta, mesmo dentro das tags <result>."
Por favor, compartilhe seu feedback 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-sonnet-4-5",
"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 nestes passos:
Forneça documento(s) e habilite citações
citations.enabled=true em cada um de seus documentos. Atualmente, as citações devem ser habilitadas em todos ou nenhum dos documentos dentro de uma solicitação.Documentos são processados
Claude fornece resposta citada
Fragmentação automática vs conteúdo personalizado
Por padrão, documentos de texto simples e PDF são automaticamente fragmentados em sentenças. Se você precisar de mais controle sobre a granularidade de citação (por exemplo, para marcadores ou transcrições), use documentos de conteúdo personalizado em vez disso. Veja Tipos de Documento para mais detalhes.
Por exemplo, se você quiser que Claude seja capaz de citar sentenças específicas de seus fragmentos RAG, você deve colocar cada fragmento RAG em um documento de texto simples. Caso contrário, se você não quiser que nenhuma fragmentação adicional seja feita, ou se você quiser personalizar qualquer fragmentação adicional, você pode colocar fragmentos 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 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.Citações funciona em conjunto com outros recursos da API incluindo cache de prompt, contagem de tokens e processamento em lote.
Citações e cache de prompt podem ser usados juntos efetivamente.
Os blocos de citação gerados nas respostas não podem ser cacheados diretamente, mas os documentos fonte que eles referenciam podem ser cacheados. Para otimizar o desempenho, aplique cache_control aos seus blocos de conteúdo de documento de nível superior.
import anthropic
client = anthropic.Anthropic()
# Conteúdo de documento longo (por exemplo, documentação técnica)
long_document = "Este é um documento muito longo com milhares de palavras..." + " ... " * 1000 # Comprimento mínimo cacheável
response = client.messages.create(
model="claude-sonnet-4-5",
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"} # Cachear o conteúdo do documento
},
{
"type": "text",
"text": "O que este documento diz sobre recursos da API?"
}
]
}
]
)Neste exemplo:
cache_control no bloco do documentoSuportamos três tipos de documento para citações. Documentos podem ser fornecidos diretamente na mensagem (base64, texto, ou URL) ou carregados via API Files e referenciados por file_id:
| Tipo | Melhor para | Fragmentação | 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 | Nenhuma fragmentação adicional | Índices de bloco (indexado em 0) |
Arquivos .csv, .xlsx, .docx, .md, e .txt não são suportados como blocos de documento. Converta estes 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 fragmentados 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 do PDF é extraído e fragmentado 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 dão a você controle sobre a granularidade de citação. Nenhuma fragmentação adicional é feita e fragmentos são fornecidos ao modelo de acordo com os blocos de conteúdo fornecidos.
{
"type": "document",
"source": {
"type": "content",
"content": [
{"type": "text", "text": "Primeiro fragmento"},
{"type": "text", "text": "Segundo fragmento"}
]
},
"title": "Título do Documento", # opcional
"context": "Contexto sobre o documento que não será citado", # opcional
"citations": {"enabled": True}
}Quando citações são habilitadas, as respostas incluem múltiplos blocos de texto com citações:
{
"content": [
{
"type": "text",
"text": "De acordo com o documento, "
},
{
"type": "text",
"text": "a grama é verde",
"citations": [{
"type": "char_location",
"cited_text": "A grama é verde.",
"document_index": 0,
"document_title": "Documento de Exemplo",
"start_char_index": 0,
"end_char_index": 20
}]
},
{
"type": "text",
"text": " e "
},
{
"type": "text",
"text": "o céu é azul",
"citations": [{
"type": "char_location",
"cited_text": "O céu é azul.",
"document_index": 0,
"document_title": "Documento de Exemplo",
"start_char_index": 20,
"end_char_index": 36
}]
},
{
"type": "text",
"text": ". Informação da página 5 afirma que ",
},
{
"type": "text",
"text": "água é essencial",
"citations": [{
"type": "page_location",
"cited_text": "Água é essencial para a vida.",
"document_index": 1,
"document_title": "Documento PDF",
"start_page_number": 5,
"end_page_number": 6
}]
},
{
"type": "text",
"text": ". O documento personalizado menciona ",
},
{
"type": "text",
"text": "descobertas importantes",
"citations": [{
"type": "content_block_location",
"cited_text": "Estas são descobertas importantes.",
"document_index": 2,
"document_title": "Documento de Conteúdo Personalizado",
"start_block_index": 0,
"end_block_index": 1
}]
}
]
}Para respostas de streaming, adicionamos um tipo citations_delta que contém uma única citação para ser adicionada à lista citations no bloco de conteúdo text atual.