Low-Latency SSE Streaming Chatbot

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.

Python 3.11+ Async (ASGI) Server-Sent Events (SSE) FastAPI & Pydantic V2 Strict Sanitizer & Prompt Injection Defense Tenacity Exponential Backoff React + Vite UI Frontend FinOps Telemetry & Evals
Problématique & Performance

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.

Playground Interactif

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

⚠️
Environnement de Démonstration (Simulateur Mock Côté Client) : Ce site étant hébergé sur une infrastructure entièrement statique (GitHub Pages), ce playground est une émulation simulée (Mock Stream) reproduisant fidèlement les événements Server-Sent Events (SSE), la latence TTFT < 100ms, l'isolation des injections de prompt et le suivi FinOps. Aucune requête réseau en production vers un backend FastAPI actif n'est exécutée ici.
FastAPI SSE Chat Session (Mock)
Presets:
⚙️

System initialized: Asynchronous FastAPI SSE streaming endpoint connected (Mock Client Mode). Pick a preset or send a message.

Télémétrie & Paramètres

TTFT (Time To First Token) -- ms
Tokens / seconde -- t/s
Total Prompt Tokens 0
Total Completion Tokens 0
Est. Session Cost (USD) $0.000000
🛡️ Security Guardrail: Active (100% Sanitized)
Spécifications Techniques

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.