Aller au contenu

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 de typing-extensions. Tout le reste est un extra de pyproject.toml (langchain, redis, gliner2, config…), et all les réunit.
  • Installer : uv sync à la racine du dépôt.
  • Tester : uv run pytest, puis make lint avant 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 catalogue catalog:piighost/generic.
  • Services : aucun pour les tests. Redis, une base SQL ou piighost-api ne servent qu'en exploitation. Voir Stocker les conversations et Configurer un pipeline.
  • Exemples : scripts autonomes dans examples/, lancés par uv run examples/<script>.py.

Trouver où modifier

Type de changementLire d'abordPuis
Ajouter un détecteurAjouter ou remplacer un composantcomponents/detector/regex.py ou components/detector/ner/spacy.py, config/models/detector_model.py, tests/components/detector/test_contract.py
Changer l'arbitrage des chevauchementsProtéger un messagecomponents/overlap_resolver/, tests/components/overlap_resolver/
Changer la forme des jetonsGlossaire, Ajouter ou remplacer un composantcomponents/placeholder/, tags.py, tests/components/placeholder/
Toucher à la conversation ou à la correction humaineSuivre une conversationpipeline/thread.py, tests/pipeline/test_thread.py, test_thread_hitl.py
Modifier la liste à masquer ou la liste à laisser en clairImposer une liste à masquer et une liste à laisser en claircomponents/override/, tests/components/override/test_override.py
Changer le traitement des appels d'outilLaisser un outil agirintegrations/langchain/middleware.py (awrap_tool_call), integrations/pydantic_ai/hooks.py, tests/integrations/langchain/test_middleware.py
Changer la restauration en fluxAfficher une réponse streaméecomponents/placeholder/streaming.py, tests/components/placeholder/test_streaming*.py
Ajouter un test d'acceptationTests d'acceptationtests/acceptance/, un identifiant AT-<besoin>-<n> dans la docstring
Ajouter une clé de configurationConfigurer un pipelineconfig/models/, config/settings.py, tests/config/
Modifier la commande piighostConfigurer un pipelinecli/__init__.py, tests/cli/test_cli.py
Ajouter un stockage ou changer le chiffrementStocker les conversationsconversation_memory/, crypto/, tests/conversation_memory/
Changer le middleware LangChain ou une autre intégrationBrancher la protection sur un agentintegrations/, integrations/_deidentify.py, tests/integrations/
Ajouter un outil aux hooks Claude CodeBrancher la protection sur un agentintegrations/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.