Файл: Разработка чатбота для управления кластером виртуальных машин.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.10.2023

Просмотров: 142

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



КУРСОВОЙ ПРОЕКТ

ТЕМА: «Разработка чат-бота для управления кластером виртуальных машин»

ВВЕДЕНИЕ

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

Необходимость автоматизации информационных процессов обусловлена увеличением объема информации в информационной системе (ИС) организации, необходимостью ускорения и использования более сложных методов их обработки.

Актуальность данной работы обусловлена тем, что развитие искусственного интеллекта (ИИ) привело к разработке новых технологий, которые меняют наш образ жизни и работы. Одно из самых захватывающих применений ИИ находится в сфере обслуживания клиентов.

Чат-боты — это компьютерные программы, имитирующие человеческий разговор. Они работают на базе искусственного интеллекта и способны понимать запросы клиентов и отвечать на них, часто на естественном языке. Чат-боты — это эффективный и экономичный способ обслуживания клиентов, и они становятся все лучше по мере развития технологии искусственного интеллекта. 


  1. Общие понятия чат-бота. Функции чат-бота. Классификация чат-ботов

Чат-боты — это специальные аккаунты, за которыми не закреплен какой-либо человек, а сообщения, отправленные с них или на них, обрабатываются внешней системой. Кроме того, для пользователя общение с ботом выглядит как обычная переписка с реальным человеком [26].

Чат-бот — это умная программа, которая живет в мессенджерах и выполняет разные функции.

Функции чат-бота [27]:

1) Поддержка клиентов

Чат-бот поможет заменить неудобный FAQ на сайте, который иногда не сразу можно увидеть, сможет ответить на типовые вопросы клиента. Бот может работать 24 часа в сутки и разгрузит ваших сотрудников.

2) Клиентский сервис

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


3) Маркетинг

Чат-бот — это еще один маркетинговый инструмент, который поможет распространять контент, поддерживать лояльность клиентов и собирать аналитику. С помощью него можно делать рассылки, информировать клиентов об акциях, собирать комментарии о товарах или услугах, качестве обслуживания.

4) Работа внутри компании

Чат-боты помогают оптимизировать в работе такие процессы как: бронирование переговорок, информирование сотрудников о датах 9

отпуска, расписание корпоративного транспорта, сроки зарплаты и многое другое.

5) Рекрутинг

6) Функциональность продвинутых ботов — это первичный сбор информации о кандидатах. На основе собеседования с чат-ботом менеджер по персоналу решает, каких кандидатов следует пригласить на живое собеседование, кто должен пройти тестовое задание, а кому следует отказать в предложении о работе.

Существует несколько вариантов классификации чат-ботов, но проанализировав их все, выделим два вида: бизнес-классификация чат-бот приложений и классификация чат-ботов по техническому типу.



Рисунок 1 – Бизнес-классификация чат-бот приложений
Рассмотри каждый тип более подробно:

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

- Ассистенты – исходя из конкретных целей, из пользовательских ответов извлекают необходимые данные.

- Q&A(вопрос-ответ) – принцип работы: один вопрос – один ответ.

Классификация по техническому типу представлена на диаграмме (рисунок 2)

Рисунок 2 – Техническая классификация чат-ботов [28]

Рассмотрим каждый тип более подробно [28]:

- Основанные на бизнес-правилах. В таком типе разговор человека и бота заранее продуман разработчиком и имеет дерево-подобную структуру. Благодаря большому количеству кнопок человек приходит к определенному пути. Вопросов с ответом в свободной форме в таком типе не существует.

- Основанные на искусственном интеллекте. Полностью отличаются от первого типа, не имеют предопределенную структуру. Путь разговора определен неявным образом на основе тестируемых данных, которые использовались для обучения модели машинного обучения. Такие боты должны иметь большой объем данных для качественной работы.



- Гибридные. Этот тип чат-ботов использует в себе взаимодействие первого и второго типа, то есть разговор с пользователем ведется по заранее определенному типу, но используют искусственный интеллект для определения намерений пользователя, и извлечения данных их переписки.

Как правилодля написания чат-бота используются языки программирования.


    1. Основные понятия и виды языков программирования


Язык программирования — это набор правил, которые определяют, как выглядит написанная компьютерная программа и что компьютер может делать под ее контролем. Программа — это код, написанный в соответствии с правилами данного языка программирования. Код, из которого состоит программа, называется «исходным кодом».

Языки программирования — это формальные искусственные языки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику [13].

Алфавит — разрешенный к использованию набор символов, с помощью которого могут быть образованы слова и величины данного языка.

Синтаксис — система правил, определяющих допустимые конструкции языка программирования из букв алфавита.

Семантика — система правил однозначного толкования каждой языковой конструкции, позволяющих производить процесс обработки данных.

Все языки программирования делятся на два вида — языки низкого и высокого уровня [14]:

- Языки низкого уровня — это способ написания компьютерных инструкций на аппаратном языке, то есть в машинных кодах (в виде последовательности нулей и единиц). Языки низкого уровня жестко ориентированы на конкретный тип оборудования (система управления процессором, каждый тип процессора имеет свой машинный код).

