🔍 Поиск готовых работ

🔍 Поиск работ

Реинжиниринг консультационного чат-бота для клиентов торговой компании

Работа №206230

Тип работы

Магистерская диссертация

Предмет

информатика

Объем работы44
Год сдачи2020
Стоимость4880 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
0
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 6
1 АНАЛИЗ ИСХОДНЫХ ДАННЫХ 9
1.1 Анализ исходного проекта 9
1.2 Анализ проблемных мест 12
1.3 План выполнения работ 13
2 ПРОЕКТИРОВАНИЕ 14
2.1 Концептуальная модель обработки сообщений 14
2.2 Описание участников обработки сообщений 15
2.2.1 ApiWorker 15
2.2.2 MessageHandler 16
2.2.3 Notifier 18
2.2.4 Сценарист 19
2.2.5 Историк 21
2.2.6 Типы данных 22
3 РЕАЛИЗАЦИЯ 23
3.1 Уведомления 23
3.2 Работа с базой 24
3.3 Датаклассы 26
3.4 Канал telegram 28
3.5 Канал ВКонтакте 28
3.6 Канал почты 29
3.7 Web API чат-бота 30
3.8 Сценарист и сценарии 31
3.9 Обработчик 32
4 ТЕСТИРОВАНИЕ 33
4.1 Статический анализ 33
4.2 Автоматические тесты 34
4.3 Нагрузочное тестирование 36
5 АНАЛИЗ ПРОЕКТОВ 37
5.1 Метрики 37
5.2 Сравнение 39
ЗАКЛЮЧЕНИЕ 42
ЛИТЕРАТУРА 43

Обработка естественных языков (Natural Language Processing, NLP) - направление компьютерной лингвистики и машинного обучения, изучающее анализ и синтез естественных языков. Под обработкой естественных языков понимается создание систем, обрабатывающих естественные языки с целью выполнения определенных задач. В список этих задач могут входить следующие элементы [10].
• Формирование ответов на вопросы (Question Answering).
• Анализ эмоциональной окраски высказываний (Sentiment Analysis).
• Машинный перевод (Machine Translation).
• Распознавание речи (Speech Recognition).
• Морфологическая разметка (Part of Speech Tagging).
• Извлечение сущностей (Name Entity Recognition).
Диалоговые системы - это системы, решающие задачу формирования ответов на вопросы. Само формирование ответов может сопровождаться решением сопутствующих задач, таких как извлечение именованных сущностей или анализ эмоциональной окраски. Диалоговые системы можно охарактеризовать по двум векторам: задача- ориентированная или общего назначения (task-oriented/general) и закрытого или открытого диапазона тем (closed/open domain). Первая классификация определяет создана ли система для решения одного конкретного вопроса по данной теме в ходе диалога, или позволяет свободно вести продолжительный диалог на поставленную тему. Вторая классификация определяет на сколько диалоговая система ограничена в диапазоне выбора тем для беседы с человеком.
Чат-боты - это диалоговые системы, обладающие интерфейсом для взаимодействия с человеком. Чаще всего чат-боты работают через мессенджеры, социальные сети, форумы или диалоговые окна на сайтах. Также чаще всего боты используются для решения типовых задач, хорошо описываемых сценариями. Такие чат-боты часто применяются в бизнесе для оперативного решения вопросов клиентов.
Клиентские чат-боты предназначены для взаимодействия с клиентами той или иной организации, оперативного и массового решения вопросов клиента, либо сбора информации для оформления лучшего предложения.
Чат-бот, рассматриваемый в этой работе, относится к клиентским чат-ботам, имеет четкий список тем для диалогов и шаблоны ответов, что позволяет отнести его к группе, так называемых, авто-информаторов.
В рамках данной работы проводится рефакторинг сервиса чат-бота.
Рефакторинг - это изменение внутренней структуры программного обеспечения, имеющее целью облегчить понимание его работы и упростить модификацию, не затрагивая наблюдаемого поведения [10].
Во время жизненного цикла программного обеспечения, его код претерпевает изменения с той или иной частотой, в тех или иных масштабах. В это время код теряет свою структурированность, обрастает сложными конструкциями, повторяющимися кусками кода, незадокументированными фрагментами. Рефакторинг позволяет улучшить композицию и структуру кода, уменьшить дублирование, облегчить понимание, провести профилактику ошибок, улучшить модифицируемость и уменьшить время внесения новых изменений.
Иногда может наступить критический момент, когда команда понимает, что при проектировании системы были совершены существенные ошибки, что текущее состояние кода не может быть исправлено очередным рефакторингом, но может создать препятствия к дальнейшему развитию проекта. В этом случае уместным может быть перепроектировать систему на других основах, то есть произвести реинжиниринг.
Цель и задачи
Целью данной выпускной квалификационной работы является проведение рефакторинга системы клиентского чат-бота. Для достижения этой цели должны быть решены следующие задачи.
1. Анализ исходного проекта и выявление его проблемных мест.
2. Составление требований к новому проекту.
3. Проектирование и реализация новой системы с учетом всех требований.
4. Тестирование новой системы.
5. Анализ эффективности проведенных работ.
Структура и объем работы
Работа состоит из введения, пяти глав, заключения и списка используемой литературы. Объем работы составляет 44 страницы, объем библиографии 29 наименований.
Содержание работы
Первая глава, «Анализ исходных данных», содержит анализ проблемных мест исходного проекта и составление списка требований к его улучшению.
Вторая глава, «Проектирование», описывает проект новой системы.
Третья глава, «Реализация», содержит описание реализации новой системы.
Четвертая глава, «Тестирование», содержит описание и результаты написанных и проведенных тестов новой системы.
Пятая глава, «Анализ проектов», описывает метрики и инструменты, используемые для анализа качества кодовой базы исходного и конечного проектов, и результаты анализа.
Заключение резюмирует результаты, полученные в рамках проведенной работы.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


