~/tools / Локальная LLM на своём сервере / Ollama API Request Builder

Ollama API Request Builder — Соберите запрос curl к /api/chat Ollama: format, tools, think, options

Соберите в форме запрос к эндпоинту /api/chat Ollama: модель, системное и пользовательское сообщения, структурированный вывод через format и JSON Schema, описания инструментов, thinking, потоковую передачу, параметры вроде temperature и num_ctx, стоп-последовательности и keep_alive. Вы получите готовую к запуску команду curl и тело JSON. Каждое поле взято из официального справочника API Ollama. Данные не покидают ваш браузер.

Параметры, стоп-последовательности и keep_alive

Пустые поля не отправляются, поэтому остаются в силе настройки модели.

Команда curl

Выполните её в терминале на компьютере, который может обратиться к 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
}'

Тело 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
}

Поля приведены по справочнику API Ollama для /api/chat; проверено 2026-11-03. Ollama API: Generate a chat message

Всё выполняется в вашем браузере. Инструмент только пишет команду и ничего не отправляет.

Эндпоинт /api/chat Ollama принимает тело JSON с моделью и списком messages, а также необязательные поля: tools для вызова функций, format для ответа в JSON или ответа по JSON Schema, options для настроек вроде temperature и num_ctx, stream, think и keep_alive. Писать такое тело вручную в терминале легко с ошибками: пропущенная запятая его ломает, апостроф в сообщении закрывает кавычки оболочки, а число, введённое как текст, может не распознаться как число. Этот инструмент собирает тело из формы и оборачивает его в команду curl по образцу примеров из документации Ollama, экранируя апострофы для оболочки. Он проверяет, что JSON Schema и список инструментов — корректный JSON, что у каждого инструмента есть type, name и parameters, которых требует справочник API, и что options — числа нужного вида. Мы запустили сгенерированные команды на Ollama 0.40.11 с qwen2.5:7b: запрос с JSON Schema вернул ответ в этой форме, запрос с инструментом вернул вызов инструмента, а потоковая передача, режим json, стоп-последовательности и keep_alive работали без ошибок.

Основная логика этого инструмента открыта под лицензией MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-api-request.ts

Когда пригодится

  • Попробовать структурированный вывод на своём сервере до написания кода: вставьте JSON Schema и посмотрите, что вернёт модель
  • Проверить, вызывает ли модель вашу функцию, с тем описанием инструмента, которое вы планируете использовать в приложении
  • Обратиться к Ollama за прокси nginx с паролем, с правильным URL и curl -u

Как пользоваться

  1. Введите адрес вашего сервера Ollama (http://localhost:11434, если оставить поле пустым) и имя модели, затем напишите сообщение пользователя и, если нужно, системное сообщение.
  2. Выберите формат вывода, добавьте описания инструментов в виде массива JSON и задайте thinking и потоковую передачу. Откройте «Параметры», чтобы задать temperature, num_ctx, seed, стоп-последовательности или keep_alive. Пустые поля не записываются.
  3. Скопируйте команду curl и выполните её в терминале на компьютере, который может обратиться к Ollama. Тело JSON показано отдельно, если вы хотите отправить его из собственного кода.

Вопросы

Что делает stream?

В справочнике API у stream значение по умолчанию true. Потоковый ответ приходит как JSON, разделённый переводами строки, по одной части за раз. Если stream равен false, в документации сказано, что ответ возвращается одним объектом JSON, который на странице о потоковой передаче назван более простым в обработке и лучшим для коротких ответов и структурированного вывода. Инструмент пишет "stream": false только тогда, когда вы отключаете потоковую передачу.

Какие значения может принимать think?

В справочнике API сказано, что true запрашивает thinking, false запрашивает ответ без thinking, а строка выбирает уровень, который определяет модель; числа не поддерживаются. В документации сказано использовать /api/show, чтобы узнать значения, поддерживаемые моделью, и инструмент показывает эту команду, когда вы задаёте think. В нашей проверке think false работало с qwen2.5:7b, а think true было отклонено с сообщением "qwen2.5:7b" does not support thinking.

Чем json отличается от JSON Schema в format?

В справочнике API сказано, что format может быть json или схемой JSON. json просит любой корректный JSON. Схема описывает точную форму, например имена свойств и то, какие из них обязательны, и в нашей проверке ответ ей соответствовал. Инструмент отправляет схему как объект, а не как строку.

Как должно выглядеть описание инструмента?

Справочник API требует type, всегда равный function, и объект function с name и parameters, где parameters — JSON Schema аргументов; description необязателен. Инструмент проверяет эти поля. Когда модель решает вызвать функцию, ответ содержит message.tool_calls вместо текста.

Как обратиться к Ollama, которая закрыта паролем?

Введите адрес прокси, например https://ollama.example.com, и имя пользователя. Инструмент добавляет в команду curl параметр -u с этим именем, после чего curl запрашивает пароль, так что пароль никогда не входит в команду. Ollama nginx Config Generator на этом сайте собирает такой прокси.

Отправляется ли что-нибудь на сервер?

Нет. Инструмент только пишет команду. Ничего не отправляется, пока вы сами её не выполните.

Похожие статьи

Похожие