Rozšíření aplikace za běhu předpovědi
Důležité
Služba LUIS bude vyřazena 1. října 2025 a od 1. dubna 2023 nebudete moct vytvářet nové prostředky LUIS. Doporučujeme migrovat aplikace LUIS do porozumění konverzačnímu jazyku, abyste mohli využívat další podporu produktů a vícejazyčné funkce.
Schéma aplikace (modely a funkce) se vytrénuje a publikuje do koncového bodu předpovědi. Tento publikovaný model se používá v modulu runtime předpovědi. Nové informace můžete předat spolu s promluvou uživatele do modulu runtime predikce a rozšířit tak predikci.
Mezi dvě změny schématu modulu runtime předpovědi patří:
Externí entity
Externí entity umožňují vaší aplikaci LUIS identifikovat a označovat entity během běhu, které se dají použít jako funkce pro existující entity. To vám umožní použít vlastní samostatné a vlastní extrahované entity před odesláním dotazů do koncového bodu předpovědi. Vzhledem k tomu, že se to provádí v koncovém bodu předpovědi dotazu, nemusíte model přetrénovat a publikovat.
Klientská aplikace poskytuje vlastní extraktor entit tím, že spravuje porovnávání entit a určuje umístění v promluvě odpovídající entity a pak odesílá informace s požadavkem.
Externí entity jsou mechanismus pro rozšíření libovolného typu entity, zatímco se stále používají jako signály pro jiné modely.
To je užitečné pro entitu, která má data k dispozici pouze při modulu runtime předpovědi dotazu. Příklady tohoto typu dat se neustále mění data nebo jsou specifická pro jednotlivé uživatele. Entitu kontaktu LUIS můžete rozšířit o externí informace ze seznamu kontaktů uživatele.
Externí entity jsou součástí rozhraní API pro vytváření v3.
Entita už v aplikaci existuje.
Hodnota entityName
externí entity předaná v těle POST požadavku koncového bodu už musí existovat v natrénované a publikované aplikaci v době, kdy se požadavek provede. Na typu entity nezáleží, podporují se všechny typy.
První odevzdání konverzace
Představte si první promluvu v konverzaci chatovacího robota, kde uživatel zadá následující neúplné informace:
Send Hazem a new message
Žádost chatovacího robota do služby LUIS může předávat informace v textu POST, Hazem
takže se přímo shoduje s jedním z kontaktů uživatele.
"externalEntities": [
{
"entityName":"contacts",
"startIndex": 5,
"entityLength": 5,
"resolution": {
"employeeID": "05013",
"preferredContactType": "TeamsChat"
}
}
]
Odpověď předpovědi zahrnuje tuto externí entitu se všemi ostatními predikovanými entitami, protože je definovaná v požadavku.
Druhý odevzdání konverzace
Další promluva uživatele do chatovacího robota používá vágnější termín:
Send him a calendar reminder for the party.
V této konverzaci se promluva používá him
jako odkaz na Hazem
. Konverzační chatovací robot v textu POST může mapovat him
na hodnotu entity extrahované z první promluvy Hazem
.
"externalEntities": [
{
"entityName":"contacts",
"startIndex": 5,
"entityLength": 3,
"resolution": {
"employeeID": "05013",
"preferredContactType": "TeamsChat"
}
}
]
Odpověď předpovědi zahrnuje tuto externí entitu se všemi ostatními predikovanými entitami, protože je definovaná v požadavku.
Přepsání existujících předpovědí modelu
Vlastnost preferExternalEntities
možnosti určuje, že pokud uživatel odešle externí entitu, která se překrývají s předpovězenou entitou se stejným názvem, služba LUIS zvolí entitu předanou nebo entitu existující v modelu.
Představte si například dotaz today I'm free
. Služba LUIS zjistí today
jako datetimeV2 s následující odpovědí:
"datetimeV2": [
{
"type": "date",
"values": [
{
"timex": "2019-06-21",
"value": "2019-06-21"
}
]
}
]
Pokud uživatel odešle externí entitu:
{
"entityName": "datetimeV2",
"startIndex": 0,
"entityLength": 5,
"resolution": {
"date": "2019-06-21"
}
}
Pokud je nastavená hodnota preferExternalEntities
false
, služba LUIS vrátí odpověď, jako by nebyla externí entita odeslána.
"datetimeV2": [
{
"type": "date",
"values": [
{
"timex": "2019-06-21",
"value": "2019-06-21"
}
]
}
]
Pokud je nastavená hodnota preferExternalEntities
true
, vrátí služba LUIS odpověď, která zahrnuje:
"datetimeV2": [
{
"date": "2019-06-21"
}
]
Rozlišení
Volitelná resolution
vlastnost se vrátí v odpovědi predikce, která vám umožní předat metadata přidružená k externí entitě a pak ji přijmout zpět v odpovědi.
Primárním účelem je rozšířit předem připravené entity, ale není omezen na tento typ entity.
Vlastnost resolution
může být číslo, řetězec, objekt nebo pole:
- "Dallas"
- {"text": "value"}
- 12345
- ["a", "b", "c"]
Dynamické seznamy
Dynamické seznamy umožňují rozšířit existující natrénovanou a publikovanou entitu seznamu, která už je v aplikaci LUIS.
Tuto funkci použijte, když se hodnoty entit seznamu musí pravidelně měnit. Tato funkce umožňuje rozšířit již natrénovanou a publikovanou entitu seznamu:
- V době požadavku koncového bodu předpovědi dotazu.
- Pro jednu žádost.
Entita seznamu může být v aplikaci LUIS prázdná, ale musí existovat. Entita seznamu v aplikaci LUIS se nezmění, ale schopnost předpovědi v koncovém bodu je rozšířená tak, aby zahrnovala až 2 seznamy s přibližně 1 000 položkami.
Text požadavku JSON dynamického seznamu
Odešlete následující text JSON pro přidání nového dílčího seznamu se synonymy do seznamu a predikci entity seznamu pro text LUIS
s POST
požadavkem na predikci dotazu:
{
"query": "Send Hazem a message to add an item to the meeting agenda about LUIS.",
"options":{
"timezoneOffset": "-8:00"
},
"dynamicLists": [
{
"listEntity*":"ProductList",
"requestLists":[
{
"name": "Azure AI services",
"canonicalForm": "Azure-Cognitive-Services",
"synonyms":[
"language understanding",
"luis",
"qna maker"
]
}
]
}
]
}
Odpověď předpovědi zahrnuje entitu seznamu se všemi ostatními predikovanými entitami, protože je definovaná v požadavku.