Was this page helpful?
This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Claude kann detaillierte Zitate bereitstellen, wenn Fragen zu Dokumenten beantwortet werden, um Ihnen dabei zu helfen, Informationsquellen in Antworten zu verfolgen und zu überprüfen.
Alle aktiven Modelle unterstützen Zitate, mit Ausnahme von Haiku 3.
Teilen Sie Ihr Feedback und Ihre Vorschläge zur Zitate-Funktion über dieses Formular mit.
Hier ist ein Beispiel für die Verwendung von Zitaten mit der Messages API:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
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?"},
],
}
],
)
print(response)Vergleich mit Prompt-basierten Ansätzen
Im Vergleich zu Prompt-basierten Zitatlösungen hat die Zitate-Funktion die folgenden Vorteile:
cited_text nicht zu Ihren Ausgabe-Token zählt.cited_text extrahiert wird, enthalten Zitate garantiert gültige Zeiger auf die bereitgestellten Dokumente.Integrieren Sie Zitate mit Claude in diesen Schritten:
Automatisches Chunking vs. benutzerdefinierte Inhalte
Standardmäßig werden Klartext- und PDF-Dokumente automatisch in Sätze aufgeteilt. Wenn Sie mehr Kontrolle über die Zitierungsgranularität benötigen (z. B. für Aufzählungspunkte oder Transkripte), verwenden Sie stattdessen benutzerdefinierte Inhalts-Dokumente. Weitere Informationen finden Sie unter Dokumenttypen.
Wenn Sie beispielsweise möchten, dass Claude spezifische Sätze aus Ihren RAG-Chunks zitieren kann, sollten Sie jeden RAG-Chunk in ein Klartext-Dokument einfügen. Andernfalls, wenn Sie keine weitere Aufteilung durchführen möchten oder wenn Sie eine zusätzliche Aufteilung anpassen möchten, können Sie RAG-Chunks in benutzerdefinierte Inhalts-Dokumente einfügen.
source-Inhalt eines Dokuments befindet, kann zitiert werden.title und context sind optionale Felder, die an das Modell übergeben werden, aber nicht für zitierte Inhalte verwendet werden.title ist in der Länge begrenzt, daher kann das context-Feld nützlich sein, um Dokumentmetadaten als Text oder stringifiziertes JSON zu speichern.content-Liste, die im benutzerdefinierten Inhalts-Dokument bereitgestellt wird.cited_text-Feld wird zur Vereinfachung bereitgestellt und zählt nicht zu Ihren Ausgabe-Token.cited_text in nachfolgenden Gesprächsrunden zurückgegeben wird, wird es auch nicht zu den Eingabe-Token gezählt.Zitate funktionieren in Verbindung mit anderen API-Funktionen, einschließlich Prompt-Caching, Token-Zählung und Batch-Verarbeitung.
Zitate und strukturierte Ausgaben sind nicht kompatibel
Zitate können nicht zusammen mit strukturierten Ausgaben verwendet werden. Wenn Sie Zitate auf einem benutzerbereitgestellten Dokument aktivieren (Dokumentblöcke oder RequestSearchResultBlock) und auch den Parameter output_config.format (oder den veralteten Parameter output_format) einbeziehen, gibt die API einen 400-Fehler zurück.
Dies liegt daran, dass Zitate das Verschachteln von Zitierblöcken mit Textausgabe erfordern, was mit den strikten JSON-Schema-Einschränkungen strukturierter Ausgaben nicht kompatibel ist.
Zitate und Prompt-Caching können effektiv zusammen verwendet werden.
Die in Antworten generierten Zitierblöcke können nicht direkt zwischengespeichert werden, aber die Quelldokumente, auf die sie verweisen, können zwischengespeichert werden. Um die Leistung zu optimieren, wenden Sie cache_control auf Ihre Dokumentinhaltsblöcke auf oberster Ebene an.
In diesem Beispiel:
cache_control im Dokumentblock zwischengespeichertDrei Dokumenttypen werden für Zitate unterstützt. Dokumente können direkt in der Nachricht (Base64, Text oder URL) bereitgestellt oder über die Files API hochgeladen und durch file_id referenziert werden:
| Typ | Am besten für | Chunking | Zitierformat |
|---|---|---|---|
| Klartext | Einfache Textdokumente, Prosa | Satz | Zeichenindizes (0-indiziert) |
| PDF-Dateien mit Textinhalt | Satz | Seitenzahlen (1-indiziert) | |
| Benutzerdefinierte Inhalte | Listen, Transkripte, spezielle Formatierung, granularere Zitate | Keine zusätzliche Aufteilung | Blockindizes (0-indiziert) |
.csv, .xlsx, .docx, .md und .txt Dateien werden nicht als Dokumentblöcke unterstützt. Konvertieren Sie diese in Klartext und fügen Sie sie direkt in den Nachrichteninhalt ein. Siehe Arbeiten mit anderen Dateiformaten.
Klartext-Dokumente werden automatisch in Sätze aufgeteilt. Sie können sie inline oder durch Referenz mit ihrer file_id bereitstellen:
PDF-Dokumente können als Base64-codierte Daten oder durch file_id bereitgestellt werden. PDF-Text wird extrahiert und in Sätze aufgeteilt. Da Bildzitate noch nicht unterstützt werden, sind PDFs, die Scans von Dokumenten sind und keinen extrahierbaren Text enthalten, nicht zitierbar.
Benutzerdefinierte Inhalts-Dokumente geben Ihnen Kontrolle über die Zitierungsgranularität. Es wird keine zusätzliche Aufteilung durchgeführt und Chunks werden dem Modell gemäß den bereitgestellten Inhaltsblöcken bereitgestellt.
{
"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},
}Wenn Zitate aktiviert sind, enthalten Antworten mehrere Textblöcke mit Zitaten:
{
"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,
}
],
},
]
}Für Streaming-Antworten ist ein citations_delta-Typ enthalten, der ein einzelnes Zitat enthält, das zur citations-Liste im aktuellen text-Inhaltsblock hinzugefügt werden soll.
Dokument(e) bereitstellen und Zitate aktivieren
citations.enabled=true auf jedem Ihrer Dokumente. Derzeit müssen Zitate auf allen oder keinen Dokumenten innerhalb einer Anfrage aktiviert sein.Dokumente werden verarbeitet
Claude liefert zitierte Antwort
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-7",
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?",
},
],
}
],
)
print(response)