Přidání více kategorií do robota s nejčastějšími dotazy

V tomto kurzu se naučíte:

  • Vytvoření projektu a páru odpovědí na otázky do různých kategorií s metadaty
  • Vytvoření samostatného projektu pro každou doménu
  • Vytvoření samostatného prostředku jazyka pro každou doménu

Při vytváření robota s nejčastějšími dotazy můžete narazit na případy použití, které vyžadují, abyste vyřešili dotazy napříč několika doménami. Řekněme, že marketingový tým v Microsoftu chce vytvořit robota zákaznické podpory, který odpovídá na běžné dotazy uživatelů na více produktech Surface. Pro zjednodušení zde budeme k vytvoření projektu používat dvě adresy URL nejčastějších dotazů, Pero pro Surface a Sluchátka Surface Earbuds .

Vytvoření projektu s metadaty specifickými pro doménu

Autoři obsahu můžou pomocí dokumentů extrahovat páry odpovědí na otázky nebo do projektu přidat vlastní páry odpovědí na otázky. Pokud chcete tyto otázky seskupit a odpovědi do konkrétních domén nebo kategorií, můžete přidat metadata.

U robota na produktech Surface můžete pomocí následujících kroků vytvořit robota, který odpovídá na dotazy na oba typy produktů:

  1. Přidejte následující adresy URL nejčastějších dotazů jako zdroje tak, že vyberete Přidat zdrojové>adresy URL> a pak přidáte všechny následující adresy URL:

    Nejčastější dotazy k Peru pro Surface
    Nejčastější dotazy k sluchátkům Surface Earbuds

    Screenshot of add URL UI.

  2. V tomto projektu máme dvojice odpovědí na otázky na dvou produktech a rádi bychom mezi nimi rozlišovali tak, abychom mohli hledat odpovědi mezi otazníky a odpověďmi na daný produkt. Abychom to mohli udělat, mohli bychom aktualizovat pole metadat pro páry odpovědí na otázky.

    Jak vidíte v následujícím příkladu, přidali jsme metadata s kódem Product As Key a surface_pen nebo surface_earbuds jako hodnoty, kdykoli je to možné. Tento příklad můžete rozšířit tak, aby extrahovali data o více produktech a přidali pro každý produkt jinou hodnotu.

    Screenshot of metadata example.

  3. Abyste teď omezili systém tak, aby hledal odpověď v konkrétním produktu, musíte tento produkt předat jako filtr ve vlastním rozhraní REST API pro odpovědi na otázky.

    Adresu URL predikce rozhraní REST API je možné načíst z podokna Nasazení projektu:

    Screenshot of the Deploy project page with the prediction URL displayed.

    V textu JSON pro volání rozhraní API jsme předali surface_pen jako hodnotu pro produkt metadat. Systém tedy bude hledat odpověď pouze mezi páry QnA se stejnými metadaty.

        {
          "question": "What is the price?",
          "top": 3
        },
        "answerSpanRequest": {
          "enable": true,
          "confidenceScoreThreshold": 0.3,
          "topAnswersWithSpan": 1
        },
        "filters": {
          "metadataFilter": {
            "metadata": [
              {
                "key": "product",
                "value": "surface_pen"
              }
            ]
          }
        }
    

    Hodnotu metadat můžete získat na základě uživatelského vstupu následujícími způsoby:

    • Explicitně převezměte doménu jako vstup od uživatele prostřednictvím klienta robota. Například jak je znázorněno níže, můžete při zahájení konverzace použít kategorii produktů jako vstup od uživatele.

      Take metadata input

    • Implicitně identifikujte doménu na základě kontextu robota. Například v případě, že předchozí otázka byla na konkrétním produktu Surface, může ji klient uložit jako kontext. Pokud uživatel v dalším dotazu nezadá produkt, můžete kontext robota předat jako metadata do rozhraní API pro generování odpovědí.

      Pass context

    • Extrahujte entitu z uživatelského dotazu, abyste identifikovali doménu, která se má použít pro filtr metadat. K extrakci entit můžete použít jiné služby Azure AI, jako je rozpoznávání pojmenovaných entit (NER) a porozumění konverzačnímu jazyku.

      Extract metadata from query

Jak velké mohou být naše projekty?

Do jednoho projektu můžete přidat až 5 0000 dvojic odpovědí na otázky. Pokud vaše data překračují 50 000 dvojic odpovědí na otázky, měli byste zvážit rozdělení projektu.

Vytvoření samostatného projektu pro každou doménu

Můžete také vytvořit samostatný projekt pro každou doménu a spravovat projekty samostatně. Všechna rozhraní API vyžadují, aby uživatel předal název projektu, aby udělal jakoukoli aktualizaci projektu nebo načte odpověď na otázku uživatele.

Když služba obdrží otázku uživatele, budete muset předat projectName koncový bod rozhraní REST API zobrazený k načtení odpovědi z příslušného projektu. Adresu URL můžete najít na stránce Nasadit projekt v části Získat adresu URL předpovědi:

https://southcentralus.api.cognitive.microsoft.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production

Vytvoření samostatného prostředku jazyka pro každou doménu

Řekněme, že marketingový tým v Microsoftu chce vytvořit robota zákaznické podpory, který odpovídá na dotazy uživatelů na produktech Surface a Xbox. Plánují přiřazovat různé týmy pro přístup k projektům na zařízení Surface a Xbox. V tomto případě doporučujeme vytvořit dva vlastní prostředky pro odpovědi na otázky – jeden pro Surface a druhý pro Xbox. Můžete ale definovat různé role pro uživatele, kteří přistupují ke stejnému prostředku.