Claude ist in der Lage, detaillierte Zitationen bereitzustellen, wenn er Fragen zu Dokumenten beantwortet, und hilft Ihnen dabei, Informationsquellen in Antworten nachzuverfolgen und zu überprüfen.

Die Zitationsfunktion ist derzeit verfügbar für Claude Opus 4, Claude Sonnet 4, Claude Sonnet 3.7, Claude Sonnet 3.5 (neu) und Haiku 3.5.

Zitationen mit Claude Sonnet 3.7

Claude Sonnet 3.7 könnte im Vergleich zu anderen Claude-Modellen weniger wahrscheinlich Zitationen verwenden, ohne explizitere Anweisungen vom Benutzer. Bei der Verwendung von Zitationen mit Claude Sonnet 3.7 empfehlen wir, zusätzliche Anweisungen im user-Turn einzufügen, wie zum Beispiel "Verwende Zitationen, um deine Antwort zu belegen.".

Wir haben auch beobachtet, dass das Modell, wenn es gebeten wird, seine Antwort zu strukturieren, wahrscheinlich keine Zitationen verwendet, es sei denn, ihm wird explizit gesagt, dass es Zitationen innerhalb dieses Formats verwenden soll. Wenn das Modell beispielsweise gebeten wird, -Tags in seiner Antwort zu verwenden, sollten Sie etwas hinzufügen wie “Verwende immer Zitationen in deiner Antwort, auch innerhalb von .”

Bitte teilen Sie Ihr Feedback und Vorschläge zur Zitationsfunktion über dieses Formular mit.

Hier ist ein Beispiel, wie man Zitationen mit der Messages API verwendet:

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-opus-4-20250514",
    "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?"
          }
        ]
      }
    ]
  }'

Vergleich mit prompt-basierten Ansätzen

Im Vergleich zu prompt-basierten Zitationslösungen bietet die Zitationsfunktion folgende Vorteile:

  • Kosteneinsparungen: Wenn Ihr prompt-basierter Ansatz Claude auffordert, direkte Zitate auszugeben, können Sie Kosteneinsparungen erzielen, da cited_text nicht zu Ihren Ausgabe-Tokens zählt.
  • Bessere Zitationszuverlässigkeit: Da wir Zitationen in die jeweiligen oben genannten Antwortformate parsen und cited_text extrahieren, enthalten Zitationen garantiert gültige Verweise auf die bereitgestellten Dokumente.
  • Verbesserte Zitationsqualität: In unseren Evaluierungen haben wir festgestellt, dass die Zitationsfunktion deutlich wahrscheinlicher die relevantesten Zitate aus Dokumenten zitiert im Vergleich zu rein prompt-basierten Ansätzen.

Wie Zitationen funktionieren

Integrieren Sie Zitationen mit Claude in diesen Schritten:

1

Dokument(e) bereitstellen und Zitationen aktivieren

  • Fügen Sie Dokumente in einem der unterstützten Formate hinzu: PDFs, Klartext oder benutzerdefinierte Inhalte
  • Setzen Sie citations.enabled=true für jedes Ihrer Dokumente. Derzeit müssen Zitationen für alle oder keines der Dokumente innerhalb einer Anfrage aktiviert sein.
  • Beachten Sie, dass derzeit nur Textzitationen unterstützt werden und Bildzitationen noch nicht möglich sind.
2

Dokumente werden verarbeitet

  • Dokumentinhalte werden in “Chunks” aufgeteilt, um die minimale Granularität möglicher Zitationen zu definieren. Beispielsweise würde eine Aufteilung in Sätze es Claude ermöglichen, einen einzelnen Satz zu zitieren oder mehrere aufeinanderfolgende Sätze zu verketten, um einen Absatz (oder länger) zu zitieren!
    • Für PDFs: Text wird wie in PDF-Unterstützung beschrieben extrahiert und der Inhalt wird in Sätze aufgeteilt. Das Zitieren von Bildern aus PDFs wird derzeit nicht unterstützt.
    • Für Klartext-Dokumente: Der Inhalt wird in Sätze aufgeteilt, die zitiert werden können.
    • Für Dokumente mit benutzerdefinierten Inhalten: Ihre bereitgestellten Inhaltsblöcke werden unverändert verwendet und es erfolgt keine weitere Aufteilung.
3

Claude liefert zitierte Antwort

  • Antworten können jetzt mehrere Textblöcke enthalten, wobei jeder Textblock eine Behauptung enthalten kann, die Claude macht, und eine Liste von Zitationen, die die Behauptung unterstützen.
  • Zitationen verweisen auf bestimmte Stellen in Quelldokumenten. Das Format dieser Zitationen hängt vom Typ des zitierten Dokuments ab.
    • Für PDFs: Zitationen enthalten den Seitenbereich (1-indexiert).
    • Für Klartext-Dokumente: Zitationen enthalten den Zeichenindexbereich (0-indexiert).
    • Für Dokumente mit benutzerdefinierten Inhalten: Zitationen enthalten den Inhaltsblockindexbereich (0-indexiert), der der ursprünglich bereitgestellten Inhaltsliste entspricht.
  • Dokumentindizes werden bereitgestellt, um die Referenzquelle anzugeben, und sind 0-indexiert gemäß der Liste aller Dokumente in Ihrer ursprünglichen Anfrage.

Automatische Aufteilung vs. benutzerdefinierte Inhalte

Standardmäßig werden Klartext- und PDF-Dokumente automatisch in Sätze aufgeteilt. Wenn Sie mehr Kontrolle über die Zitationsgranularität benötigen (z.B. für Aufzählungspunkte oder Transkripte), verwenden Sie stattdessen Dokumente mit benutzerdefinierten Inhalten. Weitere Details finden Sie unter Dokumenttypen.

Wenn Sie beispielsweise möchten, dass Claude bestimmte Sätze aus Ihren RAG-Chunks zitieren kann, sollten Sie jeden RAG-Chunk in ein Klartext-Dokument einfügen. Wenn Sie hingegen keine weitere Aufteilung wünschen oder wenn Sie zusätzliche Aufteilungen anpassen möchten, können Sie RAG-Chunks in Dokument(e) mit benutzerdefinierten Inhalten einfügen.

Zitierbarer vs. nicht-zitierbarer Inhalt

  • Text, der im source-Inhalt eines Dokuments gefunden wird, kann zitiert werden.
  • title und context sind optionale Felder, die an das Modell übergeben 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 Dokumentmetadaten als Text oder stringifiziertes JSON zu speichern.

Zitationsindizes

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

Token-Kosten

  • Die Aktivierung von Zitationen führt zu einem leichten Anstieg der Eingabe-Tokens aufgrund von Systemprompt-Ergänzungen und Dokumentaufteilung.
  • Die Zitationsfunktion ist jedoch sehr effizient mit Ausgabe-Tokens. Unter der Haube gibt das Modell Zitationen in einem standardisierten Format aus, die dann in zitierten Text und Dokumentpositionsindizes geparst werden. Das Feld cited_text wird zur Bequemlichkeit bereitgestellt und zählt nicht zu den Ausgabe-Tokens.
  • Wenn es in nachfolgenden Gesprächsrunden zurückgegeben wird, wird cited_text auch nicht zu den Eingabe-Tokens gezählt.

Funktionskompatibilität

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

Verwendung von Prompt-Caching mit Zitationen

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

Die in Antworten generierten Zitationsblö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 Dokumentinhaltsblöcke der obersten Ebene an.

import anthropic

client = anthropic.Anthropic()

# Langer Dokumentinhalt (z.B. technische Dokumentation)
long_document = "This is a very long document with thousands of words..." + " ... " * 1000  # Minimale cachefähige Länge

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

In diesem Beispiel:

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

Dokumenttypen

Auswahl eines Dokumenttyps

Wir unterstützen drei Dokumenttypen für Zitationen. 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 fürAufteilungZitationsformat
KlartextEinfache Textdokumente, ProsaSatzZeichenindizes (0-indexiert)
PDFPDF-Dateien mit TextinhaltSatzSeitenzahlen (1-indexiert)
Benutzerdefinierter InhaltListen, Transkripte, spezielle Formatierung, granularere ZitationenKeine zusätzliche AufteilungBlockindizes (0-indexiert)

Klartext-Dokumente

Klartext-Dokumente werden automatisch in Sätze aufgeteilt. Sie können sie inline oder durch Referenz mit ihrer file_id bereitstellen:

{
    "type": "document",
    "source": {
        "type": "text",
        "media_type": "text/plain",
        "data": "Klartext-Inhalt..."
    },
    "title": "Dokumenttitel", # optional
    "context": "Kontext über das Dokument, der nicht zitiert wird", # optional
    "citations": {"enabled": True}
}

PDF-Dokumente

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

{
    "type": "document",
    "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": base64_encoded_pdf_data
    },
    "title": "Dokumenttitel", # optional
    "context": "Kontext über das Dokument, der nicht zitiert wird", # optional
    "citations": {"enabled": True}
}

Dokumente mit benutzerdefinierten Inhalten

Dokumente mit benutzerdefinierten Inhalten geben Ihnen Kontrolle über die Zitationsgranularität. Es erfolgt keine zusätzliche Aufteilung, und Chunks werden dem Modell gemäß 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": "Dokumenttitel", # optional
    "context": "Kontext über das Dokument, der nicht zitiert wird", # optional
    "citations": {"enabled": True}
}

Antwortstruktur

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

{
    "content": [
        {
            "type": "text",
            "text": "Laut dem Dokument "
        },
        {
            "type": "text",
            "text": "ist das Gras grün",
            "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": " und "
        },
        {
            "type": "text",
            "text": "der Himmel ist blau",
            "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
            }]
        }
    ]
}

Streaming-Unterstützung

Für Streaming-Antworten haben wir einen citations_delta-Typ hinzugefügt, der eine einzelne Zitation enthält, die der citations-Liste im aktuellen text-Inhaltsblock hinzugefügt werden soll.