# 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 соответственно.