Files
homelab-docs/homelab/paperless-ollama-README.md
2026-02-23 16:47:17 +03:00

45 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Paperless + Ollama: вопросы по документам
Скрипт ищет по документам в Paperless-ngx (full-text по OCR) и отвечает на вопрос, подставляя найденный текст в модель Ollama (Saiga).
## Требования
- Python 3.9+
- Доступ к API Paperless-ngx (контейнер 104 → укажи его URL)
- Доступ к Ollama (например на VM 192.168.1.200:11434)
## Переменные окружения
| Переменная | Обязательная | По умолчанию | Пример |
|------------|--------------|--------------|--------|
| `PAPERLESS_URL` | да | — | `http://192.168.1.104:8000` |
| `PAPERLESS_TOKEN` | да | — | токен из Paperless (см. ниже) |
| `OLLAMA_URL` | нет | `http://localhost:11434` | `http://192.168.1.200:11434` если скрипт на другой машине |
| `OLLAMA_MODEL` | нет | `saiga` | имя модели в Ollama |
| `PAPERLESS_MAX_DOCS` | нет | `5` | сколько документов подставлять в промпт |
## Токен Paperless
В веб-интерфейсе Paperless: **My Profile** (меню пользователя) → кнопка обновления токена (circular arrow) → скопировать токен. Либо создать токен в Django admin.
## Запуск
```bash
cd homelab
export PAPERLESS_URL="http://192.168.1.104:8000" # или IP/порт где крутится контейнер 104
export PAPERLESS_TOKEN="твой_токен"
# Если Ollama на другой машине:
export OLLAMA_URL="http://192.168.1.200:11434"
python3 paperless-ollama-ask.py "номер паспорта?"
python3 paperless-ollama-ask.py "когда истекает договор?"
```
Скрипт: ищет в Paperless по фразе (по OCR), берёт до 5 документов, подставляет их текст в промпт и отправляет в Ollama. Ответ выводится в stdout.
## Где запускать
- **На VM с Ollama (192.168.1.200):** `OLLAMA_URL=http://localhost:11434`, `PAPERLESS_URL` — адрес контейнера 104 (например `http://192.168.1.104:8000` или `http://host-104:8000` если есть DNS).
- **С своей машины:** оба URL с IP (Ollama и Paperless), порт 11434 и 8000 соответственно.