Telegram-бот с RAG (Retrieval-Augmented Generation): отвечает на вопросы по вашим документам.
- Индексация PDF / TXT / Markdown
- Векторный поиск (Chroma + sentence-transformers)
- Гибридный поиск: semantic + keyword overlap
- 3 режима ответа:
excerpts— без API-ключей, только найденные фрагментыopenai— OpenAI-compatible APIollama— локальная модель
- python-telegram-bot
- LangChain + Chroma
- sentence-transformers (multilingual)
- httpx
git clone https://github.com/realReloadTime/telegram-rag-bot.git
cd telegram-rag-bot
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env- Создайте бота через @BotFather
- Впишите токен в
.env→TELEGRAM_BOT_TOKEN - Положите документы в
data/(уже естьsample_knowledge.md) - Запустите бота:
python -m bot.mainfind_dotenv поднимается от bot/config.py вверх и находит .env в корне — cwd не важен.
- В Telegram:
/reindex— построить индекс/ask Какие команды поддерживает бот?— задать вопрос- или просто напишите вопрос текстом
Работает без внешних API. Показывает релевантные фрагменты из документов.
LLM_PROVIDER=excerptsLLM_PROVIDER=openai
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini
# для OpenRouter:
# OPENAI_BASE_URL=https://openrouter.ai/api/v1LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_MODEL=llama3.2bot/
main.py # entrypoint
handlers.py # Telegram handlers
config.py # settings
rag/
indexer.py # PDF/TXT → chunks → Chroma
search.py # hybrid search + LLM answer
data/ # исходные документы
chroma_db/ # векторная БД (создаётся автоматически)
Типовой сценарий внедрения:
- Загрузка корпоративных PDF/регламентов
- Индексация и обновление при изменении файлов (
/reindex) - Ответы сотрудникам/клиентам в Telegram
- Подключение LLM (OpenAI, GigaChat-compatible, Ollama)
realReloadTime — Python backend, FastAPI, RAG/ML, Telegram bots.