# 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`. ```bash 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. ```bash $ piighost validate ./pipeline.toml OK: pipeline.toml ``` ``` piighost validate ``` | Argument | Description | |----------|-------------| | `PATH` | Chemin 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. ```bash $ 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. ```bash $ 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. ```bash $ piighost anonymize "mail me at a@b.co" mail me at <> $ echo "mail me at a@b.co" | piighost anonymize - mail me at <> $ 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] ``` | Option | Description | |--------|-------------| | `TEXT` | Le texte à dé-identifier, ou `-` pour lire stdin | | `--config PATH` | Un fichier de config de pipeline (TOML ou JSON), ou une référence du catalogue | | `--api URL` | URL de base d'un serveur `piighost-api`, utilisé via le client HTTP | | `--thread-id ID` | Identifiant de conversation pour l'API ou une config à mémoire (défaut `default`) | | `--json` | Imprime 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](api-cli.md). --- ## Obtenir de l'aide ```bash $ piighost --help $ piighost anonymize --help ``` --- ## Voir aussi - [Configuration TOML](../configuration/toml.md) pour le schéma que la CLI valide.