À propos du projet

SEISMOGRAPH est un outil open source conçu pour détecter quand une API LLM commence à répondre différemment, même lorsque le nom du modèle, le point de terminaison, la vitesse et la disponibilité restent inchangés. Il répond au problème de la dérive sémantique silencieuse dans les API LLM tierces, que la surveillance conventionnelle (latence, taux d'erreur, disponibilité) ne détecte pas. L'outil fonctionne en exécutant une suite de canaris fixe et adressée par contenu (jusqu'à 200 invites) contre tout point de terminaison compatible OpenAI à température 0. Chaque réponse est réduite à des caractéristiques préservant la vie privée : hachages SHA-256 et agrégats bruités par confidentialité différentielle de Laplace (epsilon=2.0). Les invites et sorties brutes ne quittent jamais le périmètre de la sonde. Chaque lot est signé avec Ed25519. La passerelle ingère les lots de sondes et applique une détection de changement de point Page-CUSUM par (model_tuple, metric_name) sur des métriques distributionnelles comme la longueur moyenne de sortie et le taux de réussite JSON, et non sur des hachages à correspondance exacte. Un système de quorum fédéré garantit qu'une alerte publique de dérive n'est promue que lorsque plusieurs organisations indépendantes (minimum 2) sont d'accord, ce qui évite les fausses alertes provenant de sondes bruitées uniques ou d'attaques Sybil. Le dépôt comprend un tableau de bord en direct (« Model Weather ») affichant le statut STABLE/DRIFTING/STALE par modèle, une mesure reproductible du plancher de dérive démontrant qu'un modèle plus récent (gemini-3.5-flash-lite) ne se reproduisait lui-même qu'environ 60 % du temps à température 0, tandis qu'un modèle plus ancien (gemini-3.1-flash-lite) se reproduisait exactement à 100 %, et un backtest synthétique ensemencé d'un incident Anthropic montrant un délai de 38 jours par rapport au post-mortem officiel. Composants clés : un SDK de sonde Python, une passerelle d'ingestion FastAPI, un stockage SQLAlchemy, un détecteur CUSUM, un moteur de corrélation de quorum et un tableau de bord en JS vanilla. Le projet est sous licence Apache-2.0, avec CI (ruff, pytest, CodeQL) et une suite de tests couvrant des scénarios adversariaux comme le blocage du bruit d'une seule organisation et les alertes déclenchées par quorum.