# Ollama API: системная инструкция для одного запроса

Источник: https://modelium.tech/zhurnal/ollama-system-prompt-api/

Поле `system` в запросе `/api/generate` задаёт инструкцию для ответа модели и на время этого запроса заменяет системное сообщение из Modelfile. Можно сравнить два ответа на одно задание, не создавая новый тег модели. Модель может не выполнить инструкцию точно; факты в ответе нужно сверять отдельно.

Нужно, чтобы модель отвечала на русском и называла источник своей неопределённости? Системная инструкция — текст с общим правилом поведения модели; его можно отправить вместе с **одним** заданием. Здесь мы сравним два фактических ответа, не создавая отдельный тег модели и не обещая, что инструкция исключит ошибки. [s1](#src-s1) [s3](#src-s3)

**Уровень — терминал Linux.** Шаги сверены с документацией и кодом Ollama v0.40.13 на 31 октября 2026 года; редакция не запускала модель и не измеряла соблюдение инструкции. Понадобятся установленная Ollama, `curl`, свободное место для скачивания `qwen2.5:1.5b` и память для его запуска. Универсальный минимум оперативной и видеопамяти для этой пары не установлен. Интернет нужен для установки и загрузки модели; ниже запрос идёт на адрес `127.0.0.1` на вашем компьютере, но один этот адрес не доказывает отсутствия любых других сетевых обращений. [s1](#src-s1) [s5](#src-s5)

## Как подготовить модель и сравнить два запроса?

Если Ollama ещё не установлена, начните с [инструкции по запуску](/zapusk/ollama/). В терминале Linux выполните `ollama pull qwen2.5:1.5b`, дождитесь окончания загрузки и проверьте наличие тега командой `ollama list`. Тег в библиотеке может обновляться, поэтому для повторяемого опыта запишите фактически полученную версию модели и версию программы. Успешная загрузка не доказывает, что памяти хватит на ответ. [s5](#src-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](#src-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](#src-s1) [s2](#src-s2)

## Чем этот способ отличается от Modelfile и чата?

В `/api/generate` поле `system` заменяет системное сообщение из Modelfile **в данном запросе**; код сначала проверяет поле запроса, а если оно пустое, может подставить инструкцию модели. Новый вариант модели эти команды не создают. Для постоянного собственного варианта смотрите [Modelfile](/zhurnal/ollama-modelfile/); не путайте инструкцию в одном запросе с изменением самой модели. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

Если клиент работает через `/api/chat`, он передаёт массив сообщений с ролями `system` и `user`, а не отдельное верхнеуровневое поле `system` из `/api/generate`. Это другой формат запроса, его не стоит смешивать с приведёнными командами. В режиме `raw:true` обработчик `/api/generate` отклоняет непустое поле `system`; в нашем примере `raw` не включён. [s1](#src-s1) [s3](#src-s3)

## Что проверить, если инструкция не сработала?

Если нет соединения, проверьте запуск Ollama и тег через `ollama list` до изменения текста инструкции. Если ответ есть, но формат другой, сохраните фактический ответ и повторите опыт с тем же тегом: модель может не следовать правилу буквально. Не меняйте одновременно инструкцию и параметр [температуры](/zhurnal/ollama-temperature-api/), иначе сравнение станет менее понятным. Для реального письма обязательно сверяйте даты, суммы, имена и обязательства с исходником до отправки; инструкция не подтверждает их за человека. [s1](#src-s1)

## Источники

1. [Ollama v0.40.13 — Generate API](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/docs/api.md#generate-a-completion) — получено 2026-10-31
2. [Ollama v0.40.13 — тип GenerateRequest](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/api/types.go#L64-L91) — получено 2026-10-31
3. [Ollama v0.40.13 — обработчик GenerateHandler](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/server/routes.go#L420-L422) — получено 2026-10-31
4. [Ollama v0.40.13 — Modelfile SYSTEM](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/docs/modelfile.mdx#system) — получено 2026-10-31
5. [Официальная библиотека Ollama — qwen2.5:1.5b](https://ollama.com/library/qwen2.5:1.5b) — получено 2026-10-31
