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

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