Виртуальный помощник ПЭК — это телеграм-бот, использующий подход Retrieval-Augmented Generation (RAG) и Large Language Model (LLM), обученные на корпоративной документации.
Служит для упрощения процесса поиска информации в обширной базе знаний компании. Способен обрабатывать запросы на естественном языке и предоставлять краткие выдержки с ссылками на источники, что значительно повышает эффективность работы сотрудников.
- Точность и контекстуальность: RAG обеспечивает извлечение релевантных данных, а LLM генерирует точные ответы.
- Быстрый доступ к информации: Мгновенное предоставление нужной информации из корпоративных документов.
- Удобное взаимодействие: Телеграм-бот обеспечивает простой интерфейс для пользователей.
- Процессор: 8 ядер CPU
- Графический процессор (GPU): NVIDIA GeForce GTX 3090 или выше
- Видео память: 24 ГБ RAM или больше
- Оперативная память: 16 ГБ RAM или больше
- Жесткий диск: HDD с 120 ГБ свободного места
Использование GPU позволяет увеличить скорость работы модели примерно в 5 раз по сравнению с выполнением на CPU.
Проект использует следующие технологии и библиотеки:
- Python - основной язык программирования.
- Telegram Bot API - для создания и управления чат-ботом в Telegram.
- LangChain - для обработки и анализа текста.
- Hugging Face Transformers - для работы с моделями трансформеров.
- FAISS - для быстрого поиска ближайших соседей в векторном пространстве.
- BeautifulSoup - для парсинга HTML-документов.
- Text generation web UI - для запуска и работы с LLM и работы с ним через api openai
Все зависимости перечислены в файле requirements.txt.
Сборка и установка описана в разделе Как собрать и запустить проект
Запустите webui:
./text-generation-webui/start_linux.sh --listen --model models/openchat_3.5.Q8_0.gguf --listen-port 7860
Затем запустите чат-бота, используя следующую команду:
./urfu_hackathon/run_app.sh
Чтобы воспользоваться чат-ботом, выполните следующие шаги:
- Добавьте бота в свой список контактов в Telegram через поиск по имени бота.
- Начните диалог с ботом, отправив ему сообщение с вашим запросом на естественном языке.
- Бот обработает ваш запрос и предоставит наиболее релевантные результаты с ссылками на источники.
- Как быть если заказчик требует водителя с мед книжкой?
- Что входит в доставку в гипермаркеты?
- Доступна ли перевозка грузов к Киргизию?
-
Антон Власов - Руководитель проекта: Отвечает за общее управление проектом, планирование задач, координацию работы команды и общение с заказчиком.
-
Надежда Сопилова - Разработчик: Реализует сервер для обработки запросов от бота, а также бота для взаимодействия с пользователем в Telegram.
-
Аркадий Дубовик - Исследователь данных: Отвечает за сбор и подготовку корпоративной документации, очистку и предобработку текста, а также создание базы данных для модели.
-
Максим Фролов - Тестировщик: Отвечает за тестирование функциональности всех компонентов проекта, выявление ошибок и отладку.
-
Юрий Запатоцкий - Инженер по машинному обучению: Занимается созданием и настройкой модели, разделением текста на чанки, созданием эмбеддингов и построением базы данных для поиска.
-
Евгений Тимофеев - Технический писатель: Создает документацию проекта, включая README с инструкциями по установке и запуску, описание структуры проекта и лицензии.
Для детальной информации о процессе сборки и запуска проекта, а также других аспектах работы с проектом, пожалуйста, обратитесь к следующим документам:
Проект распространяется под MIT License. Подробнее можно узнать в файле LICENSE.