Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К: пакет 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 для поддержки передачи к агенту (также известного как эскалация).
- Содержит определения трех типов событий для сигнальных операций передачи.
Замечание
Интеграции с определенными центрами агентов не являются частью библиотеки.