56 lines
3.6 KiB
Markdown
56 lines
3.6 KiB
Markdown
|
|
# Ollama Manager
|
|||
|
|
|
|||
|
|
Графический менеджер (Python + Tkinter) для управления удалённым сервером Ollama
|
|||
|
|
по адресу `192.168.1.118`.
|
|||
|
|
|
|||
|
|
## Установка
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
python ollama_manager.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
`tkinter` входит в стандартную поставку Python. На Linux при необходимости:
|
|||
|
|
`sudo apt install python3-tk`.
|
|||
|
|
|
|||
|
|
`paramiko` нужен только для вкладки **Сервер (SSH)** и кнопки **«Определить по SSH»**.
|
|||
|
|
Без него управление моделями по HTTP работает в полном объёме.
|
|||
|
|
|
|||
|
|
## Возможности
|
|||
|
|
|
|||
|
|
### Вкладка «Модели» (по HTTP, порт 11434)
|
|||
|
|
- Список установленных моделей: размер, число параметров, квантизация, дата.
|
|||
|
|
- **Установить (pull)** — загрузка модели с индикатором прогресса.
|
|||
|
|
- **Удалить**, **Копировать**, **Детали** (`/api/show`).
|
|||
|
|
- **Создать из Modelfile** (`/api/create`, на основе базовой модели + system-prompt).
|
|||
|
|
- **Push** — отправка модели в реестр (имя вида `namespace/model:tag`).
|
|||
|
|
|
|||
|
|
### Вкладка «Запущенные»
|
|||
|
|
- Список загруженных в память моделей (`/api/ps`): объём в RAM и VRAM.
|
|||
|
|
- **Выгрузить из памяти** (`keep_alive=0`).
|
|||
|
|
|
|||
|
|
### Вкладка «Сервер (SSH)»
|
|||
|
|
- SSH-подключение к машине с Ollama (пароль или ключ).
|
|||
|
|
- **Запустить / Остановить / Перезапустить / Статус** сервиса `ollama`.
|
|||
|
|
Используется `systemctl` (через `sudo -n`), с резервом на `ollama serve` / `pkill`.
|
|||
|
|
|
|||
|
|
> Управление процессом сервера невозможно через HTTP API Ollama — он не умеет
|
|||
|
|
> сам себя запускать/останавливать. Поэтому эти операции выполняются по SSH.
|
|||
|
|
> Для `systemctl` без пароля настройте `sudo NOPASSWD` для пользователя.
|
|||
|
|
|
|||
|
|
### Вкладка «Рекомендации» — «Найти модель»
|
|||
|
|
- Поля **ОЗУ** и **VRAM** заполняются вручную или кнопкой **«Определить по SSH»**
|
|||
|
|
(читает `/proc/meminfo` и `nvidia-smi`, для Apple Silicon — единую память).
|
|||
|
|
- Чекбокс **«Показывать только модели, подходящие для железа»**:
|
|||
|
|
- включён → в списке остаются только модели, которые поместятся в ОЗУ;
|
|||
|
|
- выключен → показывается весь каталог.
|
|||
|
|
- Цветовая маркировка: 🟢 поместится в VRAM (быстро на GPU), 🟠 пойдёт на CPU/частично,
|
|||
|
|
⚪ памяти не хватит.
|
|||
|
|
- **Установить выбранную** — сразу запускает `pull` выбранной модели.
|
|||
|
|
|
|||
|
|
## Примечание о размерах моделей
|
|||
|
|
|
|||
|
|
Каталог рекомендаций (`MODEL_CATALOG` в `ollama_manager.py`) содержит ориентировочные
|
|||
|
|
размеры и требования к памяти для популярных моделей (квантизация Q4). Это оценка,
|
|||
|
|
а не точная гарантия — список легко расширить, отредактировав словарь в коде.
|