Modifier le code de piighost
Cette page s'adresse à qui change le code de piighost. Chaque changement courant y renvoie d'abord à la page de la documentation métier qui décrit les règles concernées, puis aux fichiers et aux tests à ouvrir. Lisez la règle avant de toucher au code qui l'applique.
Démarrer en local
- Pile : Python 3.11 ou plus, gestionnaire
uv. Le cœur ne dépend que detyping-extensions. Tout le reste est un extra depyproject.toml(langchain,redis,gliner2,config…), etallles réunit. - Installer :
uv syncà la racine du dépôt. - Tester :
uv run pytest, puismake lintavant toute fusion. Détails dans Lancer et écrire les tests. - Essayer :
uv run piighost anonymize "Écrivez à claire.dubois@example.com". La première exécution télécharge le groupe du cataloguecatalog:piighost/generic. - Services : aucun pour les tests. Redis, une base SQL ou
piighost-apine servent qu'en exploitation. Voir Stocker les conversations et Configurer un pipeline. - Exemples : scripts autonomes dans
examples/, lancés paruv run examples/<script>.py.
Trouver où modifier
| Type de changement | Lire d'abord | Puis |
|---|---|---|
| Ajouter un détecteur | Ajouter ou remplacer un composant | components/detector/regex.py ou components/detector/ner/spacy.py, config/models/detector_model.py, tests/components/detector/test_contract.py |
| Changer l'arbitrage des chevauchements | Protéger un message | components/overlap_resolver/, tests/components/overlap_resolver/ |
| Changer la forme des jetons | Glossaire, Ajouter ou remplacer un composant | components/placeholder/, tags.py, tests/components/placeholder/ |
| Toucher à la conversation ou à la correction humaine | Suivre une conversation | pipeline/thread.py, tests/pipeline/test_thread.py, test_thread_hitl.py |
| Modifier la liste à masquer ou la liste à laisser en clair | Imposer une liste à masquer et une liste à laisser en clair | components/override/, tests/components/override/test_override.py |
| Changer le traitement des appels d'outil | Laisser un outil agir | integrations/langchain/middleware.py (awrap_tool_call), integrations/pydantic_ai/hooks.py, tests/integrations/langchain/test_middleware.py |
| Changer la restauration en flux | Afficher une réponse streamée | components/placeholder/streaming.py, tests/components/placeholder/test_streaming*.py |
| Ajouter un test d'acceptation | Tests d'acceptation | tests/acceptance/, un identifiant AT-<besoin>-<n> dans la docstring |
| Ajouter une clé de configuration | Configurer un pipeline | config/models/, config/settings.py, tests/config/ |
Modifier la commande piighost | Configurer un pipeline | cli/__init__.py, tests/cli/test_cli.py |
| Ajouter un stockage ou changer le chiffrement | Stocker les conversations | conversation_memory/, crypto/, tests/conversation_memory/ |
| Changer le middleware LangChain ou une autre intégration | Brancher la protection sur un agent | integrations/, integrations/_deidentify.py, tests/integrations/ |
| Ajouter un outil aux hooks Claude Code | Brancher la protection sur un agent | integrations/claude_code/hooks.py (_TOOL_OUTPUT_TEXT_FIELDS), tests/integrations/test_claude_code_hooks.py |
Pour le déroulé d'une contribution (branche, commits, revue), voir Contribuer.