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.

Die Zitate-Funktion 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.

Zitate mit Claude Sonnet 3.7

Claude Sonnet 3.7 macht möglicherweise weniger wahrscheinlich Zitate im Vergleich zu anderen Claude-Modellen ohne explizitere Anweisungen vom Benutzer. Bei der Verwendung von Zitaten mit Claude Sonnet 3.7 empfehlen wir, zusätzliche Anweisungen in den user-Turn einzufügen, wie zum Beispiel "Verwenden Sie Zitate, um Ihre Antwort zu untermauern.".

Wir haben auch beobachtet, dass wenn das Modell gebeten wird, seine Antwort zu strukturieren, es unwahrscheinlich ist, dass es Zitate verwendet, es sei denn, es wird explizit angewiesen, Zitate innerhalb dieses Formats zu verwenden. Wenn das Modell beispielsweise gebeten wird, -Tags in seiner Antwort zu verwenden, sollten Sie etwas wie “Verwenden Sie immer Zitate in Ihrer Antwort, auch innerhalb von .” hinzufügen.

Bitte 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:

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": "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 Zitatlösungen hat die Zitate-Funktion folgende Vorteile:

  • Kosteneinsparungen: Wenn Ihr prompt-basierter Ansatz Claude dazu auffordert, direkte Zitate auszugeben, können Sie Kosteneinsparungen sehen, da cited_text nicht zu Ihren Ausgabe-Tokens zählt.
  • Bessere Zitatverlässlichkeit: Da wir Zitate in die jeweiligen oben genannten Antwortformate parsen und cited_text extrahieren, enthalten Zitate garantiert gültige Zeiger auf die bereitgestellten Dokumente.
  • Verbesserte Zitatqualität: In unseren Evaluierungen fanden wir heraus, dass die Zitate-Funktion deutlich wahrscheinlicher die relevantesten Zitate aus Dokumenten zitiert im Vergleich zu rein prompt-basierten Ansätzen.

Wie Zitate funktionieren

Integrieren Sie Zitate mit Claude in diesen Schritten:

1

Dokument(e) bereitstellen und Zitate aktivieren

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

Dokumente werden verarbeitet

  • Dokumentinhalte werden “gechunkt”, um die minimale Granularität möglicher Zitate zu definieren. Zum Beispiel würde Satz-Chunking Claude erlauben, 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 extrahiert wie in PDF-Unterstützung beschrieben und Inhalt wird in Sätze gechunkt. Das Zitieren von Bildern aus PDFs wird derzeit nicht unterstützt.
    • Für Klartext-Dokumente: Inhalt wird in Sätze gechunkt, die zitiert werden können.
    • Für benutzerdefinierte Inhalts-Dokumente: Ihre bereitgestellten Inhaltsblöcke werden wie sie sind verwendet und es wird kein weiteres Chunking durchgeführt.
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 Zitaten, die die Behauptung unterstützen.
  • Zitate verweisen auf spezifische Stellen in Quelldokumenten. Das Format dieser Zitate hängt vom Typ des zitierten Dokuments ab.
    • Für PDFs: Zitate enthalten den Seitenzahlenbereich (1-indiziert).
    • Für Klartext-Dokumente: Zitate enthalten den Zeichenindexbereich (0-indiziert).
    • Für benutzerdefinierte Inhalts-Dokumente: Zitate enthalten den Inhaltsblockindexbereich (0-indiziert) entsprechend der ursprünglich bereitgestellten Inhaltsliste.
  • Dokumentindizes werden bereitgestellt, um die Referenzquelle anzugeben und sind 0-indiziert entsprechend der Liste aller Dokumente in Ihrer ursprünglichen Anfrage.

Automatisches Chunking vs. benutzerdefinierte Inhalte

Standardmäßig werden Klartext- und PDF-Dokumente automatisch in Sätze gechunkt. Wenn Sie mehr Kontrolle über die Zitatgranularitä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 kein weiteres Chunking durchführen möchten oder wenn Sie zusätzliches Chunking anpassen möchten, können Sie RAG-Chunks in benutzerdefinierte Inhalts-Dokument(e) einfügen.

Zitierbare vs. 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 weitergegeben werden, aber nicht für zitierten Inhalt verwendet werden.
  • title ist in der Länge begrenzt, daher könnte das context-Feld nützlich sein, um Dokumentmetadaten als Text oder stringifiziertes JSON zu speichern.

Zitatindizes

  • 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.
  • Inhaltsblockindizes sind 0-indiziert mit exklusiven Endindizes aus der content-Liste, die im benutzerdefinierten Inhalts-Dokument bereitgestellt wird.

Token-Kosten

  • Das Aktivieren von Zitaten führt zu einem geringfügigen Anstieg der Eingabe-Tokens aufgrund von Systemprompt-Ergänzungen und Dokument-Chunking.
  • Die Zitate-Funktion ist jedoch sehr effizient mit Ausgabe-Tokens. Unter der Haube gibt das Modell Zitate in einem standardisierten Format aus, die dann in zitierten Text und Dokumentstandortindizes geparst werden. Das cited_text-Feld 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

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

Verwendung von Prompt-Caching mit Zitaten

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

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

import anthropic

client = anthropic.Anthropic()

# Langer Dokumentinhalt (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-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"}  # Dokumentinhalt cachen
                },
                {
                    "type": "text",
                    "text": "Was sagt dieses Dokument über API-Funktionen?"
                }
            ]
        }
    ]
)

In diesem Beispiel:

  • Der Dokumentinhalt wird mit cache_control auf dem Dokumentblock gecacht
  • Zitate sind auf dem Dokument aktiviert
  • Claude kann Antworten mit Zitaten generieren, während es von gecachtem Dokumentinhalt profitiert
  • Nachfolgende Anfragen mit demselben Dokument profitieren vom gecachten Inhalt

Dokumenttypen

Auswahl eines Dokumenttyps

Wir 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:

TypAm besten fürChunkingZitatformat
KlartextEinfache Textdokumente, ProsaSatzZeichenindizes (0-indiziert)
PDFPDF-Dateien mit TextinhaltSatzSeitenzahlen (1-indiziert)
Benutzerdefinierter InhaltListen, Transkripte, spezielle Formatierung, granularere ZitateKein zusätzliches ChunkingBlockindizes (0-indiziert)

.csv, .xlsx, .docx, .md und .txt Dateien werden nicht als Dokumentblö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

Klartext-Dokumente werden automatisch in Sätze gechunkt. Sie können sie inline oder per 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, das nicht zitiert wird", # optional
    "citations": {"enabled": True}
}

PDF-Dokumente

PDF-Dokumente können als base64-kodierte Daten oder durch file_id bereitgestellt werden. PDF-Text wird extrahiert und in Sätze gechunkt. Da Bildzitate 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, das nicht zitiert wird", # optional
    "citations": {"enabled": True}
}

Benutzerdefinierte Inhalts-Dokumente

Benutzerdefinierte Inhalts-Dokumente geben Ihnen Kontrolle über die Zitatgranularität. Es wird kein zusätzliches Chunking durchgeführt 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": "Dokumenttitel", # optional
    "context": "Kontext über das Dokument, das nicht zitiert wird", # optional
    "citations": {"enabled": True}
}

Antwortstruktur

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": "Beispieldokument",
                "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": "Beispieldokument",
                "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
            }]
        }
    ]
}

Streaming-Unterstützung

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.