Ollama API: системная инструкция для одного запроса
На странице · 3 разделов
Поле `system` в запросе `/api/generate` задаёт инструкцию для ответа модели и на время этого запроса заменяет системное сообщение из Modelfile. Можно сравнить два ответа на одно задание, не создавая новый тег модели. Модель может не выполнить инструкцию точно; факты в ответе нужно сверять отдельно.
Нужно, чтобы модель отвечала на русском и называла источник своей неопределённости? Системная инструкция — текст с общим правилом поведения модели; его можно отправить вместе с одним заданием. Здесь мы сравним два фактических ответа, не создавая отдельный тег модели и не обещая, что инструкция исключит ошибки. s1 s3
Уровень — терминал Linux. Шаги сверены с документацией и кодом Ollama v0.40.13 на 31 октября 2026 года; редакция не запускала модель и не измеряла соблюдение инструкции. Понадобятся установленная Ollama, curl, свободное место для скачивания qwen2.5:1.5b и память для его запуска. Универсальный минимум оперативной и видеопамяти для этой пары не установлен. Интернет нужен для установки и загрузки модели; ниже запрос идёт на адрес 127.0.0.1 на вашем компьютере, но один этот адрес не доказывает отсутствия любых других сетевых обращений. s1 s5
Как подготовить модель и сравнить два запроса?
Если Ollama ещё не установлена, начните с инструкции по запуску. В терминале Linux выполните ollama pull qwen2.5:1.5b, дождитесь окончания загрузки и проверьте наличие тега командой ollama list. Тег в библиотеке может обновляться, поэтому для повторяемого опыта запишите фактически полученную версию модели и версию программы. Успешная загрузка не доказывает, что памяти хватит на ответ. s5
Сначала отправьте исходное задание: curl -fsS http://127.0.0.1:11434/api/generate -H 'Content-Type: application/json' -d '{"model":"qwen2.5:1.5b","prompt":"Назови два пункта, которые нужно проверить перед отправкой письма с датой встречи и суммой оплаты.","stream":false}'. Здесь API — адрес программы для запроса, а JSON — набор подписанных полей. При успешном запросе найдите текст в поле response и сохраните его; мы не подставляем придуманный ответ модели. s1
Повторите то же задание, добавив только инструкцию: curl -fsS http://127.0.0.1:11434/api/generate -H 'Content-Type: application/json' -d '{"model":"qwen2.5:1.5b","system":"Отвечай по-русски двумя короткими пунктами. Не выдумывай дату или сумму: в вопросе их значения не указаны.","prompt":"Назови два пункта, которые нужно проверить перед отправкой письма с датой встречи и суммой оплаты.","stream":false}'. Сверьте поле response в двух объектах: есть ли два пункта, назвала ли модель несуществующие дату или сумму, уточнила ли необходимость проверки исходного письма. Содержимое исходного письма здесь не передаётся, поэтому верную дату и сумму по такому ответу определить нельзя. s1 s2
Чем этот способ отличается от Modelfile и чата?
В /api/generate поле system заменяет системное сообщение из Modelfile в данном запросе; код сначала проверяет поле запроса, а если оно пустое, может подставить инструкцию модели. Новый вариант модели эти команды не создают. Для постоянного собственного варианта смотрите Modelfile; не путайте инструкцию в одном запросе с изменением самой модели. s1 s3 s4
Если клиент работает через /api/chat, он передаёт массив сообщений с ролями system и user, а не отдельное верхнеуровневое поле system из /api/generate. Это другой формат запроса, его не стоит смешивать с приведёнными командами. В режиме raw:true обработчик /api/generate отклоняет непустое поле system; в нашем примере raw не включён. s1 s3
Что проверить, если инструкция не сработала?
Если нет соединения, проверьте запуск Ollama и тег через ollama list до изменения текста инструкции. Если ответ есть, но формат другой, сохраните фактический ответ и повторите опыт с тем же тегом: модель может не следовать правилу буквально. Не меняйте одновременно инструкцию и параметр температуры, иначе сравнение станет менее понятным. Для реального письма обязательно сверяйте даты, суммы, имена и обязательства с исходником до отправки; инструкция не подтверждает их за человека. s1
Источники
- Ollama v0.40.13 — Generate API — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 34–59; сохранённый файл и SHA в каталоге исследования.. Получено 31.10.2026.
- Ollama v0.40.13 — тип GenerateRequest — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 70–90: system, prompt, stream, raw.. Получено 31.10.2026.
- Ollama v0.40.13 — обработчик GenerateHandler — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 420–422, 498–500, 601–605; анализ исходника, не запуск сервера.. Получено 31.10.2026.
- Ollama v0.40.13 — Modelfile SYSTEM — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 181–186; постоянная инструкция — отдельный сценарий.. Получено 31.10.2026.
- Официальная библиотека Ollama — qwen2.5:1.5b — Подвижный тег: версия весов может измениться; не источник минимума RAM.. Получено 31.10.2026.