Anonymisez les données personnelles avant qu'elles n'atteignent le modèle
piighost est une bibliothèque Python pour créer des pipelines d'anonymisation de données personnelles. Elle remplace les informations sensibles par des jetons stables que le modèle peut utiliser, puis restitue les vraies valeurs à vos outils et à vos utilisateurs. Votre code d'agent ne change pas.
Hi, this is Patrick Dupont from Acme Corp. My order #ACME-9123 should be delivered to 12 rue de la Paix, Paris. You can reach me by email at patrick.dupont@acme.com or by phone at +33 6 12 34 56 78.
Le problème
Vous ne devriez pas avoir à choisir entre de bons modèles et la confidentialité
Pourquoi piighost
Plus qu'un détecteur de PII
Repérer les données sensibles, c'est le plus facile. piighost fournit tout le reste : des détecteurs que vous composez, des jetons que vous pouvez annuler, la cohérence sur toute une conversation, et un pipeline que vous exécutez à vos conditions.
Fonctionnement
Une couche entre votre agent et le modèle
Message utilisateur
Hi, this is Patrick Dupont. Could you forward this to Marie Lambert and Jean Moreau? My email is patrick.dupont@acme.com, and you can also cc marie.lambert@acme.com. The case ID is #ACME-9123.
piighost exécute vos détecteurs sur le message et indique chaque donnée personnelle trouvée : noms, e-mails, identifiants, tout ce que le modèle n'a pas besoin de voir. Les détections qui se chevauchent entre plusieurs détecteurs sont arbitrées par niveau de confiance avant tout remplacement.
Démarrage rapide
Branchez-le sur votre framework d'agent
Ajoutez piighost au framework que vous utilisez déjà. Votre code d'agent reste le même.
uv add 'piighost[langchain,gliner2]'from langchain.agents import create_agent
from piighost.components.detector.ner import Gliner2Detector
from piighost.pipeline import ThreadAnonymizationPipeline
from piighost.integrations.langchain import PIIAnonymizationMiddleware
# Any detector works: regex, NER, or an LLM. Here a GLiNER2 NER model.
detector = Gliner2Detector("fastino/gliner2-multi-v1", labels=["PERSON", "LOCATION"])
pipeline = ThreadAnonymizationPipeline(detector)
middleware = PIIAnonymizationMiddleware(pipeline=pipeline)
agent = create_agent(
model="openai:gpt-5.6-terra",
tools=[lookup_city],
middleware=[middleware],
)
# The model only sees "<<PERSON:1>>"; lookup_city still receives "Patrick".Questions fréquentes
Livrez des fonctionnalités IA sans livrer les données de vos utilisateurs
Installez piighost, branchez votre détecteur et gardez les données personnelles hors du modèle.