Talki Academy
TechniqueOpen Source15 min de lecture

Outils IA Open Source pour l'Entreprise 2026 : Ollama, LangChain, n8n et CrewAI

En 2026, un stack open source mature — Ollama, LangChain, n8n et CrewAI — couvre la totalité du pipeline IA, de l'inférence jusqu'à l'orchestration multi-agents. Ce guide pratique vous donne les données réelles pour décider : comparatif TCO, 3 cas d'usage en production avec code fonctionnel, et une matrice de décision outil par outil.

Par Talki Academy·Mis à jour le 6 mai 2026·Read in English →

Pourquoi open source en 2026 ?

Il y a deux ans, "IA d'entreprise" signifiait payer OpenAI ou Google pour l'accès API, transmettre vos données en chemin, et accepter des factures imprévisibles qui s'envolaient à chaque nouveau cas d'usage. Ce modèle est en train de se fissurer.

En 2026, trois facteurs ont rendu la stack open source viable en production : les modèles open source (Llama 3.3, Mistral Large 2, Qwen2.5) rivalisent désormais avec GPT-4o sur la majorité des tâches métier ; le matériel GPU est devenu accessible (un serveur Hetzner GPU coûte EUR 45/mois) ; et les frameworks comme LangChain et n8n ont atteint une maturité qui simplifie le déploiement. La contrepartie : la complexité de mise en place initiale. C'est précisément ce que ce guide adresse.

À qui s'adresse cet article : DSI et responsables techniques évaluant l'adoption open source, développeurs construisant leur premier pipeline IA en production, et architectes techniques dimensionnant une infrastructure IA d'entreprise. Une aisance avec Python et les API REST est recommandée.

Vue d'ensemble des 4 outils

OutilRôleLangageStars GitHubIdéal pour
OllamaInférence LLM localeGo95k+On-premise, souveraineté des données
LangChainFramework d'orchestration IAPython / JS90k+RAG, agents, chaînes multi-étapes
n8nAutomatisation workflowsTypeScript48k+Intégrations métier, triggers, routage
CrewAIOrchestration multi-agentsPython25k+Équipes d'agents, tâches parallèles

Cas 1 — Automatiser le support client avec n8n + Ollama

Contexte : une PME industrielle reçoit 200 tickets support/jour. 70% sont des questions répétitives (délais de livraison, statuts de commande, fiches techniques produit). Objectif : répondre automatiquement aux questions simples, escalader les cas complexes vers un agent humain.

Architecture : n8n reçoit les tickets via webhook (Zendesk, email, Slack), extrait le contexte, appelle Ollama (Llama 3.2 11B en Q4 — 7 Go VRAM) pour générer la réponse, et route selon le score de confiance.

Extrait de workflow n8n (JSON)

{ "nodes": [ { "name": "Webhook Ticket", "type": "n8n-nodes-base.webhook", "parameters": { "path": "support-ticket", "responseMode": "responseNode" } }, { "name": "Appel Ollama", "type": "n8n-nodes-base.httpRequest", "parameters": { "url": "http://ollama:11434/v1/chat/completions", "method": "POST", "headers": { "Content-Type": "application/json" }, "body": { "model": "llama3.2:11b", "messages": [ { "role": "system", "content": "Tu es un agent support. Réponds en français. Si tu n'es pas sûr, réponds: ESCALADE_HUMAIN" }, { "role": "user", "content": "={{ $json.ticket_body }}" } ], "temperature": 0.2, "max_tokens": 400 } } }, { "name": "Router", "type": "n8n-nodes-base.switch", "parameters": { "rules": [ { "value": "={{ $json.choices[0].message.content.includes('ESCALADE_HUMAIN') }}", "output": 1 } ] } } ] }
Résultats mesurés : ce type de workflow traite 65–75% des tickets sans intervention humaine, avec un temps de réponse moyen de 3–8 secondes. Coût infrastructure : EUR 45/mois (VPS GPU Hetzner CCX33 + RTX 3080). Équivalent Zendesk IA : EUR 180/mois.

Cas 2 — Base de connaissances RAG avec LangChain + ChromaDB + Ollama

