Все статьи
5 августа 2026 г.·3 мин чтения

llama-server: локальный OpenAI-совместимый API на своём компьютере

Как поднять llama-server, какие эндпоинты он отдаёт, зачем нужны --api-key и --parallel, и почему замена --host на 0.0.0.0 открывает твою модель всей сети.

Почти любая программа, работающая с ИИ, умеет обращаться к OpenAI API. Это оказалось удобной случайностью: если поднять у себя сервер, говорящий на том же языке, все эти программы можно переключить на локальную модель сменой одного адреса.

llama-server из состава llama.cpp делает ровно это. Разберём, что он отдаёт и какие настройки стоит выставить до того, как подключать к нему что-то рабочее.

Запуск

Сервер входит в готовые сборки llama.cpp, компилировать ничего не нужно. Как выбрать сборку под своё железо, описано в статье про llama.cpp на Windows.

Минимальная команда:

llama-server -m models/qwen3-8b-q4_k_m.gguf --port 8080

По умолчанию сервер слушает 127.0.0.1:8080 и поднимает веб-интерфейс на том же адресе. Если интерфейс не нужен, его отключает --no-ui.

Какие эндпоинты доступны

OpenAI-совместимая часть — то, ради чего всё затевается:

ЭндпоинтНазначение
POST /v1/chat/completionsчат, основной режим
POST /v1/completionsпродолжение текста
POST /v1/embeddingsэмбеддинги

Рядом живут собственные эндпоинты llama.cpp: POST /completion и POST /embedding в родном формате, POST /reranking для переранжирования (включается ключом --reranking), а также служебные GET /health, GET /props и GET /slots.

Базовый адрес для клиентов получается http://127.0.0.1:8080/v1. Дальше в настройках любой программы, где просят «OpenAI API base URL», подставляешь его, и она начинает работать с локальной моделью. Похожая схема у Ollama и LM Studio, отличаются только порты.

Настройки, которые стоит выставить сразу

--ctx-size N — размер контекста. По умолчанию берётся из модели, но для агентских сценариев его почти всегда приходится задавать руками.

--parallel N — количество слотов, то есть одновременных запросов. Если к серверу подключены редактор кода и отдельный клиент, одного слота не хватит и запросы встанут в очередь.

--jinja — включает вызов функций в стиле OpenAI. Без него инструменты работать не будут.

--embeddings — переводит сервер в режим только эмбеддингов. Нужен, если поднимаешь отдельный экземпляр под локальный RAG с профильной моделью.

Про --host 0.0.0.0

Это главная ловушка темы, поэтому отдельным разделом.

В инструкциях часто встречается совет заменить адрес на 0.0.0.0, чтобы подключаться с другого устройства. Работает. Но 127.0.0.1 в значении по умолчанию стоит не для красоты: он означает, что сервер доступен только с этой машины.

Заменив адрес, ты открываешь модель всем, кто может достучаться до компьютера по сети. Без дополнительных мер это открытый эндпоинт без пароля: чужой человек сможет слать запросы, занимать твою видеокарту и получать ответы.

Если доступ извне действительно нужен, у сервера есть аутентификация:

llama-server -m model.gguf --host 0.0.0.0 --api-key mysecretkey

Ключей можно задать несколько через запятую или вынести их в файл через --api-key-file.

Ключ в командной строке попадает в историю оболочки и виден в списке процессов. Для чего-то серьёзнее домашнего эксперимента используй --api-key-file и не открывай порт наружу без файрвола или VPN.

Что с этим делают на практике

Три типовых сценария.

Первый: подключить локальную модель к редактору кода вместо облачного провайдера. Второй: перевести свои скрипты с платного API на локальный — код почти не меняется, меняется базовый адрес. Третий: держать один сервер на домашней машине и ходить на него с ноутбука, но это как раз тот случай, где нужны и --api-key, и понимание, что ты делаешь с сетью.

Где заканчивается польза от сервера

llama-server решает задачу доставки: модель есть, она отвечает, к ней можно подключиться. Всё, что происходит после ответа, он не делает.

Отсюда типичная траектория. Человек поднимает сервер, подключает пару клиентов, а через неделю обнаруживает, что пишет обвязку: скрипт, который собирает файлы в промпт, ещё один, который разбирает ответ, третий для запуска по расписанию. По сути он начинает писать агента поверх собственного сервера.

Дока — этот агент, только уже написанный. Она работает с файлами и терминалом напрямую, ведёт задачу через несколько шагов и подключает MCP-серверы. Локальную модель можно поставить прямо из интерфейса, а можно оставить свой llama-server и подключить Доку к нему — сервер в этой схеме никуда не девается, просто перестаёт быть единственным, что у тебя есть.

Так что поднимать llama-server осмысленно почти всегда. Вопрос в том, что ты собираешься подключать сверху, и стоит ли писать это самому. Скачай Доку и посмотри, сколько из твоей обвязки становится ненужным.