
Ollama n'est pas limité au terminal : il expose une API locale que vous appelez depuis vos programmes Python, pour automatiser des tâches ou bâtir des applications. Ce guide montre les trois façons de le faire (API REST, SDK natif ollama, et litellm), puis un assistant de code complet et des cas d'usage reproductibles. Prérequis : Ollama déjà installé et fonctionnel.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Tester l'API REST locale d'Ollama
- Appeler un modèle avec le SDK natif
ollamaou litellm - Écrire un assistant de code en Python
- Connaître les cas d'usage courants à reproduire
Prérequis
Section intitulée « Prérequis »- Ollama installé avec un modèle téléchargé (ex
llama3.2) - Python 3.9+ et
pip - Savoir lancer un script Python
L'API REST d'Ollama
Section intitulée « L'API REST d'Ollama »Quand Ollama tourne, il expose une API REST sur le port 11434 de votre machine. N'importe quel programme peut alors dialoguer avec le modèle. Vérifiez d'abord qu'elle répond :
curl http://localhost:11434/api/tagsLa sortie liste vos modèles au format JSON. Tout le reste (SDK, litellm) n'est qu'une surcouche pratique de cette API.
Trois façons d'appeler Ollama en Python
Section intitulée « Trois façons d'appeler Ollama en Python »Le SDK natif ollama (le plus direct)
Section intitulée « Le SDK natif ollama (le plus direct) »La bibliothèque officielle ollama parle directement à l'API locale :
pip install ollamafrom ollama import chat
response = chat( model="llama3.2", messages=[{"role": "user", "content": "Explique une API REST en 3 phrases simples"}],)print(response["message"]["content"])Le SDK gère aussi le streaming (chat(..., stream=True)), l'asynchrone (AsyncClient().chat(...)) et les fonctionnalités avancées comme les sorties structurées et le tool calling.
litellm (un code, plusieurs fournisseurs)
Section intitulée « litellm (un code, plusieurs fournisseurs) »litellm fournit une interface unifiée : le même code fonctionne avec Ollama en local ou une API cloud, pratique pour basculer plus tard. Le guide LiteLLM : construire un assistant DevOps déroule un projet complet.
pip install litellmimport litellm
response = litellm.completion( model="ollama/llama3.2", # format : ollama/nom-du-modele messages=[{"role": "user", "content": "Explique une API REST en 3 phrases simples"}],)print(response.choices[0].message["content"])Le client OpenAI (réutiliser du code existant)
Section intitulée « Le client OpenAI (réutiliser du code existant) »Ollama expose aussi un endpoint compatible OpenAI. Si votre code utilise déjà la bibliothèque openai, il suffit de changer l'URL de base :
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1/", api_key="ollama") # clé ignoréeresponse = client.chat.completions.create( model="llama3.2", messages=[{"role": "user", "content": "Explique une API REST en 3 phrases simples"}],)print(response.choices[0].message.content)Un assistant de code complet
Section intitulée « Un assistant de code complet »Voici un script qui demande au modèle d'analyser du code et de suggérer des améliorations :
from ollama import chat
def analyser_code(code: str) -> str: """Analyse un morceau de code Python et suggère des améliorations.""" prompt = f"""Analyse le code Python suivant et donne-moi :1. Ce que fait ce code2. Les problèmes potentiels3. Des suggestions d'amélioration
Code à analyser :{code}""" response = chat(model="llama3.2", messages=[{"role": "user", "content": prompt}]) return response["message"]["content"]
code_a_analyser = """def calc(x,y): return x+y"""print(analyser_code(code_a_analyser))Le modèle repère typiquement le nom de fonction vague, l'absence de typage et de docstring, et propose une version conforme à PEP 8 avec gestion d'erreurs. Pour connecter un LLM à vos propres documents, enchaînez avec le guide RAG : connecter les LLM à vos données.
Cas d'usage à reproduire
Section intitulée « Cas d'usage à reproduire »Ces exemples fonctionnent en CLI comme en Python (changez juste le content du message) :
Assistant de programmation : Ollama explique et optimise du code existant.
ollama run codellama "Explique ce code et propose une version optimisée :def fibonacci(n): if n <= 1: return n return fibonacci(n-1) + fibonacci(n-2)"Le modèle signale la complexité exponentielle de la récursion et propose une version mémoïsée ou itérative.
Traduction professionnelle : conserver un ton formel d'une langue à l'autre.
ollama run llama3.2 "Traduis en français professionnel, ton formel :'We are pleased to announce the launch of our new product.'"Analyse de sentiment : classer le ton d'un retour client, points positifs et négatifs.
ollama run llama3.2 "Analyse le sentiment de ce commentaire et liste les points positifs et negatifs :'Bonne qualite, mais livraison en 2 semaines au lieu de 3 jours. Support reactif.'"À retenir
Section intitulée « À retenir »- Ollama expose une API REST locale sur le port 11434 ; SDK et litellm en sont des surcouches.
- Le SDK natif
ollamaest le plus direct ; litellm rend le code portable ; le client OpenAI réutilise du code existant. - Un assistant de code tient en une dizaine de lignes Python.
- Pour aller plus loin : sorties structurées, tool calling et vision ont leurs guides dédiés.