Contexte : une entreprise de services veut permettre à ses consultants de requêter 3 000 documents internes (procédures, contrats-types, guides méthodologiques) en langage naturel, sans que les données quittent l'infrastructure.

Architecture : LangChain orchestre l'ingestion (PDF, DOCX, Markdown) → génération d'embeddings (modèle nomic-embed-text via Ollama) → stockage dans ChromaDB → récupération sémantique → génération de réponse (Llama 3.3 70B en Q4).

Pipeline RAG complet (Python)

# rag_pipeline.py — Pipeline RAG production-ready avec LangChain + ChromaDB + Ollama from langchain_community.document_loaders import DirectoryLoader, PyPDFLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_community.embeddings import OllamaEmbeddings from langchain_community.vectorstores import Chroma from langchain_community.chat_models import ChatOllama from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate import chromadb # 1. Chargement et découpage des documents loader = DirectoryLoader( "./docs", glob="**/*.pdf", loader_cls=PyPDFLoader, show_progress=True ) documents = loader.load() splitter = RecursiveCharacterTextSplitter( chunk_size=512, # optimisé pour nomic-embed-text (contexte 8192 tokens) chunk_overlap=64, # chevauchement pour préserver le contexte inter-chunks add_start_index=True # utile pour le débogage et la traçabilité des sources ) chunks = splitter.split_documents(documents) print(f"Documents chargés : {len(documents)} | Chunks générés : {len(chunks)}") # 2. Génération des embeddings et stockage embeddings = OllamaEmbeddings( model="nomic-embed-text", # 768 dimensions, rapide sur CPU base_url="http://localhost:11434" ) vectorstore = Chroma.from_documents( documents=chunks, embedding=embeddings, persist_directory="./chroma_db", collection_name="knowledge_base" ) vectorstore.persist() print(f"Vectorstore créé : {vectorstore._collection.count()} vecteurs") # 3. Configuration du modèle et de la chaîne RAG llm = ChatOllama( model="llama3.3:70b", # remplacer par llama3.2:11b si VRAM < 48 Go base_url="http://localhost:11434", temperature=0.1, num_ctx=4096 # fenêtre de contexte pour la réponse ) prompt_template = """Vous êtes un assistant expert. Répondez uniquement à partir du contexte fourni. Si l'information n'est pas dans le contexte, dites-le explicitement. Contexte : {context} Question : {question} Réponse (citez vos sources) :""" prompt = PromptTemplate( template=prompt_template, input_variables=["context", "question"] ) qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever( search_type="mmr", # Maximum Marginal Relevance : diversité des résultats search_kwargs={"k": 5, "fetch_k": 20} ), chain_type_kwargs={"prompt": prompt}, return_source_documents=True # pour l'attribution des sources ) # 4. Test du pipeline result = qa_chain.invoke({"query": "Quelle est la procédure de validation d'un contrat ?"}) print(result["result"]) print("Sources :", [doc.metadata.get("source", "N/A") for doc in result["source_documents"]])
Dimensionnement GPU : Llama 3.3 70B en Q4 nécessite ~40 Go de VRAM. Sur AWS : g5.12xlarge (4× A10G, 96 Go VRAM, ~EUR 5,50/h on-demand, ~EUR 1,65/h spot). Pour la plupart des PME, Llama 3.2 11B (7 Go VRAM en Q4) est suffisant et tourne sur une RTX 3080 ou un g4dn.xlarge (~EUR 0,50/h spot).

Cas 3 — Outils internes conformes RGPD avec n8n + LangChain

Contexte : une organisation RH veut automatiser la génération de comptes-rendus de réunions contenant des données personnelles (évaluations, situations individuelles). Impossible d'envoyer ces données vers un LLM cloud sans accord RGPD spécifique.

Architecture : n8n reçoit les transcriptions (depuis Whisper auto-hébergé ou upload manuel), appelle un service Python LangChain déployé en interne, génère le résumé avec Ollama (Mistral 7B — adapté aux textes RH en français), et stocke dans un bucket S3 privé.

Service LangChain pour résumé RGPD-safe (Python)

