02-ce-que-je-construis/specs/ia-vitrine.md

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 :

  1. Interroger la doc via un standard agentique (MCP) — exposer la doc comme des outils utilisables par un client IA (Claude Desktop, Cursor
).
  2. Un chatbot RAG — poser des questions en langage naturel sur la doc, rĂ©utilisable d'un projet Ă  l'autre.
  3. 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-base retenu pour le MVP (bon FR, lĂ©ger sur CPU) ; BAAI/bge-m3 gardĂ© 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. telaria reste 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 MCP tlr-mcp) sont des bundles dĂ©diĂ©s, consommĂ©s par l'application telaria.
  • 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 tard validate_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, microservice tlr-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 /assistant et « 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 /docs livrĂ©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-vec vs 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Ă© dans ia-veille-sources.md), cadence, format d'Ă©criture dans pilotage/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.

Assistant documentaire

Posez une question sur la documentation. Les rĂ©ponses citent leurs sources — un clic ouvre le document Ă  gauche.

Loading…
Loading the web debug toolbar…
Attempt #