Использование малокодовой службы визуального рабочего процесса для организации вашего чат-бота
Сочетание 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, следует учитывать облачное решение в целом. Это можно рассматривать как преимущество или недостаток, в зависимости от существующего уровня инвестиций в конкретную облачную среду.