Contextes & RAG — Guide utilisateur | YoBench
Comment utiliser le module « Contextes & RAG » dans YoBench : upload PDF/DOCX/XLSX, fournisseurs d'embeddings, recherche vectorielle LanceDB, intégration AI Chat.
À quoi sert le module « Contextes & RAG »
Le module transforme vos documents en bases de connaissances disponibles dans AI Chat. Vous créez un contexte, y chargez des fichiers (PDF, DOCX, XLSX, CSV, images) ou du texte ; le module découpe automatiquement le contenu en chunks, calcule les embeddings via le fournisseur choisi et stocke les vecteurs dans une LanceDB locale. Lors d'une requête, YoBench récupère les chunks les plus pertinents et les injecte dans le system prompt — le modèle répond depuis vos documents, pas seulement depuis ses connaissances générales.
Ce que vous obtenez :
- Bases de connaissances nommées — un contexte par projet/sujet.
- Formats supportés — PDF, DOCX, XLSX/XLS, CSV, TXT, MD, images (PNG, JPG, GIF, WebP). Images et PDF passent par l'OCR intégré ; XLSX/CSV sont convertis en texte plat par feuille.
- LanceDB locale — vecteurs sous
userData/lancedb/, une table par contexte (ctx_{id}). - Plusieurs fournisseurs d'embeddings — OpenAI, LM Studio, Ollama (tout endpoint compatible OpenAI). Exactement un est actif ; le changer marque tous les contextes comme
staleet lance la ré-indexation asynchrone. - Intégration AI Chat — les chunks pertinents sont injectés automatiquement au premier message utilisateur d'une conversation.
Structure des données
- Contexte —
name,embedding_provider_id,embedding_model(snapshot du modèle),vectorization_status(ready/stale/indexing/error). - Items — unités de contenu chargé : type (
text/file/image/module_ref),content, méta-fichier,chunk_count. - Vecteurs (LanceDB) — table
ctx_{id}avecitem_id,chunk_index,text,vector.
Fournisseurs d'embeddings
Dans Gestionnaire de contextes → Fournisseurs d'embeddings vous ajoutez un fournisseur :
- Nom — étiquette libre.
- Base URL — endpoint
/v1/embeddingscompatible OpenAI. Exemples :- OpenAI :
https://api.openai.com/v1, modèletext-embedding-3-small. - LM Studio (local) :
http://localhost:1234/v1, modèletext-embedding-nomic-embed-text-v1.5. - Ollama (local) :
http://localhost:11434/v1, modèlebge-m3.
- OpenAI :
- Clé API — si nécessaire (souvent vide pour les serveurs locaux).
- Modèle — nom du modèle d'embedding sur le serveur.
Un seul fournisseur est marqué actif — utilisé pour tous les contextes. Changer le fournisseur ou le modèle actif marque tous les contextes existants comme stale ; ils sont ré-indexés en arrière-plan.
Chunking et recherche
Les paramètres de chunking sont en dur dans le code :
- Découpage heading-aware — pour Markdown et texte structuré, le découpeur utilise les titres comme points de coupe pour qu'un chunk reste une unité sémantique. Pour le texte brut, il bascule sur des chunks de taille fixe.
- Chevauchement entre chunks adjacents — préserve le contexte à la frontière.
- Top-K à la recherche — 5 chunks par défaut par requête.
Ils ne sont pas exposés dans l'UI — calibrés pour les modèles courants.
Modes de recherche
Chaque session de chat choisit un de deux modes de recherche :
- Rapide (par défaut) — recherche hybride (vecteur + mot-clé) sur le contexte. Renvoie des résultats en une fraction de seconde ; idéal pour les questions courantes.
- Précis — la même recherche hybride, puis un reranker réordonne les meilleurs candidats par pertinence. Un peu plus lent, nettement meilleur sur les requêtes longues ou ambiguës.
Formats supportés
| Type | Ce que fait le module |
|---|---|
| OCR via le service intégré, extraction de texte par page. | |
| DOCX | Extraction de texte brut via mammoth. |
| XLSX, XLS, CSV | Feuilles converties en texte CSV et concaténées. |
| TXT, MD | Lus tels quels. |
| PNG, JPG, GIF, WebP | Reconnaissance de texte OCR sur l'image. |
Intégration AI Chat
Dans AI Chat vous choisissez un contexte pour la conversation. Au premier message utilisateur, le module :
- Envoie votre requête comme phrase de recherche à LanceDB.
- Récupère les top-K chunks du contexte.
- Les formate en bloc Markdown (
# Reference context: {name}+## [N] {title}+ texte du chunk). - Injecte le bloc dans le system prompt, avec en-tête et instructions.
Aux tours suivants, le retrieval ne se répète pas (le contexte est déjà dans le system prompt).
Retrieval ignoré quand :
- Le contexte est
indexing(pas prêt). - Aucun fournisseur d'embeddings actif n'est configuré.
- Le snapshot du modèle dans le contexte ne correspond pas à l'actif — attendre la fin de la ré-indexation.
Dans ces cas le chat continue de fonctionner, juste sans injection de contexte.
Réglages globaux
Pas de clés context* dédiées dans les réglages centraux — toute la configuration est en BD (tables embedding_providers et contexts). Géré depuis le module lui-même.
Flux d'utilisation
1. Branchez un fournisseur d'embeddings
- Ouvrez Gestionnaire de contextes depuis le menu de gauche.
- Allez dans Fournisseurs d'embeddings.
- Ajoutez un fournisseur : nom, Base URL, clé API, modèle.
- Marquez-le actif.
2. Créez un contexte
- Sur la page principale du module, cliquez sur Nouveau contexte.
- Nommez-le (par exemple « Doc produit », « Corpus juridique »).
- Enregistrez.
3. Chargez les documents
- Dans le contexte, cliquez sur Ajouter un fichier ou glissez un fichier.
- Formats : PDF, DOCX, XLSX, CSV, TXT, MD, PNG/JPG/GIF/WebP.
- Vous pouvez aussi coller du texte directement, ou brancher des articles depuis le module RSS.
- Attendez la fin de l'indexation (le badge passe à « Vecteurs à jour »).
4. Connectez le contexte à un chat
Dans AI Chat, choisissez le contexte dans les réglages de la session. Posez vos questions — le modèle répondra depuis vos documents.
5. Gérez le contexte
- Supprimer un élément — retirer un document précis du contexte.
- Ré-indexer — forcer la reconstruction des vecteurs.
- Supprimer le contexte — retire aussi sa table LanceDB.
Étapes suivantes
- Configurez les fournisseurs IA pour la génération des réponses.
- Utilisez le module RSS pour alimenter les contextes en articles.
- Le Web Parser peut scraper des sites en JSON que vous importez ensuite dans un contexte.
Aide et retour
Vous voulez des embeddings locaux par défaut ou un chunking configurable depuis l'UI ? Contactez-nous via le formulaire de retour.