ПРАКТИКА / Инфраструктура AI

Как развернуть AI локально: Ollama, небольшая модель и первый API-запрос

МОДЕЛЬ →
СЕРВИС.
ВЕСА→API→ПРОДУКТ
КОРОТКО

Локальный запуск можно проверить через Ollama: установить выбранную версию, загрузить небольшую модель, поднять сервер на loopback и получить ответ через API. Такой стенд подтверждает техническую связку; для рабочего сервиса отдельно нужны проверка качества, авторизация, ограничения нагрузки и сопровождение.

Ниже — небольшой локальный стенд: устанавливаем Ollama, загружаем Qwen3 и получаем ответ через HTTP. Он помогает проверить путь от модели до приложения. После этого отдельно решаем вопросы качества, доступа и рабочей нагрузки.

Что понадобится

Пример рассчитан на отдельную тестовую Linux-машину со systemd, curl, доступом в интернет и правами установки. Не выполняйте шаг остановки службы на действующем общем сервере. Для установки на macOS и Windows используйте пакеты соответствующей платформы; последующие команды API остаются такими же.

Фиксируем Ollama 0.40.7 — существующий официальный релиз. Демонстрационная модель — qwen3:0.6b, вариант Q4_K_M. На момент проверки карточка Ollama показывает 523 МБ и ID 7df6b6e09427; это размер пакета, а не вся необходимая оперативная память. Модель небольшая и удобна для проверки интеграции, но её качество не следует переносить на сложные задачи бизнеса. Карточки Ollama и Qwen указывают Apache 2.0; перед своим использованием прочитайте условия выбранного релиза.

1. Установите выбранную версию

Официальная инструкция Linux поддерживает установку определённой версии через OLLAMA_VERSION. Сначала скачайте и просмотрите установочный файл, затем запустите его:

curl -fsSL https://ollama.com/install.sh -o install-ollama.sh
less install-ollama.sh
OLLAMA_VERSION=0.40.7 sh install-ollama.sh
ollama --version

Установщик меняет системные файлы и может запросить административные права. Ожидаемая проверка — команда версии показывает 0.40.7. Если версия другая, сначала разберитесь с путём к исполняемому файлу и существующей установкой.

СХЕМАПервый запрос остаётся внутри машиныКлиент обращается к loopback-адресу Ollama, который выполняет скачанную модель.
Первый запрос остаётся внутри машиныКлиент обращается к loopback-адресу Ollama, который выполняет скачанную модель.ЛОКАЛЬНАЯ ТЕСТОВАЯ МАШИНАcurl127.0.0.1:11434Qwen30.6bOllama 0.40.7ОТВЕТ ЧЕРЕЗ /api/chat
  1. 01curl. Отправляет JSON с моделью и сообщением.
  2. 02Ollama. Слушает 127.0.0.1:11434, без публичного адреса.
  3. 03Qwen3:0.6b. Небольшая модель для проверки связки, не готовое решение для бизнеса.

Схема локального примера по документации. Скачивание пакетов требует сети; генерация показана в локальном контуре.

2. Запустите сервер только на своём компьютере

Установщик может запустить службу. На тестовой машине остановите её, чтобы не получить конфликт порта, и запустите сервер в текущем терминале:

sudo systemctl stop ollama
OLLAMA_HOST=127.0.0.1:11434 OLLAMA_NO_CLOUD=1 ollama serve

Оставьте этот терминал открытым. Адрес 127.0.0.1 доступен с той же машины; в примере нет публичного интерфейса, прокси или туннеля. OLLAMA_NO_CLOUD=1 отключает облачные функции. Интернет всё ещё нужен для первоначального скачивания модели.

Если порт занят, не завершайте неизвестный процесс: найдите существующий экземпляр Ollama или выберите другой локальный порт и замените его во всех командах. Для постоянного запуска переменные задаются в конфигурации службы; текущий пример намеренно остаётся ручным стендом.

3. Загрузите модель

Во втором терминале задайте тот же адрес, загрузите веса и посмотрите локальную запись:

export OLLAMA_HOST=127.0.0.1:11434
ollama pull qwen3:0.6b
ollama ls
ollama show qwen3:0.6b

Сохраните версию Ollama, ID модели и параметры запуска в заметку к тесту. Тег в реестре может обновляться; если ID отличается от указанного выше, это уже другая проверяемая поставка. Успешный pull подтверждает загрузку, но ещё не выполнение модели.

4. Получите ответ через API

Запрос ниже отключает потоковую выдачу и режим рассуждения, ограничивает контекст и длину генерации. Он отправляется только локальному серверу:

curl --fail-with-body --max-time 120 \
  http://127.0.0.1:11434/api/chat \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "qwen3:0.6b",
    "messages": [
      {"role": "user", "content": "Одним предложением объясни, что такое база знаний."}
    ],
    "think": false,
    "stream": false,
    "options": {"temperature": 0, "num_ctx": 2048, "num_predict": 128}
  }'

Проверьте код HTTP и JSON: ожидаются done: true и непустой текст в message.content. Точная фраза может отличаться. Если ответ оборван лимитом, это видно по результату генерации; увеличение лимита — отдельное изменение теста. Успех этого запроса означает, что связка модель → сервер → клиент работает, а не что ответ годится для вашего продукта.

СХЕМАПять проверок локального стендаКаждая команда из инструкции подтверждает свой участок запуска.
Пять проверок локального стендаКаждая команда из инструкции подтверждает свой участок запуска.ВерсияМодельJSON-ответАдресПамятьНе только «ответил»,но и понятно, где и чем.
  1. Версия / модельВоспроизводимость. Зафиксировать Ollama, тег и ID скачанной модели.
  2. Ответ / адресСвязь. Проверить done, message.content и loopback-прослушивание.
  3. ПамятьИсполнение. ollama ps показывает загруженную модель и CPU/GPU.

Это план проверки читателем. Диаграмма не заявляет, что развёртывание выполнено на его машине.

5. Проверьте адрес и размещение модели

curl --fail http://127.0.0.1:11434/api/version
ss -ltnp 'sport = :11434'
ollama ps

В выводе ss ищите прослушивание 127.0.0.1:11434. Адрес 0.0.0.0 означал бы другой режим доступа. ollama ps показывает загруженную модель и размещение на CPU/GPU. Если процесс уже выгружен, повторите запрос и посмотрите снова. Не используйте размер файла как доказательство расхода памяти.

Чтобы освободить загруженную модель:

ollama stop qwen3:0.6b

Ручной сервер останавливается сочетанием Ctrl+C в первом терминале. Скачанные веса при этом сохраняются. Это позволяет повторять тест без новой загрузки.

Что изменить перед рабочим запуском

Следующий этап — приложение с собственной авторизацией, проверкой прав на документы и ограничением запросов. Пользователям не нужно выдавать прямой доступ к движку. Добавьте очередь, понятные ошибки, журнал запросов с принятой политикой данных и набор задач для оценки качества.

Для командного сервиса сравните модель на реальных примерах, измерьте параллельность и задержки. Если переходите на vLLM, проверьте его собственные ограничения: документация предупреждает, что один API-ключ не защищает все служебные маршруты. Нужны отдельная сеть и контроль внешнего доступа.

Перед обновлением сохраните рабочую конфигурацию и проверьте возврат к ней. Веса, движок, индекс документов и схема состояния обновляются независимо; возможность вернуть один файл не означает возможность восстановить весь сервис.

Команды сверены с официальной документацией и релизом 21 октября 2026 года. Это воспроизводимый пример по документации, а не отчёт о выполненном развёртывании на машине читателя.