Documentação

Documentação

API do Ollama compatível com a OpenAI

O Ollama disponibiliza uma API compatível com a OpenAI para modelos locais. Veja como chamá-la usando o SDK da OpenAI — e como o mesmo código acessa Claude e GPT hospedados, alterando apenas base_url e model.

O Ollama executa modelos abertos na sua própria máquina e os disponibiliza por meio de uma API compatível com a OpenAI em http://localhost:11434/v1. Como o formato de comunicação é igual ao da OpenAI, o SDK oficial da OpenAI funciona com o Ollama sem alterações — e o mesmo código acessa modelos de ponta hospedados, alterando apenas a URL base.

Em resumo — a API OpenAI do Ollama está em http://localhost:11434/v1. Configure o base_url do cliente OpenAI para esse endereço e use qualquer api_key fictícia. Para usar Claude/GPT hospedados, altere base_url para https://api.kunavo.com/v1 e o slug do modelo — nada mais.

O que é a API do Ollama compatível com a OpenAI

O Ollama é um projeto independente de código aberto para executar localmente modelos como Llama, Qwen e Mistral. Além da API nativa, ele oferece uma interface compatível com a OpenAI, permitindo que ferramentas desenvolvidas para a OpenAI funcionem sem precisar ser reescritas. Ele implementa os endpoints usados pela maioria dos aplicativos:

Ponto de extremidadeFinalidade
POST /v1/chat/completionsChat — o endpoint usado pela maioria dos aplicativos
POST /v1/completionsCompletions de texto legadas
POST /v1/embeddingsEmbeddings para modelos locais
GET /v1/modelsListar modelos baixados localmente

Ela abrange chat, completions e embeddings (além de entrada de imagem em modelos locais multimodais). Não gera imagens, vídeos nem áudio. A Kunavo implementa o mesmo contrato /v1/chat/completions — essa referência documenta cada parâmetro, o formato dos deltas de streaming e o objeto usage, além de incluir uma tabela de paridade, linha por linha, com a interface v1 do Ollama.

Chame o Ollama com o SDK da OpenAI

Aponte base_url para http://localhost:11434/v1. O SDK exige um api_key, mas o Ollama local ignora seu valor — informe qualquer string. Defina model como um modelo que você baixou (por exemplo, ollama pull llama3.2).

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama's OpenAI-compatible API
    api_key="ollama",  # required by the SDK, ignored by local Ollama
)

resp = client.chat.completions.create(
    model="llama3.2",
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)

Ou com curl:

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.2",
    "messages": [{"role": "user", "content": "Hello, Ollama"}]
  }'

O mesmo código com modelos de ponta hospedados

O Ollama é ideal para desenvolvimento offline e trabalhos que exigem privacidade, mas os modelos locais ficam atrás dos modelos de ponta em raciocínio complexo, programação e contexto longo. Como a Kunavo também é compatível com a OpenAI, transferir uma chamada para um modelo hospedado exige apenas alterar duas linhas — base_url e o slug do modelo:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.kunavo.com/v1",  # only this line changes
    api_key="sk-kn-...",               # a real key now
)

resp = client.chat.completions.create(
    model="claude-sonnet-5",  # a hosted frontier model
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)
Ollama (local)Kunavo (hospedado)
URL baselocalhost:11434/v1api.kunavo.com/v1
Executado emSua máquinaAPI gerenciada
ModelosModelos abertos locaisClaude, GPT, Veo, Suno
ModalidadesTexto + embeddingsTexto, imagem, vídeo, áudio
CustoSeu hardware / eletricidadePor token, abaixo do preço de tabela
Melhor paraDesenvolvimento offline, privacidadeQualidade de ponta para produção
Uma única chave na Kunavo dá acesso a todos os modelos hospedados; a cobrança é feita uma vez via Stripe — consulte o guia de início rápido para fazer sua primeira chamada.

Alternar por ambiente

Um padrão comum é usar o Ollama no desenvolvimento local e modelos hospedados em produção, selecionados por uma variável de ambiente. O código do cliente e da solicitação é idêntico — apenas base_url e o modelo mudam:

import os
from openai import OpenAI

# One client, switched by environment. Local for dev, hosted for prod.
if os.getenv("APP_ENV") == "production":
    client = OpenAI(base_url="https://api.kunavo.com/v1",
                    api_key=os.environ["KUNAVO_API_KEY"])
    MODEL = "claude-haiku-4-5"
else:
    client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
    MODEL = "llama3.2"

resp = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)

Perguntas frequentes

O Ollama tem uma API compatível com OpenAI?

Sim. O Ollama disponibiliza uma API REST compatível com OpenAI em http://localhost:11434/v1, com /chat/completions, /completions, /embeddings e /models. Aponte o SDK oficial da OpenAI para essa base_url, informe qualquer string como api_key (o Ollama a ignora localmente) e defina model como um modelo baixado, como llama3.2. Os formatos de solicitação e resposta correspondem aos da OpenAI.

Qual URL base a API OpenAI do Ollama usa?

http://localhost:11434/v1 by default. Set the OpenAI client base_url to that value. If Ollama runs on another host or port, substitute it — the /v1 suffix stays.

Como faço para mudar do Ollama para um modelo hospedado?

Como ambos são compatíveis com a OpenAI, você altera apenas base_url e model. Troque http://localhost:11434/v1 por https://api.kunavo.com/v1, use uma chave sk-kn- válida e defina model como um slug hospedado, como claude-sonnet-5 ou claude-haiku-4-5. Nenhuma outra alteração no código é necessária.

A API OpenAI do Ollama é compatível com imagens ou vídeos?

A interface compatível com a OpenAI do Ollama abrange chat, completions e embeddings, além de entrada de imagem em modelos locais multimodais. Ela não gera imagens, vídeos nem áudio. Para geração hospedada de imagens, vídeos e áudio na mesma API no estilo OpenAI, use os endpoints /v1/images, /v1/video e /v1/audio da Kunavo.

Próximos passos