Sestavení rozložitelné aplikace LUIS

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 na konverzační jazyk, abyste mohli využívat výhod trvalé podpory produktů a možností více jazyků.

V tomto kurzu budete schopni vytvořit telekomunikační aplikaci LUIS, která dokáže předpovědět různé záměry uživatelů. Na konci kurzu bychom měli mít telekomunikační aplikaci, která dokáže predikovat záměry uživatelů na základě textu poskytnutého uživateli.

Budeme zpracovávat různé uživatelské scénáře (záměry), například:

  • Registrace nové telekomunikační linky
  • Aktualizace existující vrstvy
  • Platba faktury

V tomto kurzu se naučíte, jak:

  1. Vytvoření aplikace LUIS
  2. Vytvořit záměry
  3. Přidání entit
  4. Přidání projevů
  5. Popisky ukázkových promluv
  6. Trénovat aplikaci
  7. Publikování aplikace
  8. Získání předpovědí z publikovaného koncového bodu

Vytvoření aplikace LUIS

  1. Přihlášení k portálu LUIS

  2. Novou aplikaci vytvoříte tak, že vyberete +Nová aplikace.

    Snímek obrazovky s obrazovkou pro vytvoření aplikace

  3. V okně, které se zobrazí, zadejte název "Telecom Tutorial" a ponechte výchozí jazykovou verzi , angličtinu. Ostatní pole jsou volitelná, nenastavujte je. Vyberte Hotovo.

    Snímek obrazovky s poli vytváření aplikace LUIS

Záměry uživatelů jako záměry

První věc, kterou uvidíte v části Sestavení , jsou záměry aplikace. Záměry představují úkol nebo akci, kterou chce uživatel provést.

Představte si telekomunikační aplikaci LUIS, co by uživatel potřeboval?

Pravděpodobně by museli provést nějaký typ akce uživatele nebo požádat o pomoc. Jiný uživatel může chtít aktualizovat svoji úroveň nebo zaplatit fakturu.

Výsledné schéma je následující. Další informace najdete v osvědčených postupech pro plánování schématu.

Záměr Účel
UserActions Určení akcí uživatele
Help Žádost o pomoc
Aktualizovattier Aktualizace aktuální úrovně
PayBill Zaplatit nevyplacenou fakturu
Žádné Zjistěte, jestli se uživatel ptá na něco, na co není aplikace LUIS navržená tak, aby odpovídala. Tento záměr se poskytuje jako součást vytváření aplikace a nedá se odstranit.

Vytvoření nového záměru

Záměr se používá ke klasifikaci promluv uživatelů na základě záměru uživatele určeného z textu v přirozeném jazyce.

Ke klasifikaci promluvy potřebuje záměr příklady uživatelských promluv, které by měly být klasifikovány s tímto záměrem.

  1. V horní navigační nabídce vyberte Sestavit a pak na levé straně obrazovky vyberte Záměry . Vyberte + Vytvořit a vytvořte nový záměr. Zadejte nový název záměru UserAction a pak vyberte Hotovo.

    UserAction může být jedním z mnoha záměrů. Někteří uživatelé si například můžou chtít zaregistrovat nový řádek, zatímco jiní můžou požádat o načtení informací.

  2. K tomuto záměru přidejte několik ukázkových promluv, které očekáváte, že se uživatel zeptá:

    • Hi! Chci se zaregistrovat pro nový řádek
    • Můžu si zaregistrovat nový řádek?
    • Dobrý den, chci nový řádek
    • Zapomněl jsem číslo řádku!
    • Chci nové číslo řádku

    Snímek obrazovky znázorňující ukázkové promluvy pro záměr UserAction

V případě záměru PayBill můžou být některé výroky:

  • Chci zaplatit fakturu
  • Vyrovnat fakturu
  • Zaplatit fakturu
  • Chci uzavřít aktuální zůstatek
  • Ano! Chci zaplatit aktuální fakturu

Poskytnutím ukázkových promluv vyučujete službu LUIS o tom, jaké druhy promluv by měly být pro tento záměr předpovězeny. Toto jsou pozitivní příklady. Promluvy ve všech ostatních záměrech jsou pro tento záměr považovány za negativní příklady. V ideálním případě čím více ukázkových promluv přidáte, tím lepší budou předpovědi vaší aplikace.

