Один бинарь на 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 callingFunction 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 — это инструмент, который опускает барьер входа в локальный ИИ до уровня одной команды. Но помните: инструмент не делает мастера. Выбор модели, настройка параметров, построение пайплайна — всё это остаётся на человеке. Модель лишь даёт голос. А вот куда направить этот голос — решаете вы.