Používání entit a vyplňování slotů v agentech
Podstatná část konverzací agentů v Copilot Studio je porozumění přirozenému jazyku, což je schopnost AI porozumět záměru uživatele. Uživatel může například říct „Zkoušel jsem použít svou dárkovou kartu, ale nefunguje“ a agent je schopen uživatele nasměrovat na téma související s nefunkčními dárkovými kartami – dokonce i pokud tato přesná fráze není uvedena jako spouštěcí fráze.
Jedním ze základních aspektů porozumění přirozenému jazyku je identifikace entit v uživatelském dialogu. Chcete-li začít s entitami, podívejte se na video.
Entitu lze považovat za jednotku informací, která představuje určitý typ předmětu v reálném světě, jako je telefonní číslo, PSČ, město nebo dokonce jméno osoby. Díky znalostem poskytnutým entitami může agent chytře rozpoznat relevantní informace z uživatelského vstupu a uložit je pro pozdější použití.
Předem připravené entity
Entity v agentech umožňují ukládat informace do podobných skupin.
Copilot Studio je vybaven sadou předem připravených entit, které představují nejčastěji používané typy informací v dialozích reálného světa, jako je věk, barvy, čísla a jména.
Díky znalostem poskytnutým entitami může agent chytře rozpoznat relevantní informace z uživatelského vstupu a uložit je pro pozdější použití.
Abychom tomuto pojmu lépe rozuměli, lze jako příklad použít entitu Peníze.
Otevřete agenta v Copilot Studio, v horní části stránky vyberte Nastavení a pak v nabídce vyberte Entity.
Zobrazí se seznam předem připravených dostupných entit.
Vyberte entitu Peníze, čímž se otevře podokno podrobností entity.
Zde vidíte vysvětlení této entity a způsoby, jak ji lze použít k vyhledání informací souvisejících s penězi nebo měnou ze vstupu uživatele.
Když například uživatel zadá „Stojí to 1000 dolarů“, pomocí této peněžní entity agent ví, že „1000 dolarů“ představuje peněžní typ informací. Když agent extrahuje tuto entitu a uloží ji do proměnné, uloží „1000“ jako číslo, i když okolní informace byly textové.
Vlastní entity
Předem vytvořené entity pokrývají běžně používané typy informací. V některých případech, například při sestavování agenta, který slouží konkrétnímu účelu, možná budete muset naučit agenta znalost specifickou pro určitou doménu v rámci modelu porozumění jazyka.
Dejme tomu, že chcete vytvořit agenta pro obchod s outdoorovou výbavou. V tomto případě budete muset agenta naučit, aby v dialogovém okně uznal kategorii „produkt outdoorové výbavy“.
Nejprve vytvořte vlastní entitu. V tomto případě můžete vytvořit entitu, která agentovi poskytne znalosti o všech kategoriích outdoorových produktů.
Otevřete agenta v Copilot Studio, v horní části stránky vyberte Nastavení a pak v nabídce vyberte Entity.
Vyberte Přidat entitu>Nová entita.
Vyberte požadovaný typ entity: buď uzavřený seznam nebo regulární výraz (regex).
Entity uzavřeného seznamu
Entity uzavřeného seznamu umožňují definovat seznam položek. Tyto entity se hodí především pro malé seznamy, které se snadno spravují a které mají jednoduché popisky položek.
Výběrem této možnosti při vytváření entity se zobrazí podokno, kde můžete zadat název entity, volitelný popis a zadat položky, které chcete do entity zahrnout.
Při zadávání položek můžete:
- Vybrat každou položku a změnit její název.
- Vybrat ikonu koše a odstranit položku ze seznamu.
- Vyberte položku + Synonyma (nebo vyberte uvedená synonyma, pokud již byla přidána) a otevřete podokno Upravit synonyma.
Přidáním synonym ručně rozšíříte logiku porovnávání u každé položky v seznamu entit. Například v položce „turistika“ můžete přidat jako synonyma „treking“ a „horolezectví“.
U každé entity můžete také povolit Inteligentní párování.
Inteligentní párování je součástí umělé inteligence podporované modelem porozumění jazyku agenta. Pokud je tato možnost povolena, agent interpretuje vstup uživatele pomocí fuzzy logiky na základě položek uvedených v entitě.
Agent zejména automaticky opraví překlepy a sémanticky rozšíří svou logiku párování. Agent může například automaticky přiřadit „softball“ k „baseballu“.
Po dokončení vytváření nebo úprav entity vyberte Uložit, uložte entitu a vraťte se do seznamu entit. Volbou Zahodit zahodíte provedení změny.
Entity typu Regulární výraz (Regex)
Entity typu regulární výraz (regex) umožňují definovat logické vzory, které můžete použít ke spárování a extrahování informací ze vstupu. Entity typu regulární výraz se skvěle hodí ke komplexnímu párování vzorů se vstupem uživatele nebo pokud potřebujete povolit specifické variace v tom, jak může uživatel formátovat nebo vkládat svůj vstup do konverzace.
Například byste mohli použít entitu regulárního výrazu k identifikaci položek, jako je ID sledování, licenční číslo, číslo kreditní karty nebo IP adresa z řetězce, který uživatel zadá do agenta.
Po výběru této možnosti můžete zadat název entity, volitelný popis a vzor regulárního výrazu, který by měl být použit ke spárování a extrahování položek entity ze vstupu.
Entita regulárního výrazu Copilot Studio používá syntaxi regulárních výrazů .NET.
Ve výchozím nastavení rozlišuje vzor párování velikost písem. Chcete-li, aby se nerozlišovala, v řetězci vzoru použijte možnost regulárního výrazu (?i)
. Některé základní příklady jsou zahrnuty v podokně entit regulárního výrazu (regex). Další informace o syntaxi a další příklady naleznete v tématu Jazyk regulárních výrazů – rychlý průvodce.
Pokud potřebujete, aby regulární výraz vyhovoval více vzorům, můžete použít operátor alternace |
ke zřetězení regulárních výrazů. Můžete například zkombinovat dva vzory regulárních výrazů a hledat starý i nový formát kódu ID produktu.
Po dokončení vytváření nebo úprav entity vyberte Uložit, uložte entitu a vraťte se do seznamu entit. Volbou Zahodit zahodíte provedení změny.
Používání entit v konverzaci
Nyní, když jste agentovi poskytli znalosti o outdoorovém vybavení vytvořením entity kategorie produktu a několika dalších vlastních entit, můžete je začít používat při vytváření konverzace s agenty.
Přejděte na stránku Témata pro agenta, kterého chcete upravit.
Otevřete téma pro entitu, kterou chcete shromáždit.
Vyberte ikonu nabídky Přidat uzel
a poté vyberte Položit otázku.
V části Identifikovat vyberte entitu, kterou jste vytvořili v části Vlastní entity.
Volitelně můžete také vybrat položky, které se zobrazí jako tlačítka. Pokud například chcete zobrazit některé kategorie jako tlačítka, ze kterých si uživatelé mohou pohodlně vybrat svůj vstup, můžete vybrat položku Vybrat možnosti pro uživatele a poté je vyberte ze seznamu obsahujícího položky, které jste přidali při vytváření vlastní entity.
V případě potřeby pojmenujte proměnnou pro výstup uživatelské odpovědi.
Vyplňování slotů
Vyplňování slotů je koncept porozumění přirozenému jazyku, který znamená uložení extrahované entity do objektu. Nicméně v aplikaci Copilot Studio pojem vyplňování slotů znamená umístění extrahované hodnoty entity do proměnné.
Jako příklad opět použijme téma outdoorové výbavy, které se spustí zadáním fráze „Chci něco dělat“ v testovacím chatu.
Téma se úspěšně spustí a agent se zeptá na typ aktivity, přičemž také zobrazí tlačítkové volby zadané při vytváření uzlu Položte otázku. Ve stromu dialogu sledování témat také ukazuje, že agent směřuje k uzlu otázky, který jste právě upravili.
Uživatel může použít předdefinované volby výběrem jednoho z tlačítek. Případně mohou také zapsat něco jako „treking“ a zjistit, že to odpovídá „turistice“, protože tato slova byla definována jako synonyma.
Při sledování témat se ukazuje, že dialog je správně nasměrován na cestu, ve které má kategorie produktu hodnotu „Pěší turistika“. Hodnotu proměnné můžete zkontrolovat v okně sledování proměnné ve spodní části vytvářecího plátna. V okně sledování vidíte, že hodnota proměnné je „Pěší turistika“.
K vyplnění slotu dojde vložením extrahované entity „Pěší turistika“ do proměnné VarCampType
.
Můžete také použít to, co je známé jako "proaktivní vyplňování slotů", kdy uživatel může zadat více kusů informací, které se mapují na více entit. Agent je schopen automaticky porozumět tomu, jaké informace patří ke které entitě. V případech, kdy si není jistý zamýšleným mapováním, vyzve uživatele, aby byl konkrétnější poskytnutím možností.
V tomto případě uživatel napsal „Nudím se, ale mám rád horolezectví“. Tato zpráva obsahuje jak spouštěcí frázi, že uživatel chce pomoc s outdoorovými aktivitami, tak také poskytuje druhou informaci – „horolezectví“, což je entitou definované synonymum pro pěší turistiku. V tomto případě agent vyplní entitu pro volbu outdoorové aktivity a typu aktivity.
Při sledování témat můžete vidět, že agent přebírá tento uživatelský vstup a inteligentně přeskakuje uzel otázky s dotazem na typ aktivity.
Agent vždy aktivně naslouchá vstupu uživatele, pamatuje si informace předem, aby mohl podle potřeby přeskočit zbytečné kroky.
Znovu spustíme testování a zkusíme jiný případ. V tomto kole můžete přidat několik dalších uzlů otázek s dotazem na věci, jako je množství času, které na aktivitu máte (pomocí entity Doba trvání), nebo cenové rozpětí (pomocí entity Peníze).
Když je tentokrát prezentována otázka ohledně kategorie produktu, uživatel místo toho, aby agentovi sdělil pouze kategorii produktu, může říct „Chci si koupit pár turistických bot pod 100 USD“. V tomto příkladu jej může agent nejen nasměrovat na správnou cestu ke kategorii turistických produktů, ale také aktivně vyplnit pole s dotazem na typ turistického vybavení a cílové cenové rozpětí.
Proaktivní vyplnění slotů lze ručně ovládat na úrovni uzlů. Pokud chcete vždy vyžadovat zadání otázky v rámci konkrétního uzlu bez ohledu na to, zda byl blok zaplněn předchozími odpověďmi uživatelů, můžete zakázat možnost Přeskočit otázku pro tento uzel otázky. Proveďte následující kroky pro deaktivaci možnosti Přeskočit otázku.
Vyberte ikonu Další (…) nabídky uzlu Otázka a poté vyberte Vlastnosti. Zobrazí se panel Vlastnosti otázky.
Na panelu Vlastnosti otázky vyberte Chování otázky.
Na panelu Chování otázky v části Přeskočit otázku vyberte Pokaždé se ptát a poté v horní části stránky vyberte Uložit.