Использование малокодовой службы визуального рабочего процесса для организации вашего чат-бота
Сочетание AWS Step Functions State Machines и Amazon Lex

Введение
Глядя на ландшафт диалогового ИИ, Lex, скорее всего, сам по себе не будет подходящим решением для разговорного ИИ. Но существующие продукты в AWS, которым необходимо расширить интерфейс разговорного ИИ, будут использовать его с точки зрения затрат и удобства.

Как показано выше, AWS Step Functions позволяет координировать несколько сервисов AWS в бессерверные рабочие процессы, чтобы вы могли быстро создавать и обновлять приложения.
С помощью Step Functions вы можете разрабатывать и запускать рабочие процессы, объединяющие сервисы, такие как AWS Lex, AWS Lambda, AWS Fargate и Amazon SageMaker, в многофункциональные приложения.
Учитывая, что Gartner назвал инновации AWS одной из сильных сторон Lex, AWS Step Functions действительно имеет смысл.
Можно утверждать, что Lex не имеет эквивалентных возможностей по сравнению с большинством диалоговых платформ. Lex может выглядеть как среда без кода, но для масштабирования потока диалогов и управления состоянием его необходимо будет включить в среду функций Lambda pro-code; или что-то эквивалентное.
И эти функции Lambda, Lex и другие сервисы AWS могут быть организованы с помощью конечного автомата такого рода.
Я буду интересным упражнением по созданию чат-бота с использованием Step Functions в качестве механизма управления состоянием диалога…

Обзор пошаговых функций AWS
Конечный автомат AWS Step Functions состоит из двух основных компонентов:
- Действия
- Поток
Действия — это активные элементы из различных продуктов AWS. Если ввести «Lex» в строку поиска, отобразятся действия Lex. В настоящее время Lex работает в двух версиях: V1 и V2. Следует позаботиться о том, чтобы версия целевого бота Lex и версия действия были синхронизированы.
Flow имеет ограниченное количество параметров узла, допускает сценарии «если-то-иначе», параллельный запуск процессов, сопоставления, ожидание и многое другое.

Пошаговые функции дают разработчикам чат-ботов возможность использовать другие элементы в ландшафте AWS своей организации и организовывать их для обслуживания диалогового агента.
Например, данные могут быть извлечены, лямбда-функции могут выполняться параллельно для внутренней обработки или поиска. Можно использовать такие сервисы, как Amazon Transcribe или Amazon Comprehend.

Шаговые функции и Лекс
Продукт Step Functions идеально подходит для автоматизации управления диалоговой средой ИИ Lex. Управление может быть автоматизировано, например, для получения сведений о сеансе и завершения сеанса.
Конечный автомат может быть создан для перечисления намерений или замены существующего намерения.

Выше перечислены действия Lex Version 2, их можно перетаскивать на холст. Текст можно отправить боту и получить полезную нагрузку JSON.
Одним из наиболее привлекательных вариантов использования этой среды конечного автомата является автоматическое тестирование бота. Можно выполнить последовательность шагов, чтобы обеспечить доступность требуемых намерений и слотов/сущностей, а также автоматизированные высказывания, отправленные боту для подтверждения доступности и функционирования.
Например, приведенный ниже текст передается Лексу через конечный автомат…
"Text": "I want to book a room"
Путь выполнения отображается по мере выполнения конечного автомата с синим цветом.

Ниже приведен вывод интерфейса чат-бота Lex.
{
"Interpretations": [
{
"Intent": {
"ConfirmationState": "None",
"Name": "BookHotel",
"Slots": {},
"State": "InProgress"
},
"NluConfidence": {
"Score": 0.86
},
"SentimentResponse": {
"Sentiment": "NEUTRAL",
"SentimentScore": {
"Mixed": 0.0032838585320860147,
"Negative": 0.01709270104765892,
"Neutral": 0.8234726786613464,
"Positive": 0.15615078806877136
}
}
},
{
"Intent": {
"Name": "BookCar",
"Slots": {}
},
"NluConfidence": {
"Score": 0.53
},
"SentimentResponse": {
"Sentiment": "NEUTRAL",
"SentimentScore": {
"Mixed": 0.0032838585320860147,
"Negative": 0.01709270104765892,
"Neutral": 0.8234726786613464,
"Positive": 0.15615078806877136
}
}
},
{
"Intent": {
"Name": "FallbackIntent",
"Slots": {}
},
"SentimentResponse": {
"Sentiment": "NEUTRAL",
"SentimentScore": {
"Mixed": 0.0032838585320860147,
"Negative": 0.01709270104765892,
"Neutral": 0.8234726786613464,
"Positive": 0.15615078806877136
}
}
}
],
"Messages": [
{
"Content": "What city will you be staying in?",
"ContentType": "PlainText"
}
],
"SessionId": "12345",
"SessionState": {
"DialogAction": {
"SlotToElicit": "Location",
"Type": "ElicitSlot"
},
"Intent": {
"ConfirmationState": "None",
"Name": "BookHotel",
"Slots": {},
"State": "InProgress"
},
"OriginatingRequestId": "cc21ff0c-71e4-44da-9497-0d5105202c0e"
}
}
Пошаговые функции должны быть полезны при автоматизации управления ботами и задач тестирования. Кроме того, во время выполнения этот конечный автомат можно использовать для управления услугами в рамках диалога с клиентом.

Заключение
Разговорные сервисы искусственного интеллекта, такие как Oracle Digital Assistant и Lex, определенно не соответствуют другим комплексным облачным решениям. В частности, решения, ориентированные исключительно на создание опыта общения, создают реальную дифференциацию.
Однако при рассмотрении такой платформы, как Lex, следует учитывать облачное решение в целом. Это можно рассматривать как преимущество или недостаток, в зависимости от существующего уровня инвестиций в конкретную облачную среду.

