Перейти к содержанию

Ollama Setup

На этой странице

Проблема​

Облачные LLM API взимают плату за каждый токен. Интенсивная сессия кодинга может стоить $5–20. Для личных проектов, обучения или работы с чувствительными данными это накапливается — к тому же каждый диалог отправляется третьей стороне.

Что решает это руководство​

Вы настроите Hermes Agent, работающий полностью на вашем собственном оборудовании, используя Ollama в качестве бэкенда для модели. Никаких API-ключей, никаких подписок, никакие данные не покидают вашу машину. После настройки Hermes работает точно так же, как с OpenRouter или Anthropic — команды терминала, редактирование файлов, веб-сёрфинг, делегирование — но модель выполняется локально.

По итогу вы получите: * Ollama, обслуживающая одну или несколько моделей с открытым весом * Hermes, подключённый к Ollama как пользовательская конечная точка * Работающий локальный агент, который может редактировать файлы, выполнять команды и просматривать веб-страницы * Опционально: Telegram/Discord бот, работающий полностью на вашем оборудовании

Что вам понадобится​

Компонент Минимум Рекомендуется
ОЗУ 8 ГБ (для моделей 3B) 32+ ГБ (для моделей 27B+)
Хранилище 5 ГБ свободно 30+ ГБ (для нескольких моделей)
CPU 4 ядра 8+ ядер (AMD EPYC, Ryzen, Intel Xeon)
GPU Не обязателен NVIDIA GPU с 8+ ГБ VRAM значительно ускоряет работу

Работа только на CPU возможна, но ожидайте медленных ответов.

Ollama работает на серверах только с CPU. Модель 9B на современном 8-ядерном CPU выдаёт ~10 токенов/сек. Модель 31B на CPU медленнее (~2–5 токенов/сек) — каждый ответ занимает 30–120 секунд, но это работает. GPU значительно улучшает ситуацию. Для конфигураций только с CPU увеличьте таймаут API в конфиге:

[code] agent: api_timeout: 1800 # 30 минут — щедро для медленных локальных моделей

[/code]

Шаг 1: Установка Ollama​

[code] curl -fsSL https://ollama.com/install.sh | sh

[/code]

Проверьте, что она запущена:

[code] ollama --version curl http://localhost:11434/api/tags # Должен вернуть {"models":[]}

[/code]

Шаг 2: Загрузка модели​

Выберите на основе вашего оборудования:

Модель Размер на диске Требуется ОЗУ Вызов инструментов Лучше всего для
gemma4:31b ~20 ГБ 24+ ГБ Да Лучшее качество — сильное использование инструментов и рассуждение
gemma2:27b ~16 ГБ 20+ ГБ Нет Разговорные задачи, без вызова инструментов
gemma2:9b ~5 ГБ 8+ ГБ Нет Быстрый чат, вопросы и ответы — не может вызывать инструменты
llama3.2:3b ~2 ГБ 4+ ГБ Нет Только лёгкие быстрые ответы

Вызов инструментов важен

Hermes — это агентный ассистент — он редактирует файлы, выполняет команды и просматривает веб-страницы через вызовы инструментов. Модели без поддержки вызова инструментов могут только общаться; они не могут совершать действия. Для полного опыта Hermes используйте модель, поддерживающую инструменты (например, gemma4:31b).

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

[code] ollama pull gemma4:31b

[/code]

Несколько моделей

Вы можете загрузить несколько моделей и переключаться между ними внутри Hermes с помощью /model. Ollama загружает активную модель в память по требованию и автоматически выгружает неактивные.

Проверьте, что модель работает:

[code] curl http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "gemma4:31b", "messages": [{"role": "user", "content": "Say hello"}], "max_tokens": 50 }'

[/code]

Вы должны увидеть JSON-ответ с ответом модели.

Шаг 3: Настройка Hermes​

Запустите мастер настройки Hermes:

[code] hermes setup

[/code]

Когда будет предложено выбрать провайдера, выберите Custom Endpoint и введите: * Base URL: http://localhost:11434/v1 * API Key: Оставьте пустым или введите no-key (Ollama не требует ключа) * Model: gemma4:31b (или ту модель, которую вы загрузили)

В качестве альтернативы, отредактируйте ~/.hermes/config.yaml напрямую:

[code] model: default: "gemma4:31b" provider: "custom" base_url: "http://localhost:11434/v1"

[/code]

Шаг 4: Начало работы с Hermes​

[code] hermes

[/code]

Вот и всё. Теперь вы запускаете полностью локального агента. Попробуйте:

[code] You: List all Python files in this directory and count the lines of code in each

You: Read the README.md and summarize what this project does

You: Create a Python script that fetches the weather for Ho Chi Minh City

[/code]

Hermes будет использовать инструмент терминала, файловые операции и вашу локальную модель — никаких облачных вызовов.

Шаг 5: Выбор подходящей модели для задачи​

Не каждая задача требует самую большую модель. Вот практическое руководство:

Задача Рекомендуемая модель Почему
Редактирование файлов, код, команды терминала gemma4:31b Единственная модель с надёжным вызовом инструментов
Быстрые вопросы и ответы (без инструментов) gemma2:9b Быстрые ответы для разговорных задач
Лёгкий чат llama3.2:3b Самая быстрая, но с очень ограниченными возможностями

Примечание

Для полноценной агентной работы (редактирование файлов, выполнение команд, просмотр веб-страниц) gemma4:31b в настоящее время — лучший локальный вариант с поддержкой вызова инструментов. Проверяйте библиотеку моделей Ollama на предмет более новых моделей — поддержка вызова инструментов быстро расширяется.

Переключайте модели на лету внутри сессии:

[code] /model gemma2:9b

[/code]

Шаг 6: Оптимизация скорости​

