Agents & SystèmesPacemaker
Base documentaire
Upload, chunking et recherche semantique RAG pour enrichir automatiquement les prompts LLM.
REF-SPEC/PM-005 v1.0 — 2026-04-05
1. Principe
Pacemaker dispose d'une base documentaire RAG (Retrieval-Augmented Generation). Tout document uploade est decoupe en chunks, embedde par Voyage AI, et stocke dans Turso. Lors de chaque generation LLM, les chunks pertinents sont automatiquement injectes dans le prompt.
2. Types de documents
| Type | Exemples |
|---|---|
| Compte-rendu | CR de reunion, notes de cadrage |
| Specification | Cahier des charges, spec technique |
| Referentiel | Nomenclatures, glossaires, organigrammes |
| Livrable | Documents produits par l'app |
| Autre | Tout document texte pertinent |
3. Pipeline d'indexation
Upload document ──▶ Chunking ──▶ Embedding ──▶ Stockage
(texte ou fichier) (~500 tokens, (Voyage AI (doc_chunks
overlap 50, voyage-3, + F32_BLOB
sentence-aware) 1024 dims) dans Turso)Chunking
Le decoupage respecte les frontieres de phrases :
- Taille cible : ~500 tokens par chunk
- Overlap : 50 tokens entre chunks consecutifs
- Le chunking ne coupe jamais au milieu d'une phrase
Embedding
Chaque chunk est embedde via Voyage AI :
- Modele :
voyage-3 - Dimensions : 1024
- Input type :
"document"a l'indexation,"query"a la recherche - Batch : jusqu'a 128 chunks par appel
4. Recherche semantique
La recherche utilise vector_distance_cos de libsql-vector :
SELECT content, vector_distance_cos(embedding, ?) AS distance
FROM doc_chunks
ORDER BY distance ASC
LIMIT ?Seuils de pertinence
| Contexte | Seuil distance |
|---|---|
| Semaine concernee | 0.75 |
| Autre semaine | 0.70 |
5. Injection dans les prompts
La fonction getRelevantContext(query, weekId) :
- Embedde la requete (input type
"query") - Recherche les chunks les plus proches dans
doc_chunks - Filtre par seuil de distance
- Formate un bloc contextuel :
=== CONTEXTE DOCUMENTAIRE PERTINENT (RAG) ===
[Source: titre_document]
contenu du chunk pertinent...
===Ce bloc est injecte en tete de chaque prompt LLM (generation de taches, parsing CR, recalibration, livrables).
6. Interface
| Element | Description |
|---|---|
| Upload | Zone drag-and-drop + bouton fichier |
| Liste | Cards documents avec titre, type, date, nombre de chunks |
| Recherche | Barre de recherche semantique (debounce 500ms) |
| Detail | Modale avec contenu complet du document |
| Suppression | Supprime le document et tous ses chunks |