Wird geladen

Tools für strukturierte Daten

Lektion 319 Min.

Wenn du strukturierte Daten von Claude benötigst, hast du zwei Hauptansätze: prompt-basierte Techniken mit Message-Prefills und Stop-Sequenzen, oder eine robustere Methode mit Tools. Während der prompt-basierte Ansatz einfacher einzurichten ist, liefern Tools zuverlässigere Ausgaben, allerdings um den Preis zusätzlicher Komplexität.

Tools für strukturierte Daten

Der tool-basierte Ansatz funktioniert, indem du ein JSON-Schema erstellst, das die genaue Struktur der Daten definiert, die du extrahieren möchtest. Anstatt zu hoffen, dass Claude seine Antwort korrekt formatiert, gibst du Claude im Wesentlichen eine Funktion, die mit bestimmten Parametern aufgerufen wird, die deiner gewünschten Ausgabestruktur entsprechen.

So funktioniert der Prozess:

  • Schreibe ein Schema, das die Struktur der Daten beschreibt, die du suchst
  • Zwinge Claude dazu, ein Tool mit dem Parameter tool_choice zu verwenden
  • Extrahiere die strukturierten Daten aus der Tool-Use-Antwort
  • Es ist keine Folgeantwort erforderlich – sobald du die Daten hast, bist du fertig

Wenn du beispielsweise einen Finanzsaldo und wichtige Erkenntnisse aus einer Abrechnung extrahieren möchtest, würde dein Schema diese jeweils als Integer und Array von Strings definieren.

Steuerung der Tool-Nutzung

Ein entscheidender Teil dieser Technik besteht darin, sicherzustellen, dass Claude dein Tool tatsächlich aufruft. Du kannst dieses Verhalten mit dem Parameter tool_choice steuern:

  • {"type": "auto"} – Das Modell entscheidet, ob es ein Tool verwenden muss (Standard)
  • {"type": "any"} – Das Modell muss ein Tool verwenden, kann aber wählen, welches
  • {"type": "tool", "name": "TOOL_NAME"} – Das Modell muss das angegebene Tool verwenden

Für die Extraktion strukturierter Daten möchtest du in der Regel die dritte Option verwenden, um sicherzustellen, dass Claude dein spezifisches Schema-Tool aufruft.

Implementierungsbeispiel

Angenommen, du möchtest einen Titel, einen Autor und wichtige Erkenntnisse aus einem Artikel extrahieren. Zunächst würdest du ein Tool-Schema erstellen:

python
article_summary_schema = {
    "name": "article_summary",
    "description": "Extracts structured data from articles",
    "input_schema": {
        "type": "object",
        "properties": {
            "title": {"type": "string"},
            "author": {"type": "string"},
            "key_insights": {
                "type": "array",
                "items": {"type": "string"}
            }
        }
    }
}

Dann würdest du Claude mit dem Tool aufrufen und dessen Nutzung erzwingen:

python
response = chat(
    messages,
    tools=[article_summary_schema],
    tool_choice={"type": "tool", "name": "article_summary"}
)

Die Antwort enthält einen Tool-Use-Block mit deinen strukturierten Daten im Feld input. Du kannst direkt darauf zugreifen:

python
structured_data = response.content[0].input

Wann welcher Ansatz verwendet werden sollte

Wähle prompt-basierte strukturierte Ausgabe, wenn du etwas Schnelles und Einfaches benötigst. Verwende Tools, wenn du garantierte Zuverlässigkeit benötigst und den zusätzlichen Einrichtungsaufwand bewältigen kannst. Beide Techniken sind wertvoll, abhängig von deinem spezifischen Anwendungsfall und deinen Anforderungen.