Один бинарь на macOS, Windows и Linux. Пул моделей, HTTP API на localhost:11434, OpenAI-совместимый слой, tool calling, streaming, vision, embeddings — и всё это без централизованного API.
Запускать языковые модели локально раньше требовал целого дня: зависимости CUDA, конфликты версий, пляски с портами и окружениями. Оказалось, достаточно одной команды — и модель говорит из терминала. Так работает Ollama.
Ollama — это не просто установщик моделей. Это единый контур для трёх режимов работы: локальные модели на собственном железе, облачные тяжёлые модели через Ollama Cloud, и удалённый доступ к реестру ollama.com — всё через один и тот же CLI и одинаковый HTTP API.
Ниже — полный маршрут: от установки до интеграции с кодинг-агентами. Без воды, только проверенные команды и рабочие сценарии.
Что это
Ollama работает как менеджер моделей уровня Docker, только для LLM. Вы пишете ollama run gemma3 — и движок скачивает веса, поднимает рантайм, открывает интерактивный чат. Параллельно работает HTTP API, к которому подключаются скрипты, IDE и агенты.
Главная идея — единая точка входа для трёх режимов:
- Локальные модели на вашей машине (CPU или GPU)
- Облачные модели на серверах Ollama (суффикс -cloud в имени)
- Удалённый доступ к реестру ollama.com через тот же API
Вы один раз настраиваете клиент и переключаетесь между режимами сменой имени модели: gpt-oss:120b против gpt-oss:120b-cloud.
Ключевое правило: Ollama — это не замена OpenAI API, это дополнительный слой. Вы можете держать локальные модели для чувствительных данных и облачные — для экспериментов, не меняя код клиента.
Зачем нужно
- Запускать LLM локально без внешних API — приватность данных, нулевая стоимость по токенам
- Использовать одну команду для скачивания, запуска и управления моделями — как Docker, но для языковых моделей
- Подключать модели к кодинг-агентам (Codex, Claude Code, n8n) через единый HTTP API
- Гонять тяжёлые модели через облако, когда локальное железо не тянет — тот же CLI, другое имя модели
- Собирать кастомные модели со своим системным промптом через Modelfile
Возможности в одной таблице
| Возможность | Что даёт |
|---|---|
| Локальный рантайм | Модели на CPU/GPU без внешних API. macOS, Windows, Linux, Docker |
| Ollama Cloud | Тяжёлые модели (gpt-oss:120b, DeepSeek, Qwen3) через облако с тем же CLI |
| HTTP API | Локально localhost:11434/api, в облаке ollama.com/api |
| OpenAI-совместимость | Существующий код на OpenAI SDK работает с Ollama сменой base_url |
| Tool calling | Function calling с одиночными, параллельными и multi-turn вызовами |
| Streaming | Потоковая отдача thinking, content и tool_calls |
| Vision | Мультимодальные модели принимают картинки прямо в чат |
| Embeddings | Генерация векторов для RAG-пайплайнов |
| Modelfile | Свои сборки с системным промптом и параметрами |
| Launch агентов | ollama launch поднимает Codex, Claude Code, VS Code и других |
Установка и первые шаги
Скачайте установщик с ollama.com/download или поставьте через пакетный менеджер. После установки в системе появляется бинарь ollama и фоновый сервис, который держит API на порту 11434.
Основные команды
# Интерактивное меню: модели, интеграции, настройки
ollama
# Скачать и запустить модель в терминале
ollama run gemma3
# Скачать модель без запуска
ollama pull qwen3
# Список локальных моделей
ollama ls
# Запущенные процессы
ollama ps
# Остановить модель
ollama stop gemma3
Проверка API через curl:
curl http://localhost:11434/api/chat -d '{
"model": "gemma3",
"messages": [{"role": "user", "content": "Привет"}]
}'
Совет: для мультистрочного ввода в интерактивном чате используйте тройные кавычки. Для мультимодальных моделей можно сразу указать путь к картинке.
API: три режима, один формат
Локальный API живёт на http://localhost:11434/api. Нативные эндпоинты: /api/chat, /api/generate, /api/embed, /api/tags, /api/pull, /api/ps.
Cloud API доступен по https://ollama.com/api с тем же набором эндпоинтов. Авторизация через ключ.
OpenAI SDK — смена одной строки
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # значение не проверяется локально
)
response = client.chat.completions.create(
model="qwen3",
messages=[{"role": "user", "content": "Объясни TCP за минуту"}],
)
print(response.choices[0].message.content)
Официальные SDK: pip install ollama (Python), npm i ollama (JS/TS). В Python-клиенте функция передаётся в tools напрямую — клиент сам соберёт JSON Schema.
Tool Calling: агенты на стероидах
Function calling в Ollama работает в трёх режимах: одиночный вызов, параллельные вызовы и agent loop с многократными итерациями.
from ollama import chat
def get_temperature(city: str) -> str:
return {"New York": "22°C", "London": "15°C"}.get(city, "Unknown")
messages = [{"role": "user", "content": "Какая температура в Нью-Йорке?"}]
response = chat(model="qwen3", messages=messages, tools=[get_temperature])
if response.message.tool_calls:
call = response.message.tool_calls[0]
result = get_temperature(**call.function.arguments)
messages.append(response.message)
messages.append({"role": "tool", "tool_name": call.function.name, "content": str(result)})
final = chat(model="qwen3", messages=messages, tools=[get_temperature])
print(final.message.content)
Для agent loop проверяйте response.message.tool_calls в цикле, выполняйте инструменты, докладывайте результаты — пока модель не перестанет вызывать tools. Streaming работает в тех же режимах.
Modelfile: кастомные сборки
Modelfile — текстовый рецепт сборки своей модели поверх существующей. Минимальный пример:
# Modelfile
FROM gemma3
SYSTEM """Ты — спокойный технический ассистент. Отвечаешь по делу, без воды."""
PARAMETER temperature 0.4
PARAMETER num_ctx 8192
ollama create my-assistant -f Modelfile
ollama run my-assistant
Так удобно фиксировать системный промпт и параметры под конкретный кейс — review кода, расшифровки встреч, customer support. Получившуюся модель подключаете к интеграциям как обычную.
Ollama Cloud: когда железо не тянет
Облачные модели запускаются той же командой, плюс суффикс -cloud в имени:
ollama signin
ollama run gpt-oss:120b-cloud
Под капотом запросы уходят на серверы Ollama, но клиент и API остаются те же. Это нужно, когда модель не помещается в локальную память или требуется гонять batch-задачи на инфраструктуре провайдера.
Внимание: Локальный режим даёт приватность и нулевую стоимость по токенам, но упирается в железо. Cloud снимает потолок по размеру модели, но отправляет данные на серверы Ollama. Под чувствительные данные оставайтесь на локальных моделях.
Codex + Ollama: связка для приватного кодинга
OpenAI Codex получил нативную поддержку Ollama. Идея: Codex выступает кодинг-агентом, а движок моделей — Ollama (локально или в облаке).
Быстрый запуск
# Поднимает Codex CLI поверх Ollama
ollama launch codex
# Только сконфигурировать, без запуска
ollama launch codex --config
Профили в ~/.codex/config.toml
[model_providers.ollama-launch]
name = "Ollama"
base_url = "http://localhost:11434/v1"
[profiles.ollama-launch]
model = "gpt-oss:120b"
model_provider = "ollama-launch"
[profiles.ollama-cloud]
model = "gpt-oss:120b-cloud"
model_provider = "ollama-launch"
codex --profile ollama-launch # локальная
codex --profile ollama-cloud # облачная
Когда нужно вернуть Codex к прежнему профилю: ollama launch codex-app —restore. Ollama сделает бэкап конфигов в ~/.ollama/backup/codex-app/.
Ограничения
| Ограничение | Пояснение |
|---|---|
| Локальные модели упираются в RAM и GPU. | Тяжёлые модели (120B+) требуют десятки гигабайт видеопамяти. |
| Скорость инференса на CPU в десятки раз ниже, чем на GPU. | Для production-нагрузки — только GPU. |
| Ollama Cloud — платная подписка. | Биллинг по использованию, нужен аккаунт и API-ключ. |
| Не все модели из HuggingFace доступны из коробки. | Некоторые требуют ручной конвертации. |
| Для прод-нагрузки разумно держать OLLAMA_HOST на отдельной машине с GPU и подключать клиентов по сети. |
Практические сценарии
- Локальный кодинг-агент. Codex CLI + Ollama, профиль ollama-launch. Весь репозиторий остаётся на машине.
- RAG-пайплайн. embedding-gemma или nomic-embed-text для эмбеддингов, любая чат-модель для генерации. Всё через локальный API.
- Свой системный промпт через Modelfile. Один раз собрали my-reviewer, подключили к VS Code через ollama launch.
- Vision-обработка. Gemma 3 разбирает скриншоты багов и пишет JIRA-описания.
- Batch-инференс через cloud. Большой прогон на gpt-oss:120b-cloud, локальный код тот же — отличается только имя модели.
- n8n + Ollama. Workflow-автоматизация без отправки данных во внешние API.
Ollama — это инструмент, который опускает барьер входа в локальный ИИ до уровня одной команды. Но помните: инструмент не делает мастера. Выбор модели, настройка параметров, построение пайплайна — всё это остаётся на человеке. Модель лишь даёт голос. А вот куда направить этот голос — решаете вы.