jsonquotefixer : un package Python qui remet proprement en forme les sorties JSON mal structurées des LLM
(github.com/abzb1)Bonjour !
Quand on utilise des modèles d’IA, on a souvent besoin d’une sortie JSON structurée.
Moi aussi, en menant plusieurs projets, je me suis souvent retrouvé dans des situations où il fallait exploiter une sortie JSON, et je rencontrais à chaque fois les mêmes désagréments.
Il y avait surtout 3 points pénibles avec les sorties structurées des LLM.
-
Traitement des blocs de code (
```json … ```)
La plupart des LLM utilisent, lorsqu’ils renvoient du JSON, un bloc de code entouré de trois accents graves et du mot-cléjson.
On peut le traiter avec une regex simple, mais c’est pénible de répéter ça à chaque fois. Ce serait bien plus pratique si le package le gérait en une seule ligne. -
Problème des guillemets imbriqués
En JSON, les chaînes doivent être entourées de guillemets doubles ("). Mais si des guillemets réapparaissent à l’intérieur d’une chaîne, il faut les échapper, par exemple avec\".
Les LLM ratent souvent cette distinction et renvoient un JSON invalide. J’avais besoin d’une fonctionnalité qui corrige automatiquement ce problème. -
Guillemets typographiques (guillemets Unicode)
Les phrases générées par les LLM contiennent souvent des guillemets typographiques comme“ ”.
Comme ils ne sont pas conformes au standard JSON, il faut pouvoir les convertir automatiquement en guillemets doubles normaux (").
En cherchant, j’ai bien trouvé le projet ai-json-fixer basé sur Node.js, mais il n’existait pas vraiment d’outil approprié dans l’écosystème Python.
Alors je l’ai créé ! (avec l’aide de GPT, bien sûr 😄)
Vous pouvez l’installer simplement avec pip.
pip install jsonquotefixer
Essayez-le et critiquez-le sans retenue 😄
2 commentaires
Ce serait bien que les exemples soient bien visibles sur GitHub au format ipynb.
La complexité temporelle est de
n(longueur de séquence) !