Ollama для начинающих: установка, скачивание моделей, сервер и API
Введение
Ollama собирает веса модели, среду выполнения и API, совместимый с
OpenAI, в одну команду. Этот урок ведёт вас с нуля до работающей
локальной модели: установка, скачивание, выбор размера, настройка через
Modelfile, вызов API из кода и подключение
OpenCode
к ней. Страница-хаб:
«Ollama: локальные модели простым способом».
Всё остаётся на вашей машине: нет счетов за API, данные никуда не уходят,
и это работает офлайн.
Установка в любой ОС
Linux и WSL2, одна команда:
curl -fsSL https://ollama.com/install.sh | sh
macOS и Windows: скачайте приложение с официального сайта:
Проверьте, что оно работает:
ollama --version
Скачивание, запуск и управление моделями
Скачайте один раз, потом пользуйтесь офлайн:
ollama pull qwen3:8b
Чат в терминале:
ollama run qwen3:8b
Список скачанных моделей:
ollama list
Удалите ту, которая больше не нужна:
ollama rm qwen3:8b
Обновить веса позже можно, скачав тот же тег снова. Внутри ollama run команда /bye выходит из чата, а /show печатает конфигурацию модели.
Какая модель и какой размер
Практическое правило: 7–8 миллиардов параметров помещаются в 8 ГБ оперативной памяти и справляются с чатом и черновиками; 70 миллиардов требуют серьёзной видеокарты и окупаются на коде и рассуждениях. Начинайте с малого — быстрая маленькая модель, которой вы реально пользуетесь, лучше огромной, которую вы так и не запустили.
- Общий чат и черновики: самая маленькая Qwen или Llama, которая связно отвечает на вашем железе.
- Код: вариант, обученный на коде, на размер больше и квантованный под вашу память — Q4 возвращает большую часть качества за треть памяти.
- Эмбеддинги для RAG: небольшая отдельная модель эмбеддингов, а не чат-модель на двойной работе. Хорошо сочетается с материалом «RAG по локальным документам».
Теги и размеры ищите в библиотеке:
Судите по своим задачам, а не по рейтингам: три характерных запроса, оценённые вами, за один вечер отделят «достаточно хорошо локально» от «нужно облако».
Свои модели через Modelfile
Modelfile запекает системный промпт и параметры в именованную модель. Файл Modelfile рядом с проектом:
FROM qwen3:8b PARAMETER temperature 0.2 SYSTEM You are a concise senior reviewer. Answer with code first.
Соберите и запустите её:
ollama create my-reviewer -f Modelfile
ollama run my-reviewer
Сервер и HTTP API
ollama serve открывает два API на localhost, порт 11434: родной REST API Ollama и совместимый с OpenAI, поэтому ассистенты-программисты и скрипты подключаются к нему, меняя один базовый URL.
Список моделей по HTTP:
curl http://localhost:11434/api/tags
Разовая генерация, родной API:
curl http://localhost:11434/api/generate -d "{\"model\": \"qwen3:8b\", \"prompt\": \"Why is the sky blue?\", \"stream\": false}"
Чат, эндпоинт, совместимый с OpenAI:
curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d "{\"model\": \"qwen3:8b\", \"messages\": [{\"role\": \"user\", \"content\": \"Hi\"}]}"
Вызов из кода
Тот же код работает с настоящим OpenAI, если поменять только base_url:
from openai import OpenAI client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") resp = client.chat.completions.create( model="qwen3:8b", messages=[{"role": "user", "content": "Explain LoRA in one paragraph."}], ) print(resp.choices[0].message.content)
Подключение к OpenCode
Когда ollama serve работает, OpenCode находит локальные модели сам — откройте /models и выберите ollama/qwen3:8b или свою ollama/my-reviewer. Ключ не нужен. Закрепите её за проектом, как в разделе «Подключение модели», и используйте как приватный запасной вариант, когда бесплатные облачные тарифы исчезают, как в материале «Три модели, один проект». Держите загруженной одну модель: переключение вытесняет память и тормозит.
Переменные окружения и keep-alive
- OLLAMA_HOST: адрес привязки, по умолчанию localhost:11434. Поставьте 0.0.0.0:11434 для доступа из локальной сети.
- OLLAMA_MODELS: где лежат веса. Перенесите их на большой диск, когда место по умолчанию заканчивается.
- OLLAMA_KEEP_ALIVE: сколько загруженная модель остаётся в памяти, например 30m, чтобы вечерняя сессия не платила за загрузку дважды.
- OLLAMA_NUM_PARALLEL: сколько параллельных запросов обслуживает одна загруженная модель.
Решение проблем
- Connection refused на 11434: сервер не запущен — запустите ollama serve (настольное приложение делает это само).
- Не хватает памяти: скачайте тег поменьше или квантование пониже, сократите контекст, держите загруженной одну модель.
- Медленные ответы на CPU: так и должно быть — возьмите маленькую модель в квантовании Q4 и меньше токенов контекста.
- Модель отвечает не по теме: вы пропустили системный промпт — запеките его в Modelfile вместо повторения в каждом запросе.
- OpenCode не видит локальных моделей: проверьте, что ollama list показывает модель, а сервер отвечает на http://localhost:11434.
Автор статьи: Клавдия Кондакова