Přechod konverzací z robota na člověka
PLATÍ PRO: SDK v4
Bez ohledu na to, jakou umělou inteligenci robot vlastní, může být stále potřeba předat konverzaci lidské bytosti. Takové předání může být nezbytné, pokud robot nerozumí uživateli (kvůli omezení umělé inteligence), nebo pokud požadavek nemůže být automatizovaný a vyžaduje lidskou akci. V takových případech by robot měl rozpoznat, kdy potřebuje předat konverzaci a poskytnout uživateli hladký přechod.
Microsoft Bot Framework je otevřená platforma, která vývojářům umožňuje integraci s různými platformami zapojení agentů.
Modely integrace předání
Microsoft Bot Framework podporuje dva modely pro integraci s platformami zapojení agentů. Předávací protokol je pro oba modely stejný, ale podrobnosti o onboardingu se mezi modely a platformami pro zapojení agentů liší.
Cílem není nabídnout univerzální řešení pro integraci se systémem libovolného zákazníka, ale spíše poskytnout společný jazyk a osvědčené postupy pro vývojáře robotů a systémové integrátory, se kterými se vytvářejí konverzační systémy AI s člověkem ve smyčce.
Robot jako agent
V prvním modelu, kterému se říká robot jako agent, se robot připojí k řadám živých agentů připojených k centru agentů a odpoví na požadavky uživatelů, jako by požadavky pocházejí z jakéhokoli jiného kanálu Bot Frameworku. Konverzace mezi uživatelem a robotem může být eskalována k lidskému agentovi, kdy se robot odpojí od aktivní konverzace.
Hlavní výhodou tohoto modelu je jeho jednoduchost – do centra agentů můžete přidat existujícího robota s minimálním úsilím a centrum agentů bude zpracovávat složitost směrování zpráv.
Robot jako proxy server
Druhý model se označuje jako robot jako proxy server. Uživatel komunikuje přímo s robotem, dokud se robot nerozhodne, že potřebuje pomoc od lidského agenta. Komponenta směrovače zpráv v robotovi přesměruje konverzaci do centra agentů, která ji odešle příslušnému agentovi. Robot zůstane ve smyčce a může shromažďovat přepis konverzace, filtrovat zprávy nebo poskytovat další obsah agentovi i uživateli.
Hlavními výhodami tohoto modelu jsou flexibilita a řízení. Robot může podporovat více kanálů a mít kontrolu nad tím, jak se konverzace eskalují a směrují mezi uživatelem, robotem a centrem agenta.
Protokol předání
Protokol je zaměřen na události pro inicializace, odeslané robotem do kanálu a aktualizace stavu odeslané kanálem robotovi.
Zahájení předání
Robot vytvoří inicializaci předání, která zahájí předání.
Událost může zahrnovat:
- Kontext žádosti o předání ke směrování konverzace na příslušného agenta.
- Přepis konverzace, takže agent může přečíst konverzaci, která se uskutečnila mezi zákazníkem a robotem před zahájením předání.
Toto jsou běžné vlastnosti události předání:
Název: Povinný argument, vlastnost name musí být nastavena na "handoff.initiate".
Konverzace: Povinný argument, vlastnost konverzace popisuje konverzaci, ve které aktivita existuje. Konverzace musí obsahovat konverzaci
Id
.Hodnota: Volitelná vlastnost hodnoty může obsahovat obsah JSON specifický pro centrum agenta, který může centrum použít ke směrování konverzace do příslušného agenta.
Přílohy: Volitelné, vlastnost přílohy může obsahovat přepis jako přílohu. Bot Framework definuje typ přílohy přepisu. Přílohu lze odeslat buď v textu (s výhradou limitu velikosti), nebo offline zadáním
ContentUrl
.handoffEvent.Attachments = new List<Attachment> { new Attachment { Content = transcript, ContentType = "application/json", Name = "Transcript", } };
Poznámka:
Centra agentů musí ignorovat typy příloh, kterým nerozumí.
Když robot zjistí potřebu předat konverzaci agentovi, signalizuje svůj záměr odesláním události zahájení předání.
Sada SDK pro C# obsahuje metodu CreateHandoffInitiation
pro vytvoření platné události zahájení předání.
var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
EventFactory.CreateHandoffInitiation(
turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);
Stav předání
Událost stavu předání se odešle do robota centrem agenta. Událost informuje robota o stavu zahájené operace předání.
Poznámka:
Roboti nemusí zpracovávat událost stavu předání, ale nesmí ji odmítnout.
Toto jsou běžná pole událostí stavu předání:
Název: Povinný argument, vlastnost name musí být nastavena na "handoff.status".
Konverzace: Povinný argument, vlastnost konverzace popisuje konverzaci, ve které aktivita existuje. Konverzace musí obsahovat konverzaci
Id
.Hodnota: Povinný argument, hodnota vlastnost, která popisuje aktuální stav operace předání. Hodnota má následující vlastnosti.
Stav: Povinný argument, vlastnost state může mít jednu z těchto hodnot:
Hodnota Význam "přijato" Agent přijal žádost a převzal kontrolu nad konverzací. Chyba Žádost o předání se nezdařila. Vlastnost zprávy může obsahovat další informace týkající se selhání. "dokončeno" Žádost o předání byla dokončena. Message: Volitelné, message vlastnost je objekt definovaný centrem agenta.
Tady je několik ukázkových objektů hodnot:
{ "state" : "completed" }
{ "state" : "failed", "message" : "Can't find agent with requested skill" }
Knihovna předání
Knihovna Handoff byla vytvořena k doplnění sady SDK služby Bot Framework v4 při podpůrném předání, konkrétně:
- Implementuje doplňky sady Bot Framework SDK pro podporu předání agentovi (označovaného také jako eskalace).
- Obsahuje definice tří typů událostí pro signalizační operace předání.
Poznámka:
Integrace s konkrétními rozbočovači agentů nejsou součástí knihovny.