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 preferExternalEntitiesfalse, 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 preferExternalEntitiestrue, 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 LUISs 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.

Další kroky