Бөлісу құралы:


Перевод разговора с бота на человека

ОБЛАСТЬ ПРИМЕНЕНИЯ: ПАКЕТ SDK версии 4

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

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

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

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

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

Бот как агент

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

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

Diagram of an agent hub that can direct messages to a bot or human agents.

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

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

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

Diagram of a bot that can route messages to an agent hub.

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

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

Запуск передачи

Событие запуска передачи создается ботом для запуска передачи.

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

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

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

  • Имя: обязательно, свойство 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.

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

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

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

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

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

Библиотека передачи

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

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

Примечание.

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

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