~/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
Как пользоваться
- Введите адрес вашего сервера Ollama (http://localhost:11434, если оставить поле пустым) и имя модели, затем напишите сообщение пользователя и, если нужно, системное сообщение.
- Выберите формат вывода, добавьте описания инструментов в виде массива JSON и задайте thinking и потоковую передачу. Откройте «Параметры», чтобы задать temperature, num_ctx, seed, стоп-последовательности или keep_alive. Пустые поля не записываются.
- Скопируйте команду 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 на этом сайте собирает такой прокси.
Отправляется ли что-нибудь на сервер?
Нет. Инструмент только пишет команду. Ничего не отправляется, пока вы сами её не выполните.
Похожие статьи
- Следим за памятью Ollama на небольшом VPSЧто Ollama держит в памяти, как долго и какие настройки это меняют: ollama ps, keep_alive и лимиты по официальному FAQ.
- Подключаем Dify к Ollama на собственном VPSЗапустите Dify на своём VPS и используйте Ollama как модель: установка, поля плагина, проблема адреса в Docker и эмбеддинги — по официальной документации.
- Локальная LLM без дорогого ПК: руководство для начинающих по работе через VPSНет мощного ПК? Арендуйте VPS и запустите небольшую локальную LLM из браузера: шесть шагов от оценки памяти до защищённого экрана чата, с честным описанием ограничений.