Tutoriel

Statut éditorial : En attente de relecture

Connecter Ollama à LangChain

Utiliser un modèle Ollama dans une chaîne LangChain, ajouter un prompt, du streaming et des contrôles de configuration.

Classification du contenu

Types

  • Modèles et API
  • Outils

Technologies

Niveau
Intermédiaire
Publié le
10 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
10 novembre 2026

L’intégration permet de remplacer un fournisseur distant par un modèle local sans modifier toute la chaîne. Le modèle doit déjà être téléchargé et Ollama actif.

Installer

~~~bash ollama pull nom-du-modele pip install -U langchain langchain-ollama ~~~

Construire une chaîne

~~~python from langchain_ollama import ChatOllama from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser

model = ChatOllama( model='nom-du-modele', base_url='http://127.0.0.1:11434', temperature=0.2, )

prompt = ChatPromptTemplate.from_messages([ ('system', 'Tu es un assistant technique. Réponds en français.'), ('user', '{question}'), ])

chain = prompt | model | StrOutputParser() print(chain.invoke({'question': 'À quoi sert un index de base de données ?'})) ~~~

Streamer

~~~python for chunk in chain.stream({'question': 'Explique le cache KV.'}): print(chunk, end='', flush=True) ~~~

Tester la compatibilité

Tous les modèles Ollama ne gèrent pas les outils ou les sorties structurées avec la même fiabilité. Testez format JSON, français, longueur de contexte et cas sans réponse. Ne supposez pas que l’interface commune rend les modèles équivalents.

Ajouter un RAG

Le retriever peut rester identique, mais le contexte transmis doit tenir dans la fenêtre réelle du modèle local. Utilisez des embeddings dédiés et versionnés ; le modèle de chat ne doit pas être confondu avec le modèle d’embeddings.

Production

Initialisez la chaîne une fois, limitez concurrence et taille des prompts, surveillez mémoire et latence. Protégez Ollama derrière l’application et épinglez modèle, quantification et dépendances.

FAQ

LangChain démarre-t-il Ollama ?

Non. Le service doit être déjà lancé et le modèle disponible.

Peut-on utiliser une URL distante ?

Oui sur un réseau protégé, avec une passerelle authentifiée et TLS.

Chaîne LangChain complète

~~~bash ollama pull llama3.1:8b pip install langchain-ollama ~~~

~~~python from langchain_core.prompts import ChatPromptTemplate from langchain_ollama import ChatOllama

prompt = ChatPromptTemplate.from_template( "Réponds en deux phrases maximum : {question}" ) model = ChatOllama( model="llama3.1:8b", base_url="http://localhost:11434", temperature=0, ) chain = prompt | model response = chain.invoke({"question": "À quoi sert un embedding ?"}) print(response.content) ~~~

Si le code s’exécute dans Docker, localhost désigne le conteneur : utilisez un nom de service ou une passerelle adaptée. Fixez un délai côté client, testez l’indisponibilité d’Ollama et vérifiez le nom exact du modèle avec ollama list. Ne confondez pas taille de contexte configurée et mémoire réellement disponible.

Sources utilisées