4. Le Filtre (Conscience Périphérique)
Le new_context_filter.py (v6.60) constitue la Gateway Cognitive d'ECHO. Positionné en amont du Pipe, il intercepte, analyse et transmute chaque signal entrant en un "Draft" sémantique haute fidélité. Sa mission est de préparer un terrain bit-perfect pour la suture neuronale.
self.file_handler = True. Ce réglage critique désactive l'unité de Retrieval (RAG) native d'Open WebUI, transférant l'intégralité de la gestion documentaire à la logique propriétaire d'ECHO.
Smart Context 3.0 : L'Aiguillage Multimodal
ECHO n'injecte pas les fichiers aveuglément. Il pratique une analyse granulaire pilotée par la fonction _process_file_task, capable de traiter les fichiers en parallèle avec un contrôle de flux strict.
1. L'Algorithme de Décision (Quadruple Flux)
Chaque fichier subit une évaluation basée sur son type MIME et sa taille réelle (Valve MAX_DIRECT_TEXT_SIZE fixée à 256 Ko).
| Flux | Conditions | Action ECHO |
|---|---|---|
| Binaire Direct | Image/Audio/Vidéo/PDF < 256 Ko | Encapsulation Base64 (inlineData) native. |
| Injection Texte | Texte/Code < 256 Ko | Insertion brute dans un bloc Markdown Code. |
| Smart Context | Document Volumineux (> 256 Ko) | Distillation via Gemini Flash (Résumé technique). |
| Indexation | Format non supporté par Gemini | Marquage simple dans le registre (Fallback). |
2. Moteur de Sniffing MIME (ECHO-Logic)
Le protocole get_gemini_mime assure une identification robuste là où les systèmes standards échouent :
- Phase 1 : Mappings ECHO : Reconnaissance immédiate des formats de développement (
.py,.sh,.ts, etc.). - Phase 2 : Magic Number Sniffing : Analyse de la signature binaire via
filetypepour les fichiers sans extension. - Phase 3 : Null-Byte Sniffing (Text-Sniffing) : Si aucun caractère nul (
\x00) n'est détecté dans les 1024 premiers octets, le fichier est forcé entext/plain, autorisant l'IA à analyser du code source exotique.
3. Moulage Sémantique (Smart Context)
Pour les documents massifs, le Filtre invoque Gemini Flash de manière autonome avec une systemInstruction chirurgicale : "Tu es l'unité de prétraitement contextuel d'ECHO. Produire un résumé technique exhaustif, identifier la structure, le but et les points clefs." Le résultat est injecté dans le Draft avec le statut summarized.
Authentification Stealth : Le Coffre-Fort Temporaire
Le filtre assure la sécurité des identifiants sans jamais les exposer à l'interface utilisateur.
- Interception : Le filtre surveille l'état
ECHO_SESSION_AUTH_PENDING. Toute chaîne capturée parGOOGLE_API_KEY_REGEXest extraite du message. - Masquage UI : Le message complet de l'utilisateur est remplacé par :
🔐 *Vérification des clés API Google en cours...* - Handover : La clé brute est passée au Pipe via
body["_api_key"]. C'est le Pipe qui validera et scellera la clé dans la base de donnéesidentity.dbvia l'AuthService.
Architecture du Draft & Cycle de Vie
Contrairement aux filtres standards, ECHO ne modifie pas directement le contenu du message en phase Inlet. Il construit un Draft complexe dans les métadonnées.
Génération Draft
_echo_user_parts_draft
Suture & Scellement DB
Le Manifeste de Vérité : etat_echo
Le bloc JSON injecté au sommet du Draft est le pivot de la coordination cognitive. Il contient les placeholders ##MODEL_ID## et ##MODEL_ORIGIN##, qui seront résolus dynamiquement par le Pipe au moment de la reconstruction du contexte.
{
"version_framework_echo": "##ECHO_VERSION##",
"modèle_actuel": "##MODEL_ID##",
"modèle_origine": "##MODEL_ORIGIN##",
"nom_utilisateur": "...",
"date_et_heure": "2026-04-03 12:00",
"localisation": "Paris, France",
"timezone": "Europe/Paris",
"registre_fichiers": {
"source.py": { "id": "F1", "mime": "text/plain", "statut": "transmitted" }
}
}
Smart Memory : La Conscience Persistante
Le conversation_memory_filter.py (v1.4) gère la mémoire à long terme d'ECHO en phase Outlet.
- Distillation : Si le seuil minimal de messages est atteint, une tâche asynchrone est lancée. Gemini Flash-Lite résume la conversation en un JSON technique dense.
- Vectorisation : Le résumé est transformé en vecteurs par Gemini Embedding-2.
- Stockage Qdrant : Le "souvenir sémantique" est ancré dans la collection
echo_memory, prêt à être rappelé par les outils de recherche de mémoire. - Probabilisme : Pour optimiser les ressources, le déclenchement est soumis à la valve
TRIGGER_PROBABILITY.
Sécurité Outlet : Masquage Chirurgical
En phase Outlet (post-génération), le filtre applique un balayage final via Regex pour s'assurer qu'aucune clé API ou secret technique ne "fuit" dans l'interface visuelle, même en cas de comportement erratique du modèle. Toute clé détectée est remplacée par la mention stricte : [CLÉ API GOOGLE MASQUÉE PAR SÉCURITÉ].