Claude Platform Docs
MessagesModellfähigkeiten

Quellenangaben

Verankere Claudes Antworten in deinen Quelldokumenten. Citations geben die exakten Passagen zurück, die jede Aussage stützen, sodass du Antworten überprüfen und Quellen für deine Nutzer sichtbar machen kannst.

Claude kann detaillierte Citations bereitstellen, wenn Fragen zu Dokumenten beantwortet werden, und hilft dir so, die Quellen hinter jeder Antwort nachzuverfolgen und zu überprüfen.

Alle aktiven Modelle unterstützen Citations.

Das folgende Beispiel zeigt, wie du Citations für ein reines Textdokument mit der Messages API aktivierst:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-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?"},
            ],
        }
    ],
)
print(response)

Wie Citations funktionieren

Integriere Citations mit Claude in diesen Schritten:

  1. Dokument(e) bereitstellen und Citations aktivieren

    • Füge Dokumente in einem der unterstützten Formate ein: PDFs, reiner Text oder benutzerdefinierte Inhalte.
    • Setze citations.enabled=true für jedes deiner Dokumente. Derzeit müssen Citations für alle oder keines der Dokumente innerhalb einer Anfrage aktiviert werden.
    • Derzeit werden nur Text-Citations unterstützt. Bild-Citations sind noch nicht möglich.
  2. Dokumente werden verarbeitet

    • Dokumentinhalte werden „gechunkt“, um die minimale Granularität möglicher Citations zu definieren. Zum Beispiel ermöglicht das Chunking nach Sätzen Claude, einen einzelnen Satz zu zitieren oder mehrere aufeinanderfolgende Sätze zu verketten, um einen Absatz oder eine längere Passage zu zitieren.
      • Für PDFs: Text wird wie in PDF-Unterstützung beschrieben extrahiert und der Inhalt wird in Sätze gechunkt. Das Zitieren von Bildern aus PDFs wird derzeit nicht unterstützt.
      • Für reine Textdokumente: Der Inhalt wird in Sätze gechunkt, aus denen zitiert werden kann.
      • Für benutzerdefinierte Inhaltsdokumente: Deine bereitgestellten Inhaltsblöcke werden unverändert verwendet und es wird kein weiteres Chunking durchgeführt.
  3. Claude liefert eine zitierte Antwort

    • Antworten können nun mehrere Textblöcke enthalten, wobei jeder Textblock eine Aussage enthalten kann, die Claude trifft, sowie eine Liste von Citations, die die Aussage stützen.
    • Citations verweisen auf bestimmte Stellen in Quelldokumenten. Das Format dieser Citations hängt vom Typ des zitierten Dokuments ab.
      • Für PDFs: Citations enthalten den Seitenzahlbereich (1-indiziert).
      • Für reine Textdokumente: Citations enthalten den Zeichenindexbereich (0-indiziert).
      • Für benutzerdefinierte Inhaltsdokumente: Citations enthalten den Inhaltsblock-Indexbereich (0-indiziert), der der ursprünglich bereitgestellten Inhaltsliste entspricht.
    • Dokumentindizes werden bereitgestellt, um die Referenzquelle anzugeben, und sind 0-indiziert gemäß der Liste aller Dokumente in deiner ursprünglichen Anfrage.

Zitierbare versus nicht zitierbare Inhalte

  • Text, der innerhalb des source-Inhalts eines Dokuments gefunden wird, kann zitiert werden.
  • title und context sind optionale Felder, die an das Modell übergeben, aber nicht für zitierte Inhalte verwendet werden.
  • title ist in der Länge begrenzt, daher ist das context-Feld nützlich, um Dokumentmetadaten als Text oder als JSON-String zu speichern.

Citation-Indizes

  • Dokumentindizes sind 0-indiziert aus der Liste aller Dokumentinhaltsblöcke in der Anfrage (über alle Nachrichten hinweg).
  • Zeichenindizes sind 0-indiziert mit exklusiven Endindizes.
  • Seitenzahlen sind 1-indiziert mit exklusiven Endseitenzahlen.
  • Inhaltsblock-Indizes sind 0-indiziert mit exklusiven Endindizes aus der im benutzerdefinierten Inhaltsdokument bereitgestellten content-Liste.

Token-Kosten

  • Das Aktivieren von Citations führt zu einem leichten Anstieg der Input-Tokens aufgrund von Ergänzungen des System-Prompts und des Dokument-Chunkings.
  • Die Citations-Funktion ist jedoch sehr effizient bei den Output-Tokens. Intern gibt das Modell Citations in einem standardisierten Format aus, die dann in zitierten Text und Dokumentstandort-Indizes geparst werden. Das cited_text-Feld wird zur Bequemlichkeit bereitgestellt und zählt nicht zu den Output-Tokens.
  • Wenn cited_text in nachfolgenden Gesprächsrunden zurückgegeben wird, zählt es ebenfalls nicht zu den Input-Tokens.

Funktionskompatibilität

Citations funktionieren in Verbindung mit anderen API-Funktionen, einschließlich Prompt-Caching, Token-Zählung und Batch-Verarbeitung.

Prompt-Caching mit Citations verwenden

Citations und Prompt-Caching können effektiv zusammen verwendet werden.

