LocalAI — l’API OpenAI en remplacement direct sur votre propre matériel
LocalAI est un remplacement open source direct de l’API OpenAI — exécute LLM, embeddings, modèles d’image, d’audio et de vision en local avec un seul conteneur Docker. Multi-backend, multimodal, prêt pour la production.
Why LocalAI
LocalAI occupe un entre-deux intéressant : parité de forme d’API avec OpenAI, plusieurs backends d’inférence sous le capot. Là où Ollama mise sur llama.cpp et vLLM sur son propre moteur, LocalAI fait l’intermédiaire entre llama.cpp, Transformers, RWKV, Whisper, stable-diffusion.cpp, et d’autres. Un seul serveur HTTP les expose tous, et chaque endpoint reflète la spec OpenAI — chat completions, embeddings, images/generations, audio/transcriptions, audio/speech.
Cette largeur fait de LocalAI le choix naturel quand votre app a besoin de « toute l’API OpenAI, mais hors ligne ». Un seul conteneur sert le chat, les embeddings, la transcription Whisper, les images Stable Diffusion et le TTS via la même bibliothèque client que celle d’OpenAI. Pour des équipes petites à moyennes sans fonction MLOps dédiée, cette consolidation est significative.
Là où ce n’est pas le meilleur choix : du chat texte pur au débit maximal (utilisez vLLM), ou l’UX desktop la plus simple (utilisez Ollama ou LM Studio). LocalAI brille quand le multimodal et la compatibilité API complète sont au cahier des charges.
Quick Start — Docker + Galleries
Les images :latest-aio-* préconfigurent les modèles de chat, d’embeddings, de speech-to-text, de TTS et d’images derrière des alias compatibles OpenAI. Pour des modèles personnalisés, écrivez un court YAML dans models/ ou installez via l’API gallery — LocalAI détecte automatiquement le backend selon le format de fichier.
# 1. Start LocalAI with its "all-in-one" preset (chat + embeddings + STT + image)
docker run -ti --name localai -p 8080:8080 \
-v $(pwd)/models:/build/models \
--gpus all \
localai/localai:latest-aio-gpu-nvidia-cuda-12
# (CPU-only: swap tag for :latest-aio-cpu)
# 2. Preloaded aliases are ready:
# gpt-4 → llama-family chat model
# text-embedding-ada-002 → sentence-transformers model
# whisper-1 → whisper.cpp
# stablediffusion → sd.cpp
# tts-1 → bark/piper
# 3. Use the OpenAI SDK, just change base_url
python - <<'PY'
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="localai")
# Chat
print(client.chat.completions.create(
model="gpt-4",
messages=[{"role":"user","content":"Two-line haiku about Docker."}]
).choices[0].message.content)
# Embedding
emb = client.embeddings.create(input="hello", model="text-embedding-ada-002")
print("dim =", len(emb.data[0].embedding))
PY
# 4. Install any Hugging Face model from the gallery
curl http://localhost:8080/models/apply -d '{"id":"model-gallery@qwen2.5-7b-instruct"}'Fonctionnalités clés
Surface API OpenAI complète
Chat completions, embeddings, images (generations/edits/variations), audio (transcriptions/translations/speech), liste de modèles. La stack locale compatible OpenAI la plus complète.
Broker multi-backend
Route vers llama.cpp, Transformers, vLLM (expérimental), RWKV, whisper.cpp, sd.cpp, bark.cpp, piper-tts — tout derrière le même serveur HTTP. Changez de backend par modèle via une config YAML.
Galeries de modèles
Installez des modèles populaires via l’API : curl POST /models/apply -d {"id":"..."}. Gère le téléchargement, la quantification et la génération de config. Galerie communautaire sur localai.io.
Inférence distribuée P2P
Reliez plusieurs nœuds LocalAI via le mode P2P optionnel. Répartissez de gros modèles sur plusieurs machines. Niche, mais unique dans l’espace LLM local.
Images GPU + CPU
Images Docker préfabriquées pour NVIDIA CUDA, AMD ROCm, Intel oneAPI et CPU pur. S’adapte à votre matériel par un simple changement de tag d’image.
Function calling et grammaires
Supporte le tool calling OpenAI pour les modèles compatibles, plus les grammaires JSON style llama.cpp pour la sortie structurée — utile quand un modèle ne supporte pas nativement les outils.
Comparaison
| API Breadth | Deployment | Backend Count | Best For | |
|---|---|---|---|---|
| LocalAIcelui-ci | Full OpenAI surface (chat+emb+img+stt+tts) | Docker (GPU/CPU) | 6+ (llama.cpp, transformers, whisper, sd, ...) | Multi-modal self-hosted APIs |
| Ollama | Chat + embed + vision | Native binary + Docker | 1 (llama.cpp) | Pure LLM desktop/server |
| vLLM | Chat + embed | Python + Docker | 1 (own engine) | High-throughput GPU serving |
| text-generation-webui | Chat + API + training | Python | Multiple loaders | Research + LoRA + experimentation |
Cas d'usage
01. API AI on-prem unifiée
Remplacez un mix d’appels OpenAI + Whisper + DALL·E par un seul déploiement LocalAI. Une cible DevOps, un endpoint HTTP, un seul jeu de contrôles d’accès.
02. Apps multimodales sensibles à la confidentialité
Apps médicales ou juridiques qui ont besoin de transcription + chat + embeddings sans envoyer de données à des tiers. LocalAI couvre les trois dans un seul conteneur.
03. Déploiements en edge
L’image optimisée CPU tourne raisonnablement sur du matériel edge modeste. Combinez-la avec le mode serveur de llama.cpp pour une empreinte minimale si vous n’avez besoin que du chat.
Tarification et licence
LocalAI : open source sous licence MIT. Auto-hébergement gratuit.
Coût matériel : évolue avec les modèles que vous chargez. Un seul conteneur peut héberger plusieurs modèles simultanément (chacun avec sa propre empreinte VRAM). Budgétez la VRAM GPU en conséquence.
Coût opérationnel : un seul conteneur Docker vs plusieurs services (Ollama + Whisper + SD). Généralement gagnant en charge ops ; perd face aux serveurs spécialisés sur la performance pic par charge de travail.
Assets associés sur TokRepo
Questions fréquentes
LocalAI vs Ollama ?+
Ollama est focalisé et rapide pour le chat LLM ; LocalAI est plus large (LLM + embeddings + image + audio). Choisissez Ollama quand vous n’avez besoin que du chat et que vous voulez l’UX la plus propre. Choisissez LocalAI quand il vous faut plusieurs modalités derrière la forme d’API OpenAI.
LocalAI peut-il servir Stable Diffusion ?+
Oui — via le backend stable-diffusion.cpp pour CPU/GPU. L’API reflète /v1/images/generations d’OpenAI. La qualité et la vitesse dépendent du modèle et du matériel ; pas compétitif face à des déploiements SD GPU dédiés.
LocalAI est-il prêt pour la production ?+
Utilisé en production par de nombreuses équipes. Surveillez le changelog pour les sauts de version majeurs ; épinglez les tags en prod. Un service multimodal tout-en-un implique plus de pièces mobiles qu’Ollama — testez chaque modèle que vous chargez.
Supporte-t-il l’inférence distribuée ?+
Oui — le mode P2P relie plusieurs nœuds LocalAI pour partager des modèles ou en répartir de gros. Niche, encore en évolution. Pour du multi-GPU simple sur un seul nœud, vLLM est plus mature.
Comment ajouter un modèle personnalisé ?+
Écrivez un fichier YAML dans models/ avec le backend, le chemin du fichier modèle et les paramètres. Ou installez depuis la galerie : POST /models/apply avec un identifiant gallery. LocalAI détecte automatiquement le format (GGUF, GGML, safetensors) et configure le backend.