6. Communication Gemini

Cette section présente les mécanismes d'authentification et de résilience réseau permettant à ECHO d'interagir avec les modèles de langage distants sans interruption de service.

1. Connexion Multi-Sources et Authentification

Pour dialoguer avec les modèles d'intelligence artificielle, ECHO s'appuie sur une hiérarchie de fournisseurs d'accès. Vous pouvez utiliser votre abonnement Google via une connexion sécurisée directe (OAuth2) ou renseigner une à deux clés d'API AI Studio en solution principale ou de secours.

Lors de la toute première utilisation sans clé préconfigurée, ECHO affiche directement dans le chat un lien d'autorisation sécurisé à usage unique. Une fois le compte validé dans votre navigateur, vos jetons d'accès sont chiffrés et renouvelés automatiquement en tâche de fond.

2. Continuité de Service et Repli Automatique

Les serveurs de modèles de langage peuvent parfois connaître des pics de charge. ECHO intègre un coupe-circuit intelligent qui surveille la disponibilité de chaque point d'accès en temps réel :

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

1. Priorité des Identités d'Accès (EchoAuth.get_ordered_auth_providers())

  1. OAuth2 (API native Code Assist, google_oauth2) : prioritaire, flux Authorization Code + PKCE (RFC 7636) via tunnel SSH éphémère (asyncssh sur les ports exposés 8020–8024 et callback loopback interne 8025–8034). Rafraîchissement proactif à 3 300 s (55 min) et routage sur le tenant global aicode-consumers.
  2. Clé API primaire (google_api_key) : Google AI Studio (format AIza… ou AQ.…).
  3. Clé API secondaire (google_api_key_secondary) : fallback de secours AI Studio.

2. Registre Cognitif Unifié Dual-Backend (ECHO_MODELS_REGISTRY)

Identifiant Abstrait Hiérarchie Backend AI Studio (ai_studio_id) Backend Code Assist (ca_model_id) Thinking Level
MODEL_PROMETHEUS 2 gemini-4-argon gemini-4-argon-high medium (nominal) / high (cascade 429)
MODEL_APOLLO 1 gemini-3.8-flash gemini-3.8-flash-high high
MODEL_ZEPHYR 0 gemini-3.5-flash-lite gemini-3.5-flash-lite medium
MODEL_DISTILLATION None gemini-3.5-flash-lite gemini-3.5-flash-lite low (temp=0.0)

3. Client HTTP/2, Cascade Cognitive & Circuit Breaker OAuth2 (EchoGeminiClient)

  • Multiplexage HTTP/2 : Connexion persistante via httpx.AsyncClient(http2=True) (ECHO_HTTP_CLIENT_TIMEOUT = 600s), streaming Base64 Zéro-RAM par blocs de 3 Mo et normalisation stricte en camelCase (inlineData, functionDeclarations, functionCallingConfig).
  • Cascade Cognitive & Distillation : Lors d'une cascade descendante consécutive à un échec API (429/503), get_generation_config(..., is_fallback_cascade=True) force thinkingLevel: "high" sur le modèle de repli pour compenser la réduction de palier, tandis qu'une transition cognitive volontaire (new_cognitive_level) ou un clamping initial préserve le niveau nominal. En outre, l'utilitaire call_distillation filtre strictement les blocs de pensée (if not p.get("thought")) lors de l'extraction de la réponse textuelle.
  • Fast-Failover Intra-Retry : Lors d'une erreur HTTP 401, 420, 429 ou 503 en OAuth2, le client verrouille immédiatement l'endpoint fautif via state_mgr.lock_agy_endpoint (pendant ECHO_ENDPOINT_LOCK_TIMEOUT_MIN = 2 min) et pivote sans délai sur l'URL saine du pool AGY_BASE_URLS (Prod / Daily Canary) avant d'appliquer le backoff exponentiel (ECHO_RETRY_BASE_DELAY = 3.0s, ECHO_RETRY_MULTIPLIER = 1.5, ECHO_API_MAX_RETRIES = 5, ECHO_API_KEY_RETRIES = 2).
← 5. High-Level Design (HLD)    7. Écosystème HUD & UI →