Personal Telegram bot that scrapes selected public channels and generates an AI-personalized digest.
- Install
uv. - Create
.env:
BOT_TOKEN=...
CHAT_ID=...
OPENROUTER_KEY=...- Create local personalization config:
cd digest_bot
copy config\personalization.example.yaml config\personalization.yaml- Edit
config/personalization.yamlwith:
- private user profile details
- prompt style and digest preferences
- stop words and similar tuning rules
- Install dependencies and run:
uv sync
uv run bot.pydata/data.jsonstores channels, focus, selected model, and lightweight interaction state.data/digests_history.jsonstores generated digest history.config/personalization.yamlstores private profile context and prompt tuning.
- Keep secrets only in
.envor deployment secrets. - Keep sensitive or flexible prompt/profile data only in
config/personalization.yaml. - Commit only
config/personalization.example.yaml. - Do not commit runtime state JSON files.
Offline integration checks:
uv run test_ai_integration.pySmoke test:
uv run test_smoke.py