Tous les articles
IA Locale12 mars 20268 min de lecture

Construire un assistant RAG local avec Ollama

Architecture, embeddings, vector store et patterns pour un chatbot privé qui répond sur vos documents internes.

OllamaRAGLangChainQdrant

Quand un client refuse d'envoyer ses documents internes vers un LLM cloud, la question devient : comment construire un assistant qui répond aussi bien que ChatGPT, mais qui tourne entièrement sur leurs serveurs ?

La réponse tient en trois lettres : RAG. Retrieval-Augmented Generation. Et avec Ollama, on peut le faire en quelques heures sur une machine raisonnablement puissante.

Le pattern en 4 étapes

Un système RAG, c'est essentiellement un pipeline qui (1) découpe vos documents en chunks, (2) calcule un embedding par chunk, (3) stocke ces vecteurs dans une base, et (4) au moment de la question, retrouve les chunks pertinents et les injecte dans le prompt.

python
from langchain.embeddings import OllamaEmbeddings
from langchain.vectorstores import Qdrant

embeddings = OllamaEmbeddings(model="nomic-embed-text")
store = Qdrant.from_documents(chunks, embeddings, url="http://localhost:6333")

retriever = store.as_retriever(search_kwargs={"k": 4})

Le piège classique : le chunking

90% de la qualité d'un RAG dépend du découpage. Trop petit, on perd le contexte. Trop grand, on noie les embeddings. Le sweet spot tourne autour de 500 tokens avec un overlap de 50 - mais sur des contrats juridiques, on monte à 1500. Sur du code, on suit les frontières syntaxiques.

Ce que je livre en mission

En général, l'objectif tient en une phrase : votre équipe pose une question en français, l'assistant répond avec les sources. Concrètement, ça donne une stack Ollama + Qdrant + FastAPI + un front Streamlit ou React. Le tout en local, traçable, sans envoi de données.

Un projet similaire ?

Discutons de votre besoin - je réponds sous 24h ouvrées.

Démarrer un projet