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

2.4 KiB
Raw Blame History

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.

Запуск

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