С развитием социальных сетей, их значимость для бизнеса неуклонно растет, равно как растет темп ритма жизни. Бизнес сейчас зачастую теряет прибыль только из-за того, что не может дать клиентам быструю обратную связь. Развитие и продвижение чат-ботов помогает уменьшить время отклика на запрос клиента и решить возникающую проблему.
Целью данной работы было проведение работ по улучшению кодовой базы, увеличению надежности, читаемости и модифицируемости существующего проекта чат-бота. Для достижения этой цели был проведен анализ исходного проекта, выявлен ряд его недостатков, составлен план работ с перечнем требуемых характеристик конечного результата, разработана и реализована новая архитектура системы.
По итогу выполнения работ был получен единый цельный проект, с четко организованной архитектурой, использующий удобные и понятные средства по работе с базой данных и системой отложенного выполнения задач. Проект максимально покрыт тестами модульными, интеграционными и системными.
В планах дальнейшего развития проекта находится проведение работ по улучшению архитектуры диалоговой системы чат-бота, которая не была затронута в ходе текущего рефакторинга.



1. Кот А.А., Зяблов Д.В. Метрики оценки качества кода [Электронный ресурс]. URL: https://sibac.info/journal/student/64/142897(дата обращения 25.05.2020).
2. Куликов C. Тестирование программного обеспечения. Базовый курс. // EPAM Systems. - 2020.
3. Майерс Г. Искусство тестирования программ // М. "Финансы и статистика". - 1982.
4. Макконнелл С. Совершенный код. Мастер-класс // Microsoft Press. - 2017.
5. Основные метрики кода: LOC, SLOC, Джилб, Маккейб, Холстед, ООП и другие [Электронный ресурс]. URL: https://web.archive.org/web/20081018181130/http://cmcons.com/articles/ CC_CQ/dev_metrics/mertics_part_1/ (дата обращения 25.05.2020).
6. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д. Приёмы объектно-ориентированного проектирования. Паттерны проектирования. // СПб: Питер. - 2014.
7. Ригс С., Кросинг Х. Администрирование PostgreSQL 9. Книга рецептов. - 2013.
8. Танк - технологии Яндекса [Электронный ресурс]. URL: https://yandex.ru/dev/tank/(дата обращения 25.05.2020)
9. Фаулер М. Рефакторинг. Улучшение существующего кода // СПб. "Символ-Плюс". - 2003.
10. Bird S., Klein E., Loper E. Natural Language Processing with Python // O'Reilly. 2009.
11. Celery - Distributed Task Queue [Электронный ресурс]. URL: http://docs.celeryproject.org/en/latest/index.html(дата обращения 25.05.2020).
12. John Dalbey Basis Path Testing, Cyclomatic Complexity [Электронный ресурс]. URL: http://users.csc.calpoly.edu/~jdalbey/206/Lectures/BasisPathTutorial/index.html(дата обращения 25.05.2020).
13. Django project. Documentation [Электронный ресурс]. URL: https://docs.djangoproject.com/en/3.0/(дата обращения 25.05.2020).
14. GitLab Documentation [Электронный ресурс]. URL: https://docs.gitlab.com/(дата обращения 25.05.2020).
15. Guido van Rossum - Personal Home Page [Электронный ресурс]. URL: https://gvanrossum.github.io(дата обращения 25.05.2020).
16. IMAPClient 2.1.0 documentation [Электронный ресурс]. URL: https://imapclient.readthedocs.io/en/2.1.0/(дата обращения 25.05.2020).
17. Mypy: Optional Static Typing for Python [Электронный ресурс]. URL: http://www.mypy-lang.org/(дата обращения 25.05.2020).
18. PEP 8 - Style Guide for Python Code [Электронный ресурс]. URL: https://www.python.org/dev/peps/pep-0008/(дата обращения 25.05.2020)
19. Pyrogram Documentation [Электронный ресурс]. URL: https://docs.pyrogram.org/(дата обращения 25.05.2020).
20. pytest-cov’s documentation [Электронный ресурс]. URL: https:// pytest-cov.readthedocs.io/en/latest/ (дата обращения 25.05.2020).
21. pytest: helps you write better programs [Электронный ресурс]. URL: https://docs.pytest.org/en/latest/(дата обращения 25.05.2020).
22. Python 3.8.2 documentation [Электронный ресурс]. URL: https:// docs.python.org/3/(дата обращения 25.05.2020).
23. RabbitMQ Documentation [Электронный ресурс]. URL: https://www.rabbitmq.com/documentation.html(дата обращения 25.05.2020).
24. Radon’s documentation [Электронный ресурс]. URL: https://radon.readthedocs.io/en/latest/intro.html#cyclomatic-complexity(дата обращения 25.05.2020).
25. Sentry Documentation [Электронный ресурс]. URL: https://docs.sentry.io/(дата обращения 25.05.2020).
26. Tavern API Testing. Documentation [Электронный ресурс]. URL: https://tavern.readthedocs.io/en/latest/(дата обращения 25.05.2020).
27. unittest - Unit testing framework [Электронный ресурс]. URL: https://docs.python.org/3/library/unittest.html(дата обращения 25.05.2020).
28. Vk API Documentation [Электронный ресурс]. URL: https://vk.com/dev/(дата обращения 25.05.2020).
29. Web Server Gateway Interface (WSGI). Documentation [Электронный ресурс]. URL: https://wsgi.readthedocs.io/en/latest/(дата обращения 25.05.2020).


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