ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ И ТЕРМИНОВ 7
ВВЕДЕНИЕ 8
1 Аналитика и проектирование 11
1.1 Анализ предметной области 11
1.1.1 Конструкторы чат-ботов и их назначение 11
1.1.2 Интеграция с сервисами многоканального обмена сообщениями 11
1.1.3 Преимущества использования чат-ботов для улучшения сервиса компаний 13
1.2 Анализ требований 13
1.2.1 Общие функциональные требования 14
1.2.2 Формализация функциональных требований 16
1.2.3 Функциональные требования к пакету Umnico 19
1.2.4 Функциональные требования к пакету RetailCRM 19
1.2.5 Нефункциональные требования к пакетам 20
1.2.6 Функциональные требования к тестовому приложению 23
1.3 Модель предметной области 25
1.4 Содержимое интеграционных пакетов 27
2 Обзор используемых инструментов 30
2.1 Используемые технологии 30
2.1.1 Laravel 30
2.1.2 Ngrok 30
2.1.3 NodeJS 31
2.1.4 SQLite 32
2.1.5 VueJS 33
2.1.6 Docker 33
2.2 Структура пакета Laravel 34
3 Разработка пакетов 36
3.1 Реализация работы с HTTP запросами для отправки команд 36
3.1.1 Реализация API клиента для Umnico 37
3.1.2 Реализация API клиента для RetailCRM 38
3.2 Реализация подключения интеграции 39
3.3 Инициализация внутренних сущностей на основе внешних 40
3.4 Реализация обработки событий 44
3.4.1 Обработка событий Umnico 45
3.4.2 Обработка событий RetailCRM 45
4 Демонстрация функциональности 48
4.1 Развертка тестового приложения в локальной среде 48
4.2 Интеграция через тестовое приложение 51
4.3 Тестирование 52
4.3.1 Запуск функциональных тестов 52
4.3.2 Тестирование вручную 54
ЗАКЛЮЧЕНИЕ 61
СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 62
С развитием технологий и широким распространением мессенджеров, чат- боты стали неотъемлемой частью взаимодействия пользователей с различными сервисами и компаниями. Они обеспечивают быстрое и удобное общение, упрощая процесс получения информации и предоставления услуг. В этом контексте, разработка мощных и гибких инструментов для создания и управления чат-ботами является актуальной задачей. Фреймворк Laravel предоставляет разработчикам набор инструментов для построения современных веб-приложений и служит отличной основой для создания таких инструментов.
Создание гибких инструментов для работы с чат-ботами предполагает возможность легкой и эффективной интеграции с различными сервисами обмена сообщениями. Это позволяет разработчикам использовать максимально широкий спектр возможностей и адаптировать чат-ботов под разные бизнес-задачи и платформы. В данной работе особое внимание уделяется повышению гибкости конструктора чат-ботов за счет интеграции его с популярными сервисами обмена сообщениями, такими как Umnico и RetailCRM. Это позволит расширить возможности конструктора, упростить процесс создания и настройки чат-ботов для различных платформ и бизнес-сфер, за счет чего повысится доступность конструктора чат-ботов для клиентов.
Цель данной работы состоит в разработке интеграционных пакетов для фреймворка Laravel, которые обеспечат работу конструктора чат-ботов с сервисами Umnico и RetailCRM. Конструктор чат-ботов является черным ящиком. С этим черным ящиком взаимодействие строится посредством программного интерфейса, который в дальнейшем будем называть “абстракция”.
Для достижения выделенной цели были поставлены следующие задачи:
1. Изучить абстракцию конструктора ботов.
2. Разработать приложение, имитирующее элементы конструктора чат-ботов на основе абстракции. Приложение призвано позволять ручное тестирование интеграционных пакетов.
3. Провести анализ API документации сервисов Umnico и RetailCRM.
4. Установить соответствия между абстракцией и Umnico, абстракцией и RetailCRM: речь об установлении соответствий между сущностями, событиями, действиями.
5. Разработать интеграционные пакеты на основе проведенного анализа.
В первой главе работы будет проведен подробный анализ предметной области, рассмотрены аналоги и выбор технологий для реализации проекта. Вторая глава посвящена формулированию требований, построению диаграмм, вариантов использования, сценариев и модели предметной области. В третьей главе будут описаны особенности реализации интеграционных пакетов и результаты работы. Четвертая глава будет содержать демонстрацию работы разработанных пакетов в тестовом приложении.
Выбор основной технологии для реализации данной работы обусловлен постановкой цели и стремлением обеспечить оптимальное взаимодействие компонентов системы. В качестве основных технологий были выбраны:
1. Laravel - использован в качестве основной технологии, так как задачей было создать библиотеки для абстракции сервиса, написанного на этом фреймворке. Это обеспечивает упрощение процесса разработки и совместимость компонентов.
2. Docker - применяется для обеспечения простой воспроизводимости среды для ручного тестирования, что облегчает процесс развертывания и настройки тестового приложения.
3. NodeJS - используется для трансляции веб-сокетов в веб-хуки, потому что в работе с веб-сокетами показывает себя производительнее, чем PHP.
Таким образом, выбранный набор технологий позволяет эффективно решать поставленные задачи и гарантирует успешную интеграцию разработанных пакетов с конструктором чат-ботов.
Таким образом, интеграционные пакеты были разработаны и протестированы, а в процессе разработки были выявлены хорошие практики и выбраны архитектурные паттерны, которые позволят ускорить разработку подобных интеграционных пакетов в будущем, помогут обеспечить соответствие нефункциональным требованиям, а также упростят поддержку текущих решений. Решения разрабатывались для ООО «ТомскСофт» и уже внедрены и находятся в эксплуатации.
1. Why people use chatbots. // Folstad A., Brandtzaeg P.B. - URL:
https: //www.researchgate.net/publication/318776998_Why_People_U se_Chatbots(Дата обращения 27.01.2023)
2. Customer Service Stats Show Companies Need To Embrace Technology // Forbes.
- URL:https://www.forbes.com/sites/blakemorgan/2020/08/31/customer-service-stats-show-companies-need-to-embrace-technology/ (Дата обращения 27.01.2023)
3. Laravel documentation // Laravel: Model View Controller фреймворк для языка PHP. - URL:https://laravel.com/docs (Дата обращения 01.06.2023)
4. Ngrok documentation // Ngrok: утилита командной строки для обеспечения удаленного доступа к локальному серверу. - URL:https://ngrok.com/docs (Дата обращения 01.06.2023)
5. NodeJS documentation // NodeJS: среда исполнения JavaScript кода. - URL: https://nodejs.org/en/docs (Дата обращения 01.06.2023)
6. Express documentation // Express: серверный фреймворк для языка JavaScript. - URL:https://expressjs.com/ (Дата обращения 01.06.2023)
7. The WebSocket Protocol // RFC6455. - URL: https://www.rfc-
editor.org/rfc/rfc6455 (Дата обращения 01.06.2023)
8. SQLite documentation // SQLite: простая в использовании файловая система
управления реляционными базами данных. - URL:
https://www.sqlite.org/docs.html (Дата обращения 01.06.2023)
9. Vue documentation // Vue: компонентный JavaScript фреймворк для разработки
клиентской части web приложений. - URL:
https://vuejs.org/guide/introduction.html (Дата обращения 01.06.2023)
10. Docker documentation // Docker: удобный инструмент контейнеризации. - URL:https://docs.docker.com/ (Дата обращения 01.06.2023)
11. Umnico API documentation // Umnico: платформа многоканального обмена сообщениями. - URL:https://api.umnico.com/docs (Дата обращения 01.06.2023)
12. RetailCRM Bot API documentation // RetailCRM: CRM система с
функциональностью многоканального обмена сообщениями. - URL:
https://docs.retailcrm.ru/Developers/API/MGAPI/MGBotAPI (Дата обращения 01.06.2023)