Tutoriel Développeur : Moteur RAG & Embeddings avec ChromaDB
La génération augmentée par la recherche (RAG) est le modèle d’architecture le plus populaire pour connecter un LLM aux documents de votre entreprise.
Dans ce guide technique, nous construisons un pipeline RAG 100% local en utilisant ChromaDB et Yevi Core v1.0 (Licence MIT) (consulter le guide théorique sur RAG vs Fine-Tuning).
Architecture du Pipeline Yevi Core v1.0
Section intitulée « Architecture du Pipeline Yevi Core v1.0 »[ Documents Markdown / PDF ] │ ▼ (Chunking Sémantique : 512 tokens / Tokenizer Français)[ Blocs de Textes + Anonymisation RAM Vault ] │ ▼ (Embeddings Hybrides : Dense + BM25 Sparse avec Reciprocal Rank Fusion)[ Base Vectorielle ChromaDB Local ] │ ▼ (Recherche de Proximité & Citations is_grounded)[ Top K Paragraphes Pertinents ] ──> [ Prompt LLM Local (vLLM/Ollama) ] ──> Réponse SourcéeImplémentation en Python avec Yevi Engine
Section intitulée « Implémentation en Python avec Yevi Engine »import chromadbfrom chromadb.utils import embedding_functions
# 1. Initialiser ChromaDB en local (Yevi Engine)client = chromadb.PersistentClient(path="./chroma_db")
# 2. Utiliser un modèle d'embedding localdefault_ef = embedding_functions.DefaultEmbeddingFunction()
collection = client.get_or_create_collection( name="documentation_interne", embedding_function=default_ef)
# 3. Ajouter des documents dans la base vectoriellecollection.add( documents=[ "Le délai de préavis pour la résiliation des contrats SaaS est de 30 jours.", "La politique de télétravail autorise 2 jours par semaine après validation du manager." ], metadatas=[{"source": "politique_rh.pdf"}, {"source": "contrat_saas.pdf"}], ids=["doc1", "doc2"])
# 4. Requête sémantique hybrideresults = collection.query( query_texts=["Combien de temps à l'avance dois-je résilier mon contrat ?"], n_results=1)
print("Document trouvé :", results['documents'][0][0])print("Source :", results['metadatas'][0][0]['source'])Bonnes Pratiques de Production
Section intitulée « Bonnes Pratiques de Production »- Choix de la Taille des Chunks : Pour du texte juridique ou technique, privilégier des chunks de 512 tokens adaptés au tokenizer français avec un chevauchement (overlap) de 10%.
- Hybridation Sparse + Dense (RRF) : Combiner la recherche vectorielle avec BM25 pour les références d’actes (guide des embeddings juridiques).
- Anonymisation Volatile PII : Intégrer le masquage en mémoire RAM volatile (Privacy Vault) avant l’indexation.
🛠️ Ressources & Prochaines Étapes
Section intitulée « 🛠️ Ressources & Prochaines Étapes »Prêt à sécuriser vos données avec l'IA ?
Ne laissez pas vos documents confidentiels sur des serveurs publics. Réservez un échange de 30 minutes avec nos experts pour évaluer la faisabilité d'un LLM Souverain dans votre infrastructure.
Planifier un Audit Gratuit