Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram RAG Bot

Telegram-бот с RAG (Retrieval-Augmented Generation): отвечает на вопросы по вашим документам.

Возможности

  • Индексация PDF / TXT / Markdown
  • Векторный поиск (Chroma + sentence-transformers)
  • Гибридный поиск: semantic + keyword overlap
  • 3 режима ответа:
    • excerpts — без API-ключей, только найденные фрагменты
    • openai — OpenAI-compatible API
    • ollama — локальная модель

Стек

  • 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
  1. Создайте бота через @BotFather
  2. Впишите токен в .envTELEGRAM_BOT_TOKEN
  3. Положите документы в data/ (уже есть sample_knowledge.md)
  4. Запустите бота:
python -m bot.main

find_dotenv поднимается от bot/config.py вверх и находит .env в корне — cwd не важен.

  1. В Telegram:
    • /reindex — построить индекс
    • /ask Какие команды поддерживает бот? — задать вопрос
    • или просто напишите вопрос текстом

Режимы LLM

excerpts (по умолчанию)

Работает без внешних API. Показывает релевантные фрагменты из документов.

LLM_PROVIDER=excerpts

OpenAI / OpenRouter

LLM_PROVIDER=openai
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini
# для OpenRouter:
# OPENAI_BASE_URL=https://openrouter.ai/api/v1

Ollama (локально)

LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_MODEL=llama3.2

Архитектура

bot/
  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/      # векторная БД (создаётся автоматически)

Для заказчика

Типовой сценарий внедрения:

  1. Загрузка корпоративных PDF/регламентов
  2. Индексация и обновление при изменении файлов (/reindex)
  3. Ответы сотрудникам/клиентам в Telegram
  4. Подключение LLM (OpenAI, GigaChat-compatible, Ollama)

Автор

realReloadTime — Python backend, FastAPI, RAG/ML, Telegram bots.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages