Remove deprecated files related to homelab architecture, container context, and various scripts. This cleanup includes the removal of configuration files for Nextcloud, Gitea, and VPN setups, as well as documentation files that are no longer relevant. This helps streamline the project and eliminate outdated references.

This commit is contained in:
2026-02-25 17:03:10 +03:00
parent 3c00fbf67b
commit b0d2746490
74 changed files with 2662 additions and 7107 deletions

View File

@@ -0,0 +1,82 @@
# Paperless + Ollama: поиск по документам Paperless-ngx
Скрипт **paperless-ollama-ask.py** позволяет задавать вопросы по документам из Paperless-ngx (контейнер 104) и получать ответы от модели Ollama (обычно на ВМ 200). Работает так: ищет документы по тексту (OCR), собирает выдержки и подставляет их в промпт для локальной LLM.
---
## Требования
- Python 3.9+
- Запущенный **Paperless-ngx** (см. `container-104.md`) с доступным API
- Запущенный **Ollama** (обычно на ВМ 200, см. `container-200.md`)
Скрипт хранится в репозитории в `homelab/paperless-ollama-ask.py`, документация — в этом файле.
---
## Переменные окружения
| Переменная | Обязательная | По умолчанию | Пример |
|----------------------|--------------|------------------------|----------------------------------|
| `PAPERLESS_URL` | да | — | `http://192.168.1.104:8000` |
| `PAPERLESS_TOKEN` | да | — | токен API из Paperless |
| `OLLAMA_URL` | нет | `http://localhost:11434` | `http://192.168.1.200:11434` |
| `OLLAMA_MODEL` | нет | `saiga` | имя модели в Ollama |
| `PAPERLESS_MAX_DOCS` | нет | `5` | максимум документов в промпте |
**PAPERLESS_TOKEN:** берётся в веб-интерфейсе Paperless: профиль пользователя → токен API (см. документацию Paperless-ngx).
---
## Как это работает
1. Скрипт выполняет поиск в Paperless по строке запроса (full-text по OCR).
2. Берёт до `PAPERLESS_MAX_DOCS` подходящих документов.
3. Собирает выдержки/полный текст и формирует промпт для модели Ollama.
4. Отправляет промпт на `OLLAMA_URL` и выводит ответ в stdout.
---
## Примеры запуска
```bash
cd homelab
export PAPERLESS_URL="http://192.168.1.104:8000" # контейнер 104
export PAPERLESS_TOKEN="твой_токен_из_Paperless"
# Если Ollama на ВМ 200:
export OLLAMA_URL="http://192.168.1.200:11434"
# Вопросы по документам
python3 paperless-ollama-ask.py "номер паспорта?"
python3 paperless-ollama-ask.py "когда истекает договор?"
```
---
## Где запускать
- **На ВМ с Ollama (обычно ВМ 200):**
- `OLLAMA_URL=http://localhost:11434`
- `PAPERLESS_URL` — адрес контейнера 104 (`http://192.168.1.104:8000` или домен, который проксирует NPM).
- **На другой машине (например, твой ноут):**
- `PAPERLESS_URL` и `OLLAMA_URL` указывают на IP/домены Paperless и Ollama.
- Учесть доступность портов и фаервол.
---
## Безопасность и ограничение доступа
- **Токен Paperless** даёт доступ к документам — хранить его только в приватных местах (env, .env вне репозитория).
- **Ollama** обычно слушает на 11434; при пробросе наружу стоит ограничить доступ (файрвол, VPN).
- Запросы и выдержки из документов уходят в локальную модель; при использовании удалённых/облачных моделей учитывать конфиденциальность.
---
## Связь с другими документами
- [Контейнер 104 (Paperless)](container-104.md) — где крутится Paperless-ngx и какие порты/тома используются.
- [ВМ 200 (Immich)](container-200.md) — может одновременно работать как хост для Ollama (порт 11434).