Skip to content

O Ollama oferece compatibilidade com partes da API da OpenAI para ajudar a conectar aplicativos existentes ao Ollama.

Uso

Exemplo simples de /v1/chat/completions

Exemplo simples de /v1/responses

Exemplo de /v1/chat/completions com visão

Endpoints

/v1/chat/completions

Funcionalidades suportadas

  • [x] Completions de chat
  • [x] Streaming
  • [x] Modo JSON
  • [x] Saídas reproduzíveis
  • [x] Visão
  • [x] Ferramentas
  • [x] Controle de raciocínio/pensamento (para modelos de pensamento)
  • [ ] Logprobs

Campos de requisição suportados

  • [x] model
  • [x] messages
    • [x] content de texto
    • [x] content de imagem
      • [x] Imagem codificada em Base64
      • [ ] URL de imagem
    • [x] Array de partes de content
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] response_format
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] tools
  • [x] reasoning_effort ("high", "medium", "low", "max", "none")
  • [x] reasoning
    • [x] effort ("high", "medium", "low", "max", "none")
  • [ ] tool_choice
  • [ ] logit_bias
  • [ ] user
  • [ ] n

/v1/completions

Funcionalidades suportadas

  • [x] Completions
  • [x] Streaming
  • [x] Modo JSON
  • [x] Saídas reproduzíveis
  • [ ] Logprobs

Campos de requisição suportados

  • [x] model
  • [x] prompt
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] suffix
  • [ ] best_of
  • [ ] echo
  • [ ] logit_bias
  • [ ] user
  • [ ] n

Observações

  • O campo prompt atualmente aceita apenas uma string

/v1/models

Observações

  • O campo created corresponde à data da última modificação do modelo
  • O campo owned_by corresponde ao nome de usuário do Ollama, com o valor padrão "library"

/v1/models/{model}

Observações

  • O campo created corresponde à data da última modificação do modelo
  • O campo owned_by corresponde ao nome de usuário do Ollama, com o valor padrão "library"

/v1/embeddings

Campos de requisição suportados

  • [x] model
  • [x] input
    • [x] string
    • [x] array de strings
    • [ ] array de tokens
    • [ ] array de arrays de tokens
  • [x] encoding format
  • [x] dimensions
  • [ ] user

/v1/images/generations (experimental)

Observação: Este endpoint é experimental e pode ser alterado ou removido em versões futuras.

Gere imagens usando modelos de geração de imagem.

Campos de requisição suportados

  • [x] model
  • [x] prompt
  • [x] size (e.g. "1024x1024")
  • [x] response_format (apenas b64_json suportado)
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

Observação: Adicionado no Ollama v0.13.3

O Ollama é compatível com a API Responses da OpenAI. Apenas a versão sem estado é suportada (ou seja, não há suporte para previous_response_id ou conversation).

Funcionalidades suportadas

  • [x] Streaming
  • [x] Ferramentas (chamada de função)
  • [x] Resumos de raciocínio (para modelos de pensamento)
  • [ ] Requisições com estado

Campos de requisição suportados

  • [x] model
  • [x] input
  • [x] instructions
  • [x] tools
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] max_output_tokens
  • [ ] previous_response_id (versão com estado de v1/responses não suportada)
  • [ ] conversation (versão com estado de v1/responses não suportada)
  • [ ] truncation

Modelos

Antes de usar um modelo, faça o download local dele com o comando ollama pull:

shell
ollama pull llama3.2

Nomes de modelo padrão

Para ferramentas que dependem de nomes de modelo padrão da OpenAI, como gpt-3.5-turbo, use o comando ollama cp para copiar um nome de modelo existente para um nome temporário:

shell
ollama cp llama3.2 gpt-3.5-turbo

Depois disso, esse novo nome de modelo pode ser especificado no campo model:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "gpt-3.5-turbo",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

Definindo o tamanho do contexto

A API da OpenAI não possui uma forma de definir o tamanho do contexto de um modelo. Se você precisar alterar o tamanho do contexto, crie um Modelfile com o seguinte conteúdo:

FROM <some model>
PARAMETER num_ctx <context size>

Use o comando ollama create mymodel para criar um novo modelo com o tamanho de contexto atualizado. Chame a API com o nome do modelo atualizado:

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