У контексті агентів штучного інтелекту фулфілмент означає виконання завдань, які передбачають взаємодію із зовнішніми системами для отримання, маніпулювання або зберігання даних через API. У цій статті описано приклад агента, створеного для відстеження посилок. Ви можете використовувати цей шаблон агента під час створення нового агента зі штучним інтелектом для цифрової та голосової взаємодії.

Для цифрових каналів виконання має бути організоване за допомогою потоку підключення, який використовується для розгортання агента штучного інтелекту. На прикладі агента відстеження посилок, який ви можете імпортувати з шаблону під час створення нового Scripted агента, потік також доступний для імпорту під час створення нового потоку Webex Connect. На додаток до виконання, цей потік з'єднання також спрямовує користувача до різних черг агентів на основі їхнього останнього наміру.

  1. Після того, як ви завершите налаштування скриптового агента, визначте відповіді, які потрібно виконати.

    У прикладі агента для 'trackPackageResponse' потрібне завершення.

  2. У цих шаблонах налаштуйте «відповідь утримання», яка буде відображатися користувачеві під час виконання замовлень.

    У цьому прикладі налаштовано утримання відповіді для 'trackPackageResponse'.

  3. У потоці використовуйте вузол Data Parser , щоб проаналізувати метадані сеансу агента (вихідну змінну) з відповіді AI-агента, щоб отримати ім'я відповіді.

    Ви можете отримати зразок вхідних даних для вузла парсера даних, завантаживши інформацію про транзакції з сеансів, вибравши відповідну транзакцію та вибравши значення ключа 'generatedDf' із завантаженого файлу.

  4. Якщо ви бажаєте виконати маршрутизацію на основі намірів під час передачі агента, ви можете отримати значення попереднього активного наміру на тому ж кроці.

  5. Якщо ви не бажаєте завантажувати та аналізувати зразок JSON, ви можете використовувати \$.model_state.template_key для назви відповіді та \$.previous_intent_model_state.intent.name для назви попереднього наміру.

    У нашому прикладі ми використовуємо змінні потоку 'responseKey' і 'previousIntent' для цих значень.

  6. Використовуйте вузол Branch , щоб перевірити, чи потребує відповідь виконання.

    • Вузол розгалуження завершує роботу через результат вузла «Немає з вищезазначеного» для відповідей, які не потребують виконання.

    • У нашому прикладі, оскільки існує потреба в фулфілменті для 'trackPackageResponse', перевірте значення 'responseKey' у нашому вузлі гілки.

  7. Для відповідей, які вимагають виконання, використовуйте HTTP-вузол для здійснення зовнішніх викликів API.

    • Ви можете проаналізувати корисну інформацію з відповіді вузла HTTP в тому ж вузлі, імпортувавши зразок і отримавши вихідні змінні.

    • У цьому прикладі ми отримуємо 'estimatedDelivery' та 'status' посилки.

  8. Обробіть відповідь на виконання за допомогою вузла Evaluate для формулювання відповіді агента.

    У нашому прикладі ми ініціалізуємо змінну fulfilmentResp і встановлюємо її значення на основі статусу посилки та передбачуваної доставки.

  9. Надішліть відповідь на виконання користувачу та додайте його до бесіди.

  10. Поверніться до вузла отримання , щоб підтримувати зв'язок між користувачем і агентом штучного інтелекту.

Передача агента на основі намірів

У момент передачі агента перевірте наявність останнього активного наміру через вузол Branch перед вузлом завдання Queue.

Перевірте значення 'previousIntent' і розгалужтеся на різні черги відповідно до ваших вимог. У цьому прикладі, якщо клієнт просить передати агента після наміру «Відстежувати пакет», спрямуйте його до черги «Спеціаліст». Усі інші значення призводять до передачі в чергу "Чат".

Для голосових каналів виконання має бути організоване шляхом передачі керування розмовою назад голосовому потоку за допомогою користувацьких подій і подальшого відновлення розмови агента штучного інтелекту з даними виконання. Для цього повторно використовується приклад скриптового агента для відстеження посилок. Ланцюжок доступний у розділі "Імпорт із шаблонів" у Webex Contact Center Flow Designer. Окрім виконання, цей потік також спрямовує користувача до різних черг агентів на основі їхнього останнього наміру.

