Выбор мозгов: Ollama или веб-версия DeepSeek

Разбор свободных фраз, теги и подсказку по фотографии теперь может делать
не своя модель, а веб-версия DeepSeek. Своего клиента DeepSeek здесь нет
и не нужно: рядом живёт отдельный сервис deepseek-api, который держит
вкладку браузера и отдаёт наружу протокол Ollama. Для hlamingo вся разница
сводится к тому, по какому адресу спрашивать.

  HLAMINGO_ENGINE=ollama|deepseek
  HLAMINGO_DEEPSEEK_HOST=http://localhost:11500

Эмбеддинги в выбор не входят и всегда идут на OLLAMA_HOST: веб-чат векторов
не отдаёт, а подделать их нечем. Поэтому адрес Ollama нужен и в режиме
DeepSeek, иначе молча умирает поиск по смыслу.

Предохранитель в ollama.py теперь считается по каждому адресу отдельно.
Иначе лежачая Ollama гасила бы живой DeepSeek: неудача по одному адресу
на полминуты объявляла мёртвым и второй.

Проба адреса больше не подменяет config.OLLAMA_HOST на время проверки —
адрес передаётся явным параметром. Запросы идут в несколько потоков,
и подмена задевала чужие.

В настройках (вкладка "шестерёнка") появился выбор "Кто думает", поле
адреса DeepSeek и вторая кнопка проверки связи. Списка моделей теперь два:
для разбора фраз — у выбранного движка, для поиска по смыслу — у Ollama.

Замер на разборе фразы и генерации тегов: Ollama qwen3:8b 2-3 с,
DeepSeek 8-12 с плюс 15 с на подъём браузера при первом запросе.

Тесты: 115 успешно, 0 провалено.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alex Cube
2026-08-26 12:48:30 +03:00
co-authored by Claude Opus 5
parent 1ae98b0b6f
commit 4d8175931b
7 changed files with 359 additions and 117 deletions
+33 -7
View File
@@ -101,9 +101,10 @@ start.cmd запускает сервер и печатает адреса
## Настройки
**Проще всего — в браузере:** вкладка **⚙**. Там указывается адрес Ollama,
кнопка «Проверить связь» говорит, отвечает ли он и сколько там моделей, а модели
выбираются из списка реально установленных. Сохранённое применяется сразу,
**Проще всего — в браузере:** вкладка **⚙**. Там выбирается, кто думает
(Ollama или веб-версия DeepSeek), указываются адреса, кнопка «Проверить связь»
говорит, отвечает ли он и сколько там моделей, а модели выбираются из списка
реально установленных. Сохранённое применяется сразу,
перезапуск не нужен. Если Ollama не отвечает, наверху появляется предупреждение
со ссылкой прямо в настройки.
@@ -115,7 +116,9 @@ start.cmd запускает сервер и печатает адреса
| Переменная | По умолчанию | Зачем |
|---|---|---|
| `HLAMINGO_ENGINE` | `ollama` | кто думает: `ollama` или `deepseek` |
| `OLLAMA_HOST` | `http://localhost:11434` | адрес Ollama |
| `HLAMINGO_DEEPSEEK_HOST` | `http://localhost:11500` | адрес сервиса `deepseek-api` |
| `HLAMINGO_CHAT_MODEL` | `qwen3:8b` | разбор фраз и теги |
| `HLAMINGO_EMBED_MODEL` | `bge-m3` | поиск по смыслу |
| `HLAMINGO_VISION_MODEL` | `gemma3:4b` | подсказка по фото; пусто — выключено |
@@ -123,13 +126,35 @@ start.cmd запускает сервер и печатает адреса
| `HLAMINGO_PORT` | `5000` | порт веб-интерфейса |
| `HLAMINGO_DATA_DIR` | — | другая папка для данных и `.env`; используется тестами |
Из браузера правятся `OLLAMA_HOST`, две модели и путь для копий — по белому
списку.
Из браузера правятся движок, оба адреса, две модели и путь для копий —
по белому списку.
Произвольные ключи в `.env` через веб записать нельзя: этот файл читает
приложение при запуске. Адрес проверяется на формат, имена моделей — на
недопустимые символы, и если хоть одно значение неверно, не применяется
ни одно (иначе половина настроек принята, половина отвергнута).
### Ollama или DeepSeek
Разбор свободных фраз, теги и подсказку по фотографии может делать не своя
модель, а веб-версия DeepSeek. У неё нет API — только вкладка в браузере,
поэтому рядом живёт отдельная программа [`deepseek-api`](../deepseek-api):
она держит эту вкладку и отдаёт наружу протокол Ollama. Для hlamingo вся
разница сводится к тому, по какому адресу спрашивать.
| | Ollama | DeepSeek (веб) |
|---|---|---|
| Где считается | ваш компьютер | серверы DeepSeek |
| Приватность | фразы никуда не уходят | фразы уходят наружу |
| Скорость | 2–3 с на вещь | десятки секунд: очередь и размышления |
| Что нужно | установленные модели | запущенный `deepseek-api` и браузер с логином |
| Работает без интернета | да | нет |
**Поиск по смыслу в этот выбор не входит.** Векторы считает только настоящая
Ollama — веб-чат их не отдаёт, поэтому её адрес нужен и в режиме DeepSeek.
Без неё останется поиск по названию, тегам и маркировке.
Переключение — вкладка **⚙**, «Кто думает». Сохранённое применяется сразу.
## Как пользоваться
### Вкладка «Действие» — четыре кнопки
@@ -303,8 +328,9 @@ venv\Scripts\python.exe tools\reindex.py
```
hlamingo\
config.py адрес Ollama, модели, пути, порог поиска
ollama.py клиент: chat / embeddings / проверка доступности
config.py движок, адреса, модели, пути, порог поиска
ollama.py клиент: chat / embeddings / проверка доступности;
чат идёт на выбранный движок, эмбеддинги — всегда на Ollama
store.py места (иерархия), ёмкости, предметы; атомарная запись базы
search.py поиск по словам + смысловая догадка
brain.py разбор фразы моделью, синонимы, фолбэк на регулярки