# summarizer_service.py — Service FastAPI + LangChain, 100% on-premise from fastapi import FastAPI, HTTPException from langchain_community.chat_models import ChatOllama from langchain.prompts import ChatPromptTemplate from langchain.schema import StrOutputParser from pydantic import BaseModel app = FastAPI(title="Service Résumé RH — On-Premise") class SummarizeRequest(BaseModel): transcript: str meeting_type: str = "evaluation" # evaluation | reunion | entretien language: str = "fr" llm = ChatOllama( model="mistral:7b", # bon rapport qualité/vitesse pour le français base_url="http://ollama:11434", # service Ollama interne — aucune donnée externe temperature=0.2 ) PROMPT_TEMPLATE = """Génère un compte-rendu structuré de la réunion suivante. Type : {meeting_type} Langue : {language} Instructions : - Résume les points clés en 3-5 bullets - Liste les décisions prises - Note les actions à suivre avec les responsables - NE reproduis PAS d'informations personnelles identifiantes dans le résumé Transcription : {transcript} Compte-rendu StructuréUndefined:""" prompt = ChatPromptTemplate.from_template(PROMPT_TEMPLATE) chain = prompt | llm | StrOutputParser() @app.post("/summarize") async def summarize(request: SummarizeRequest): if len(request.transcript) > 50000: raise HTTPException(400, "Transcription trop longue (max 50 000 caractères)") try: summary = await chain.ainvoke({ "transcript": request.transcript, "meeting_type": request.meeting_type, "language": request.language }) return { "summary": summary, "model": "mistral:7b", "data_residency": "on-premise", # audit RGPD : aucune donnée externe "gdpr_compliant": True } except Exception as e: raise HTTPException(500, f"Erreur de traitement : {str(e)}")
Conformité RGPD : cette architecture garantit que les données personnelles ne quittent jamais votre infrastructure. Aucune DPA (Data Processing Agreement) avec un tiers n'est nécessaire. Documentez le flux dans votre registre de traitements CNIL avec la mention "traitement sur infrastructure interne, pas de transfert hors EU".

Patterns de déploiement

PatternInfrastructureCoût mensuelIdéal pour
Local / DevMacBook M3 Pro / PC RTX 4090EUR 0Développement, prototypes
VPS GPUHetzner CCX33 + RTX 3080EUR 45–80PME, <50k req/mois
Cloud spotAWS g4dn.xlarge spotEUR 25–60Charges variables, batch
On-premiseServeur dédié NVIDIA A10EUR 200–400 (amortissement)Données très sensibles, >100k req/mois

Docker Compose minimal (Ollama + n8n + ChromaDB)

# docker-compose.yml — Stack complète en 3 services version: '3.8' services: ollama: image: ollama/ollama:latest ports: ["11434:11434"] volumes: [ollama_data:/root/.ollama] environment: OLLAMA_MAX_LOADED_MODELS: "2" OLLAMA_NUM_PARALLEL: "4" OLLAMA_KEEP_ALIVE: "30m" deploy: resources: reservations: devices: [{driver: nvidia, count: 1, capabilities: [gpu]}] restart: unless-stopped chromadb: image: chromadb/chroma:latest ports: ["8000:8000"] volumes: [chroma_data:/chroma/chroma] environment: CHROMA_SERVER_AUTH_CREDENTIALS: "votre-secret-chroma" # depuis .env CHROMA_SERVER_AUTH_PROVIDER: chromadb.auth.token.TokenAuthServerProvider restart: unless-stopped n8n: image: n8nio/n8n:latest ports: ["5678:5678"] environment: N8N_BASIC_AUTH_ACTIVE: "true" N8N_BASIC_AUTH_USER: "votre-utilisateur" # depuis .env N8N_BASIC_AUTH_PASSWORD: "votre-mot-de-passe" # depuis .env OLLAMA_BASE_URL: "http://ollama:11434" volumes: [n8n_data:/home/node/.n8n] depends_on: [ollama] restart: unless-stopped volumes: ollama_data: chroma_data: n8n_data:
Démarrage rapide : après docker compose up -d, téléchargez les modèles : docker exec ollama ollama pull llama3.2:11b && docker exec ollama ollama pull nomic-embed-text. n8n est accessible sur http://localhost:5678, ChromaDB sur http://localhost:8000.

