Real-Time Asynchronous Web Chatbot
Application web de chat haute-concurrence et basse latence (TTFT < 100ms) basée sur FastAPI async (ASGI), streaming Server-Sent Events (SSE), garde-fous de sécurité Pydantic V2 et interface réactive React Vite.
Les 4 Piliers du Chatbot Temps Réel
Comment garantir une réponse instantanée, sécurisée et suivie financièrement
1. Latence & Streaming SSE
Boucle d'événements asynchrone non-bloquante (ASGI Uvicorn + AsyncOpenAI) diffusant les jetons via Server-Sent Events avec un Time-To-First-Token (TTFT) inférieur à 100ms.
2. Sécurité & Garde-Fous Pydantic V2
Sanitisation stricte des entrées utilisateur, neutralisation des attaques par injection de prompt et contrats de données validés via Pydantic V2 et Mypy 100% strict.
3. Résilience Tenacity & Disponibilité
Stratégie de retry automatique asynchrone avec backoff exponentiel (Tenacity) sur erreurs sockets HTTP 429 et 5xx pour une tolérance totale aux pannes réseau en amont.
4. Télémétrie FinOps & Suivi de Coûts
Comptage précis des jetons de prompt et de complétion en post-streaming pour calculer et afficher en temps réel le coût exact de chaque session de chat.
Simulateur de Stream Chat SSE & FinOps
Testez le comportement du streaming temps réel, la neutralisation de sécurité et la télémétrie
Télémétrie & Paramètres
Architecture System & Non-Blocking Specs
Invariants d'asynchronisme, streaming SSE, garde-fous de sécurité et métriques FinOps
┌─ Topology & Non-Blocking Data Flow
┌────────────────────────────────────────────────────────┐
│ REACT FRONTEND (Vite) │
│ [Optimistic UI] ──► [Fetch + ReadableStream] ──► UI │
└───────────────────────────┬────────────────────────────┘
│
1. POST /api/v1/chat │ 2. text/event-stream
(ChatPayload) │ (event: token | event: done)
▼
┌────────────────────────────────────────────────────────┐
│ FASTAPI BACKEND (ASGI) │
│ │
│ ┌──────────────┐ ┌────────────────┐ ┌──────────┐ │
│ │ Router/Auth │──►│ Input Guard │──►│ Streamer │ │
│ └──────────────┘ └────────────────┘ └────┬─────┘ │
└───────────────────────────────────────────────┼────────┘
│
3. Async Socket Stream│ (AsyncOpenAI)
▼
┌──────────────────────┐
│ Upstream LLM Client │
└──────────────────────┘
┌─ Stack Engineering & Architectural Invariants
| Composant / Layer | Technologie | Exigence & Invariant d'Architecture |
|---|---|---|
| Backend Core | Python 3.11+ / FastAPI |
ASGI event-loop scheduling, 100% Mypy --strict, zero blocking calls (time.sleep forbidden). |
| Client Async | AsyncOpenAI / httpx |
Client poulé unique initialisé dans le lifespan FastAPI (recyclage d'attente à la fermeture). |
| Transport Stream | Server-Sent Events (SSE) |
Header X-Accel-Buffering: no, TTFT < 100ms, événements typés (token, error, done). |
| Contrats & Schemas | Pydantic V2 Strict |
Data contracts immutables (frozen=True, extra="forbid"), validation per-chunk. |
| Sécurité & Prompt | Defensive Guardrails |
Sanitisation des entrées utilisateur, neutralisation des surcharges de prompt system et des payloads malveillants. |
| Résilience Sockets | Tenacity Backoff |
Retry exponentiel avec jitter à l'établissement socket (429/5xx), gestion du AbortController à la déconnexion. |
Ressources & Spécifications GitHub
Accédez directement aux spécifications architecturales brutes et au code source sur GitHub
Architecture Specifications
Spécifications techniques détaillées du streaming SSE, invariants asynchrones et gestion des exceptions.
Lire architecture.md (Raw) ↗Product Specifications
Exigences fonctionnelles, KPIs de performance (latence, concurrence) et contrats de garde-fous.
Lire specifications.md (Raw) ↗Executive Presentation
Présentation produit et executive summary démontrant la valeur métier et l'alignement AIPE.
Lire presentation.md (Raw) ↗Guide Code & Multi-Stage Docker
Guide d'onboarding, Makefile unifié et conteneurisation multi-stage non-root (< 250 MB).
Lire README.md (Raw) ↗