Těchto několik projevů slouží pouze pro demonstrační účely. Reálná aplikace by měla mít aspoň 15 až 30 promluv různé délky, pořadí slov, čas, gramatickou správnost, interpunkci a počet slov.

Vytvoření zbývajících záměrů

Provedením výše uvedených kroků přidejte do aplikace následující záměry:

"Nápověda"

  • "Potřebuji pomoc"
  • "Potřebuji pomoc"
  • "Pomozte prosím"
  • "Může mě někdo podpořit?"
  • "Jsem zasekl, můžeš mi pomoct"
  • "Můžu získat pomoc?"

"UpdateTier"

  • "Chci aktualizovat úroveň"
  • "Update my tier" (Aktualizovat mou úroveň)
  • "Chci změnit na úroveň VIP"
  • Změna předplatného na úroveň Standard

Příklady promluv pro záměr Žádné

Klientská aplikace potřebuje vědět, jestli promluva není pro aplikaci smysluplná nebo vhodná. V rámci procesu vytváření se do každé aplikace přidá záměr Žádné, aby se zjistilo, jestli klientská aplikace nemá na promluvu odpovědět.

Pokud služba LUIS vrátí pro promluvu záměr "Žádné", klientská aplikace se může zeptat, jestli chce uživatel ukončit konverzaci, nebo zadat další pokyny pro pokračování v konverzaci.

