Initial homelab docs

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-23 16:47:17 +03:00
commit ce731c28da
53 changed files with 6943 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
# 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 соответственно.