🤖
La stack d'une app IA en production
Rétro-engineering pédagogique d'un copilot B2B réel (djust-copilot) : Python strict, FastAPI async, RLS multi-tenant, recherche hybride pgvector, SDK LLM natifs, LangChain, LangGraph, Langfuse, AG-UI.
Navigation libre — pioche la section qui t'intéresse.
0 % terminé
00Orientation La carte du système — ce que fait le copilot et comment les briques s'assemblent.
01Python moderne, version stricte Typing, Protocols, asyncio, Pydantic v2 et l'outillage uv/ruff/mypy du projet.
02FastAPI, assemblé proprement App factory, lifespan, injection par app.state, et le streaming SSE côté serveur.
03PostgreSQL avancé SQLAlchemy async, l'isolation RLS multi-tenant, la recherche hybride pgvector — et la qualité du matching.
04LLM au SDK natif Streaming Anthropic, prompt caching, structured output, et la boucle ReAct maison.
05LangChain Les abstractions du framework — et pourquoi ce projet n'en garde que le socle.
06LangGraph StateGraph, subgraphs, streaming, checkpointer Postgres et human-in-the-loop.
07Langfuse La fiche technique — observer chaque prompt, chaque token, chaque node.
08Front & ops Nuxt 4, le protocole AG-UI, l'UI générative — et la CI qui tient tout.
09Ingestion & documents Du mail entrant au JSON structuré — polling, dédup DB, parsing, OCR et connectors.
10Jobs, Redis & résilience Des jobs durables sans Celery, et deux stores pour deux promesses différentes.
11Sécurité & auth JWT/JWKS en profondeur, secrets chiffrés, et la défense en profondeur du SQL aux headers.
JWT, JWKS et la résolution du tenant15 minSecrets et défense en profondeur13 minVisibilité par utilisateur : étendre la RLS15 minLa visibilité qui s'hérite (pourquoi RLS gagne)14 minPropriétaire vs auteur : la visibilité multi-source11 minCycle de vie d'un utilisateur : invitation, activation, désactivation12 min