Aller au contenu
Développement medium

Ollama avec Python : appeler un LLM local dans vos scripts

8 min de lecture

logo ollama

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.

  • Tester l'API REST locale d'Ollama
  • Appeler un modèle avec le SDK natif ollama ou litellm
  • Écrire un assistant de code en Python
  • Connaître les cas d'usage courants à reproduire
  • Ollama installé avec un modèle téléchargé (ex llama3.2)
  • Python 3.9+ et pip
  • Savoir lancer un script Python

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 :

Fenêtre de terminal
curl http://localhost:11434/api/tags

La sortie liste vos modèles au format JSON. Tout le reste (SDK, litellm) n'est qu'une surcouche pratique de cette API.

La bibliothèque officielle ollama parle directement à l'API locale :

Fenêtre de terminal
pip install ollama
from 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 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.

Fenêtre de terminal
pip install litellm
import 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"])

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ée
response = 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)

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 code
2. Les problèmes potentiels
3. 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.

Ces exemples fonctionnent en CLI comme en Python (changez juste le content du message) :

Assistant de programmation : Ollama explique et optimise du code existant.

Fenêtre de terminal
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.

Fenêtre de terminal
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.

Fenêtre de terminal
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.'"
  • Ollama expose une API REST locale sur le port 11434 ; SDK et litellm en sont des surcouches.
  • Le SDK natif ollama est 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.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn