База знаний

Ollama — локальный и облачный рантайм для языковых моделей

Ollama — рантайм для локальных и облачных LLM: установка, CLI, API, tool calling и свежая интеграция с Codex CLI. Справочник по возможностям и сценариям.

Опубликовано

Ollama — рантайм для запуска языковых моделей локально или через облако. Ставится одной командой на macOS, Windows и Linux, поднимает HTTP API на localhost:11434, умеет качать модели из реестра и подключаться к кодинг-агентам вроде Codex CLI.

📌
Коротко: один бинарь ollama, который держит у себя пул моделей, отдаёт их по HTTP и по OpenAI-совместимому API, поддерживает tool calling, streaming, vision и embeddings. Тяжёлые модели можно гонять через Ollama Cloud, оставаясь на том же CLI.

Что такое Ollama

Ollama — это «менеджер моделей» уровня Docker, только для LLM. Вы пишете ollama run gemma3, и движок скачивает веса, поднимает рантайм, открывает интерактивный чат в терминале. Параллельно работает HTTP API, к которому подключаются ваши скрипты, IDE и агенты.

Главная идея — единая точка входа для трёх режимов: локальные модели на вашей машине, облачные модели на серверах Ollama и удалённый доступ к ollama.com через тот же API. Вы один раз настраиваете клиент и переключаетесь между режимами сменой имени модели (gpt-oss:120b против gpt-oss:120b-cloud).

Основные возможности

ВозможностьЧто даёт
Локальный рантаймЗапуск моделей на CPU/GPU без внешних API. macOS, Windows, Linux, Docker
Ollama CloudТяжёлые модели (gpt-oss:120b, DeepSeek, Qwen3) через облако с тем же CLI
HTTP APIЛокально http://localhost:11434/api, в облаке https://ollama.com/api
OpenAI-совместимостьСуществующий код на OpenAI SDK работает с Ollama сменой base_url
Anthropic-совместимостьОтдельный слой для клиентов, которые ждут Anthropic-формат
Tool callingFunction calling с одиночными, параллельными и multi-turn вызовами
StreamingПотоковая отдача thinking, content и tool_calls
VisionМультимодальные модели вроде Gemma 3 принимают картинки прямо в чат
EmbeddingsГенерация векторов через embeddinggemma, nomic-embed-text и другие
ModelfileСвои сборки с системным промптом, параметрами и базовой моделью
Интерактивное менюollama без аргументов открывает меню запуска моделей и интеграций
Launch для интеграцийollama launch <tool> поднимает Codex, Claude Code, OpenCode, VS Code, Droid

Установка и быстрый старт

Скачайте установщик с ollama.com/download или поставьте через пакетный менеджер. После установки в системе появляется бинарь ollama и фоновый сервис, который держит API.

Первый запуск:

# открыть интерактивное меню: модели, интеграции, настройки
ollama

# скачать и запустить модель в терминале
ollama run gemma3

# скачать модель без запуска
ollama pull qwen3

# список локальных моделей
ollama ls

# запущенные процессы
ollama ps

# остановить модель
ollama stop gemma3

Хендшейк с API:

curl http://localhost:11434/api/chat -d '{
  "model": "gemma3",
  "messages": [{ "role": "user", "content": "Привет" }]
}'
💡
Для мультистрочного ввода в интерактивном чате используйте тройные кавычки """...""". Для мультимодальных моделей можно сразу указать путь к картинке: ollama run gemma3 "Что на этом фото? /Users/me/photo.png".

API: локально, в облаке и через OpenAI SDK

Локальный API живёт на http://localhost:11434/api. Это нативный формат Ollama: /api/chat, /api/generate, /api/embed, /api/tags, /api/pull, /api/push, /api/ps.

Cloud API доступен по https://ollama.com/api с тем же набором эндпоинтов. Авторизация через ключ:

export OLLAMA_API_KEY=your_api_key
curl https://ollama.com/api/chat \
  -H "Authorization: Bearer $OLLAMA_API_KEY" \
  -d '{ "model": "gpt-oss:120b", "messages": [{"role":"user","content":"Hi"}] }'

OpenAI-совместимый слой позволяет переиспользовать существующий код. В Python достаточно поменять base_url:

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 от Ollama тоже есть: pip install ollama для Python, npm i ollama для JavaScript/TypeScript. В Python-клиенте функция передаётся в tools напрямую — клиент сам соберёт JSON Schema.

Tool calling

Function calling в Ollama работает в трёх режимах: одиночный вызов, параллельные вызовы и agent loop с многократными итерациями. Минимальный пример с Python SDK:

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], think=True)

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], think=True)
    print(final.message.content)

Для agent loop в цикле проверяете response.message.tool_calls, выполняете инструменты, докладываете результаты обратно — пока модель не перестанет вызывать tools. Streaming работает в тех же режимах: чанки thinking, content и tool_calls накапливаются и отправляются в следующий запрос.

Modelfile: свои сборки моделей

Mod elfile — текстовый рецепт сборки своей модели поверх существующей. Минимальный пример:

# Modelfile
FROM gemma3
SYSTEM """Ты — спокойный технический ассистент. Отвечаешь по делу, без воды."""
PARAMETER temperature 0.4
PARAMETER num_ctx 8192

Сборка и запуск:

ollama create my-assistant -f Modelfile
ollama run my-assistant

Так удобно фиксировать системный промпт и параметры под конкретный кейс — review кода, расшифровки встреч, кастомер-саппорт — и подключать получившуюся модель к интеграциям как обычную.

Ollama Cloud: тяжёлые модели без своей видеокарты

Облачные модели запускаются той же командой, плюс суффикс -cloud в имени:

ollama signin
ollama run gpt-oss:120b-cloud

Под капотом запросы уходят на серверы Ollama, но клиент и API остаются те же. Это нужно, когда модель не помещается в локальную память или вы хотите гнать batch-задачи на инфраструктуре провайдера. При желании Ollama можно перевести в local only режим и отключить облачные функции.

⚖️
Trade-off. Локальный режим даёт приватность и нулевую стоимость по токенам, но упирается в железо. Cloud снимает потолок по размеру модели, но отправляет данные на серверы Ollama. Под чувствительные данные оставайтесь на локальных моделях, под исследовательские задачи и редкие тяжёлые прогоны — переключайтесь в cloud.

Интеграции с кодинг-агентами

Отдельная сильная сторона — команда ollama launch <tool>, которая поднимает агента поверх Ollama и сразу прокидывает каталог моделей. Поддерживаются: Claude Code, Codex CLI, Codex App, OpenCode, Copilot CLI, Droid, Goose, Pi, Pool, VS Code, Cline, Roo Code, JetBrains, Xcode, Zed, n8n, marimo, Onyx, OpenClaw, Hermes Agent.

Для кодинг-агентов это означает один и тот же шаблон: ставите Ollama, ставите агента, запускаете ollama launch <agent> — и агент работает на ваших локальных или облачных моделях вместо чужого API.


Codex + Ollama: связка-новинка

OpenAI Codex получил нативную поддержку Ollama сразу в двух форматах: терминальный Codex CLI и десктопное приложение Codex App для macOS и Windows. Идея простая: вы держите Codex как кодинг-агента, а движок моделей — Ollama (локально или в облаке). Это работает в обе стороны: ollama launch codex поднимает CLI поверх Ollama, ollama launch codex-app делает то же для десктопа, а codex --oss ходит в Ollama как в обычного провайдера.

Установка Codex CLI

npm install -g @openai/codex
⚠️
Контекст ≥ 64k токенов. Codex агрессивно использует контекст. Если запускаете на маленькой модели — выбирайте сборку с большим окном и явно поднимайте num_ctx через Modelfile, иначе агент будет терять историю и циклиться.

Быстрый запуск через Ollama

Если Codex уже установлен, проще всего отдать управление Ollama:

ollama launch codex

При запуске Ollama обновляет каталог моделей и передаёт его Codex для этой сессии. Чтобы только сконфигурировать связку, без запуска:

ollama launch codex --config

Ручная настройка через codex --oss

Когда нужен контроль над флагами Codex, запускайте его напрямую с флагом --oss:

# любая дефолтная модель Ollama
codex --oss

# конкретная локальная модель
codex --oss -m gpt-oss:120b

# облачная модель Ollama
codex --oss -m gpt-oss:120b-cloud

Профили в ~/.codex/config.toml

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

# ~/.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   # локальная gpt-oss:120b
codex --profile ollama-cloud    # облачная gpt-oss:120b-cloud

Codex App: десктоп-агент

Codex App — десктопное приложение OpenAI для macOS и Windows. Ollama прописывает в нём свой OpenAI-совместимый эндпоинт, и приложение начинает работать с локальными и облачными моделями Ollama без ручной настройки. Поддержка появилась в Ollama v0.24.0.

Базовый сценарий — одна команда:

ollama launch codex-app

После этого Codex App открывается, и можно сразу запускать задачу или открывать репозиторий. Настройка персистентна: при следующем открытии Codex модель остаётся выбранной.

Явный выбор модели:

# облачная модель Ollama
ollama launch codex-app --model kimi-k2.6:cloud

# локальная модель
ollama launch codex-app --model gemma4:31b

Когда нужно вернуть Codex App к прежнему профилю — без Ollama:

ollama launch codex-app --restore

Ollama восстановит исходный конфиг приложения. Если Codex App открыт, спросит разрешения на перезапуск. Перед перезаписью конфигов делается бэкап в ~/.ollama/backup/codex-app/ (на Windows ~ — это домашняя папка пользователя). Профиль Codex CLI, который ведёт ollama launch codex, существует отдельно и не пересекается с профилем приложения.

Из полезных фич самого Codex App:

  • Встроенный браузер. Открывает локальные серверы и сайты, аннотации прямо по странице работают как запросы на изменение.
  • Review mode. Просмотр изменений, комментарии и итерации по правкам без выхода из приложения.
🛠
Если что-то не открылось — запустите Codex App вручную один раз и повторите ollama launch codex-app. Если приложение уже запущено и не переключило модель, разрешите Ollama перезапустить его или закройте Codex App и запустите команду снова.

Когда брать связку Codex + Ollama

  • Локальный код-ревью без отправки в OpenAI. Repo не уходит наружу, Codex работает с тем, что есть на машине.
  • Эксперименты с open-source моделями. Подменили модель в профиле, перезапустили Codex, сравнили результат.
  • Гибрид локального и облачного. Лёгкие задачи на локальной gpt-oss, тяжёлый рефакторинг — на cloud-варианте через тот же провайдер.
  • Air-gapped окружения. Когда внешние API закрыты, а кодинг-агент нужен.

Тарифы и лимиты

РежимСтоимостьОграничения
Локальные моделиБесплатноСкорость и максимальный размер модели зависят от железа
Ollama CloudПлатная подписка на ollama.comНужен аккаунт и API-ключ. Биллинг по использованию
APIЛокальный — без лимитовОблачный — по тарифу аккаунта

Для прод-нагрузки разумно держать OLLAMA_HOST на отдельной машине с GPU и подключать к нему все клиенты по сети. Версионирование API нестрогое: ломающие изменения редкие, анонсируются в release notes.

Практические сценарии

  • Локальный кодинг-агент. Codex CLI + Ollama, профиль ollama-launch. Весь репозиторий остаётся на машине.
  • RAG-пайплайн. embeddinggemma или nomic-embed-text для эмбеддингов, любая чат-модель для генерации. Всё через локальный API.
  • Свой системный промпт через Modelfile. Один раз собрали my-reviewer, подключили к VS Code или JetBrains через ollama launch.
  • Vision-обработка. Gemma 3 разбирает скриншоты багов и пишет JIRA-описания.
  • Batch-инференс через cloud. Большой прогон на gpt-oss:120b-cloud, локальный код тот же — отличается только имя модели.
  • n8n + Ollama. Workflow-автоматизация без отправки данных во внешние API.

Ссылки


По теме

Если у вас идея вынести часть пайплайна на локальные модели или собрать гибрид Codex с Ollama под свою команду — напишите в Telegram @pimenov