- Языки высокого уровня — это языки программирования, которые позволяют записывать программы в удобной для человека форме. Эти языки ориентированы не на систему инструкций того или иного процессора, а на систему операторов (инструкций), характерную для написания определенного класса алгоритмов.

Среди самых популярных языков и сред программирования для написания чат-ботов можно выделить:

Python — это высокоуровневый язык программирования общего назначения, который также используется для разработки веб-приложений. Язык нацелен на повышение производительности труда разработчиков и читабельности кода.


Он поддерживает различные парадигмы программирования: структурную, объектно-ориентированную, функциональную, императивную и аспектно-ориентированную. Язык включает в себя динамическую типизацию, автоматическое управление памятью, полное самонаблюдение, механизм обработки исключений, поддержку многопоточных вычислений и практические структуры данных высокого уровня [16].

Преимущества Python [17]:

- открытая разработка;

- довольно прост в изучении, особенно на начальном этапе;

- особенности синтаксиса стимулируют программиста писать хорошо читаемый код;

- предоставляет средства быстрого прототипирования и динамической семантики;

- имеет большое сообщество, позитивно настроенное по отношению к новичкам;

- множество полезных библиотек и расширений языка можно легко использовать в своих проектах благодаря предельно унифицированному механизму импорта и программным интерфейсам;

- механизмы модульности хорошо продуманы и могут быть легко использованы;

- абсолютно всё в Python является объектами в смысле ООП, но при этом объектный подход не навязывается программисту.

Недостатки Python:

- не слишком удачная поддержка многопоточности;

- на Python создано не так уж много качественных программных проектов по сравнению с другими универсальными языками программирования, например, с Java;

- отсутствие коммерческой поддержки средств разработки (хотя эта ситуация со временем меняется);

- изначальная ограниченность средств для работы с базами данных;

- бенчмарки показывают меньшую производительность Python по сравнению с основными Java VM, что создаёт этому языку репутацию медленного.

JavaScript — мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили [18].

- Преимущества JavaScript:

- Ни один современный браузер не обходится без поддержки JavaScript.

С использованием написанных на JavaScript плагинов и скриптов справится даже не специалист.

- Полезные функциональные настройки.

- Постоянно совершенствующийся язык – сейчас разрабатывается бета-вариация проекта, JavaScript2.

- Взаимодействие с приложением может осуществляется даже через текстовые редакторы – Microsoft Office и Open Office.

-Перспектива использования языка в процессе обучения программированию и информатике.

Недостатки JavaScript:

- Пониженный уровень безопасности ввиду повсеместного и свободного доступа к исходным кодам популярных скриптов.


- Множество мелких раздражающих ошибок на каждом этапе работы. Большая часть из них легко исправляется, но их наличие позволяет считать этот язык менее профессиональным, сравнительно с другими.

- Повсеместное распространение. Своеобразным недостатком можно считать тот факт, что часть активно используемых программ (особенно приложений) перестанут существовать при отсутствии языка, поскольку целиком базируются на нем.

C# — язык программирования, сочетающий объектно-ориентированные и контекстно-ориентированные концепции.

Преимущества:

- для малых предприятий и некоторых отдельных разработчиков бесплатные инструменты включают Visual Studio, Azure Cloud, Windows Server, Parallels Desktop для Mac Pro и многие другие;

- большое количество синтаксических конструкций, разработанных для лучшего понимания написания кода;

- очень прост в изучении;

- после покупки Xamarin на C # вы можете писать программы и приложения для операционных систем, таких как iOS, Android, MacOS и Linux;

- имеется целое сообщество из опытных программистов.

Недостатки:

- приоритетная ориентированность на Windows платформу;

- язык бесплатен только для небольших фирм, индивидуальных программистов, стартапов и учащихся. Крупной компании покупка лицензионной версии этого языка обойдется в круглую сумму;

- в языке осталась возможность использования оператора безусловного перехода.

Сейчас хотелось бы представить наглядно синтаксис языков по написанию равнозначного по результату кода на рисунке 3, рисунке 4 и рисунке 5.



Рисунок 4 – Пример кода на семействе Java [19]



Рисунок 5 – Пример кода на семействе C [20]



Рисунок 6 – Пример кода на Python [20]
По рисункам видно, что, когда семейство «Java» и «С» требуют 4-5 строчек кода, Python использует всего одну.

Чтобы сделать выбор языка программирования для чат-бота, нужно понять, а что такое чат-бот. Чат-бот – это программа, которая выясняет потребности пользователей, а затем помогает удовлетворить их.

Таким образом, у каждого языка программирования есть свои преимущества и недостатки, каждый язык хорош для конкретных целей, например если создавать сайт, то по описанным критериям нужно выбрать JavaScript, а для написания чат-бота в мессенджере Telegram больше подойдёт Python так как он более прост в написании, имеет много документации и имеет большой выбор библиотек, которые помогут создать хороший сервис.