Ollama API suffix: как дополнить код между двумя фрагментами
На странице · 3 разделов
Поле `suffix` в `/api/generate` передаёт текст после места вставки, а `prompt` — текст до него. Для этой задачи нужна модель с поддержкой вставки кода, например вариант `codellama:code` из официального примера Ollama. Ответ модели — предлагаемый средний фрагмент, а не проверенная готовая программа: его нужно просмотреть перед использованием.
Есть начало и конец небольшой функции, но не хватает строки между ними? В Ollama можно отправить обе части и попросить модель предложить середину. Это называется вставкой кода (infill); ниже — один учебный запрос с явным suffix, а не обещание получить рабочий код. s1 s2 s6
Уровень — терминал Linux, не домашний рецепт без командной строки. API здесь означает адрес для запроса к запущенной программе Ollama. Инструкция сверена с документацией и исходником Ollama v0.40.13 на 31 октября 2026 года; редакция не скачивала модель и не проверяла её ответ. Понадобятся Ollama и curl, свободное место для загрузки codellama:code и достаточная память для запуска: универсальный минимум оперативной и видеопамяти здесь не установлен. Для скачивания модели нужна сеть; запрос ниже направлен на 127.0.0.1 вашего компьютера, но один этот адрес не доказывает полную офлайн-изоляцию. Тег модели может обновиться — запишите фактически установленный вариант. s1 s4 s5
Как подготовить модель для вставки?
Если Ollama ещё не установлена, начните с основного гайда. В терминале Linux выполните ollama pull codellama:code; после загрузки команда ollama ls должна показать этот тег. Официальный API приводит именно codellama:code как пример для suffix, а исходник сервера требует от модели поддержку вставки. Если ваш другой тег выдаёт ошибку о неподдерживаемой возможности, не считайте это доказательством, что поле suffix не работает вообще. s1 s3 s4 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 s2
Прочитайте предложенную середину вместе с началом и концом: есть ли определение double(x), возвращает ли оно удвоенное число и не добавлены ли посторонние действия? Это критерии проверки, а не обещание вывода 6. Даже если фрагмент выглядит верно, проверьте смысл и безопасность перед исполнением; неподтверждённый машинный код не запускайте. s1
Почему не любая модель и что делать при ошибке?
prompt — часть до места вставки, suffix — текст после него; response содержит предложенное продолжение, но точность и структура зависят от модели. Официальная библиотека Code Llama показывает пример заполнения середины для кодового варианта. Это не то же самое, что параметр остановки генерации или команда выгрузки модели. s1 s2 s3 s6
Если соединение с локальным адресом не установлено, сначала проверьте Ollama и ollama ls, не меняя текст функции. Если запрос отклонён из-за неподдерживаемой вставки, сверьте тег с codellama:code и версию программы. Если полученный фрагмент непригоден, сохраните фактический ответ и исправьте задачу или код вручную; пример не является проверенным тестом производительности или качества. Для выбора альтернатив откройте модели для программирования. s1 s3 s4
Источники
- Ollama v0.40.13 — Generate API, Request with suffix — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 42–59 и 162–195; пример codellama:code и форма ответа.. Получено 31.10.2026.
- Ollama v0.40.13 — GenerateRequest — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 62–77: prompt и suffix.. Получено 31.10.2026.
- Ollama v0.40.13 — GenerateHandler: insert capability и шаблон — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 511–514 и 583–599; исходник, а не живой запуск.. Получено 31.10.2026.
- Официальная библиотека Ollama — codellama:code — Тег виден в библиотеке, подвижный; размер загрузки не равен минимуму RAM или VRAM.. Получено 31.10.2026.
- Ollama v0.40.13 — CLI: download and list — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 110–126: ollama pull и ollama ls.. Получено 31.10.2026.
- Официальная библиотека Ollama — Code Llama, пример infill — Пример для варианта 7b-code показывает особую задачу заполнения середины.. Получено 31.10.2026.