Key Takeaways
- LM Studio: localhost:1234/v1 — Ative na aba Local Server; sem GPU necessária; compatível com OpenAI.
- Ollama: localhost:11434/v1 — Inicie com `ollama serve`; ideal para scripts e automação.
- vLLM: localhost:8000/v1 — GPU recomendada; uso em produção de alto throughput.
- Altere apenas duas linhas no seu código OpenAI existente: `base_url` e `api_key`.
- Streaming e function calling funcionam com os três backends.
- A LGPD brasileira é atendida: nenhum dado de prompt sai da sua infraestrutura local.
- Aider, Cline e Roo Code se conectam aos modelos locais usando o mesmo ajuste de base_url -- sem integração separada.
O Ollama, o LM Studio e o vLLM expõem uma API REST compatível com a OpenAI no localhost, então qualquer código escrito para o SDK Python ou Node.js da OpenAI funciona com modelos locais alterando apenas duas linhas: base_url e api_key.
Se você já escreveu código que chama a API do ChatGPT da OpenAI, você já sabe como usar modelos locais -- o Ollama, o LM Studio e o vLLM falam exatamente o mesmo formato de API. Você não precisa aprender uma biblioteca nova; basta apontar seu código OpenAI existente para localhost em vez de openai.com, e ele funciona.
Contexto regional e conformidade
Brasil (LGPD / ANPD) — A API de LLM local mantém todos os dados de prompt na sua infraestrutura. A LGPD (Lei nº 13.709/2018) exige controles adequados para dados pessoais sensíveis. A inferência local elimina a necessidade de Acordos de Processamento de Dados com provedores de nuvem.
UE/GDPR — A inferência local satisfaz o Artigo 28 do GDPR. Nenhum dado sai da sua infraestrutura, satisfazendo os requisitos de residência de dados do setor financeiro, de saúde e jurídico da UE.
Global — A API compatível com OpenAI permite migrar entre modelos locais e de nuvem sem alterações de código.
Autenticação — o Ollama normalmente inicia sem autenticação, vinculado ao localhost por padrão. Adicione um proxy reverso e autenticação se expor a API além do localhost, já que o vLLM suporta autenticação por chave de API e o LM Studio também pode ser exposto publicamente.
⚠️ Aviso: a API do Ollama NÃO tem autenticação por padrão. Se você a expuser à sua rede (`OLLAMA_HOST=0.0.0.0`), qualquer pessoa nessa rede pode enviar requisições, carregar modelos e consumir recursos de GPU. Para configurações multiusuário ou de produção, coloque um proxy reverso (nginx, Caddy) com autenticação na frente do Ollama -- nunca exponha a porta 11434 diretamente para a internet.
Perguntas frequentes
Preciso modificar meu código OpenAI para usar o Ollama?
Não. Defina base_url="http://localhost:11434/v1" e api_key="ollama". O restante permanece igual. Se você já tem código com a biblioteca OpenAI, basta trocar essas duas linhas e ele funciona com seu modelo local.
Posso usar a API do Ollama a partir de outro computador na minha rede?
Sim. Por padrão, o Ollama escuta apenas em localhost. Defina OLLAMA_HOST=0.0.0.0:11434 antes de executar o Ollama para permitir acesso pela rede. Aponte o código para http://<ip-da-maquina>:11434/v1. Adicione um firewall ou proxy reverso por segurança.
O LM Studio tem uma API compatível com OpenAI?
Sim. O LM Studio expõe uma API compatível com OpenAI em http://localhost:1234/v1. Ative-a na aba Local Server. Use o mesmo código do Ollama, alterando apenas a porta de 11434 para 1234.
Posso chamar vários modelos simultaneamente via API do Ollama?
Se ambos os modelos estiverem carregados no Ollama, sim. Executar dois modelos simultaneamente aproximadamente dobra o uso de VRAM. Certifique-se de ter memória de GPU suficiente antes de carregar vários modelos ao mesmo tempo.
A API do Ollama é autenticada?
Não. Por padrão, o Ollama não tem autenticação. Qualquer pessoa com acesso a localhost:11434 pode usá-la. Para uso em produção exposto à rede, adicione autenticação via proxy reverso (nginx com Basic Auth ou OAuth2-proxy).
Como uso streaming com a API OpenAI do Ollama?
Defina stream=True na sua chamada da biblioteca OpenAI. O Ollama retorna eventos enviados pelo servidor (SSE) com cada token. Em Python: for chunk in client.chat.completions.create(stream=True, ...): print(chunk.choices[0].delta.content).
O Ollama suporta function calling / uso de ferramentas via API?
Sim, para modelos que suportam isso (Llama 3.1 8B, Qwen3 8B, Mistral). Passe tools=[] na chamada da API como faria com a OpenAI. O Ollama analisa as chamadas de ferramentas e retorna JSON estruturado. Nem todos os modelos suportam isso -- verifique a documentação do modelo.
Qual a diferença entre /api/generate e /v1/chat/completions do Ollama?
/api/generate é o endpoint nativo de turno único do Ollama. /v1/chat/completions é o endpoint multi-turno compatível com OpenAI. Use /v1/chat/completions para todos os novos projetos -- ele suporta histórico de conversa e é compatível com bibliotecas OpenAI.
Posso usar o vLLM como uma API compatível com OpenAI?
Sim. O vLLM executa um servidor compatível com OpenAI em http://localhost:8000/v1 por padrão. Inicie-o com: python -m vllm.entrypoints.openai.api_server --model mistralai/Mistral-7B-v0.1. Use o mesmo código de cliente do Ollama.
Como uso a API do Ollama com o pacote openai do Node.js?
Importe OpenAI de openai. Defina baseURL: "http://localhost:11434/v1" e apiKey: "ollama" no construtor. Depois chame client.chat.completions.create() exatamente como faria com a API real da OpenAI -- nenhuma outra alteração é necessária.
Como alterno entre Ollama e OpenAI na mesma base de código?
Use uma variável de ambiente: defina USE_LOCAL=true para o Ollama (base_url http://localhost:11434/v1, api_key "ollama") e USE_LOCAL=false para a OpenAI. A biblioteca Python da OpenAI aceita base_url como argumento do construtor.
Posso usar a API compatível com OpenAI com o LangChain?
Sim. Use ChatOpenAI com base_url="http://localhost:11434/v1" e api_key="ollama". O LangChain também tem uma classe ChatOllama dedicada para recursos específicos do Ollama.
Qual porta o LM Studio usa para sua API compatível com OpenAI?
O LM Studio usa a porta 1234. A URL base da API é http://localhost:1234/v1. Ative-a na aba Local Server no LM Studio, carregue um modelo e use o SDK da OpenAI com base_url="http://localhost:1234/v1" e api_key="lm-studio" (qualquer string).
Como configuro o LM Studio como um servidor de API OpenAI local?
Abra o LM Studio, carregue um modelo, vá até a aba Local Server e clique em Start Server. O LM Studio inicia uma API compatível com OpenAI em http://localhost:1234/v1. Instale o SDK da OpenAI (pip install openai) e execute: client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio"). Chame client.chat.completions.create() exatamente como faria com a OpenAI.
Como uso o Aider com um modelo local via Ollama ou LM Studio?
Aponte o Aider para seu servidor local compatível com OpenAI definindo as variáveis de ambiente OPENAI_API_BASE e OPENAI_API_KEY (ou as flags de CLI correspondentes) para http://localhost:11434/v1 (Ollama) ou http://localhost:1234/v1 (LM Studio), com qualquer string como chave. O Aider também tem suporte nativo ao Ollama através de seu próprio prefixo de provedor -- consulte a documentação do Aider para o método atualmente recomendado.
O Cline ou o Roo Code podem usar modelos locais através do LM Studio ou Ollama?
Sim. Ambas as extensões do VS Code incluem uma opção de provedor OpenAI Compatible em suas configurações. Insira http://localhost:11434/v1 (Ollama) ou http://localhost:1234/v1 (LM Studio) como Base URL, qualquer string como chave de API e o nome exato do modelo. O Roo Code é um fork do Cline e usa o mesmo padrão de configuração.