Увеличение контекстного окна Ollama​

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

[code] # Create a Modelfile that extends context cat > /tmp/Modelfile << 'EOF' FROM gemma4:31b PARAMETER num_ctx 16384 EOF

ollama create gemma4-16k -f /tmp/Modelfile

[/code]

Затем обновите конфиг Hermes, указав gemma4-16k в качестве имени модели.

Держите модель загруженной​

По умолчанию Ollama выгружает модели после 5 минут бездействия. Для постоянного бота через шлюз держите её загруженной:

[code] # Set keep-alive to 24 hours curl http://localhost:11434/api/generate \ -d '{"model": "gemma4:31b", "keep_alive": "24h"}'

[/code]

Или установите глобально в окружении Ollama:

[code] # /etc/systemd/system/ollama.service.d/override.conf [Service] Environment="OLLAMA_KEEP_ALIVE=24h"

[/code]

Использование GPU (если доступно)​

Если у вас есть NVIDIA GPU, Ollama автоматически выгружает слои на неё. Проверьте с помощью:

[code] ollama ps # Показывает, какая модель загружена и сколько слоёв на GPU

[/code]

Для модели 31B на GPU с 12 ГБ вы получите частичную выгрузку (~40 слоёв на GPU, остальное на CPU), что всё равно даёт значительное ускорение.

Шаг 7: Запуск в качестве бота через шлюз (опционально)​

Как только Hermes заработает локально в CLI, вы можете выставить его как Telegram или Discord бота — всё ещё работающего полностью на вашем оборудовании.

Telegram​

  1. Создайте бота через @BotFather и получите токен
  2. Добавьте в ваш ~/.hermes/config.yaml:

[code] model: default: "gemma4:31b" provider: "custom" base_url: "http://localhost:11434/v1"

platforms:
  telegram:
    enabled: true
    token: "YOUR_TELEGRAM_BOT_TOKEN"

[/code]

  1. Запустите шлюз:

[code] hermes gateway

[/code]

Теперь напишите вашему боту в Telegram — он отвечает, используя вашу локальную модель.

Discord​

  1. Создайте Discord-приложение на discord.com/developers
  2. Добавьте в конфиг:

[code] platforms: discord: enabled: true token: "YOUR_DISCORD_BOT_TOKEN"

[/code]

  1. Запустите: hermes gateway

Шаг 8: Настройка запасных вариантов (опционально)​

Локальные модели могут испытывать трудности со сложными задачами. Настройте облачный запасной вариант, который активируется только когда локальная модель не справляется:

[code] model: default: "gemma4:31b" provider: "custom" base_url: "http://localhost:11434/v1"

fallback_providers:
  - provider: openrouter
    model: anthropic/claude-sonnet-4

[/code]

Таким образом, 90% использования будет бесплатным (локальным), и только сложные задачи будут обращаться к платному API.

Устранение неполадок​

«Connection refused» при запуске​

Ollama не запущена. Запустите её:

[code] sudo systemctl start ollama # или ollama serve

[/code]

Медленные ответы​

  • Проверьте размер модели vs ОЗУ: Если вашей модели нужно больше ОЗУ, чем доступно, происходит подкачка на диск. Используйте модель поменьше или добавьте ОЗУ.
  • Проверьте ollama ps: Если слои GPU не выгружаются, ответы ограничены CPU. Это нормально для серверов только с CPU.
  • Уменьшите контекст: Большие диалоги замедляют инференс. Регулярно используйте /compress или установите более низкий порог сжатия в конфиге.

Модель не следует вызовам инструментов​

Меньшие модели (3B, 7B) иногда игнорируют инструкции по вызову инструментов и выдают обычный текст вместо структурированных вызовов функций. Решения: * Используйте модель побольше — gemma4:31b или gemma2:27b обрабатывают вызовы инструментов значительно лучше, чем модели 3B/7B. * У Hermes есть автовосстановление — он обнаруживает некорректные вызовы инструментов и пытается исправить их автоматически. * Настройте запасной вариант — если локальная модель не справляется 3 раза, Hermes переключается на облачного провайдера.

Ошибки контекстного окна​

Контекст Ollama по умолчанию (2048 токенов) слишком мал для агентной работы. Смотрите Шаг 6, чтобы увеличить его.

Сравнение стоимости​

Вот что даёт локальный запуск по сравнению с облачными API, на основе типичной сессии кодинга (~100K токенов на вход, ~20K токенов на выход):

Провайдер Стоимость за сессию В месяц (ежедневное использование)
Anthropic Claude Sonnet ~$0.80 ~$24
OpenRouter (GPT-4o) ~$0.60 ~$18
Ollama (локально) $0.00 $0.00

Единственные затраты — электричество, примерно $0.01–0.05 за сессию в зависимости от оборудования.

Что хорошо работает локально​

  • Редактирование файлов и генерация кода — модели 9B+ справляются хорошо
  • Команды терминала — Hermes оборачивает команду, выполняет её, читает вывод независимо от модели
  • Веб-сёрфинг — инструмент браузера выполняет загрузку; модель просто интерпретирует результаты
  • Cron-задачи и запланированные задания — работают так же, как в облачных конфигурациях
  • Мультиплатформенный шлюз — Telegram, Discord, Slack — всё работает с локальными моделями

Что лучше с облачными моделями​

  • Очень сложные многошаговые рассуждения — модели 70B+ или облачные модели, такие как Claude Opus, заметно лучше
  • Длинные контекстные окна — облачные модели предлагают 100K–1M токенов; локальные модели обычно 8K–32K
  • Скорость при больших ответах — облачный инференс быстрее, чем локальный только на CPU, для длинных генераций

Золотая середина: используйте локальные модели для повседневных задач, настройте облачный запасной вариант для сложных.