Comparatif TCO : self-hosted vs cloud propriétaire

ComposantStack open source (self-hosted)Équivalent propriétaire (cloud)Économie
Inférence LLM (50k req/mois)EUR 45 (VPS GPU Hetzner)EUR 375 (OpenAI GPT-4o)88%
Base vectorielle (1M vecteurs)EUR 0 (ChromaDB self-hosted)EUR 70 (Pinecone Starter)100%
Automatisation workflowsEUR 20 (n8n self-hosted sur VPS)EUR 49 (Zapier Starter)59%
Orchestration agentsEUR 0 (LangChain + CrewAI)EUR 200+ (Vertex AI Agents)100%
Total mensuelEUR 65–80EUR 694+~88%

Note : ces chiffres correspondent à une charge de 50 000 requêtes/mois avec des réponses moyennes de 2 500 tokens. La courbe d'économies s'accentue fortement au-delà de 100 000 req/mois : à ce volume, le cloud propriétaire dépasse EUR 1 400/mois tandis que l'infrastructure self-hosted reste à EUR 65–80/mois.

Questions fréquentes

Ollama est-il prêt pour la production en entreprise en 2026 ?

Oui. Ollama 0.4+ supporte les requêtes concurrentes, la gestion automatique de la mémoire GPU et une API REST compatible OpenAI. Pour la production, déployez derrière un reverse proxy (Nginx ou Caddy), activez OLLAMA_MAX_LOADED_MODELS=2 et OLLAMA_NUM_PARALLEL=4. Débit mesuré : 150–400 tokens/s sur GPU NVIDIA A10, 30–80 tokens/s sur CPU.

n8n peut-il remplacer LangChain pour la majorité des workflows IA d'entreprise ?

Pour les workflows linéaires simples (déclencheur → appel LLM → action), oui. Les nœuds IA de n8n couvrent 80% des scénarios d'automatisation courants sans code. En revanche, pour les pipelines RAG complexes, les agents multi-tours ou la logique de récupération personnalisée, LangChain reste indispensable. Le schéma classique : n8n pour l'orchestration métier, scripts Python LangChain pour la logique IA, appelés depuis le nœud 'Execute Command' de n8n.

Quel est le coût réel d'une infrastructure IA open source vs cloud propriétaire ?

Configuration type auto-hébergée (Ollama sur VPS GPU EUR 45/mois + ChromaDB + n8n + LangChain sur conteneur EUR 20/mois) : environ EUR 65–80/mois pour jusqu'à 50 000 requêtes/mois. Équivalent propriétaire (OpenAI GPT-4o + Pinecone + Zapier Teams) : EUR 350–550/mois au même volume. Économie : 75–85%.

Comment garantir la conformité RGPD avec une stack IA open source ?

L'avantage principal de l'open source : les données ne quittent jamais votre infrastructure. Déployez Ollama, ChromaDB et n8n sur des serveurs EU (OVH, Scaleway, Hetzner). Pour les données personnelles dans les embeddings : activez le chiffrement au repos (ChromaDB supporte AES-256), définissez des TTL sur les collections, et documentez les flux dans votre registre de traitement RGPD. Aucune DPA (Data Processing Agreement) avec un tiers n'est nécessaire.

CrewAI ou LangGraph pour un système multi-agents en production ?

CrewAI est plus rapide à prendre en main (abstraction basée sur les rôles, peu de boilerplate) mais offre moins de contrôle sur l'état. LangGraph donne des machines à états explicites, des checkpoints intégrés et une observabilité native via LangSmith — essentiel pour le débogage en production. Recommandation : prototype avec CrewAI (1–2 jours pour un démo fonctionnel), puis évaluez si vous avez besoin du plan de contrôle de LangGraph pour la fiabilité.

Prêt à déployer votre stack IA open source ?

Nos formations pratiques vous guident de l'installation à la production : Ollama, LangChain, n8n et CrewAI sur votre propre infrastructure.