Bot Telegram IA multimodal pour le support technique parental β propulsΓ© par Gemini 2.5 Flash.
Fini les appels paniquΓ©s Γ 22h pour "la tΓ©lΓ© qui s'allume plus". Hotline Darons rΓ©pond en quelques secondes, en franΓ§ais simple, avec une patience infinie. Il analyse les photos d'Γ©cran, comprend les messages vocaux, et escalade vers vous seulement quand c'est vraiment nΓ©cessaire.
| Domaine | ImplΓ©mentation |
|---|---|
| LLM / Multimodal | Gemini 2.5 Flash β texte, image, audio natif |
| RAG familial | Embedding Google + cosine search sur knowledge base .md |
| Bot Telegram | Handlers async, gestion de session, file d'attente photoβquestion |
| SΓ©curitΓ© IA | Filtre PII (IBAN, CB, mots de passe) sur texte et images |
| Escalade intelligente | DΓ©tection de niveau de complexitΓ© β transfert Γ l'humain |
| Tests | 38/38 tests pytest β session store, PII filter, escalade |
| DevOps | Docker Compose, variables d'environnement, SQLite persistant |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Telegram (parents) β
β πΈ Photo π€ Vocal βοΈ Texte β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β bot/main.py β
β βββββββββββββββ ββββββββββββββββ βββββββββββββββββ β
β βsession_storeβ β pii_filter β β escalation β β
β β (SQLite) β β (sΓ©curitΓ©) β β (β Jerome) β β
β βββββββββββββββ ββββββββββββββββ βββββββββββββββββ β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
ββββββββββββ΄βββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββββ ββββββββββββββββββββββ
β bot/rag.py β β bot/ai_engine.py β
β Knowledge Base ββββΆβ Gemini 2.5 Flash β
β text-embedding β β Multimodal β
β 004 (Google) β β JSON structurΓ© β
ββββββββββββββββββββββ ββββββββββββββββββββββ
- Docker + Docker Compose
- Un token bot Telegram (via @BotFather)
- Une clΓ© API Google AI (aistudio.google.com)
- Votre Telegram user ID (via @userinfobot)
# 1. Cloner et configurer
cp .env.example .env
nano .env # Remplir TELEGRAM_BOT_TOKEN, GEMINI_API_KEY, ESCALATION_CHAT_ID
# 2. Personnaliser la base de connaissances (optionnel mais recommandΓ©)
nano knowledge/famille_jacq.md
# 3. Lancer
docker-compose up -dLe bot est actif ! Envoyez /start depuis Telegram.
| Variable | Description | Obligatoire |
|---|---|---|
TELEGRAM_BOT_TOKEN |
Token du bot Telegram (via @BotFather) | β |
GEMINI_API_KEY |
ClΓ© API Google AI Studio | β |
ESCALATION_CHAT_ID |
Votre Telegram user ID (pour recevoir les alertes) | β |
KNOWLEDGE_DIR |
Chemin vers le dossier knowledge | Non (dΓ©faut: /app/knowledge) |
DB_PATH |
Chemin vers la base SQLite | Non (dΓ©faut: /app/data/hotline_darons.db) |
Envoyez /start Γ @userinfobot sur Telegram β il vous donne votre ID numΓ©rique.
Γditez knowledge/famille_jacq.md pour adapter le bot Γ votre famille :
## TΓ©lΓ©vision
- Modèle : Samsung UE55TU7125
- Box IPTV : Freebox Player
...Le bot recharge automatiquement la base au dΓ©marrage. Voir knowledge/README.md pour le guide complet.
| FonctionnalitΓ© | Description |
|---|---|
| πΈ Photo d'Γ©cran | Analyse l'image + attend votre description vocale/texte |
| π€ Message vocal | Transcrit et analyse l'audio directement (Gemini natif) |
| βοΈ Texte | RΓ©pond aux questions Γ©crites |
| π Filtre PII | Bloque automatiquement les donnΓ©es bancaires / mots de passe |
| π RAG familial | Utilise la config de votre famille pour des rΓ©ponses prΓ©cises |
| π¨ Escalade | Vous alerte sur Telegram si le problΓ¨me dΓ©passe le niveau 1 |
| πΎ Contexte SQLite | Lie une photo Γ la question qui suit (jusqu'Γ 5 min) |
# Installer les dΓ©pendances
pip install -r requirements.txt
# Configurer
cp .env.example .env && nano .env
# Lancer
python -m bot.mainpytest tests/ -v- β ZΓ©ro rΓ©tention : les photos sont supprimΓ©es aprΓ¨s utilisation (5 min max)
- β Filtre PII : dΓ©tection d'IBAN, numΓ©ros de CB, mots de passe sur les images et dans le texte
- β Pas de conseils bancaires : escalade systΓ©matique pour tout ce qui touche aux finances
- β Secrets en env vars : aucun secret dans le code ou les fichiers versionnΓ©s
- Support WhatsApp (Twilio / Meta API)
- Interface d'administration web pour mettre Γ jour la knowledge base
- Résumé hebdomadaire des problèmes résolus
- Support multi-familles (configuration par utilisateur autorisΓ©)
- IntΓ©gration Mem0 pour une mΓ©moire long-terme par utilisateur
- Monitoring / alertes (Uptime Robot, Sentry)
Projet personnel β utilisation libre dans un contexte familial.