Avançado 11 minServidores

LocalAI: a API completa da OpenAI, 100% auto-hospedada

Resposta direta

LocalAI (projeto open-source mudler/LocalAI, licença MIT) é um servidor de inferência auto-hospedado que reproduz as APIs da OpenAI e, agora, também da Anthropic e da ElevenLabs, em mais de 60 backends (llama.cpp, vLLM, MLX, whisper.cpp, diffusers…). Uma única instância Docker disponibiliza texto, embeddings, áudio, imagem e vídeo, com agentes de IA integrados (RAG, MCP, ferramentas). Conte com cerca de 30 minutos para uma primeira implantação funcional em uma GPU NVIDIA.

O LocalAI é um servidor de inferência open-source que expõe exatamente as mesmas rotas da API da OpenAI — mas tudo roda na sua máquina. Enquanto o Ollama se concentra no chat de texto, o LocalAI cobre, em uma única API, texto, embeddings, transcrição e síntese de áudio, além da geração de imagens. Este guia mostra como implantá-lo com Docker, instalar modelos a partir de sua galeria e reconectar uma aplicação OpenAI existente sem alterar o código.

Por Mohamed Meguedmi·Atualização 2026-09-28·Testado no Windows, macOS e Linux

#Por que usar LocalAI

LocalAI (o projeto mudler/LocalAI no GitHub, sob licença MIT, criado e mantido por Ettore Di Giacinto e a equipe LocalAI) se apresenta como um "substituto direto" da API OpenAI. Concretamente, suas requisições para /v1/chat/completions, /v1/embeddings, /v1/audio/transcriptions, /v1/audio/speech ou /v1/images/generations são direcionadas para um servidor que você hospeda, em vez dos servidores da OpenAI. Nenhum token sai da sua rede, nenhuma cobrança por uso, nenhuma cota.

O verdadeiro interesse do LocalAI não é rodar mais um chat: é unificar várias modalidades por trás de um único endpoint compatível. Uma mesma instância disponibiliza um LLM para texto, um modelo de embeddings para o seu RAG, Whisper para transcrição, Stable Diffusion para imagens e, agora, modelos de vídeo. Para uma aplicação que precisa de várias peças, isso evita montar e manter três ou quatro servidores separados, cada um com sua própria API para aprender.

API compatível com OpenAI
Mesmos caminhos, mesmos payloads JSON. Seus SDKs oficiais (openai-python, openai-node) funcionam apenas alterando a URL base.
Multi-backend
LocalAI depende de llama.cpp (GGUF), whisper.cpp, diffusers, piper e outros, conforme o modelo. Você não precisa instalá-los um a um.
Multimodal
Texto, embeddings, áudio (STT + TTS) e imagens na mesma instância, cada um em sua própria rota OpenAI.
100 % local
Funciona offline após os modelos serem baixados. Sem telemetria de inferência, sem dependência de nuvem.
i
Pesos abertos, sem mágica
LocalAI é um servidor, não um modelo. A qualidade da saída depende totalmente dos modelos com pesos abertos que você carrega nele — e da sua VRAM. Um GGUF Q4_K_M de 7B continua sendo um 7B, independentemente de ser servido via Ollama, llama.cpp ou LocalAI.

O projeto se expandiu significativamente ao longo das versões desde sua descrição inicial como um simples clone da API da OpenAI. Sua compatibilidade 'drop-in' agora também abrange as APIs da Anthropic e da ElevenLabs, em cada um de seus backends. Mais de 60 backends são compatíveis — llama.cpp, vLLM, SGLang, transformers, whisper.cpp, diffusers, MLX e MLX-VLM para Apple Silicon, entre outros — e podem ser instalados sob demanda a partir de uma galeria de backends, sem que seja necessário incluir todos antecipadamente em uma única imagem.

O LocalAI também integra agentes de IA autônomos com uso de ferramentas, RAG e suporte ao protocolo MCP, além de um modo multiusuário com autenticação por chave de API, cotas e controle de acesso por função. A versão 4.1.0 (abril de 2026) adicionou um modo de cluster distribuído com roteamento inteligente conforme a VRAM disponível e escalonamento automático; a versão 4.2.0 (maio de 2026) adicionou reconhecimento de voz e facial, diarização de falantes, uma API compatível com a do Ollama e geração de vídeo.


#LocalAI ou Ollama, conforme a necessidade

