Этот проект использует OpenAI для генерации ответов на вопросы к базе знаний.
Основной язык: Python 3.8+
- openai - API для генерации текста
- scikit - TF-IDF векторизация текста и подсчет косинусной близости
- fastapi - API для сервиса
- aiogram - API для бота в телеграм
- В базе знаний хранятся пары вопрос-ответ. Вопросы и ответы представлены в виде текста.
- Для удобства и в целях демонстрации имеется метод add_knowledge, позволяющий в рантайме добавить новую пару. Эта пара пропадает после перезапуска сервиса.
- Пользователь задает вопрос
- Сервис ищет в базе знаний похожие вопросы (TOP_N вопросов). Поиск осуществляется по TF-IDF векторам вопросов.
- Сервис генерирует ответ на вопрос с помощью OpenAI API. В качестве входных данных используется вопрос и ответы на похожие вопросы.
- Сервис возвращает ответ пользователю.
echo "OPENAI_API_KEY='OPENAI_TOKEN_HERE'" >> .env
echo "TELEGRAM_BOT_TOKEN='TELEGRAM_TOKEN_HERE'" > .env
make install
# Запуск сервиса
make start_bot # Запуск бота в телеграм
make start_service # Запуск сервиса
make start_docker_fastapi # Запуск сервиса в докере
- Динамическое измнение базы данных
- Возможность использования в качестве телеграм бота
- Наглядный интерфейс API
Команда Филадельфия по-русски в рамках хакатона EESTECH Challenge 2023 от EESTEC LC Saint-Petersburg - hack link
Команда:
Команда | Роль |
---|---|
Тампио Илья | Python: ML, Backend |
Свириденко Сергей | Java: Backend |
Мизюлин Егор | Dart/Flutter: Mobile |