Покрокова інструкція: Виконання замовлень

  1. Додайте тип відповіді "Спеціальна подія".

    • Знайдіть ключ шаблону, до якого потрібно додати спеціальну подію. У цьому випадку використовуйте ключ шаблону 'trackPackageResponse'.

    • Додайте тип відповіді "Спеціальна подія" до ключа шаблону.

  2. Налаштуйте відповідь на користувацьку подію.

    • Додайте назву події та набір корисних даних події:

      1. Для відповіді на спеціальну подію введіть її назву. У цьому випадку «TrackPack_Exit».

      2. Додайте корисне навантаження події, яке містить дані, які будуть передані в ланцюжок. Він має бути у форматі JSON. У цьому прикладі, {"Номер пакета":"${сутність. PackageNum}"}.

  3. Використовуйте корисне навантаження події в потоці.

    • Доступ до метаданих активності віртуального агента V2 :
      1. У конфігурації голосового потоку доданий вами набір корисних даних подій доступний як частина метаданих активності Virtual Agent V2 .

      2. Створіть змінну потоку PackageNum.

      3. Використовуйте активність аналізу , щоб вибрати метадані активності віртуального агента V2 як вхідну змінну.

      4. Встановіть вихідну змінну на 'PackageNum', а її вираз шляху - на '$. PackageNum' (на основі структури корисного навантаження події, налаштованого у відповіді агента).

    • Використовуйте метадані в активності HTTP :
      1. Використовуйте змінну 'PackageNum' з оброблених метаданих у вашому потоці, щоб відстежувати посилку.

      2. Імпортуйте прикріплений ланцюжок, щоб знайти деталі активності HTTP .

      3. Визначте змінні потоку 'estimatedDelivery' і встановіть для них '$.estimated_delivery' та іншу змінну потоку 'packStatus' і встановіть $.status.

    • Додайте умови на основі активності в HTTP :
      1. Додайте в ланцюжок нову активність «Умова ». Ця активність використовується для перевірки реакції активності HTTP (чи існує пакет та його статус).

        У цьому прикладі вираз{ { HTTPRequest_8l3.httpStatusCode == 404 }} використовується для перевірки, чи не було знайдено жодного пакета.

  4. Додайте активність із встановленими змінними на основі умов:
    1. За умови, для якої пакет не існує:

      • Під гілкою, де пакет не знайдено, додайте активність Set Variable .
      • Встановіть packageResp (іншу змінну потоку) на:

        Пакунок із цими деталями не знайдено.

    2. За умови, для якої існує пакет:

      • Під гілкою, де знаходиться пакет (тобто код статусу HTTP не дорівнює 404), додайте ще одну активність Set Variable .
      • Встановіть packageResp (іншу змінну потоку) на:

        Ваша посилка була отримана. Він буде доставлений за допомогою {{estimatedDelivery}}.

    3. Додайте ще два набори змінних активностей, щоб налаштувати назву події та дані про неї. Ці дані будуть передані активності віртуального агента V2.

      • Створюйте змінні потоку event_name та event_data.

      • Встановіть для event_name значення TrackPack_Entry і event_data у {'packageResp': '{{packageResp}}' | json}.

  5. Поверніться до активності «Віртуальний агент V2 »:

    • Налаштуйте активність віртуального агента V2:
      1. Підключіть остаточну активність «Встановлена змінна » до активності віртуального агента V2.

      2. Встановіть для назви події значення {{event_name}}.

      3. Встановіть для даних події значення {{event_data}}.

  6. Обробляйте вхідну подію у своєму віртуальному агенті:

    1. Додайте новий ключ шаблону:

      1. Перейдіть до Відповідей Tab на лівій панелі.

      2. Додайте новий ключ шаблону з назвою packageStatus.

    2. Налаштуйте вхідну подію:

      1. Під голосовим каналом встановіть вхідну подію на TrackPack_Entry (або те, що було відправлено активності Virtual Agent V2 у потоці).

    3. Налаштуйте відповідь:

      1. Встановіть відповідь на: <speak> <say-as interpret-as="date"> ${eventStore.packageResp} </say-as>. Чи можу я вам допомогти з чимось іншим?</говорити>

        Ця відповідь використовує змінні, надіслані в корисному навантаженні з потоку. Будь-які змінні, надіслані як частина даних про події, доступні для розробників як ${eventStore.<variable_name>}.

        При цьому також використовуються SSML-теги. Зокрема, тег SSML дозволяє контролювати, як текст інтерпретується та вимовляється движком перетворення тексту в мову. Цей тег можна використовувати для вказівки того, як слід вимовляти числа, дати, час, адреси та інший текст. Тут ми використовуємо його для побачення.

Маршрутизація агентів на основі попереднього наміру

  • Якщо активність віртуального агента V2 завершується через вихідні дані «Ескалаті», використовуйте активність Parse , щоб отримати попередній намір із метаданих агента.

  • Використовуйте активність « Інцидент», щоб перевірити наявність різних значень попереднього методу, які визначають логіку черги. У цьому прикладі ми перевіряємо, чи був попередній намір "Відстежувати пакет".

  • Приєднайте виходи активності «Інцидент» до відповідних країв контактів черги.