Die in Antworten generierten Citation-Blöcke können nicht direkt gecacht werden, aber die Quelldokumente, auf die sie verweisen, können gecacht werden. Um die Leistung zu optimieren, wende cache_control auf deine obersten Dokumentinhaltsblöcke an.

client = anthropic.Anthropic()

# Langer Dokumentinhalt (zum Beispiel technische Dokumentation)
long_document = (
    "This is a very long document with thousands of words..." + " ... " * 1000
)  # Minimum cacheable length

response = client.messages.create(
    model="claude-opus-5-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 the document content
                },
                {
                    "type": "text",
                    "text": "What does this document say about API features?",
                },
            ],
        }
    ],
)
print(response)

In diesem Beispiel:

  • Der Dokumentinhalt wird mit cache_control auf dem Dokumentblock gecacht.
  • Citations sind für das Dokument aktiviert.
  • Claude kann Antworten mit Citations generieren und gleichzeitig vom gecachten Dokumentinhalt profitieren.
  • Nachfolgende Anfragen, die dasselbe Dokument verwenden, profitieren vom gecachten Inhalt.

Dokumenttypen

Auswahl eines Dokumenttyps

Für Citations werden drei Dokumenttypen unterstützt. Dokumente können direkt in der Nachricht bereitgestellt werden (base64, Text oder URL) oder über die Files API hochgeladen und per file_id referenziert werden:

TypAm besten geeignet fürChunkingCitation-Format
Reiner TextEinfache Textdokumente, ProsaSatzZeichenindizes (0-indiziert)
PDFPDF-Dateien mit TextinhaltSatzSeitenzahlen (1-indiziert)
Benutzerdefinierter InhaltListen, Transkripte, spezielle Formatierung, granularere CitationsKein zusätzliches ChunkingBlockindizes (0-indiziert)

Reine Textdokumente

Reine Textdokumente werden automatisch in Sätze gechunkt. Du kannst sie inline oder per Referenz mit ihrer file_id bereitstellen:

Das Einführungsbeispiel oben auf dieser Seite zeigt eine vollständige Anfrage mit reinem Text in jedem SDK. Der Dokumentblock verwendet eine text-Quelle:

{
  "type": "document",
  "source": {
    "type": "text",
    "media_type": "text/plain",
    "data": "Plain text content..."
  },
  "title": "Document Title",
  "context": "Context about the document that will not be cited from",
  "citations": { "enabled": true }
}

PDF-Dokumente

PDF-Dokumente können als base64-kodierte Daten, als URL oder per file_id bereitgestellt werden. PDF-Text wird extrahiert und in Sätze gechunkt. Da Bild-Citations noch nicht unterstützt werden, sind PDFs, die Scans von Dokumenten sind und keinen extrahierbaren Text enthalten, nicht zitierbar.

client = anthropic.Anthropic()

pdf_base64 = base64.standard_b64encode(
    pathlib.Path("/path/to/document.pdf").read_bytes()
).decode()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "document",
                    "source": {
                        "type": "base64",
                        "media_type": "application/pdf",
                        "data": pdf_base64,
                    },
                    "title": "Document Title",
                    "context": "Context about the document that will not be cited from",
                    "citations": {"enabled": True},
                },
                {"type": "text", "text": "Summarize this document."},
            ],
        }
    ],
)
print(response)

Benutzerdefinierte Inhaltsdokumente

Benutzerdefinierte Inhaltsdokumente geben dir Kontrolle über die Granularität der Citations. Es wird kein zusätzliches Chunking durchgeführt und Chunks werden dem Modell gemäß den bereitgestellten Inhaltsblöcken übergeben.

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "document",
                    "source": {
                        "type": "content",
                        "content": [
                            {"type": "text", "text": "First chunk"},
                            {"type": "text", "text": "Second chunk"},
                        ],
                    },
                    "title": "Document Title",
                    "context": "Context about the document that will not be cited from",
                    "citations": {"enabled": True},
                },
                {"type": "text", "text": "Summarize this document."},
            ],
        }
    ],
)
print(response)


Antwortstruktur

Wenn Citations aktiviert sind, enthalten Antworten mehrere Textblöcke mit Citations:

{
  "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
        }
      ]
    }
  ]
}

Streaming-Unterstützung

Bei Streaming-Antworten kommen Citations als citations_delta-Delta-Typ innerhalb von content_block_delta-Events an. Jedes Delta enthält eine einzelne Citation, die zur citations-Liste des aktuellen text-Inhaltsblocks hinzugefügt wird.

Nächste Schritte

Verarbeite den citations_delta-Delta-Typ zusammen mit Text-Deltas, um zitierte Antworten während des Streamings zu rendern.

Übergib Suchergebnisse aus deiner RAG-Pipeline als erstklassige Inhaltsblöcke mit integrierter Citation-Unterstützung.

Erfahre, wie Claude Text aus PDFs extrahiert und wie seitenbasierte Citations auf deine Quelldateien zurückverweisen.

Lade Dokumente einmal hoch und referenziere sie per file_id über mehrere Citation-Anfragen hinweg.

Compatibility

Supported platforms
  • Claude API
  • Claude Platform on AWS
  • Amazon Bedrock
  • Google Cloud
  • Microsoft Foundry

Was this page helpful?