17. Inférence Distante

ECHO est conçu pour être aussi rapide et efficace que possible, sans pour autant saturer l'ordinateur qui l'héberge (le serveur). Pour y parvenir, il utilise une technologie appelée Edge Computing (ou inférence distante).

L'Alliance du Serveur et de Votre Ordinateur

Lorsque vous envoyez de grands documents à lire (comme des PDF ou des historiques longs), ECHO doit transformer et mémoriser chaque passage. Ce processus (appelé vectorisation) demande une importante puissance de calcul.

Au lieu de faire tout ce travail sur le serveur central, ECHO utilise la carte graphique (GPU) de l'ordinateur de bureau depuis lequel vous naviguez. Sur téléphone mobile ou tablette, le système préserve automatiquement votre batterie en laissant le serveur effectuer le calcul.

Avantages pour l'Utilisateur

⚙️ Dossier d'Ingénierie & Spécifications

Architecture de l'Edge Embedding Bridge (edge_embed_bridge_filter.py v1.26 & app.py v2.4)

Le pont d'inférence déporte le calcul des embeddings 1024D vers le navigateur Desktop via WebGPU / WebAssembly (WASM).

1. Bypass Mobile & Injection Desktop

Le filtre Inlet (priorité 2) inspecte l'en-tête User-Agent : sur terminal mobile, il court-circuite toute injection JavaScript pour forcer le fallback CPU immédiat. Sur Desktop, il injecte un module JS doté d'un HUD d'initialisation centré horizontalement sur la zone de chat (left: calc(50% + 125px) sur desktop pour compenser la sidebar Open WebUI) et d'un auto-reload sur changement de version, chargeant onnx-community/harrier-oss-v1-0.6b-ONNX (quantification q4f16) via Transformers.js.

2. Multiplexage Multi-Onglets & WebSocket (/ws/edge-embed)

Chaque onglet s'identifie auprès du concentrateur FastAPI (echo-embedding, port 7997, IP .30) avec un client_id UUID et signale son état de visibilité (visibility) dans le registre active_edge_clients (statuts connecting, active, incompatible).

3. Fallback CPU Asynchrone Instantané

Si le matériel client est incompatible (sendIncompatibleAndExit) ou si la connexion WebSocket est rompue, le worker annule immédiatement les asyncio.Future en attente (pending_edge_requests) et bascule sur l'inférence CPU locale propulsée par llama-cpp-python (modèle microsoft/Harrier-OSS-v1-0.6B, fichier harrier-oss-v1-0.6b.f16.gguf, MAX_LENGTH=4096) avec CLS Token Pooling (index 0) et normalisation L2.

← 16. Périphériques & Infra    18. Annexes Techniques →