O kit IA Local

Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Os dois executam GGUF via llama.cpp e expõem uma API compatível com a OpenAI para texto. A diferença está no escopo e na filosofia. Ollama busca simplicidade para texto (e um pouco de visão) com uma CLI limpa; o LocalAI busca cobertura ampla — várias modalidades, mais backends, mais configurações, agentes integrados — ao custo de uma configuração significativamente mais extensa.

LocalAI ou Ollama, comparativo rápido
CritérioOllamaLocalAI
IntroduçãoImediata (« ollama run »)Mais verbosa, com YAML para o modelo
ModalidadesTexto (e um pouco de visão)Texto, embeddings, áudio, imagens, vídeo
API compatíveisOpenAIOpenAI, Anthropic, ElevenLabs
Backendsprincipalmente llama.cpp60+ backends (llama.cpp, vLLM, SGLang, MLX…)
Agentes / MCPNão nativoAgentes integrados com RAG e MCP
Multi-utilisateursNão nativoChave API, quotas, papéis
Ecossistema de interfacesMuito abrangenteMais restrito
Boa escolha seChat de texto simples e rápidoVárias modalidades em uma única API

Nada impede que você rode os dois na mesma máquina: Ollama para o chat interativo do dia a dia, LocalAI como gateway multimodal para suas aplicações que precisam de embeddings, áudio ou imagens por trás da mesma API.

→
O bom hábito
Se o seu único objetivo é 'falar com um LLM local', continue com Ollama, é mais simples. Mude para LocalAI assim que o termo 'embeddings', 'transcrição' ou 'geração de imagens' for incluído nos requisitos.

#Pré-requisitos

A forma mais organizada de implantar o LocalAI é via Docker, com uma imagem específica para o seu hardware. Reserve memória de acordo com os modelos desejados: é a VRAM (ou a RAM ao usar apenas a CPU) que, no final, determina quais modelos você poderá realmente disponibilizar.

Docker
Docker Engine ou uma versão recente do Docker Desktop. Docker Compose recomendado para uma implantação reproduzível.
GPU (opcional)
NVIDIA com o NVIDIA Container Toolkit para aceleração com CUDA 12 ou 13. O LocalAI também oferece aceleração em AMD (ROCm), Intel (oneAPI/SYCL) e Apple Silicon (Metal), com Vulkan como alternativa genérica quando nenhuma dessas opções se aplica. Sem GPU, tudo roda na CPU, mais lentamente.
VRAM por tamanho (Q4)
3B ≈ 2 GB · 7B ≈ 5 GB · 14B ≈ 9 GB · 32B ≈ 19 GB · 70B ≈ 40 GB. Adicione margem para um modelo de embeddings e/ou Whisper se os servir em paralelo.
Referências de GPU
RTX 3060 12GB (de entrada) ou RTX 4070 12GB acomodam confortavelmente um modelo de 7-14B; RTX 4090 24GB ou um Mac M4 Pro com 24-48 GB de memória unificada para quem busca modelos maiores.
Espaço em disco
Cada modelo pesa vários GB, às vezes mais para imagens ou vídeos. Reserve um volume dedicado para não precisar baixar nada novamente a cada reinício do contêiner.

#Implantar o LocalAI com Docker

  1. 01
    Iniciar um contêiner de teste
    O comando mais rápido inicia o LocalAI e expõe a API na porta 8080. Use a imagem « -gpu-nvidia-cuda-12 » (ou « -cuda-13 » com os drivers mais recentes) se você tiver uma placa NVIDIA, ou a imagem padrão para CPU caso contrário.
  2. 02
    Verificar se a API responde
    Assim que o contêiner estiver pronto, a rota /v1/models deve retornar a lista (inicialmente vazia) no formato OpenAI. Esse é o sinal de que o servidor está corretamente vinculado à porta 8080.
  3. 03
    Persistir os modelos
    Monte um volume em /models (ou /build/models conforme a imagem) para que os modelos baixados permaneçam após o reinício. Sem volume, tudo é baixado novamente a cada “docker run”.
  4. 04
    Mudar para Docker Compose
    Para uso a longo prazo, descreva o serviço em um docker-compose.yml: imagem, portas, volume e reserva de GPU. Você reinicia tudo com um 'docker compose up -d'.
Terminal — inicialização rápida (CPU)
# Lance LocalAI, API OpenAI-compatible sur le port 8080
docker run -p 8080:8080 --name localai \
  -v $PWD/models:/models \
  localai/localai:latest

# Version GPU NVIDIA (CUDA 12) :
# docker run -p 8080:8080 --gpus all \
#   -v $PWD/models:/models \
#   localai/localai:latest-gpu-nvidia-cuda-12

