Maîtriser la CLI TOON

CLI
TOON

Si vous avez travaillé avec des modèles linguistiques étendus (LLM), vous savez que JSON est la lingua franca de l'échange de données. Cependant, vous savez également que JSON est notoirement « bavard ». Toutes ces accolades, guillemets et touches répétées encombrent votre fenêtre contextuelle, augmentent la latence et font grimper les coûts de l'API.

C'est là que TOON (The Object-Oriented Notation) brille. Bien que la bibliothèque TypeScript soit idéale pour le code d'application, il vous suffit parfois de faire avancer les choses rapidement dans le terminal. Que vous déboguiez une invite, prépariez un ensemble de données ou que vous soyez simplement curieux de savoir combien d'argent vous pourriez économiser sur les jetons, la CLI @toon-format/toon est votre nouveau meilleur ami.

Dans ce guide, nous verrons comment exploiter l'interface de ligne de commande TOON pour intégrer l'optimisation des données directement dans vos flux de travail shell.

Mise en place

L’un des avantages des outils JavaScript modernes est que vous n’avez souvent pas besoin d’« installer » quoi que ce soit pour commencer. Si vous souhaitez simplement essayer TOON sur un seul fichier, vous pouvez utiliser npx pour exécuter directement le binaire :

npx @toon-format/cli input.json -o output.toon 

Cependant, si vous envisagez de l'utiliser fréquemment (et une fois que vous aurez constaté les économies de jetons, vous le ferez probablement), une installation globale est la voie à suivre. Il vous donne accès à la commande concise « toon » n'importe où dans votre système.

npm install -g @toon-format/cli 
# ou 
pnpm add -g @toon-format/cli 

Une fois installé, vous êtes prêt à commencer à réduire vos données.

La magie de la détection automatique

La CLI TOON est conçue pour être intelligente quant à ce que vous essayez de faire. Vous avez rarement besoin de lui dire explicitement d'encoder ou de décoder ; il examine les extensions de vos fichiers pour décider.

Si vous lui fournissez un fichier « .json », cela suppose que vous souhaitez l'encoder en TOON. Si vous fournissez un fichier .toon, il passe en mode décodage pour vous restituer du JSON.

# Encode automatiquement en TOON 
toon data.json -o compressé.toon 

# Décode automatiquement en JSON 
toon compressé.toon -o restauré.json 

Mais là où la CLI prouve vraiment sa valeur, c'est dans la « philosophie Unix » : de petits outils vaguement reliés. Étant donné que la CLI TOON lit à partir de l'entrée standard (stdin) et écrit sur la sortie standard (stdout), vous pouvez acheminer les données directement via celle-ci.

# Piper JSON directement dans TOON 
chat grand-dataset.json | toon > data.toon 

# Faites écho à un objet rapide pour voir à quoi il ressemble dans TOON 
echo '{"nom": "Ada", "role": "admin"}' | dessin animé 

Lorsque vous transférez des données via stdin, la CLI est par défaut en mode encode. Si vous avez besoin de décoder un flux de données TOON provenant d'un autre processus, ajoutez simplement l'indicateur --decode (ou -d).

Analyse des économies de jetons

L'optimisation des formats de données consiste souvent à deviner. "Si je supprime les espaces, combien puis-je économiser ?" « Et si je passe à YAML ? »

La CLI TOON élimine les incertitudes avec l'indicateur --stats. Lors de l'encodage, cette option calcule le nombre estimé de jetons et vous montre immédiatement les économies. Ceci est inestimable lorsque vous planifiez un budget pour des appels LLM à grand volume.

toon contexte.json --stats 

Vous pourriez voir une sortie indiquant une réduction de taille de 30 % ou 40 %. Il ne s'agit pas seulement d'espace disque ; cela représente 40 % de latence en moins et 40 % de coût en moins sur les jetons d'entrée.

Réglage avancé : délimiteurs et formatage

Par défaut, TOON utilise des virgules pour séparer les éléments du tableau, comme JSON. Cependant, différents tokenizers LLM se comportent différemment avec la ponctuation. Parfois, un caractère de tabulation ou une barre verticale (|) est plus efficace en termes de jetons qu'une virgule.

La CLI vous permet d'échanger les délimiteurs à la volée. Si vous traitez des données tabulaires, le passage à un délimiteur de tabulations peut rendre la sortie plus propre et un traitement plus efficace.

Pour une liste de produits, cela transforme la sortie d'une liste séparée par des virgules en une structure propre, séparée par des tabulations, qui ressemble presque à une feuille de calcul, que de nombreux modèles analysent exceptionnellement bien.

# Utiliser des onglets pour les éléments du tableau 
toon items.json --delimiter "\t" -o items.toon 

::: conseil Conseil de pro : Les délimiteurs de tabulations réduisent souvent le besoin d'échapper des guillemets et peuvent entraîner une meilleure tokenisation des données numériques. Si vous traitez des ensembles de données volumineux, essayez --delimiter "\t" pour maximiser l'efficacité. :::

Structure de compression avec pliage à clé

L'une des fonctionnalités les plus récentes (introduite dans la spécification v1.5) disponible dans la CLI est Key Folding. Les données JSON sont souvent profondément imbriquées, avec des clés wrapper comme « data.response.items » qui ajoutent de la profondeur structurelle sans ajouter de signification.

La CLI vous permet de « replier » ces clés imbriquées en un seul chemin noté par des points, aplatissant la hiérarchie et économisant les jetons sur l'indentation et les accolades.

toon deep-structure.json --key-folding safe -o flat.toon 

Cela transforme les objets imbriqués :

{ "utilisateur": { "profil": { "id": 1 } } } 

Dans une représentation TOON concise :

utilisateur.profile.id : 1 

Si vous devez reconvertir cela en JSON complet plus tard, vous pouvez utiliser l'indicateur « --expand-paths safe » pendant le décodage pour reconstruire parfaitement la structure profonde de l'objet.

intégration dans les pipelines

La vraie puissance de la TOON CLI vient lorsque vous l'enchaînez avec d'autres outils comme « curl » et « jq ». Vous pouvez récupérer des données à partir d'une API, les filtrer jusqu'à l'essentiel et les convertir en TOON sur une seule ligne, prêtes à être collées dans une invite ou envoyées à un point de terminaison d'inférence.

Dans ce flux de travail, vous récupérez les données, extrayez uniquement les utilisateurs actifs, les convertissez au format TOON délimité par des barres verticales et obtenez un rapport statistique sur le nombre de jetons que vous venez d'enregistrer.

curl -s https://api.example.com/users \ 
| jq '.data.active_users' \ 
| toon --stats --delimiter "|" 

Résumé

Le @toon-format/cli est plus qu'un simple convertisseur de fichiers ; c'est une ceinture utilitaire pour l'ère LLM. En déplaçant le traitement des données vers la ligne de commande, vous pouvez effectuer des itérations plus rapidement, visualiser les optimisations immédiatement et intégrer des formats efficaces en termes de jetons dans vos flux de travail d'ingénierie existants.

Que vous prépariez des documents RAG (Retrieval-Augmented Generation) ou que vous essayiez simplement d'insérer un énorme blob JSON dans une petite fenêtre contextuelle, essayez la CLI. Votre budget symbolique vous remerciera.