Vitrine IA â cadre et architecture
Expression de besoin et cadrage de l'initiative « IA » de Codexia : exploiter la base documentaire par l'IA, l'interroger, et automatiser la veille. Statut : brouillon de cadrage (doc-design). Document vivant.
1. Contexte et objectif
Codexia est une vitrine de savoir-faire. Le sujet du moment Ă©tant l'IA, cette initiative vise Ă dĂ©montrer la maĂźtrise professionnelle de l'IA : non pas un produit marchand, mais la preuve qu'on sait concevoir, mettre en Ćuvre et encadrer des outils IA de bout en bout.
Besoin métier : faire de la documentation Markdown de Codexia une base de connaissance exploitée par l'IA, selon trois usages :
- Interroger la doc via un standard agentique (MCP) â exposer la doc comme des outils utilisables par un client IA (Claude Desktop, CursorâŠ).
- Un chatbot RAG â poser des questions en langage naturel sur la doc, rĂ©utilisable d'un projet Ă l'autre.
- Une veille automatisĂ©e â agents planifiĂ©s qui suivent l'actualitĂ© (IA, dev web, qualitĂ©, juridique) et alimentent
pilotage/veille/.
Cadre d'usage initial : dĂ©mos rĂ©alisĂ©es par l'auteur lui-mĂȘme, pas d'accĂšs public au dĂ©marrage. La latence est donc justifiable en dĂ©mo, et le volume de requĂȘtes reste faible.
Hors périmÚtre (mis en pause) : recherche site / CRUD / fonctionnalités web « classiques ». Les fondations existantes (i18n, compte utilisateur) sont jugées suffisantes pour l'instant.
2. Principes directeurs
- Capitaliser l'existant : cette initiative consolide des specs déjà avancées plutÎt que de repartir de zéro (voir §8).
- Un cĆur, trois surfaces : une seule pile de connaissance rĂ©utilisĂ©e par les trois usages (pas trois piles sĂ©parĂ©es).
- KISS et pérennité : périmÚtre petit assumé ; un composant propre et sûr vaut mieux qu'une usine.
- Cohérence vitrine : Symfony-natif autant que possible (montrer qu'on construit, pas seulement qu'on cùble du SaaS).
- Garde-fous IA de série : citations systématiques des sources, jamais de sortie présentée comme faisant autorité (surtout juridique). Voir §7.
- Accessibilité RGAA AA et conventions du dépÎt (
AGENTS.md) appliquĂ©es aux interfaces produites. - Doc qui s'enrichit par la pratique : tout concept technique introduit ici doit ĂȘtre expliquĂ© par ailleurs â tuto (pas-Ă -pas) ou fiche (synthĂšse) dĂ©diĂ©e. La doc-design alimente la base de connaissance. Voir §11.
3. Décisions actées
- Génération LLM : Claude via API (qualité, on-brand pour la vitrine), avec prompt caching pour maßtriser le coût.
- Embeddings : locaux et multilingues â
intfloat/multilingual-e5-baseretenu pour le MVP (bon FR, léger sur CPU) ;BAAI/bge-m3gardé en option « retrieval hybride dense + lexical » pour une démo plus poussée. Gratuit, indépendant d'un second fournisseur, calculés à l'indexation (hors-ligne). - Retrieval léger : stockage vectoriel SQLite +
sqlite-vec(ou équivalent embarqué). Pas d'OpenSearch /telaria-search(mis en pause). - Stratégie « hybride » (embeddings locaux + génération API) retenue : meilleur compromis coût/qualité et meilleure démonstration (toute la pile RAG, pas seulement l'appel d'API).
- Exécution des embeddings : microservice Python (FastAPI + sentence-transformers), appelé en HTTP par Symfony. Choix assumé d'introduire Python à cÎté de PHP (montée en compétence et valeur CV, écosystÚme IA).
- Forme du code : bundle(s) Symfony rĂ©utilisable(s) â la rĂ©utilisabilitĂ© multi-projets est dĂ©jĂ une exigence (spec MCP multi-tenant) et le surcoĂ»t est faible si fait dĂšs le dĂ©part.
telariareste l'application hÎte/consommatrice. - Topologie des dépÎts : le microservice d'embeddings = dépÎt Python distinct
tlr-embeddings(dĂ©ployable indĂ©pendamment) ; les composants Symfony (cĆur RAG, serveur MCPtlr-mcp) sont des bundles dĂ©diĂ©s, consommĂ©s par l'applicationtelaria. - Nommage : umbrella
tlr-mcp(produit multi-tenant,mcp.telaria.dev), Codexia = tenant/consommateur. - Ordre des lots : L0 (cĆur) â L1 (MCP V1 lecture seule) confirmĂ©.
- Premier livrable : ce document cadre, avant le détail de chaque surface.
Contrainte structurante : le VPS est CPU-only (6 vCPU, 12 Go RAM, pas de GPU â cf.
pilotage/veille/). D'oĂč le choix d'externaliser la gĂ©nĂ©ration et de garder le local pour l'indexation/retrieval.
4. Architecture cible : un cĆur, trois surfaces
âââââââââââââââââââââââââââââââââââââââââ
â SURFACES (usages) â
â â
Client agent ââââââââ¶â 1. MCP server (outils sur la doc) â
(Claude/Cursor) â â
Navigateur ââââââââ¶â 2. Chatbot RAG (Q/R web) â
(dĂ©mo perso) â â
Planificateur ââââââââ¶â 3. Veille agentique (pipeline auto) â
(cron/scheduler) âââââââââââââââââââââŹââââââââââââââââââââââ
â
âââââââââââââââââââââŒââââââââââââââââââââââ
â CĆUR â
â Ingestion .md â dĂ©coupage (chunks) â
â â embeddings (local, multilingue) â
â â index vectoriel (sqlite-vec) â
â â service de rĂ©cupĂ©ration (retrieval) â
â â port LLM (gĂ©nĂ©ration via Claude) â
ââââââââââââââââââââââââââââââââââââââââââââ
4.1 Le cĆur (socle commun)
- Ingestion : parcours des
.md(doc Codexia, et plus tard sources externes), découpage en chunks avec métadonnées (chemin, titre, section, date). - Embeddings : vectorisation locale des chunks (batch, à l'indexation).
- Index : stockage vectoriel embarqué + recherche par similarité (k plus proches voisins), éventuellement hybride lexical + vectoriel.
- Retrieval : service qui, pour une requĂȘte, renvoie les passages pertinents + leurs sources.
- Port LLM : abstraction d'appel au modÚle de génération (Claude), avec injection du contexte récupéré et prompt caching.
4.2 Surface 1 â MCP (diffĂ©renciateur)
Expose la doc comme outils Ă un client agentique, via le standard MCP d'Anthropic.
- V1 lecture seule :
search_docs,read_doc,list_docs(et plus tardvalidate_markdown,check_links,draft_*). - RĂ©utilise le retrieval du cĆur.
- Valeur : interopérabilité agentique, doc actionnable, réutilisable multi-projets (specs déjà multi-tenant).
4.3 Surface 2 â Chatbot RAG (dĂ©mo visible)
Interface web de questions/réponses sur la doc.
- Flux : question â retrieval (cĆur) â prompt + contexte â gĂ©nĂ©ration Claude â rĂ©ponse avec citations des sources.
- Réutilisable pour de futurs projets (modÚle multi-projets).
- Front : Symfony/Twig ; amélioration progressive cÎté JS pour le confort de chat (streaming) sans casser l'accessibilité.
4.4 Surface 3 â Veille agentique
Pipeline planifié qui alimente pilotage/veille/.
- Flux : sources (RSS / sites officiels) â rĂ©cupĂ©ration â rĂ©sumĂ© LLM â dĂ©duplication / classification par thĂšme â Ă©criture (proposition) dans la veille.
- ThÚmes : IA, dev web, qualité, juridique (RGPD/CNIL, AI Act/EUR-Lex).
- Implémentation Symfony-native (Scheduler + Messenger) plutÎt que SaaS no-code.
5. PérimÚtre V1 (MVP) et hors-périmÚtre
| Surface | MVP V1 | Hors V1 (plus tard) |
|---|---|---|
| CĆur | Ingestion doc Codexia + embeddings + retrieval | Sources multiples, rĂ©-indexation incrĂ©mentale |
| MCP | 3 outils lecture seule sur la doc | Ăcriture/patch, workflows de validation, multi-tenant complet |
| Chatbot | Q/R sur la doc avec citations | Historique multi-sessions, comptes, multi-projets |
| Veille | 1 thĂšme pilote (IA) bout-en-bout | Tous thĂšmes, classification fine, tableau de bord |
6. Contraintes
- Infra : VPS CPU-only â gĂ©nĂ©ration externalisĂ©e, indexation locale acceptable (batch).
- Coût : minimisé par embeddings locaux + prompt caching ; quotas à définir.
- Accessibilité : interfaces produites conformes RGAA 4.1 AA.
- RGPD : la doc ne contient pas de données personnelles de tiers ; risque faible. à surveiller si des sources externes en introduisent.
- Sources : toute réponse/synthÚse cite ses sources avec liens valides (rÚgle
AGENTS.md).
7. Garde-fous IA (obligatoires)
- Hallucinations : réponses ancrées sur le contexte récupéré ; afficher les passages sources ; signaler quand la doc ne couvre pas la question. Voir fiche 6.1.
- AutoritĂ© juridique : la veille juridique ne fait jamais autoritĂ© â elle pointe vers les textes officiels (CNIL, EUR-Lex).
- RAG bien fait : cf. fiche 4.3 (RAG, méta-prompts).
- Agents et automatisation : cadrage des actions autonomes, cf. fiche 4.5.
- Déploiement : arbitrages cloud/API/local, cf. fiche 2.5.
8. Consolidation documentaire requise
Cette initiative a remis de l'ordre dans des docs IA dispersées :
- La spec MCP de référence est désormais
ia-mcp.md(L1), qui a absorbé les anciennes specs source (gouvernance, multi-tenant). - Le détail technique du serveur reste dans
bundles/tlr-mcp.md+bundles/tlr-mcp/*.
Nommage (validĂ©) : umbrella tlr-mcp (produit multi-tenant, mcp.telaria.dev), Codexia Ă©tant consommateur/tenant. Le cĆur RAG et le chatbot sont des composants Telaria rĂ©utilisables (bundles), configurĂ©s cĂŽtĂ© Codexia. La fusion en une spec MCP unique est rĂ©alisĂ©e : ia-mcp.md (L1).
9. Découpage en lots (proposition)
- L0 â CĆur : ingestion + embeddings locaux + index + retrieval (testable en CLI).
- L1 â MCP V1 : 3 outils lecture seule au-dessus du cĆur, branchĂ©s sur un client agent.
- L2 â Chatbot RAG : UI web + gĂ©nĂ©ration Claude + citations.
- L3 â Veille V1 : pipeline 1 thĂšme (IA) bout-en-bout.
Chaque lot fait l'objet d'une spec dĂ©diĂ©e (specs/ia-*.md). RĂ©digĂ©s : Lot 0 â CĆur : ia-coeur.md ; Lot 1 â MCP : ia-mcp.md ; Lot 2 â Chatbot : ia-chatbot.md ; Lot 3 â Veille : ia-veille.md. Les 4 lots sont spĂ©cifiĂ©s.
10. Ătat des dĂ©cisions
Ătat d'implĂ©mentation (2026-06-04) : les 4 lots sont livrĂ©s et en prod (telaria.dev).
- L0 â CĆur RAG : validĂ© en prod (
telaria/rag-bundle v0.1.3, microservicetlr-embeddings). - L1 â MCP V1 :
telaria/mcp-bundle v0.1.3(3 outils lecture seule), intĂ©grĂ© Ătelaria v0.5.0(Phase 7). - L2 â Chatbot RAG : livrĂ© sous deux surfaces â page dĂ©mo
/assistantet « le chat » embarquĂ© dans le viewer/docs(cf.ia-chatbot.md). - L3 â Veille agentique : pipeline en prod (
telaria v0.5.0: diagnostic, standby, import CSV). - + Surface documentaire
/docslivrée (viewer + rendu accessible, cf.docs-web.md).
DĂ©cisions cadre tranchĂ©es (voir §3) : stratĂ©gie LLM hybride, modĂšle d'embeddings (multilingual-e5-base, bge-m3 en option), microservice Python, forme bundle, nommage tlr-mcp, ordre L0 â L1.
Points fins à préciser dans la spec du lot concerné (pas avant) :
- CĆur (L0) : taille des chunks et chevauchement,
sqlite-vecvs alternative, contrat HTTP du microservice d'embeddings, schéma d'index. - MCP (L1) : liste exacte des outils V1 et schémas JSON, transport (stdio vs HTTP), client de démo.
- Chatbot (L2) : politique de prompt caching, format des citations, amélioration progressive du front.
- Veille (L3) :
sources du thÚme pilote(catalogue figé dansia-veille-sources.md), cadence, format d'écriture danspilotage/veille/, monitoring des flux communautaires, filtrage arXiv, calibrage seuil Hacker News.
11. Production documentaire d'accompagnement
Principe (cf. §2) : chaque concept technique introduit donne lieu à un tuto et/ou une fiche, produits avec la spec du lot correspondant. à constituer au fil des lots :
| Concept | Forme | Emplacement visé | Lot |
|---|---|---|---|
| Embeddings & similarité vectorielle | Fiche + tuto | agents/, tutos/ia/ |
L0 |
| RAG par la pratique (s'appuie sur la fiche 4.3) | Tuto | tutos/ia/ |
L0/L2 |
| Microservice Python d'inférence (FastAPI + sentence-transformers) | Tuto | tutos/ia/ |
L0 |
Index vectoriel SQLite (sqlite-vec) |
Tuto/fiche | tutos/ia/, agents/ |
L0 |
Serveur MCP en Symfony (complĂšte tutos/ia/mcp-vps.md) |
Tuto + fiche | tutos/ia/, agents/ |
L1 |
| Veille agentique (Scheduler + Messenger) | Tuto | tutos/ia/ |
L3 |
Documents liés
- Spec MCP de référence :
ia-mcp.md - Détail technique du serveur :
bundles/tlr-mcp.md - Guide IA (concepts, Ollama, MCP, VRAM) :
guides/ia.md - Veille « IA dans Codexia » :
pilotage/veille/README.md - Base de connaissance IA (59 fiches) :
agents/toc.md
Implémentation
| Aspect | Localisation |
|---|---|
| Transverse â 4 lots | L0 cĆur RAG (telaria/rag-bundle v0.1.3), L1 MCP (telaria/mcp-bundle v0.1.3), L2 chatbot (App\Chat dans telaria-app), L3 veille (src/Veille/ dans telaria-app) |
| Surface documentaire | Viewer /docs livré (cf. docs-web.md) |
| Microservice embeddings | tlr-embeddings (Python, intfloat/multilingual-e5-base) |
| Infra | VPS CPU-only, 6 vCPU, 12 Go RAM, 127.0.0.1:8001 pour le microservice |
Historique des décisions
| Version | Date | Décision |
|---|---|---|
| 1.0 | 2026-06-14 | Version initiale â premiĂšre formalisation du versioning des specs. |
| â | 2026-06-04 | Les 4 lots sont livrĂ©s et en prod (telaria.dev). |
| â | 2026-05-28 | DĂ©cisions cadre actĂ©es : stratĂ©gie hybride (embeddings locaux + gĂ©nĂ©ration API Claude), modĂšle multilingual-e5-base, microservice Python distinct, bundles Symfony, nommage tlr-mcp, ordre L0 â L1 â L2 â L3. |
| â | 2026-05-28 | SQLite + sqlite-vec retenu pour l'index vectoriel. OpenSearch/telaria-search mis en pause. |