Aller au contenu

Interface en ligne de commande

Module : piighost.cli

piighost est un petit outil en ligne de commande qui valide et inspecte une configuration de pipeline et dé-identifie du texte depuis le shell. Il est installé comme point d'entrée console avec l'extra config.

pip install "piighost[config]"

L'outil a besoin de typer, livré avec l'extra config. Si typer manque, la CLI imprime un court message d'installation sur stderr et sort en 1, plutôt qu'une traceback. Les sous-commandes validate et schema n'instancient aucun composant du pipeline. Elles ne construisent donc aucun détecteur et ne chargent aucun modèle. Elles sont ainsi rapides et sûres à lancer en CI.


piighost validate

Analyse et valide un fichier de configuration, TOML ou JSON selon son suffixe, contre le schéma du pipeline. Il vérifie la structure et chaque valeur sans construire de composant.

$ piighost validate ./pipeline.toml
OK: pipeline.toml
piighost validate <PATH>
ArgumentDescription
PATHChemin vers une config de pipeline TOML ou JSON, ou une référence du catalogue comme catalog:piighost/fr-notarial

Le code de sortie est 0 en cas de succès et 1 en cas d'erreur de configuration, qu'il s'agisse d'un fichier absent, d'une syntaxe TOML ou JSON invalide, d'une valeur qui échoue à la validation, ou d'un catalogue injoignable. Le message d'erreur est écrit sur stderr. La commande convient donc comme barrière de CI.

$ piighost validate ./broken.toml
invalid configuration in broken.toml: ...
$ echo $?
1

piighost schema

Imprime le JSON Schema de PipelineConfig sur stdout. Le schéma est généré par Pydantic à partir des modèles de config, il correspond donc toujours à la version de piighost installée.

$ piighost schema > schema.json

Pointez un éditeur vers schema.json pour l'autocomplétion et la validation en ligne d'un fichier de config, ou fournissez-le à tout outil qui consomme du JSON Schema.


piighost anonymize

Dé-identifie un texte et imprime le résultat. Le texte est un argument, ou - pour lire stdin. Par défaut, la commande lance un RegexDetector sur le groupe du catalogue catalog:piighost/generic:fab51b33 (DEFAULT_CATALOG dans piighost.cli). Ce groupe est récupéré à la première exécution, puis relu depuis le cache sur disque. --config lance un pipeline configuré, et --api un serveur piighost-api distant. Contrairement à validate et schema, cette commande construit et exécute le pipeline.

$ piighost anonymize "mail me at a@b.co"
mail me at <<EMAIL:1>>

$ echo "mail me at a@b.co" | piighost anonymize -
mail me at <<EMAIL:1>>

$ piighost anonymize "reach a@b.co" --config ./pipeline.toml
$ piighost anonymize "reach a@b.co" --api https://piighost.internal
piighost anonymize [TEXT] [--config PATH | --api URL] [--thread-id ID] [--json]
OptionDescription
TEXTLe texte à dé-identifier, ou - pour lire stdin
--config PATHUn fichier de config de pipeline (TOML ou JSON), ou une référence du catalogue
--api URLURL de base d'un serveur piighost-api, utilisé via le client HTTP
--thread-id IDIdentifiant de conversation pour l'API ou une config à mémoire (défaut default)
--jsonImprime le texte dé-identifié et les détections en JSON

--config et --api sont mutuellement exclusifs. Avec --json, la sortie est {"anonymized_text": ..., "detections": [...]}. Les détections listées sont celles que le texte a remplacées, après la résolution des chevauchements, les overrides et l'expander. Une configuration qui ne passe pas la validation affiche le même message que validate et sort avec le code 1. Quand un groupe du catalogue ne peut pas être tiré, la commande imprime Could not pull from the catalog: suivi de la cause et sort avec le code 1. --api n'envoie aucune clé d'API. Il ne joint donc qu'un serveur démarré avec PIIGHOST_ALLOW_ANONYMOUS, voir CLI du serveur.


Obtenir de l'aide

$ piighost --help
$ piighost anonymize --help

Voir aussi