Разработчики llama.cpp добавили поддержку router mode — режима, с помощью которого можно динамически загружать, выгружать и переключать несколько моделей без перезагрузки сервера. В блоге Hugging Face отмечают, что чаще всего пользователи просили реализовать именно эту функцию.

llama.cpp — легковесный HTTP-сервер для локального запуска языковых моделей, совместимый с эндпоинтами OpenAI.
Чтобы воспользоваться функцией, надо запустить сервер в режим роутера без явного указания нужной модели:
llama-serverЕсли до этого пользователь скачивал модели с помощью llama-server -hf user/model, то они автоматически станут доступны из кэша (LLAMA_CACHE или ~/.cache/llama.cpp). При этом, если добавить новую модель в кэш, то надо обязательно перезапустить роутер, чтобы она стала доступна.
Вместо кэша можно указать путь к локальному каталогу GGUF-моделей:
llama-server --models-dir ./my-modelsПосле этого можно отправлять запросы к конкретной модели, указывая её название, загружать модели и выгружать, чтобы освободить видеопамять. Всё это без перезапуска сервера.
# выбор конкретной модели
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "ggml-org/gemma-3-4b-it-GGUF:Q4_K_M",
"messages": [{"role": "user", "content": "Hello!"}]
}'# загрузка модели вручную
curl -X POST http://localhost:8080/models/load \
-H "Content-Type: application/json" \
-d '{"model": "my-model.gguf"}'# выгрузка модели
curl -X POST http://localhost:8080/models/unload \
-H "Content-Type: application/json" \
-d '{"model": "my-model.gguf"}'# список всех доступных моделей
curl http://localhost:8080/modelsВ веб-интерфейсе также доступа опция переключения моделей. Для этого достаточно выбрать нейросеть из выпадающего меню, и она автоматически загрузится.
