Wird geladen

Flexible Tool-Extraktion

Lektion 319 Min.

Das Schreiben detaillierter JSON-Schemas für die strukturierte Datenextraktion kann bei der Arbeit mit KI-Tools ein echter Schmerzpunkt sein. Es gibt einen cleveren Workaround, mit dem du deine gewünschte Datenstruktur direkt in deinem Prompt angeben kannst, anstatt komplexe Schemas zu erstellen.

Der flexible Schema-Ansatz

Anstatt für jede Datenextraktionsaufgabe ein detailliertes Schema zu schreiben, kannst du ein generisches Tool namens to_json erstellen, das jede beliebige Objektstruktur akzeptiert. Der Schlüssel liegt darin, das Input-Schema so einzustellen, dass zusätzliche Eigenschaften zugelassen werden, und dann deine genauen Anforderungen direkt im Prompt anzugeben.

Dieser Ansatz beseitigt einen großen Schmerzpunkt - das ständige Schreiben und Verwalten großer JSON-Schemas. Die Ergebnisse werden nicht ganz so gut sein wie bei einem dedizierten Schema, aber du erhältst trotzdem hochwertige JSON-Ausgaben mit deutlich weniger Einrichtungsaufwand.

So funktioniert es

Der Prozess ist unkompliziert:

  • Erstelle ein einziges flexibles Schema, das jede beliebige Objektstruktur akzeptiert
  • Gib in deinem Prompt genau an, welche Datenstruktur du möchtest
  • Weise Claude an, das Tool to_json mit deiner angegebenen Struktur aufzurufen
  • Verwende tool_choice, um Claude zur Nutzung deines Tools zu zwingen

Einrichten des Prompts

Beim Schreiben deines Prompts solltest du sehr explizit über die gewünschte Struktur sein. Hier ist ein Beispiel, wie du deine Anfrage strukturieren kannst:

Analyze the article below and extract key data. Then call the to_json tool.

<article_text>
{result["text"]}
</article_text>

When you call to_json, pass in the following structure:
{{
    "title": str # title of the article,
    "author": str # author of the article,
    "topics": List[str] # List of topics mentioned in the article
}}

Durchführen des API-Aufrufs

Der API-Aufruf verwendet das flexible Schema und erzwingt die Tool-Nutzung:

python
flexible_result = chat(messages, tools=[to_json_schema], tool_choice="to_json")

Einfache Strukturänderungen

Der eigentliche Vorteil wird deutlich, wenn du deine Datenstruktur ändern musst. Anstatt ein ganzes Schema neu zu schreiben, aktualisierst du einfach deinen Prompt. Möchtest du ein Feld für die Anzahl der Themen hinzufügen? Füge einfach eine Zeile hinzu:

python
"num_topics": int # Number of topics mentioned

Das war's - keine Schema-Änderungen erforderlich.

Wann welcher Ansatz verwendet werden sollte

Der flexible Schema-Ansatz funktioniert hervorragend für:

  • Schnelles Prototyping und Experimentieren
  • Einfache Datenextraktionsaufgaben
  • Situationen, in denen du deine Datenanforderungen häufig änderst

Bleib bei dedizierten Schemas für:

  • Kritische Datenextraktionsaufgaben in der Produktion
  • Komplexe verschachtelte Datenstrukturen
  • Wenn du die höchstmögliche Genauigkeit benötigst

Der flexible Ansatz bietet dir etwa 90 % der Qualität bei 10 % des Einrichtungsaufwands, was ihn perfekt für die meisten Anwendungsfälle macht, in denen du strukturierte Datenextraktion ohne den Verwaltungsaufwand für Schemas benötigst.