Pokud necháte záměr "None" prázdný, promluva, která by měla být predikována mimo doménu předmětu, bude predikována v jednom ze stávajících záměrů domény předmětu. Výsledkem je, že klientská aplikace, například chatovací robot, bude na základě nesprávné předpovědi provádět nesprávné operace.

  1. Na levém panelu vyberte Intents (Záměry).

  2. Vyberte záměr None (Žádný). Přidejte tři promluvy, které může uživatel zadat, ale které nejsou pro vaši aplikaci Telecom relevantní. V těchto příkladech by se neměla používat slova, která očekáváte v doméně předmětu, jako je úroveň, upgrade, registrace nebo faktura.

    • "When is my flight?" (Kdy je můj let?"
    • "Potřebuji změnit objednávku pizzy, prosím"
    • "Jaké je dnes počasí?"

Přidání entit

Entita je položka nebo prvek, který je relevantní pro záměr uživatele. Entity definují data, která se dají extrahovat z promluvy a jsou nezbytná k dokončení požadované akce uživatele.

  1. V části sestavení vyberte Entity.

  2. Pokud chcete přidat novou entitu, vyberte +Vytvořit.

    V tomto příkladu vytvoříme dvě entity, "UpdateTierInfo" jako strojově naučený typ entity a "Vrstva" jako typ entity seznamu. Luis také umožňuje vytvářet různé typy entit.

  3. V okně, které se zobrazí, zadejte UpdateTierInfo a vyberte Machine learned from the available types (Počítač se naučil z dostupných typů). Výběrem pole Přidat strukturu můžete přidat strukturu k této entitě.

    Snímek obrazovky znázorňující entitu

  4. Vyberte Další.

  5. Pokud chcete přidat podřízenou dílčí položku, vyberte symbol a+ začněte přidávat podřízenou položku. V našem příkladu entity UpdateTierInfo vyžadujeme tři věci:

    • Původnítier
    • Novátier
    • PhoneNumber

    Snímek obrazovky s dílčími entitami v aplikaci

  6. Po přidání všech dílčích podentit vyberte Vytvořit .

    Vytvoříme další entitu s názvem "Tier", ale tentokrát to bude entita seznamu a bude obsahovat všechny vrstvy, které můžeme poskytnout: úroveň Standard, Premium a vip úroveň.

  7. Uděláte to tak, že přejdete na kartu entity, stisknete +vytvořit a vyberete seznam z typů na obrazovce, která se zobrazí.

  8. Přidejte položky do seznamu a volitelně můžete přidat synonyma, abyste měli jistotu, že budou srozumitelné všechny případy této zmínky.

    Snímek obrazovky s entitou seznamu

  9. Teď se vraťte k entitě UpdateTierInfo a přidejte entitu "vrstvy" jako funkci pro entity OriginalTier a newTier, které jsme vytvořili dříve. Měl by vypadat přibližně takto:

    Snímek obrazovky s funkcemi entity

    Přidali jsme vrstvu jako funkci pro originalTier i newTier a přidali jsme entitu Phonenumber, což je typ Regex. Dá se vytvořit stejným způsobem jako entita ml a seznam.

Teď jsme úspěšně vytvořili záměry, přidali ukázkové promluvy a přidali entity. Vytvořili jsme čtyři záměry (kromě záměru none) a tři entity.

Označení ukázkových promluv

Vytvoří se strojově naučená entita a dílčí položky mají funkce. Aby bylo možné dokončit vylepšení extrakce, musí být ukázkové promluvy označené dílčími entitami.

Existují dva způsoby, jak označovat promluvy:

  1. Použití nástroje pro popisování

    1. Otevřete paletu entit a na kontextovém panelu nástrojů vyberte symbol .@
    2. Vyberte každý řádek entity na paletě a pak pomocí kurzoru palety vyberte entitu v každém příkladu promluvy.
  2. Zvýrazněte text přetažením kurzoru. Pomocí kurzoru zvýrazněte text, který chcete označit. Na následujícím obrázku jsme zvýraznili vip – úroveň a vybrali entitu NewTier.

    Snímek obrazovky znázorňující, jak označovat promluvy

Trénování aplikace

V pravém horním rohu webu LUIS vyberte tlačítko Train (Trénovat).

Před trénováním se ujistěte, že pro každý záměr existuje alespoň jedna promluva.

Snímek obrazovky znázorňující ale pro trénování aplikace

Publikování aplikace

Abyste mohli přijímat predikci služby LUIS v chatovacím robotovi nebo jiné klientské aplikaci, musíte aplikaci publikovat do koncového bodu predikce. Abyste mohli publikovat, musíte aplikaci vytrénovat jako první.

  1. V pravém horním navigačním panelu vyberte Publikovat .

    Snímek obrazovky s tlačítkem pro publikování aplikace

  2. Vyberte slot Production (Produkční) a pak vyberte Done (Hotovo).

    Snímek obrazovky znázorňující selektor produkčního slotu

  3. Výběrem možnosti Přístup k adresám URL koncového bodu v oznámení přejděte na stránku Prostředky Azure . Tyto adresy URL uvidíte jenom v případě, že máte k aplikaci přidružený prostředek predikce. Stránku Prostředky Azure najdete také kliknutím na Spravovat na levé straně obrazovky.

    Snímek obrazovky s oznámením o přístupu koncového bodu

Získání předpovědi záměru

  1. V pravé horní nabídce vyberte Spravovat a pak na levé straně vyberte Prostředky Azure .

  2. Zkopírujte adresu URL ukázkového dotazu a vložte ji na novou kartu webového prohlížeče.

    Adresa URL koncového bodu bude mít následující formát.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Přejděte na konec adresy URL na panelu Adresa a nahraďte query= parametr řetězce tímto:

    "Dobrý den! Hledám nové číslo, prosím."

    Dotaz promluvy se předává v identifikátoru URI. Tato promluva není stejná jako žádná z ukázkových promluv a měla by být dobrým testem ke kontrole, jestli LUIS predikuje záměr UserAction jako záměr s nejvyšším skóre.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

Výsledek JSON identifikuje záměr s nejvyšším skóre jako vlastnost prediction.topIntent . Všechna skóre jsou mezi 1 a 0, lepší skóre je blíže 1.

Další kroky pro klientskou aplikaci

Tento kurz vytvořil aplikaci LUIS, vytvořil záměry, entity, přidal ukázkové promluvy ke každému záměru, přidal ukázkové promluvy do záměru None, natrénoval, publikoval a otestoval na koncovém bodu. Toto jsou základní kroky vytvoření modelu LUIS.

Služba LUIS neposkytuje odpovědi na promluvy uživatelů, pouze identifikuje, o jaký typ informací se žádá v přirozeném jazyce. Další informace o konverzaci zajišťuje klientská aplikace, jako je azure bot.

Vyčištění prostředků

Pokud už aplikaci LUIS nepotřebujete, odstraňte ji. Uděláte to tak, že v nabídce vlevo nahoře vyberete Moje aplikace . Vyberte tři tečky ( ... ) napravo od názvu aplikace v seznamu aplikací a vyberte Odstranit. V automaticky otevíraných dialogových oknech s názvem Odstranit aplikaci? vyberte OK.