# Version GPU NVIDIA (CUDA 13, plus récente) :
# docker run -p 8080:8080 --gpus all \
#   -v $PWD/models:/models \
#   localai/localai:latest-gpu-nvidia-cuda-13
docker-compose.yml
services:
  localai:
    image: localai/localai:latest-gpu-nvidia-cuda-12
    container_name: localai
    ports:
      - "8080:8080"
    volumes:
      - ./models:/models
    environment:
      - DEBUG=true
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped
Terminal — verificar
# La route est identique à celle d'OpenAI
curl http://localhost:8080/v1/models
!
Não o exponha na internet sem proteção
Por padrão, o LocalAI escuta sem autenticação. Se você precisar acessá-lo remotamente, coloque-o atrás de um proxy reverso (autenticação + TLS) ou de uma VPN e ative uma chave de API. Uma API de inferência aberta oferece recursos computacionais a qualquer um.

#Instalar um modelo a partir da galeria

O LocalAI fornece uma galeria de modelos pré-configurados, acessível também por meio de «local-ai models list» na linha de comando ou em models.localai.io: cada entrada inclui o backend correto, o template de prompt e os parâmetros padrão. Você pode instalar um modelo por seu nome via API, sem precisar escrever YAML manualmente.

Terminal — instalar via API
# Installe un modèle de la galerie (nom d'exemple)
curl http://localhost:8080/models/apply -H "Content-Type: application/json" -d '{
  "id": "localai@qwen2.5-7b-instruct"
}'

# Suivre l'avancement du téléchargement
curl http://localhost:8080/models/jobs

Para controle total, você também pode definir um modelo manualmente em um arquivo YAML colocado no diretório /models. Esse arquivo descreve o nome exposto pela API, o backend e o arquivo de pesos a carregar.

models/qwen.yaml
name: qwen2.5-7b
backend: llama-cpp
parameters:
  model: qwen2.5-7b-instruct-q4_k_m.gguf
context_size: 8192
template:
  chat: |
    <|im_start|>system
    {{.SystemPrompt}}<|im_end|>
    {{.Input}}
→
O nome = o campo « model »
O « name » do seu YAML (ou da entrada da galeria) é exatamente o valor a ser passado no campo « model » das suas requisições. É isso que substitui « gpt-4o-mini » quando você migra uma aplicação.

#Uma única API para texto, embeddings, áudio e imagens

É aqui que o LocalAI se destaca. Cada modalidade segue sua rota padrão da OpenAI; basta ter instalado o modelo adequado para cada uma. Veja as quatro peças mais úteis.

Terminal — chat (texto)
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "qwen2.5-7b",
  "messages": [{"role": "user", "content": "Explique le RAG en une phrase."}]
}'
Terminal — embeddings (RAG)
curl http://localhost:8080/v1/embeddings -H "Content-Type: application/json" -d '{
  "model": "bert-embeddings",
  "input": "Texte à vectoriser pour ma base vectorielle"
}'
Terminal — transcrição (Whisper)
curl http://localhost:8080/v1/audio/transcriptions \
  -H "Content-Type: multipart/form-data" \
  -F file="@reunion.wav" \
  -F model="whisper-1"
Terminal — geração de imagem
curl http://localhost:8080/v1/images/generations -H "Content-Type: application/json" -d '{
  "model": "stablediffusion",
  "prompt": "un phare breton sous la pluie, aquarelle",
  "size": "512x512"
}'
i
Carregar modelos consome VRAM
Servir texto + embeddings + Whisper + Stable Diffusion ao mesmo tempo soma o consumo de memória. O LocalAI pode descarregar modelos inativos (idle timeout) para liberar a VRAM, mas, em uma placa de 12 GB, prefira alternar as cargas pesadas a manter tudo residente na memória.

#Migrar uma aplicação OpenAI sem alterar o código

Como as rotas e os payloads são idênticos, migrar uma aplicação se resume a alterar a URL base e substituir os nomes dos modelos. Os SDKs oficiais aceitam uma base_url personalizada: esse é o único parâmetro a alterar, seja a aplicação voltada para a API da OpenAI, da Anthropic ou da ElevenLabs.

Python — SDK OpenAI para LocalAI
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",  # au lieu de l'endpoint OpenAI
    api_key="sk-localai",                 # ignorée si l'auth n'est pas activée
)

