Przechodzenie konwersacji z bota do człowieka
DOTYCZY: ZESTAW SDK w wersji 4
Niezależnie od tego, ile posiada sztuczna inteligencja bota, nadal może być konieczne przekazanie rozmowy do człowieka. Takie przekazanie może być konieczne, jeśli bot nie rozumie użytkownika (ze względu na ograniczenie sztucznej inteligencji) lub jeśli żądanie nie może być zautomatyzowane i wymaga akcji człowieka. W takich przypadkach bot powinien rozpoznać, kiedy musi przekazać konwersację i zapewnić użytkownikowi płynne przejście.
Microsoft Bot Framework to otwarta platforma, która umożliwia deweloperom integrację z różnymi platformami zaangażowania agentów.
Modele integracji przekazywania
Platforma Microsoft Bot Framework obsługuje dwa modele integracji z platformami zaangażowania agentów. Protokół przekazywania jest identyczny dla obu modeli, jednak szczegóły dołączania różnią się między modelami a platformami zaangażowania agenta.
Celem nie jest oferowanie uniwersalnego rozwiązania do integracji z systemem klienta, ale raczej zapewnienie wspólnego języka i najlepszych rozwiązań dla deweloperów botów i integratorów systemów, za pomocą których można tworzyć konwersacyjne systemy sztucznej inteligencji z człowiekiem w pętli.
Bot jako agent
W pierwszym modelu, znanym jako bot jako agent, bot dołącza do szeregów agentów na żywo połączonych z centrum agentów i odpowiada na żądania użytkowników tak, jakby żądania pochodziły z dowolnego innego kanału platformy Bot Framework. Rozmowa między użytkownikiem a botem może być eskalowana do agenta ludzkiego, w którym bot odłącza się od aktywnej konwersacji.
Główną zaletą tego modelu jest prostota — możesz dodać istniejącego bota do centrum agentów przy minimalnym nakładzie pracy, a centrum agenta będzie obsługiwać złożoność routingu komunikatów.
Bot jako serwer proxy
Drugi model jest nazywany botem jako serwer proxy. Użytkownik komunikuje się bezpośrednio z botem, dopóki bot nie zdecyduje, że potrzebuje pomocy od agenta ludzkiego. Składnik routera komunikatów w bocie przekierowuje konwersację do centrum agenta, który wysyła go do odpowiedniego agenta. Bot pozostaje w pętli i może zbierać transkrypcję konwersacji, filtrować komunikaty lub udostępniać dodatkową zawartość zarówno agentowi, jak i użytkownikowi.
Elastyczność i kontrola to główne zalety tego modelu. Bot może obsługiwać wiele kanałów i mieć kontrolę nad tym, jak konwersacje są eskalowane i kierowane między użytkownikiem, botem i centrum agenta.
Protokół przekazywania
Protokół jest skoncentrowany na zdarzeniach inicjowania, wysyłanych przez bota do kanału i aktualizacji stanu wysyłanych przez kanał do bota.
Inicjowanie przekazywania
Zdarzenie inicjowania przekazywania jest tworzone przez bota w celu zainicjowania przekazywania.
Zdarzenie może obejmować:
- Kontekst żądania przekazywania, aby kierować konwersację do odpowiedniego agenta.
- Transkrypcja konwersacji, dzięki czemu agent może odczytać konwersację, która miała miejsce między klientem a botem przed zainicjowaniem przekazywania.
Poniżej przedstawiono typowe właściwości zdarzenia inicjowania przekazywania:
Nazwa: Wymagana właściwość name musi być ustawiona na wartość "handoff.initiate".
Konwersacja: wymagana właściwość konwersacji opisuje konwersację, w której istnieje działanie. Konwersacja musi zawierać konwersację
Id
.Wartość: Opcjonalnie właściwość value może zawierać zawartość JSON specyficzną dla centrum agenta, która może służyć do kierowania konwersacji do odpowiedniego agenta.
Załączniki: opcjonalnie właściwość załączniki może zawierać transkrypcję jako załącznik. Struktura Bot Framework definiuje typ załącznika transkrypcji . Załącznik można wysłać w tekście (z zastrzeżeniem limitu rozmiaru) lub w trybie offline, podając wartość
ContentUrl
.handoffEvent.Attachments = new List<Attachment> { new Attachment { Content = transcript, ContentType = "application/json", Name = "Transcript", } };
Uwaga
Centra agentów muszą ignorować typy załączników, których nie rozumieją.
Gdy bot wykryje konieczność przekazania konwersacji do agenta, sygnalizuje zamiar wysłania zdarzenia inicjacji przekazywania.
Zestaw SDK dla języka C# zawiera metodę CreateHandoffInitiation
tworzenia prawidłowego zdarzenia inicjowania przekazywania.
var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
EventFactory.CreateHandoffInitiation(
turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);
Stan przekazywania
Zdarzenie stanu przekazywania jest wysyłane do bota przez centrum agentów. Zdarzenie informuje bota o stanie zainicjowanej operacji przekazywania.
Uwaga
Boty nie są wymagane do obsługi zdarzenia stanu przekazywania, ale nie mogą go odrzucać.
Poniżej przedstawiono typowe pola zdarzeń stanu przekazywania:
Nazwa: Wymagana właściwość name musi być ustawiona na wartość "handoff.status".
Konwersacja: wymagana właściwość konwersacji opisuje konwersację, w której istnieje działanie. Konwersacja musi zawierać konwersację
Id
.Wartość: Wymagana , właściwość wartości , która opisuje bieżący stan operacji przekazywania. Wartość ma następujące właściwości.
Stan: Wymagane, właściwość stanu może mieć jedną z następujących wartości:
Wartość Znaczenie "zaakceptowane" Agent zaakceptował żądanie i przejął kontrolę nad konwersacją. "Niepowodzenie" Żądanie przekazania nie powiodło się. Właściwość komunikatu może zawierać dodatkowe informacje istotne dla błędu. "completed" (ukończone) Ukończono żądanie przekazywania. Komunikat: Opcjonalnie właściwość komunikatu jest obiektem zdefiniowanym przez centrum agenta.
Oto kilka przykładowych obiektów wartości:
{ "state" : "completed" }
{ "state" : "failed", "message" : "Can't find agent with requested skill" }
Biblioteka przekazywania
Biblioteka przekazywania została utworzona w celu uzupełnienia zestawu SDK platformy Bot Framework w wersji 4 w celu obsługi przekazywania; w szczególności:
- Implementuje dodatki do zestawu SDK platformy Bot Framework w celu obsługi przekazywania do agenta (nazywanego również eskalacją).
- Zawiera definicje trzech typów zdarzeń do sygnalizowania operacji przekazywania.
Uwaga
Integracje z określonymi koncentratorami agentów nie są częścią biblioteki.