Local LLM
LocalAI — Drop-in OpenAI API for Your Own Hardware logo

LocalAI — API de OpenAI como reemplazo directo en tu propio hardware

LocalAI es un reemplazo directo y open source de la API de OpenAI — ejecuta LLM, embeddings, modelos de imagen, audio y visión en local con un solo contenedor Docker. Multi-backend, multimodal, listo para producción.

Why LocalAI

LocalAI ocupa un terreno intermedio interesante: paridad de forma de API con OpenAI, varios backends de inferencia por debajo. Mientras Ollama apuesta por llama.cpp y vLLM por su propio motor, LocalAI hace de intermediario entre llama.cpp, Transformers, RWKV, Whisper, stable-diffusion.cpp y más. Un único servidor HTTP los expone todos, y cada endpoint refleja la especificación de OpenAI — chat completions, embeddings, images/generations, audio/transcriptions, audio/speech.

Esa amplitud convierte a LocalAI en la opción natural cuando tu app necesita «toda la API de OpenAI, pero offline». Un solo contenedor sirve chat, embeddings, transcripción Whisper, imágenes Stable Diffusion y TTS a través de la misma biblioteca cliente que usarías con OpenAI. Para equipos pequeños o medianos sin función MLOps dedicada, esa consolidación es significativa.

Donde no encaja mejor: chat de texto puro a máximo rendimiento (usa vLLM) o la UX de escritorio más simple (usa Ollama o LM Studio). LocalAI brilla cuando el multimodal y la compatibilidad total de API son requisitos.

Quick Start — Docker + Galleries

Las imágenes :latest-aio-* preconfiguran modelos de chat, embeddings, speech-to-text, TTS e imágenes detrás de alias compatibles con OpenAI. Para modelos personalizados, escribe un YAML corto en models/ o instala desde la API gallery — LocalAI detecta automáticamente el backend según el formato del archivo.

# 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"}'

Características clave

Superficie completa de la API de OpenAI

Chat completions, embeddings, images (generations/edits/variations), audio (transcriptions/translations/speech), listado de modelos. La stack local compatible con OpenAI más completa.

Broker multi-backend

Enruta a llama.cpp, Transformers, vLLM (experimental), RWKV, whisper.cpp, sd.cpp, bark.cpp, piper-tts — todo detrás del mismo servidor HTTP. Cambia de backend por modelo vía config YAML.

Galerías de modelos

Instala modelos populares vía API: curl POST /models/apply -d {"id":"..."}. Gestiona descarga, cuantización y generación de config. Galería curada por la comunidad en localai.io.

Inferencia distribuida P2P

Conecta varios nodos LocalAI con el modo P2P opcional. Reparte modelos grandes entre máquinas. Nicho pero único en el espacio LLM local.

Imágenes GPU + CPU

Imágenes Docker preconstruidas para NVIDIA CUDA, AMD ROCm, Intel oneAPI y CPU puro. Se adapta a tu hardware con un simple cambio de tag de imagen.

Function calling y gramáticas

Soporta tool calling de OpenAI para modelos compatibles, más gramáticas JSON estilo llama.cpp para salida estructurada — útil cuando un modelo no soporta herramientas de forma nativa.

Comparación

 API BreadthDeploymentBackend CountBest For
LocalAIestaFull OpenAI surface (chat+emb+img+stt+tts)Docker (GPU/CPU)6+ (llama.cpp, transformers, whisper, sd, ...)Multi-modal self-hosted APIs
OllamaChat + embed + visionNative binary + Docker1 (llama.cpp)Pure LLM desktop/server
vLLMChat + embedPython + Docker1 (own engine)High-throughput GPU serving
text-generation-webuiChat + API + trainingPythonMultiple loadersResearch + LoRA + experimentation

Casos de uso

01. API AI on-prem unificada

Reemplaza una mezcla de llamadas OpenAI + Whisper + DALL·E con un único despliegue de LocalAI. Un objetivo DevOps, un endpoint HTTP, un único conjunto de controles de acceso.

02. Apps multimodales sensibles a la privacidad

Apps médicas o legales que necesitan transcripción + chat + embeddings sin enviar datos a terceros. LocalAI cubre las tres en un solo contenedor.

03. Despliegues en edge

La imagen optimizada para CPU funciona razonablemente en hardware edge modesto. Combínala con el modo servidor de llama.cpp para la mínima huella si solo necesitas chat.

Precios y licencia

LocalAI: open source con licencia MIT. Autoalojamiento gratuito.

Coste de hardware: escala con los modelos que cargues. Un solo contenedor puede alojar varios modelos a la vez (cada uno con su propia huella de VRAM). Presupuesta la VRAM de GPU en consecuencia.

Coste operativo: un solo contenedor Docker vs varios servicios (Ollama + Whisper + SD). Suele ganar en sobrecarga de ops; pierde frente a servidores especializados en rendimiento pico por carga de trabajo.

Activos relacionados en TokRepo

Preguntas frecuentes

¿LocalAI vs Ollama?+

Ollama está enfocado y es rápido para chat LLM; LocalAI es más amplio (LLM + embeddings + imagen + audio). Elige Ollama cuando solo necesites chat y quieras la UX más limpia. Elige LocalAI cuando necesites varias modalidades detrás de la forma de API de OpenAI.

¿LocalAI puede servir Stable Diffusion?+

Sí — vía el backend stable-diffusion.cpp para CPU/GPU. La API refleja /v1/images/generations de OpenAI. Calidad y velocidad dependen del modelo y el hardware; no es competitivo frente a despliegues SD dedicados en GPU.

¿LocalAI está listo para producción?+

Lo usan en producción muchos equipos. Vigila el changelog para saltos de versión mayores; fija los tags en producción. Un servicio multimodal todo-en-uno implica más piezas móviles que Ollama — prueba cada modelo que cargues.

¿Soporta inferencia distribuida?+

Sí — el modo P2P enlaza varios nodos LocalAI para compartir modelos o repartir los grandes. Nicho, aún evolucionando. Para multi-GPU sencillo en un solo nodo, vLLM es más maduro.

¿Cómo añado un modelo personalizado?+

Escribe un archivo YAML en models/ con backend, ruta del archivo del modelo y parámetros. O instala desde la galería: POST /models/apply con un id de gallery. LocalAI detecta automáticamente el formato (GGUF, GGML, safetensors) y configura el backend.

Comparar alternativas