Skip to content

Реализация логики чат-бота для ответов на вопросы пользователя. На вопрос о товарах возвращает информацию о товаре, на посторонние вопросы отвечает "болталкой".

Notifications You must be signed in to change notification settings

experiment0/chatbot_product_talker

Repository files navigation

Чат-бот «барахольщик»

Описание проекта

В данном проекте реализован скрипт для формирования ответов чат-бота.
На вопрос о товарах скрипт возвращает информацию о товаре.
На остальные вопросы отвечает "болталкой".

Краткая информация о данных

Данные для реализации чат-бота предложены в курсе ML инженер от SkillFactory.
Исходные данные представляют из себя текстовый файл с вопросами и ответами на mail.ru (./data/mail_ru_answers.txt)
а также таблицу с данными о товарах (./data/products.csv)
По причине большого объема файлов папки data с данными и models с моделями
вынесены отдельно https://disk.yandex.ru/d/5DmPNEMe4BTamw .

Этапы работы над проектом

Формирование ответа чат-бота работает по следующей схеме:

  1. На основе файла с вопросами и ответами с mail.ru создана модель Word2Vec для векторизации вопросов к "болталке".
    Создан индекс существующих вопросов с помощью Annoy.
    Реализована функция поиска ответа, наиболее подходящего под вопрос пользователя.

  2. На основе названий и описаний товаров создана модель Word2Vec для векторизации вопросов о товарах.
    Создан индекс названий и описаний товаров с помощью Annoy.
    Реализована функция поиска товара, наиболее подходящего под запрос пользователя.

  3. Создан классификатор интента пользователя (отличающий продуктовый вопрос от постороннего).
    Для этого с помощью TfidfVectorizer созданы векторные признаки описаний товаров и вопросов из данных для "болталки".
    На полученных векторах обучена логистическая регрессия.

  4. Реализована итоговая функция, которая получает на вход вопрос пользователя
    и возвращает либо описание товара, либо ответ из "болталки".

Описание файлов и папок проекта

Папки

Файлы

  • 01_talker.ipynb - реализация логики для получения ответов "болталки".
  • 02_intent_classifier.ipynb - реализация классификатора интентов пользователя на запрос о продукте и все остальное.
  • 03_product.ipynb - реализация логики для получения ответов на вопрос о товаре.
  • 04_answer.ipynb - реализация итоговой логики чат-бота, которая возвращает ответ на вопрос пользователя.

Запуск проекта

# Создаем папку проекта
mkdir chatbot_product_talker

# Переходим в нее
cd chatbot_product_talker

# Клонируем репозиторий
git clone https://github.com/experiment0/chatbot_product_talker.git

В данном проекте используется утилита uv.
Если она не установлена, ее можно установить по инструкции.

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

uv sync

About

Реализация логики чат-бота для ответов на вопросы пользователя. На вопрос о товарах возвращает информацию о товаре, на посторонние вопросы отвечает "болталкой".

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published