LITEOPSDOCS
Agents & SystèmesSailor

Chat documentaire

Interface de chat RAG avec citations de sources, historique de sessions et modes IA.

REF-SPEC/AG002-CHT v1.0 — 2026-04-09

1. Principe

Le chat documentaire est l'interface principale de Sailor. L'utilisateur pose une question en langage naturel, le système retrouve les chunks pertinents dans la base documentaire et génère une réponse avec les sources citées.

2. Pipeline de réponse

Question              Recherche            Construction          LLM                Réponse
utilisateur      ──▶  vectorielle     ──▶  contexte         ──▶ Mistral /     ──▶  + sources
(texte libre)         (top 8 chunks)       (sources + prompt      Ollama            citées
                      + fallback BM25      + historique)

Étapes détaillées

  1. Embedding de la question — La query est vectorisée avec input_type: "query"
  2. Recherche vectorielle — Similarité cosinus sur les chunks, top 8 résultats
  3. Fallback BM25 — Si pas d'embeddings disponibles, recherche lexicale avec pondération IDF
  4. Résolution des sources — Extraction des métadonnées document pour chaque chunk retenu
  5. Construction du contexte — Chunks formatés comme [Source X: "Titre"] contenu...
  6. Prompt système — Instructions : répondre uniquement depuis les sources, citer [[source:DOC_ID|TITRE]], français
  7. Appel LLM — Prompt système + contexte + historique (6 derniers messages) + question
  8. Extraction des citations — Parsing des marqueurs [[source:...]] dans la réponse
  9. Formatage — Réponse texte + tableau de sources avec métadonnées et pertinence

Format de réponse

{
  "response": "Réponse formatée en markdown...",
  "sources": [
    {
      "id": "doc-uuid",
      "title": "Procédure RH v2",
      "type": "pdf",
      "categorie": "Procédures",
      "auteur": "Direction RH",
      "relevance": 0.89
    }
  ],
  "chunks_used": 8,
  "ai_provider": "mistral"
}

3. Recherche hybride

Recherche vectorielle (primaire)

  • Embedding de la question via le même modèle que l'indexation
  • Similarité cosinus entre le vecteur question et les vecteurs chunks
  • Top 8 chunks retournés, triés par similarité décroissante

Recherche BM25 (fallback)

Activée automatiquement quand les chunks n'ont pas d'embeddings :

ComposantDescription
TokenisationLowercase, suppression accents, filtrage stop-words
TFFréquence du terme dans le chunk
IDFFréquence inverse du terme dans le workspace (cache invalidé à chaque ajout)
ScoringBM25 classique avec pondération TF-IDF

4. Système de citations

Chaque réponse cite ses sources via des badges cliquables :

ÉlémentDescription
Dot coloréCode couleur par type (PDF = orange, HTML = bleu, DOCX = vert, XLSX = doré)
Titre documentTronqué si nécessaire
LienClic ouvre le panel de prévisualisation du document
FallbackSi le LLM ne cite pas explicitement, les chunks utilisés sont ajoutés automatiquement (max 5)

5. Sessions de chat

Les conversations sont organisées en sessions persistantes :

AttributDescription
TitrePremiers 60 caractères du premier message
MessagesTableau JSON user/assistant
Historique injecté6 derniers messages dans le contexte LLM
TriPlus récentes en premier

Gestion

ActionComportement
Nouvelle conversationSession vierge, suggestions affichées
HistoriqueSlide-in depuis la gauche, liste complète
SupprimerSuppression définitive de la session

6. Modes IA

ModeLLMEmbeddingBasculement
OnlineMistral Large (fallback : Small)Mistral EmbedToggle sidebar
OfflineOllama Ministral 3BOllama nomic-embed-textToggle sidebar

La connectivité est vérifiée automatiquement toutes les 60 secondes avec fallback transparent vers le mode offline.

On this page