1 Punkte von doolayer 2025-08-20 | 2 Kommentare | Auf WhatsApp teilen

Hallo!

Wenn man AI-Modelle nutzt, braucht man oft strukturierte JSON-Ausgaben.
Auch ich hatte bei verschiedenen Projekten häufig Situationen, in denen ich JSON-Ausgaben nutzen musste, und dabei immer wieder dieselben Unannehmlichkeiten.

Bei strukturierten Ausgaben von LLMs gab es im Wesentlichen 3 Probleme.

  1. Verarbeitung von Code-Blöcken (````json … ``` )
    Die meisten LLMs verwenden bei der Rückgabe von JSON einen Code-Block, der mit drei Backticks und dem Schlüsselwort json umschlossen ist.
    Das lässt sich zwar auch mit einem einfachen regulären Ausdruck verarbeiten, aber es ist lästig, das jedes Mal zu wiederholen. Wenn das auf Paketebene in einer Zeile erledigt werden kann, ist es deutlich praktischer.

  2. Problem mit verschachtelten Anführungszeichen
    In JSON müssen Strings mit doppelten Anführungszeichen (") umschlossen werden. Tauchen innerhalb des Strings erneut Anführungszeichen auf, ist ein Escape wie \" erforderlich.
    LLMs übersehen diese Unterscheidung oft und geben dadurch fehlerhaftes JSON zurück. Ich brauchte eine Funktion, die dieses Problem automatisch korrigiert.

  3. Smart Quotes (Unicode-Anführungszeichen)
    In von LLMs erzeugten Sätzen kommen häufig Smart Quotes wie “ ” vor.
    Da sie nicht dem JSON-Standard entsprechen, sollte man sie gesammelt in normale doppelte Anführungszeichen (") umwandeln können.

Ich habe mich umgesehen und zwar das Node.js-basierte Projekt ai-json-fixer gefunden, aber im Python-Ökosystem gab es kein wirklich passendes Werkzeug.

Also habe ich es gebaut! (zusammen mit Meister GPT, haha)
Es lässt sich einfach per pip installieren und verwenden.
pip install jsonquotefixer

Probiert es gern aus und zerreißt es dann nach Herzenslust, haha

2 Kommentare

 
onandon 2025-08-26

Es wäre schön, wenn Beispiele im ipynb auf GitHub gut sichtbar wären.

 
doolayer 2025-08-20

Die zeitliche Ordnung ist n (Sequenzlänge)!