# Ollama API suffix: как дополнить код между двумя фрагментами

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

Поле `suffix` в `/api/generate` передаёт текст после места вставки, а `prompt` — текст до него. Для этой задачи нужна модель с поддержкой вставки кода, например вариант `codellama:code` из официального примера Ollama. Ответ модели — предлагаемый средний фрагмент, а не проверенная готовая программа: его нужно просмотреть перед использованием.

Есть начало и конец небольшой функции, но не хватает строки между ними? В Ollama можно отправить обе части и попросить модель предложить середину. Это называется вставкой кода (infill); ниже — один учебный запрос с явным `suffix`, а не обещание получить рабочий код. [s1](#src-s1) [s2](#src-s2) [s6](#src-s6)

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

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

Если Ollama ещё не установлена, начните с [основного гайда](/zapusk/ollama/). В терминале Linux выполните `ollama pull codellama:code`; после загрузки команда `ollama ls` должна показать этот тег. Официальный API приводит именно `codellama:code` как пример для `suffix`, а исходник сервера требует от модели поддержку вставки. Если ваш другой тег выдаёт ошибку о неподдерживаемой возможности, не считайте это доказательством, что поле `suffix` не работает вообще. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4) [s5](#src-s5)

## Как отправить начало и конец функции?

Отправьте из терминала Linux одну команду: `curl -fsS http://127.0.0.1:11434/api/generate -H 'Content-Type: application/json' -d '{"model":"codellama:code","prompt":"def double(x):\n ","suffix":"\nprint(double(3))","stream":false}'`. JSON — это способ записать именованные поля запроса; здесь `\n` обозначает перенос строки: `prompt` заканчивается внутри функции после отступа, `suffix` начинается после места вставки. `stream:false` просит один объект ответа вместо потока. При успехе ищите предложенный фрагмент в поле `response`; не подменяйте им файл автоматически. Мы не приводим «готовый ответ», которого не получили от модели. [s1](#src-s1) [s2](#src-s2)

Прочитайте предложенную середину вместе с началом и концом: есть ли определение `double(x)`, возвращает ли оно удвоенное число и не добавлены ли посторонние действия? Это **критерии проверки**, а не обещание вывода `6`. Даже если фрагмент выглядит верно, проверьте смысл и безопасность перед исполнением; неподтверждённый машинный код не запускайте. [s1](#src-s1)

## Почему не любая модель и что делать при ошибке?

`prompt` — часть до места вставки, `suffix` — текст после него; `response` содержит предложенное продолжение, но точность и структура зависят от модели. Официальная библиотека Code Llama показывает пример заполнения середины для кодового варианта. Это не то же самое, что параметр остановки генерации или команда выгрузки модели. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3) [s6](#src-s6)

Если соединение с локальным адресом не установлено, сначала проверьте Ollama и `ollama ls`, не меняя текст функции. Если запрос отклонён из-за неподдерживаемой вставки, сверьте тег с `codellama:code` и версию программы. Если полученный фрагмент непригоден, сохраните фактический ответ и исправьте задачу или код вручную; пример не является проверенным тестом производительности или качества. Для выбора альтернатив откройте [модели для программирования](/zhurnal/lokalnye-modeli-dlya-programmirovaniya/). [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

## Источники

1. [Ollama v0.40.13 — Generate API, Request with suffix](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/docs/api.md#request-with-suffix) — получено 2026-10-31
2. [Ollama v0.40.13 — GenerateRequest](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/api/types.go#L59-L91) — получено 2026-10-31
3. [Ollama v0.40.13 — GenerateHandler: insert capability и шаблон](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/server/routes.go#L511-L514) — получено 2026-10-31
4. [Официальная библиотека Ollama — codellama:code](https://ollama.com/library/codellama:code) — получено 2026-10-31
5. [Ollama v0.40.13 — CLI: download and list](https://github.com/ollama/ollama/blob/04088e7c9d41cba5d33bafbf788d87a465c79d5b/docs/cli.mdx#download-a-model) — получено 2026-10-31
6. [Официальная библиотека Ollama — Code Llama, пример infill](https://ollama.com/library/codellama) — получено 2026-10-31
