Skip to content
bachaa7Public

About

Telegram-бот для здорового образа жизни: ИИ-ассистент отвечает на вопросы по базе знаний (RAG на LangChain, Ollama и ChromaDB), считает КБЖУ, ставит напоминания и даёт рекомендации. aiogram 3.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Zoch_bot — Telegram-бот для здорового образа жизни

Telegram-бот с ИИ-ассистентом, который отвечает на вопросы о здоровом образе жизни по базе знаний (RAG). Также умеет считать КБЖУ, ставить напоминания и давать рекомендации по питанию и привычкам.

Командный проект. На его основе позже было сделано веб-приложение HealthGo.

Возможности

  • ИИ-ассистент (RAG) — отвечает на вопросы только по базе знаний: находит похожие по смыслу тексты и генерирует ответ локальной LLM
  • Пополнение базы знаний — пользователь может добавить новое знание прямо в боте, оно сохраняется в векторную БД
  • Калькулятор КБЖУ — расчёт калорий, белков, жиров и углеводов по формуле Миффлина — Сан Жеора
  • Напоминания — о воде, сне и упражнениях в выбранное время
  • Рекомендации — по питанию и полезным привычкам
  • Определения понятий — поиск и добавление понятий в семантическую базу знаний OSTIS
  • Профиль пользователя — регистрация, просмотр и удаление данных

Как работает ИИ-ассистент

  1. Вопрос пользователя превращается в эмбеддинг (модель mxbai-embed-large)
  2. ChromaDB находит 3 самых близких по смыслу текста из базы знаний
  3. Найденные тексты и вопрос подставляются в промпт (LangChain)
  4. Локальная LLM llama3.2 генерирует ответ только на основе найденного контекста

Модели запускаются локально через Ollama.

Стек

Компонент Технология
Бот Python, aiogram 3
ИИ / RAG LangChain, Ollama (llama3.2, mxbai-embed-large), ChromaDB
База знаний OSTIS (sc-client, sc-kpm)
Планировщик напоминаний APScheduler

Запуск

  1. Установите Ollama и скачайте модели:
    ollama pull llama3.2
    ollama pull mxbai-embed-large
  2. Установите зависимости:
    pip install -r requirements.txt
  3. Создайте файл .env в корне проекта:
    BOT_TOKEN=ваш_токен_от_BotFather
    
  4. Запустите OSTIS (используется для определений понятий)
  5. Запустите бота:
    python main.py

Команды

  • /start — начало работы
  • /help — справка
  • /register — регистрация
  • /profile — профиль
  • /delete_me — удалить свои данные
  • /define <понятие> — найти определение

Структура

main.py                     # точка входа: запуск бота и планировщика
app/
  handlers.py               # основные обработчики: КБЖУ, рекомендации, профиль
  rag_system.py             # RAG: промпт + LLM
  rag_data_manager.py       # ChromaDB: добавление и поиск знаний
  rag_handlers.py           # вопросы к ИИ
  rag_creation_handlers.py  # добавление знаний через бота
  reminder_handler.py       # напоминания
  calorie_calculator.py     # расчёт КБЖУ
  definition_handler.py     # определения понятий
  keyboards.py              # клавиатуры
ostis_client.py             # подключение к OSTIS
ostis_manager.py            # работа с узлами OSTIS

About

Telegram-бот для здорового образа жизни: ИИ-ассистент отвечает на вопросы по базе знаний (RAG на LangChain, Ollama и ChromaDB), считает КБЖУ, ставит напоминания и даёт рекомендации. aiogram 3.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages