Telegram-bridge для Kotaemon с удобным Telegram UX: выбор документов, чистые цитаты, единый PDF по цитируемым страницам, PNG-альбом, ACL, локальный ingest и systemd-деплой.
/startсразу показывает выбор файлов- Справка вынесена в
/cmd 📄 PDF откуда Инфо— единый PDF по страницам цитат🧩 PNG альбом— все PNG-страницы одним media-group сообщением📎 Цитаты + PDF— цитата подписью к изображению- Локальный ingest (
/ingest) и персистентное хранилище страниц - Улучшены retry/timeout и диагностические логи
- Опциональная работа через HTTP proxy (systemd drop-in)
flowchart LR
U[Пользователь в Telegram] --> B[Бот-bridge]
B --> K[Kotaemon API]
B --> S[(state.db + ACL)]
B --> L[(storage/\nincoming + rendered pages + bundles)]
L --> P[Единый PDF по цитатам]
L --> A[PNG альбом]
B --> U
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# заполните .env
python bot.pychmod +x deploy.sh
./deploy.sh <linux-user>Логи:
journalctl -u kotaemon-telegram-bridge -f/start- Выбрать документы (
/files) - Задать вопрос (
/ask ...или обычный текст) - Использовать inline-кнопки:
📄 PDF откуда Инфо🧩 PNG альбом📎 Цитаты + PDF
/start— приветствие + выбор файлов/cmd— список команд/files— inline-пикер файлов/use <name|id>— выбрать файл/clearuse— очистить выбор/selected— показать выбранные file_id/ask <question>— вопрос в Kotaemon/citations— очищенные цитаты/sources— поток источников (PDF по цитатам)/citsrc— цитата + соответствующая страница/mindmap— mindmap/relogin— relogin в Kotaemon
Админ:
/adduser <telegram_id>/deluser <telegram_id>/users/prepdf <pdf_url_or_path>/prepdfid <file_id>/ingest [file_id|name|path]
Клади PDF в:
storage/incoming/<file_id>.pdfилиstorage/incoming/<name>.pdf
Команды:
/ingest <file_id|name|path>— обработать один PDF/ingest— обработать все PDF изstorage/incoming
Артефакты:
storage/rendered/pdf_pages/<key>/page-XXXX.pdfstorage/rendered/png_pages/<key>/page-XXXX.pngstorage/rendered/bundles/<key>.pdf
Как работает:
- бот сопоставляет выбранный
file_idс локальным индексом, - находит страницы цитат,
- собирает единый компактный PDF (до 10 страниц),
- отправляет одним файлом.
/etc/systemd/system/kotaemon-telegram-bridge.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7080"
Environment="HTTPS_PROXY=http://127.0.0.1:7080"
Environment="NO_PROXY=localhost,127.0.0.1,kotaemon.example.com,.example.com"Применить:
sudo systemctl daemon-reload
sudo systemctl restart kotaemon-telegram-bridge
sudo systemctl show kotaemon-telegram-bridge --property=Environment --no-pager- Не храните секреты в git
- Держите whitelist строгим
- Лучше использовать отдельного пользователя Kotaemon