resp = client.chat.completions.create(
    model="qwen2.5-7b",                    # au lieu de "gpt-4o-mini"
    messages=[{"role": "user", "content": "Bonjour !"}],
)
print(resp.choices[0].message.content)
Node.js — mesmo princípio
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://localhost:8080/v1",
  apiKey: "sk-localai",
});

const resp = await client.chat.completions.create({
  model: "qwen2.5-7b",
  messages: [{ role: "user", content: "Bonjour !" }],
});
console.log(resp.choices[0].message.content);
URL base
Substitua o endpoint OpenAI por http://votre-hote:8080/v1. Normalmente apenas uma variável de ambiente OPENAI_BASE_URL.
Nomes dos modelos
« gpt-4o » → o nome do seu modelo local. É o principal ajuste a fazer no código ou na configuração.
Chave de API
Opcional localmente; insira qualquer valor se o SDK o exigir, ou configure uma chave real no LocalAI.
Diferenças de comportamento
Um modelo local de 7B não pensa como o GPT-4. Ajuste seus prompts e expectativas, em vez de assumir uma paridade de qualidade.

#Solução de problemas

O container inicia lentamente na primeira execução
As imagens do LocalAI e o primeiro download de modelo são volumosos. Isso é normal; as inicializações seguintes são rápidas se o volume /models for persistente.
« model not found »
O campo 'model' da requisição deve corresponder exatamente ao 'name' da galeria ou do YAML. Verifique com 'curl /v1/models'.
Sem aceleração por GPU
Certifique-se de usar uma imagem « -gpu-nvidia-cuda-12 » (ou « -cuda-13 »), instale o NVIDIA Container Toolkit e passe « --gpus all ». Ative DEBUG=true para ver o backend realmente selecionado.
Respostas lentas ou OOM
O modelo excede a capacidade da sua VRAM e passa a usar CPU/RAM para a parte que não cabe nela. Reduza um nível (Q4_K_M em vez de Q8_0, ou um modelo menor) ou reduza context_size.
Uma modalidade não responde
Cada rota exige seu modelo: sem modelo de embeddings instalado, não há embeddings; sem modelo Whisper, não há /audio. Instale a peça faltante na galeria.

#Para se aprofundar

O LocalAI é apenas um dos servidores de inferência para modelos de pesos abertos disponíveis. Para escolher de forma informada, compare-o com o llama-server (o servidor HTTP do llama.cpp) e com a abordagem do Ollama, e refine o equilíbrio entre memória e qualidade dos seus modelos com o guia sobre quantização. Em seguida, conecte uma interface ou um aplicativo a ele por meio do seu endpoint OpenAI.


#FAQ

LocalAI é gratuito?+
Sim, é open source sob licença MIT e pode ser hospedado por você sem custo de licença, inclusive para uso profissional ou comercial. Os únicos custos reais são o hardware que executa os modelos e a eletricidade consumida, como em qualquer servidor de inferência local que você mesmo mantém em funcionamento.
O LocalAI oferece suporte a outras APIs além da API da OpenAI?+
Sim, desde as versões recentes. A compatibilidade "drop-in" agora cobre também as APIs da Anthropic e do ElevenLabs em todos os backends, além da OpenAI, o que amplia significativamente o número de aplicações que podem ser reconectadas sem precisar reescrever o código cliente existente, incluindo ferramentas projetadas inicialmente para esses provedores de nuvem específicos.
Qual a diferença entre LocalAI e Ollama?+
Os dois expõem uma API compatível com a OpenAI para texto via llama.cpp, com uma experiência inicial simples. O LocalAI vai muito além: mais de 60 backends, embeddings, áudio, imagens, vídeo, agentes com MCP e RAG e um modo multiusuário, ao custo de uma configuração mais extensa do que a do Ollama.
O LocalAI é seguro por padrão se for exposto na Internet?+
Não, por padrão, após a instalação, a API aceita conexões sem autenticação obrigatória. O projeto agora oferece autenticação por chave de API, cotas e controle de acesso por função, mas é necessário ativar esses recursos explicitamente; sem isso, coloque sempre o LocalAI atrás de um proxy reverso ou de uma VPN.
É necessária uma GPU para o LocalAI?+
Não, o LocalAI também funciona apenas com CPU, embora a inferência seja mais lenta. Uma GPU NVIDIA, AMD, Intel ou Apple Silicon (via Metal) acelera significativamente o processo; o projeto oferece suporte a essas quatro famílias de hardware, além do Vulkan como alternativa genérica para hardware de vários fabricantes e do Jetson L4T para sistemas embarcados NVIDIA.

Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.