02-ce-que-je-construis/specs/ia-brief-microservice-embeddings.md

Brief de lancement — microservice d'embeddings (tlr-embeddings)

Destiné à l'instance qui codera le microservice Python d'embeddings. À utiliser comme message d'ouverture (ou à lire en premier) dans le dépôt du microservice. Nom de dépôt : tlr-embeddings (ex-telaria-embeddings, renommé en Batch 1 ; convention tlr-*). Statut : brief de coordination.


RĂ´le

Coder un microservice Python d'embeddings, composant du socle IA de Codexia. Dépôt Python autonome (aucun PHP ici), déployable séparément.

Docs de référence (lecture seule, dans telaria-doc)

Décisions actées (ne pas re-litiger)

  • Stack : FastAPI + sentence-transformers + uvicorn.
  • Modèle : intfloat/multilingual-e5-base (multilingue FR, lĂ©ger CPU).
  • Endpoints :
    • GET /health → { "status":"ok", "model":…, "dim":768 }
    • POST /embed → req { "type":"query"|"passage", "texts":[…] } ; res { "model":…, "dim":768, "vectors":[[…]] }
  • PrĂ©fixes e5 (query: / passage: ) gĂ©rĂ©s cĂ´tĂ© service selon type. normalize_embeddings=True (cosinus).
  • Service stateless, bind 127.0.0.1 (pas d'exposition publique), modèle chargĂ© une seule fois au dĂ©marrage.
  • DĂ©ployable sĂ©parĂ©ment (systemd). Versions figĂ©es (requirements.txt).

Périmètre V1 (uniquement)

Le microservice (/health, /embed) + tests + requirements.txt + README. Hors périmètre : le côté Symfony, l'index sqlite-vec (autres lots).

Contraintes

  • VPS CPU-only : l'embedding d'une requĂŞte doit rester rapide ; l'indexation en batch est gĂ©rĂ©e par l'appelant.
  • Le service est consommĂ© en HTTP par le bundle « cĹ“ur RAG » Symfony → le contrat doit matcher ia-coeur.md §4.1 au caractère près.

Économie de quota

  • Travailler en Sonnet (tout est dĂ©jĂ  cadrĂ© par la spec/tuto) — ou sur une clĂ© API dĂ©diĂ©e. ItĂ©rations serrĂ©es, pas de sur-exploration.

Coordination

  • Lecture seule sur telaria-doc.
  • Question / Ă©volution du contrat destinĂ©e Ă  l'Ă©quipe doc → dĂ©poser une note dans …/.claude/projects/C--src-telaria-doc/memory/inbox-from-embeddings.md.

Première action

Lire les 3 docs ci-dessus, puis proposer l'arborescence du dépôt + app.py conforme au contrat §4.1, et valider avant d'aller plus loin.


Implémentation

Aspect Localisation
Dépôt tlr-embeddings (Python autonome, ex-telaria-embeddings)
Stack FastAPI + sentence-transformers + uvicorn
Modèle intfloat/multilingual-e5-base (dimension 768)
Endpoints GET /health, POST /embed
Déploiement systemd sur VPS, bind 127.0.0.1:8001
Config côté Symfony Variable RAG_EMBEDDING_URL dans telaria-app (pointe vers ce service)

Historique des décisions

Version Date Décision
1.0 2026-06-14 Version initiale — première formalisation du versioning des specs.
— 2026-05-25 Stack figée : FastAPI + intfloat/multilingual-e5-base, stateless, versions figées dans requirements.txt. Contrat HTTP défini dans ia-coeur.md §4.1 (source de vérité).

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 #