Поделиться через


Переход бесед от бота к человеку

ПРИМЕНИМО К: пакет SDK версии 4

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

Microsoft Bot Framework — это открытая платформа, которая позволяет разработчикам интегрироваться с различными платформами взаимодействия агентов.

Модели интеграции передачи

Microsoft Bot Framework поддерживает две модели интеграции с платформами взаимодействия агентов. Протокол передачи идентичен для обеих моделей, однако сведения о подключении отличаются между моделями и платформами взаимодействия агентов.

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

Бот в качестве агента

В первой модели, известной как бот как агент, бот присоединяется к рядам динамических агентов, подключенных к центру агентов, и реагирует на запросы пользователей, как будто запросы пришли из любого другого канала Bot Framework. Беседа между пользователем и ботом может быть передана к человеческому агенту, после чего бот отключается от активной беседы.

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

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

Бот в качестве прокси-сервера

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

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

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

Протокол передачи

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

Инициация передачи управления

Событие инициирования передачи создается ботом для начала передачи.

Это событие может включать следующее:

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

Ниже приведены распространенные свойства события инициирования передачи:

  • Имя: обязательный параметр, свойство name должно быть установлено на "handoff.initiate".

  • Беседа: обязательно, свойство беседы описывает беседу, в которой существует действие. Беседа должна включать беседуId.

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

  • Вложения: необязательно, свойство вложений может включать расшифровку в виде вложения. Bot Framework определяет тип вложения транскрипт. Вложение может отправляться либо встроенным (при условии ограничения размера), либо автономным путем предоставления ContentUrl.

    handoffEvent.Attachments = new List<Attachment> {
        new Attachment {
            Content = transcript,
            ContentType = "application/json",
            Name = "Transcript",
        }
    };
    

    Замечание

    Центры агентов должны игнорировать типы вложений, которые они не понимают.

Когда бот обнаруживает необходимость передачи беседы агенту, он сигнализирует о своем намерении, отправляя событие начала передачи. Пакет SDK для C# включает метод CreateHandoffInitiation, создающий допустимое событие запуска передачи.

var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
    EventFactory.CreateHandoffInitiation(
        turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);

Состояние передачи управления

Событие статуса передачи отправляется боту узлом агентов. Событие информирует бота о состоянии инициированной операции передачи управления.

Замечание

Боты не требуются для обработки события состояния передачи; однако они не должны отклонить его.

Ниже приведены распространенные поля событий состояния передачи:

  • Имя: обязательно, свойство name должно иметь значение "handoff.status".

  • Беседа: обязательно, свойство беседы описывает беседу, в которой существует действие. Беседа должна включать беседуId.

  • Значение: обязательное свойство value, описывающее текущее состояние операции передачи. Значение имеет следующие свойства.

    • Состояние: обязательное свойство состояния может иметь одно из следующих значений:

      Ценность Значение
      "принято" Агент принял запрос и взял под контроль беседу.
      "Не удалось" Сбой запроса на передачу. Свойство сообщения может содержать дополнительные сведения, относящиеся к сбою.
      "Завершено" Запрос на передачу завершён.
    • Сообщение: необязательно, свойство сообщения — это объект, определенный центром агента.

    Ниже приведены некоторые примеры объектов значений:

    { "state" : "completed" }
    
    { "state" : "failed", "message" : "Can't find agent with requested skill" }
    

Библиотека управления передачей

Библиотека Handoff была создана для дополнения Bot Framework v4 SDK в поддержке передачи управления; конкретно:

  • Реализует дополнения Bot Framework SDK для поддержки передачи к агенту (также известного как эскалация).
  • Содержит определения трех типов событий для сигнальных операций передачи.

Замечание

Интеграции с определенными центрами агентов не являются частью библиотеки.

Дополнительные ресурсы