# Локальные модели (Ollama)

> Использование Ollama в Kodik: установка, запуск сервера, загрузка моделей, тест модели, определение окна контекста.

Источник: https://docs.kodik.ru/models/local-models

Ollama позволяет запускать языковые модели полностью на вашем устройстве — запросы не покидают машину и не требуют внешнего API-ключа. Kodik автоматически обнаруживает запущенный Ollama-сервер и предлагает все загруженные модели для выбора.

![Image](https://docs.kodik.ru/img/image44.png)

## Установка Ollama

Если Ollama ещё не установлена, Kodik предложит установить её прямо из интерфейса. Вы также можете сделать это вручную.

| ОС      | Команда                                          |
| ------- | ------------------------------------------------ |
| Linux   | `curl -fsSL https://ollama.com/install.sh \| sh` |
| macOS   | `brew install ollama`                            |
| Windows | `winget install -e --id Ollama.Ollama`           |

:::note[Windows и PATH]
Kodik захватывает PATH в момент запуска, поэтому установка Ollama после открытия IDE может остаться незамеченной — `ollama` будет «не найден», хотя в новом окне терминала он уже работает. Kodik решает это, обращаясь к стандартному расположению исполняемого файла (`%LOCALAPPDATA%\Programs\Ollama\ollama.exe` и аналогичным) напрямую, не завися от PATH. Если всё же возникают проблемы, перезапустите Kodik.
:::

## Запуск и остановка сервера

Kodik умеет запускать и останавливать Ollama-сервер через встроенный интерфейс:

- **Запустить** — Kodik выполняет `ollama serve` в фоне. Процесс остаётся живым даже после закрытия терминала.
- **Остановить** — Kodik отправляет команду завершения, подходящую для текущей ОС.

Можно также запустить сервер самостоятельно командой `ollama serve` в терминале.

## Настройка базового URL

По умолчанию Kodik обращается к `http://localhost:11434`. Если вы запускаете Ollama на другом хосте или порту — например, в Docker или на удалённой машине — укажите нужный URL в настройках провайдера Ollama.

Для Ollama в Docker, на удалённой машине или за прокси локальная команда `ollama` не обязана быть установлена, если указанный HTTP-эндпоинт доступен. Kodik использует этот эндпоинт для обнаружения моделей и действий в настройках.

## Таймаут запроса

Поле **Таймаут запроса** в настройках провайдера Ollama задаёт, сколько миллисекунд Kodik ждёт, пока модель начнёт отвечать, прежде чем прервать запрос. Крупная модель при «холодном» старте или длинный промпт, обрабатываемый на CPU, могут не уложиться в значение по умолчанию до первого токена — увеличьте таймаут, чтобы Kodik ждал столько, сколько нужно. По умолчанию — 60000 (60 секунд); значение указывается в миллисекундах.

## Загрузка и удаление моделей

В разделе настроек Ollama доступен список моделей с кнопками **Pull** и **Delete**:

- **Pull** — Kodik отправляет запрос `/api/pull` на настроенный эндпоинт Ollama и показывает прогресс в настройках.
- **Delete** — удаляет модель с диска через API Ollama.

Если нужная модель ещё не загружена, найдите её имя на [ollama.com/library](https://ollama.com/library) и введите его в поле загрузки.

## Тест модели

Кнопка **Протестировать модель** отправляет короткое тестовое сообщение выбранной модели и показывает ответ и время отклика. Это удобно для проверки корректности настройки перед началом работы.

## Определение окна контекста

Kodik автоматически определяет размер окна контекста каждой загруженной модели через API Ollama (`/api/show`). Если Kodik не может выяснить точный размер — он использует значение по умолчанию 32 768 токенов.

### Адаптация на лету

При локальных запросах Kodik использует зондирование: пробует запрос с текущим размером окна контекста. Если Ollama возвращает ошибку нехватки памяти для выбранного `num_ctx`, Kodik автоматически снижает значение и повторяет попытку. Успешный и неудачный размеры запоминаются локально для каждой модели, чтобы следующий запрос начинался с заведомо рабочего значения.

## Управление рассуждением (thinking)

Модели с возможностью `thinking` (например, семейство Qwen3) получают переключатель **Рассуждение** в выборе модели чата — отдельно для каждой модели. **Вкл.** сохраняет поведение Ollama по умолчанию: модель размышляет перед ответом, ход мыслей показывается в сворачиваемом блоке. **Выкл.** отправляет `think: false` — модель отвечает сразу, без этапа размышления: быстрее и экономнее по токенам для простых задач. Моделям без этой возможности флаг не отправляется никогда.

## Авторизация

Если ваш Ollama-сервер требует Bearer-токена (например, при использовании Ollama Cloud или закрытого корпоративного экземпляра), введите его в поле **API Key** в настройках провайдера Ollama. Для стандартной локальной установки оставьте это поле пустым.
