Claude è in grado di fornire citazioni dettagliate quando risponde a domande sui documenti, aiutandoti a tracciare e verificare le fonti di informazione nelle risposte.
Tutti i modelli attivi supportano le citazioni, ad eccezione di Haiku 3.
Citazioni con Claude Sonnet 3.7
Claude Sonnet 3.7 potrebbe essere meno propenso a fare citazioni rispetto ad altri modelli Claude senza istruzioni più esplicite da parte dell'utente. Quando usi le citazioni con Claude Sonnet 3.7, raccomandiamo di includere istruzioni aggiuntive nel turno user, come "Usa le citazioni per supportare la tua risposta." per esempio.
Abbiamo anche osservato che quando al modello viene chiesto di strutturare la sua risposta, è improbabile che usi citazioni a meno che non gli venga esplicitamente detto di usare citazioni all'interno di quel formato. Per esempio, se al modello viene chiesto di usare tag <result> nella sua risposta, dovresti aggiungere qualcosa come "Usa sempre citazioni nella tua risposta, anche all'interno dei tag <result>."
Ti preghiamo di condividere i tuoi feedback e suggerimenti sulla funzione citazioni usando questo modulo.
Ecco un esempio di come usare le citazioni con l'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?"
}
]
}
]
}'Confronto con approcci basati su prompt
In confronto alle soluzioni di citazioni basate su prompt, la funzione citazioni ha i seguenti vantaggi:
cited_text non conta verso i tuoi token di output.cited_text, le citazioni sono garantite per contenere puntatori validi ai documenti forniti.Integra le citazioni con Claude in questi passaggi:
Suddivisione automatica vs contenuto personalizzato
Per impostazione predefinita, i documenti di testo semplice e PDF vengono automaticamente suddivisi in frasi. Se hai bisogno di più controllo sulla granularità delle citazioni (ad es., per punti elenco o trascrizioni), usa invece documenti di contenuto personalizzato. Vedi Tipi di Documento per maggiori dettagli.
Per esempio, se vuoi che Claude sia in grado di citare frasi specifiche dai tuoi blocchi RAG, dovresti mettere ogni blocco RAG in un documento di testo semplice. Altrimenti, se non vuoi che venga fatta ulteriore suddivisione, o se vuoi personalizzare qualsiasi suddivisione aggiuntiva, puoi mettere i blocchi RAG in documento/i di contenuto personalizzato.
source di un documento può essere citato.title e context sono campi opzionali che verranno passati al modello ma non usati verso il contenuto citato.title è limitato in lunghezza quindi potresti trovare utile il campo context per memorizzare qualsiasi metadato del documento come testo o json stringificato.content fornito nel documento di contenuto personalizzato.cited_text è fornito per comodità e non conta verso i token di output.cited_text non viene contato nemmeno verso i token di input.Le citazioni funzionano insieme ad altre funzioni API inclusi prompt caching, conteggio token e elaborazione batch.
Le citazioni e il prompt caching possono essere usati insieme efficacemente.
I blocchi di citazione generati nelle risposte non possono essere memorizzati nella cache direttamente, ma i documenti sorgente che referenziano possono essere memorizzati nella cache. Per ottimizzare le prestazioni, applica cache_control ai tuoi blocchi di contenuto del documento di livello superiore.
In questo esempio:
cache_control sul blocco documentoSupportiamo tre tipi di documento per le citazioni. I documenti possono essere forniti direttamente nel messaggio (base64, testo, o URL) o caricati tramite l'API Files e referenziati per file_id:
| Tipo | Migliore per | Suddivisione | Formato citazione |
|---|---|---|---|
| Testo semplice | Documenti di testo semplici, prosa | Frase | Indici caratteri (indicizzati da 0) |
| File PDF con contenuto di testo | Frase | Numeri pagina (indicizzati da 1) | |
| Contenuto personalizzato | Elenchi, trascrizioni, formattazione speciale, citazioni più granulari | Nessuna suddivisione aggiuntiva | Indici blocchi (indicizzati da 0) |
I file .csv, .xlsx, .docx, .md, e .txt non sono supportati come blocchi documento. Convertili in testo semplice e includili direttamente nel contenuto del messaggio. Vedi Lavorare con altri formati di file.
I documenti di testo semplice vengono automaticamente suddivisi in frasi. Puoi fornirli inline o per riferimento con il loro file_id:
I documenti PDF possono essere forniti come dati codificati in base64 o per file_id. Il testo PDF viene estratto e suddiviso in frasi. Poiché le citazioni di immagini non sono ancora supportate, i PDF che sono scansioni di documenti e non contengono testo estraibile non saranno citabili.
I documenti di contenuto personalizzato ti danno controllo sulla granularità delle citazioni. Non viene fatta suddivisione aggiuntiva e i blocchi vengono forniti al modello secondo i blocchi di contenuto forniti.
{
"type": "document",
"source": {
"type": "content",
"content": [
{"type": "text", "text": "Primo blocco"},
{"type": "text", "text": "Secondo blocco"}
]
},
"title": "Titolo Documento", # opzionale
"context": "Contesto sul documento che non verrà citato", # opzionale
"citations": {"enabled": True}
}Quando le citazioni sono abilitate, le risposte includono più blocchi di testo con citazioni:
{
"content": [
{
"type": "text",
"text": "Secondo il documento, "
},
{
"type": "text",
"text": "l'erba è verde",
"citations": [{
"type": "char_location",
"cited_text": "L'erba è verde.",
"document_index": 0,
"document_title": "Documento di Esempio",
"start_char_index": 0,
"end_char_index": 20
}]
},
{
"type": "text",
"text": " e "
},
{
"type": "text",
"text": "il cielo è blu",
"citations": [{
"type": "char_location",
"cited_text": "Il cielo è blu.",
"document_index": 0,
"document_title": "Documento di Esempio",
"start_char_index": 20,
"end_char_index": 36
}]
},
{
"type": "text",
"text": ". Le informazioni dalla pagina 5 affermano che ",
},
{
"type": "text",
"text": "l'acqua è essenziale",
"citations": [{
"type": "page_location",
"cited_text": "L'acqua è essenziale per la vita.",
"document_index": 1,
"document_title": "Documento PDF",
"start_page_number": 5,
"end_page_number": 6
}]
},
{
"type": "text",
"text": ". Il documento personalizzato menziona ",
},
{
"type": "text",
"text": "scoperte importanti",
"citations": [{
"type": "content_block_location",
"cited_text": "Queste sono scoperte importanti.",
"document_index": 2,
"document_title": "Documento di Contenuto Personalizzato",
"start_block_index": 0,
"end_block_index": 1
}]
}
]
}Per le risposte in streaming, abbiamo aggiunto un tipo citations_delta che contiene una singola citazione da aggiungere all'elenco citations sul blocco di contenuto text corrente.
Fornisci documento/i e abilita le citazioni
citations.enabled=true su ciascuno dei tuoi documenti. Attualmente, le citazioni devono essere abilitate su tutti o nessuno dei documenti all'interno di una richiesta.I documenti vengono elaborati
Claude fornisce una risposta citata
import anthropic
client = anthropic.Anthropic()
# Contenuto documento lungo (ad es., documentazione tecnica)
long_document = "Questo è un documento molto lungo con migliaia di parole..." + " ... " * 1000 # Lunghezza minima memorizzabile nella cache
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"} # Memorizza nella cache il contenuto del documento
},
{
"type": "text",
"text": "Cosa dice questo documento sulle funzioni API?"
}
]
}
]
)