~/tools / Rodar um LLM local no seu servidor / Ollama API Request Builder

Ollama API Request Builder — Monte uma requisição curl para o /api/chat do Ollama: format, tools, think, options

Monte uma requisição para o endpoint /api/chat do Ollama a partir de um formulário: o modelo, uma mensagem de sistema e uma de usuário, saída estruturada com format e um JSON Schema, definições de ferramentas, raciocínio, streaming, opções como temperature e num_ctx, sequências de parada e keep_alive. Você recebe um comando curl pronto para executar e o corpo JSON. Cada campo vem da referência oficial da API do Ollama. Nada sai do seu navegador.

Opções, sequências de parada e keep_alive

Campos vazios não são enviados, então as configurações do modelo continuam valendo.

Comando curl

Execute em um terminal de uma máquina que consiga acessar o Ollama.

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3:4b",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about Canada."
    }
  ],
  "format": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string"
      },
      "capital": {
        "type": "string"
      },
      "languages": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "name",
      "capital",
      "languages"
    ]
  },
  "options": {
    "temperature": 0
  },
  "stream": false
}'

Corpo JSON

{
  "model": "qwen3:4b",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about Canada."
    }
  ],
  "format": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string"
      },
      "capital": {
        "type": "string"
      },
      "languages": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "name",
      "capital",
      "languages"
    ]
  },
  "options": {
    "temperature": 0
  },
  "stream": false
}

Campos conforme a referência da API do Ollama para /api/chat, conferidos em 2026-11-03. API do Ollama: Generate a chat message

Tudo é feito no seu navegador. A ferramenta apenas escreve o comando e não envia nada.

O endpoint /api/chat do Ollama recebe um corpo JSON com um modelo e uma lista de messages, além de campos opcionais: tools para chamada de funções, format para uma resposta JSON ou uma resposta que siga um JSON Schema, options para ajustes como temperature e num_ctx, stream, think e keep_alive. Escrever esse corpo à mão em um terminal é propenso a erros: uma vírgula faltando o quebra, um apóstrofo em uma mensagem encerra as aspas do shell e um número digitado como texto pode não ser lido como número. Esta ferramenta monta o corpo a partir de um formulário e o envolve em um comando curl no formato dos exemplos da documentação do Ollama, escapando os apóstrofos para o shell. Ela verifica se o JSON Schema e a lista de ferramentas são JSON válido, se cada ferramenta tem o type, o name e os parameters que a referência da API exige, e se as options são números do tipo certo. Executamos os comandos gerados no Ollama 0.40.11 com qwen2.5:7b: uma requisição com JSON Schema retornou uma resposta com essa forma, uma requisição com uma ferramenta retornou uma chamada de ferramenta, e o streaming, o modo json, as sequências de parada e o keep_alive funcionaram sem erros.

A lógica principal desta ferramenta é de código aberto, sob a licença MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-api-request.ts

Casos de uso

  • Testar a saída estruturada no seu próprio servidor antes de escrever código: cole um JSON Schema e veja o que o modelo devolve
  • Conferir se um modelo chama a sua função, com a definição de ferramenta que você pretende usar na sua aplicação
  • Chamar o Ollama atrás de um proxy nginx com senha, com a URL certa e curl -u

Como usar

  1. Informe o endereço do seu servidor Ollama (http://localhost:11434 se você deixar vazio) e o nome do modelo, depois escreva a mensagem de usuário e, se quiser, uma mensagem de sistema.
  2. Escolha um formato de saída, adicione definições de ferramentas como um array JSON e defina o raciocínio e o streaming. Abra Opções para definir temperature, num_ctx, uma seed, sequências de parada ou keep_alive. Campos vazios são omitidos.
  3. Copie o comando curl e execute-o em um terminal de uma máquina que consiga acessar o Ollama. O corpo JSON é mostrado separadamente, caso você queira enviá-lo do seu próprio código.

FAQ

O que o stream faz?

A referência da API dá ao stream o padrão true. Uma resposta em streaming chega como JSON delimitado por quebras de linha, um pedaço de cada vez. Com stream definido como false, a documentação diz que a resposta volta como um único objeto JSON, que a página de streaming chama de mais simples de processar e melhor para respostas curtas ou saídas estruturadas. A ferramenta escreve "stream": false apenas quando você desativa o streaming.

Que valores o think pode ter?

A referência da API diz que true solicita raciocínio, false solicita nenhuma saída de raciocínio, e uma string seleciona um nível que o modelo define; números não são suportados. A documentação diz para usar /api/show para descobrir os valores que um modelo suporta, e a ferramenta mostra esse comando quando você define think. No nosso teste, think false funcionou com qwen2.5:7b, e think true foi recusado com "qwen2.5:7b" does not support thinking.

Qual é a diferença entre json e um JSON Schema em format?

A referência da API diz que format pode ser json ou um JSON schema. json pede qualquer JSON válido. Um schema descreve a forma exata, como os nomes das propriedades e quais são obrigatórias, e no nosso teste a resposta o seguiu. A ferramenta envia o schema como um objeto, não como uma string.

Como deve ser uma definição de ferramenta?

A referência da API exige type, que é sempre function, e um objeto function com um name e parameters, em que parameters é um JSON Schema dos argumentos; description é opcional. A ferramenta verifica esses campos. Quando o modelo decide chamar a função, a resposta contém message.tool_calls em vez de texto.

Como chamo um Ollama que está atrás de uma senha?

Informe o endereço do proxy, como https://ollama.example.com, e o nome de usuário. A ferramenta adiciona -u com esse nome ao comando curl, e o curl então pede a senha, de modo que a senha nunca faz parte do comando. O Ollama nginx Config Generator deste site monta um proxy desse tipo.

Algo é enviado a um servidor?

Não. A ferramenta apenas escreve o comando. Nada é enviado até que você mesmo o execute.

Artigos relacionados

Relacionados