Skip to content

somepatt/TenderHack

Repository files navigation

ИИ-ассистент для Портала поставщиков

Проект разработан в рамках хакатона, посвященного созданию ИИ-ассистента для Портала поставщиков.

Компоненты системы

Система состоит из следующих компонентов:

  1. Основной бот (bot.py) - Telegram-бот, который отвечает на вопросы пользователей, используя базу знаний.

  2. База данных (SQLite) - Хранит взаимодействия с пользователями, оценки и тематики запросов.

  3. Административный бот (admin_bot.py) - Отдельный Telegram-бот для администраторов, предоставляющий статистику использования системы.

  4. Модуль логирования (telegram_logger.py) - Отправляет логи активности в приватный Telegram-канал.

Установка и настройка

Зависимости

pip install -r requirements.txt

Конфигурация

Создайте файл .env в корневой директории проекта со следующими переменными:

# Основные настройки
DATABASE_FILE=db.sqlite3
BOT_TOKEN=your_main_bot_token

# Настройки админ-бота
ADMIN_BOT_TOKEN=your_admin_bot_token

# Настройки логирования
TELEGRAM_CHANNEL_ID=-100your_channel_id

Запуск

Основной бот

python bot.py

Админ-бот

python admin_bot.py

Функциональность

Основной бот

  • Принимает вопросы пользователей и отвечает на них
  • Предоставляет возможность оценить ответ (лайк/дизлайк)
  • Сохраняет историю взаимодействий в базе данных

Админ-бот (команда /stats)

Предоставляет статистику:

  • Общее количество запросов
  • Количество лайков и дизлайков
  • Топ-5 самых популярных вопросов по количеству лайков

Логирование в канал

В приватный Telegram-канал отправляются:

  • Все новые вопросы пользователей
  • Ответы бота
  • Информация об оценках (лайк/дизлайк)

Структура базы данных

Таблица interactions

Хранит все взаимодействия между пользователем и ботом:

  • interaction_id - Уникальный ID взаимодействия
  • user_telegram_id - Telegram ID пользователя
  • timestamp - Время сообщения
  • is_from_user - Флаг: от пользователя (1) или от бота (0)
  • message_text - Текст сообщения
  • request_interaction_id - ID запроса, на который дан ответ
  • matched_kb_id - ID записи из базы знаний, используемой для ответа
  • similarity_score - Оценка релевантности ответа
  • assigned_theme_id - ID темы запроса

Таблица ratings

Хранит оценки ответов бота:

  • rating_id - Уникальный ID оценки
  • interaction_id - ID взаимодействия (ответа), который был оценен
  • user_telegram_id - Telegram ID пользователя, поставившего оценку
  • rating_value - Значение оценки (1 для лайка, -1 для дизлайка)
  • timestamp - Время оценки

Таблица request_themes

Хранит информацию о темах запросов:

  • theme_id - Уникальный ID темы
  • theme_name - Название темы
  • query_count - Количество запросов по данной теме
  • average_rating - Средняя оценка ответов по теме
  • last_updated - Время последнего обновления

About

.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages