Claude ist in der Lage, detaillierte Zitate zu liefern, wenn es Fragen zu Dokumenten beantwortet, und hilft Ihnen dabei, Informationsquellen in Antworten zu verfolgen und zu verifizieren.
Alle aktiven Modelle unterstützen Zitate, mit Ausnahme von Haiku 3.
Zitate mit Claude Sonnet 3.7
Claude Sonnet 3.7 ist möglicherweise weniger geneigt, Zitate zu erstellen als andere Claude-Modelle, ohne explizitere Anweisungen vom Benutzer. Bei der Verwendung von Zitaten mit Claude Sonnet 3.7 empfehlen wir, zusätzliche Anweisungen in den user-Turn aufzunehmen, wie zum Beispiel "Verwenden Sie Zitate, um Ihre Antwort zu untermauern.".
Wir haben auch beobachtet, dass das Modell, wenn es aufgefordert wird, seine Antwort zu strukturieren, wahrscheinlich keine Zitate verwenden wird, es sei denn, es wird explizit angewiesen, Zitate in diesem Format zu verwenden. Wenn das Modell beispielsweise aufgefordert wird, <result>-Tags in seiner Antwort zu verwenden, sollten Sie etwas wie "Verwenden Sie immer Zitate in Ihrer Antwort, auch innerhalb von <result>-Tags." hinzufügen.
Bitte teilen Sie Ihr Feedback und Ihre Vorschläge zur Zitat-Funktion über dieses Formular mit.
Hier ist ein Beispiel für die Verwendung von Zitaten mit der Messages API:
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": "Das Gras ist grün. Der Himmel ist blau."
},
"title": "Mein Dokument",
"context": "Dies ist ein vertrauenswürdiges Dokument.",
"citations": {"enabled": true}
},
{
"type": "text",
"text": "Welche Farbe haben das Gras und der Himmel?"
}
]
}
]
}'Vergleich mit prompt-basierten Ansätzen
Im Vergleich zu prompt-basierten Zitat-Lösungen hat die Zitat-Funktion folgende Vorteile:
cited_text nicht zu Ihren Ausgabe-Token zählt.cited_text extrahieren, enthalten Zitate garantiert gültige Zeiger auf die bereitgestellten Dokumente.Integrieren Sie Zitate mit Claude in diesen Schritten:
Automatische Aufteilung vs. benutzerdefinierte Inhalte
Standardmäßig werden Klartext- und PDF-Dokumente automatisch in Sätze aufgeteilt. Wenn Sie mehr Kontrolle über die Zitat-Granularität benötigen (z.B. für Aufzählungspunkte oder Transkripte), verwenden Sie stattdessen benutzerdefinierte Inhalts-Dokumente. Siehe Dokumenttypen für weitere Details.
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 wünschen oder wenn Sie eine benutzerdefinierte Aufteilung anpassen möchten, können Sie RAG-Chunks in benutzerdefinierte Inhalts-Dokument(e) einfügen.
source-Inhalts eines Dokuments gefunden wird, kann zitiert werden.title und context sind optionale Felder, die an das Modell weitergegeben werden, aber nicht für zitierten Inhalt verwendet werden.title ist in der Länge begrenzt, daher kann das context-Feld nützlich sein, um Dokument-Metadaten als Text oder stringifiziertes JSON zu speichern.content-Liste.cited_text-Feld wird zur Bequemlichkeit bereitgestellt und zählt nicht zu den Ausgabe-Token.cited_text 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 Prompt-Caching können effektiv zusammen verwendet werden.
Die in Antworten generierten Zitat-Blöcke können nicht direkt gecacht werden, aber die Quelldokumente, auf die sie verweisen, können gecacht werden. Um die Leistung zu optimieren, wenden Sie cache_control auf Ihre Top-Level-Dokument-Inhaltsblöcke an.
In diesem Beispiel:
cache_control auf dem Dokument-Block gecachtWir unterstützen drei Dokumenttypen für Zitate. Dokumente können direkt in der Nachricht bereitgestellt werden (base64, Text oder URL) oder über die Files API hochgeladen und durch file_id referenziert werden:
| Typ | Am besten für | Aufteilung | Zitat-Format |
|---|---|---|---|
| Klartext | Einfache Textdokumente, Prosa | Satz | Zeichenindizes (0-indiziert) |
| PDF-Dateien mit Textinhalt | Satz | Seitenzahlen (1-indiziert) | |
| Benutzerdefinierter Inhalt | Listen, Transkripte, spezielle Formatierung, granularere Zitate | Keine zusätzliche Aufteilung | Block-Indizes (0-indiziert) |
.csv, .xlsx, .docx, .md und .txt Dateien werden nicht als Dokument-Blöcke unterstützt. Konvertieren Sie diese zu 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 per Referenz mit ihrer file_id bereitstellen:
PDF-Dokumente können als base64-kodierte Daten oder per file_id bereitgestellt werden. PDF-Text wird extrahiert und in Sätze aufgeteilt. Da Bild-Zitate 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 Zitat-Granularität. Keine zusätzliche Aufteilung wird vorgenommen und Chunks werden dem Modell entsprechend den bereitgestellten Inhaltsblöcken zur Verfügung gestellt.
{
"type": "document",
"source": {
"type": "content",
"content": [
{"type": "text", "text": "Erster Chunk"},
{"type": "text", "text": "Zweiter Chunk"}
]
},
"title": "Dokument-Titel", # optional
"context": "Kontext über das Dokument, das nicht zitiert wird", # optional
"citations": {"enabled": True}
}Wenn Zitate aktiviert sind, enthalten Antworten mehrere Textblöcke mit Zitaten:
{
"content": [
{
"type": "text",
"text": "Laut dem Dokument, "
},
{
"type": "text",
"text": "ist das Gras grün",
"citations": [{
"type": "char_location",
"cited_text": "Das Gras ist grün.",
"document_index": 0,
"document_title": "Beispiel-Dokument",
"start_char_index": 0,
"end_char_index": 20
}]
},
{
"type": "text",
"text": " und "
},
{
"type": "text",
"text": "der Himmel ist blau",
"citations": [{
"type": "char_location",
"cited_text": "Der Himmel ist blau.",
"document_index": 0,
"document_title": "Beispiel-Dokument",
"start_char_index": 20,
"end_char_index": 36
}]
},
{
"type": "text",
"text": ". Informationen von Seite 5 besagen, dass ",
},
{
"type": "text",
"text": "Wasser essentiell ist",
"citations": [{
"type": "page_location",
"cited_text": "Wasser ist essentiell für das Leben.",
"document_index": 1,
"document_title": "PDF-Dokument",
"start_page_number": 5,
"end_page_number": 6
}]
},
{
"type": "text",
"text": ". Das benutzerdefinierte Dokument erwähnt ",
},
{
"type": "text",
"text": "wichtige Erkenntnisse",
"citations": [{
"type": "content_block_location",
"cited_text": "Dies sind wichtige Erkenntnisse.",
"document_index": 2,
"document_title": "Benutzerdefiniertes Inhalts-Dokument",
"start_block_index": 0,
"end_block_index": 1
}]
}
]
}Für Streaming-Antworten haben wir einen citations_delta-Typ hinzugefügt, der ein einzelnes Zitat enthält, das zur citations-Liste auf dem aktuellen text-Inhaltsblock hinzugefügt werden soll.
Dokument(e) bereitstellen und Zitate aktivieren
citations.enabled=true für jedes Ihrer Dokumente. Derzeit müssen Zitate für alle oder keine der Dokumente innerhalb einer Anfrage aktiviert werden.Dokumente werden verarbeitet
Claude liefert zitierte Antwort
import anthropic
client = anthropic.Anthropic()
# Langes Dokument-Inhalt (z.B. technische Dokumentation)
long_document = "Dies ist ein sehr langes Dokument mit Tausenden von Wörtern..." + " ... " * 1000 # Minimale cacheable Länge
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"} # Cache den Dokument-Inhalt
},
{
"type": "text",
"text": "Was sagt dieses Dokument über API-Funktionen?"
}
]
}
]
)