Ollama : faites tourner un LLM en local en 5 minutes
Installez Ollama, téléchargez Mistral ou LLaMA, et intégrez un LLM dans votre app Python ou Next.js sans envoyer une seule requête à OpenAI.
Vous voulez expérimenter avec des LLM sans payer à chaque token et sans envoyer vos données à des serveurs tiers ? Ollama est la réponse.
C'est quoi Ollama ?
Ollama est un outil open-source qui vous permet de télécharger et de faire tourner des modèles de langage (LLM) directement sur votre machine. Interface HTTP incluse, zéro configuration complexe.
Installation
# Windows / macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows : téléchargez l'installateur sur https://ollama.com
Vérifiez l'installation :
ollama --version
Télécharger un modèle
ollama pull mistral # ~4 GB — bon équilibre vitesse/qualité
ollama pull llama3.2 # Meta's latest — très performant
ollama pull phi3 # Microsoft — ultra-léger (~2 GB)
ollama pull codellama # Spécialisé code
Utilisation en ligne de commande
# Chat interactif
ollama run mistral
# Réponse directe
echo "Explique les closures en JavaScript" | ollama run mistral
Intégration Python
import requests
def ask_ollama(prompt: str, model: str = "mistral") -> str:
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": model,
"prompt": prompt,
"stream": False,
},
)
return response.json()["response"]
# Utilisation
reponse = ask_ollama("Qu'est-ce que le RAG en IA ?")
print(reponse)
Avec la lib officielle :
pip install ollama
import ollama
response = ollama.chat(
model="mistral",
messages=[
{"role": "user", "content": "Écris une fonction Python qui inverse une chaîne"},
],
)
print(response["message"]["content"])
Intégration Next.js / TypeScript
// app/api/chat/route.ts
import { NextRequest, NextResponse } from "next/server";
export async function POST(req: NextRequest) {
const { message } = await req.json();
const res = await fetch("http://localhost:11434/api/generate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "mistral",
prompt: message,
stream: false,
}),
});
const data = await res.json();
return NextResponse.json({ reply: data.response });
}
Streaming de réponse
Pour une UX type ChatGPT, activez le streaming :
import ollama
for chunk in ollama.chat(
model="mistral",
messages=[{"role": "user", "content": "Raconte-moi une histoire"}],
stream=True,
):
print(chunk["message"]["content"], end="", flush=True)
Choisir son modèle
| Modèle | Taille | Cas d'usage | |--------|--------|-------------| | phi3 | ~2 GB | Machines modestes, code simple | | mistral | ~4 GB | Usage général, équilibré | | llama3.2 | ~4 GB | Multilingue, raisonnement | | codellama | ~4 GB | Génération de code | | mixtral | ~26 GB | Haute qualité, GPU requis |
Conclusion
Ollama rend les LLM accessibles à tous les développeurs. Pour la confidentialité, l'expérimentation et les projets où les coûts d'API posent problème, c'est LE choix. Installez-le, jouez avec Mistral, et construisez votre prochain chatbot en local.