Aller au contenu

Flux de données de Lyra : ce qui est capté, ce qui est gardé, ce qui sort

English version: DATA_FLOWS.en.md.

Lyra est locale par défaut : le traitement de la voix, le LLM, la recherche et l'exécution des outils tournent sur votre machine. Ce document répond aux questions qu'un responsable informatique pose avant d'installer un assistant qui écoute et agit.

Ce que Lyra capte et où ça va

Donnée Capté par Stocké où Combien de temps Purger
Voix (micro) sounddevice, en mode vocal seulement jamais écrite sur disque : transcrite en mémoire par faster-whisper puis jetée 0 rien à faire
Texte des requêtes et réponses le démon data/session_history.db (SQLite, en clair) fenêtre glissante des 15 derniers échanges rm data/session_history.db
Retours utilisateur (« c'était bien / pas bien ») RAG enhanced data/feedback.json jusqu'à suppression rm data/feedback.json
Index des spécifications d'outils indexeur RAG .chromadb/ (embeddings locaux) jusqu'à réindexation rm -rf .chromadb && make index
Réglages (voix, modèles) menu /setting ~/.lyra/settings.json jusqu'à modification supprimer le fichier
Historique des échanges le démon ~/.lyra/history.jsonl (0600 ; phrase, canal, outil, réussite ; sans son ni arguments) rotation à 2 Mo, un seul ancien fichier lyra --purge ou supprimer le fichier
Erreurs journal d'erreurs ~/.lyra/logs/errors/ rotation par le démon supprimer le dossier
Socket du démon démon ~/.lyra/lyra.sock (UNIX, droits 0600) durée d'exécution automatique
Journal des actions MCP mcp-tracking ~/.local/state/tracking/ (via l'API locale 127.0.0.1:8765) purge automatique (7 jours après la fin) API tracking

Tout purger d'un coup, avec vérification : lyra --purge --dry-run liste ce qui serait effacé (historique, retours, journaux d'erreurs MCP), lyra --purge efface puis recompte et doit tout donner à zéro. En option, privacy.purge_on_stop: true dans config.yaml purge à chaque arrêt du démon, pour une fin de mission (désactivé par défaut). Le journal systemd du démon n'est pas concerné : il suit la rétention de journald.

Aucun de ces fichiers n'est envoyé ailleurs. Les secrets (jetons, mots de passe d'équipements) sont dans secrets.yaml, jamais dans les journaux.

Les sorties réseau, toutes optionnelles

Sortie Vers Activée par Ce qui part
Ollama distant la machine indiquée par --ollama-host ou llm.base_url vous, à l'installation le texte des requêtes, en HTTP sur votre réseau ; par défaut localhost:11434
mcp-tracking 127.0.0.1:8765 (local) tracking.enabled nom et progression des actions longues
n8n n8n.base_url (par défaut localhost:5678) n8n.enabled déclenchement des tâches asynchrones (clone de VM, sauvegarde)
Discord discord.webhook_url discord.enabled et un webhook renseigné dans secrets.yaml notifications de fin de tâche et d'erreur (titre, état)
Home Assistant homeassistant.url homeassistant.enabled et un jeton commandes domotiques
Notion API Notion notion.enabled (désactivé par défaut) et un jeton journal des workflows
Installeur ollama.com, huggingface.co, pypi.org, github.com (dépôts des serveurs MCP cochés), registre npm (dépendances de fedora-agents) à l'installation seulement téléchargement des modèles, de Piper, des serveurs MCP et des dépendances
Modèles Hugging Face au démarrage huggingface.co (ou HF_ENDPOINT) seulement si MiniLM ou Whisper manque du cache local ; jamais avec LYRA_OFFLINE=1 ou HF_HUB_OFFLINE=1 le nom du modèle demandé
Alerte du test quotidien des MCP le serveur ntfy de NTFY_URL NTFY_URL dans ~/.lyra/alert.env (timer lyra-mcp-smoke-alert) le nom des serveurs MCP en échec et leur message d'erreur

Sans configuration explicite (jeton, URL), chacune de ces sorties est inactive : enabled: true seul ne suffit pas. Pour un usage strictement hors ligne, mettre enabled: false sur n8n, Discord, Home Assistant et Notion, et pointer Ollama sur la machine locale.

Ce que Lyra ne fait jamais

  • Aucun appel à un fournisseur de LLM en ligne (OpenAI, Google, Anthropic…) : il n'y a pas de client pour cela dans le code.
  • Aucune télémétrie, aucun compteur d'usage envoyé à l'auteur.
  • Aucune exécution d'action sensible sans confirmation humaine : voir la section Sécurité du README.

Vérifier par vous-même

grep -rn "https\?://" lyra modules | grep -v "127.0.0.1\|localhost"   # les seules URL externes sont celles ci-dessus
ss -tnp | grep python                                                   # connexions ouvertes par le démon