Lägga till flera kategorier i roboten med vanliga frågor och svar

I den här självstudien lär du dig att:

  • Skapa ett projekt och tagga frågesvarspar i olika kategorier med metadata
  • Skapa ett separat projekt för varje domän
  • Skapa en separat språkresurs för varje domän

När du skapar en robot med vanliga frågor och svar kan du stöta på användningsfall som kräver att du hanterar frågor i flera domäner. Anta att marknadsföringsteamet på Microsoft vill skapa en kundsupportrobot som svarar på vanliga användarfrågor på flera Surface-produkter. För enkelhetens skull använder vi två URL:er för vanliga frågor och svar, Surface Pen och Surface Earbuds för att skapa projektet.

Skapa projekt med domänspecifika metadata

Innehållsförfattarna kan använda dokument för att extrahera frågesvarspar eller lägga till anpassade frågesvarspar i projektet. Om du vill gruppera dessa frågor och svar i specifika domäner eller kategorier kan du lägga till metadata.

För roboten på Surface-produkter kan du vidta följande steg för att skapa en robot som svarar på frågor för båda produkttyperna:

  1. Lägg till följande URL:er för vanliga frågor och svar som källor genom att välja Lägg till käll-URL>:er> och sedan Lägga till alla när du har lagt till var och en av URL:erna nedan:

    Vanliga frågor och svar om Surface Pen
    Vanliga frågor och svar om Surface Earbuds

    Screenshot of add URL UI.

  2. I det här projektet har vi par med frågesvar på två produkter och vi vill skilja mellan dem så att vi kan söka efter svar bland frågor och svar för en viss produkt. För att göra detta kan vi uppdatera metadatafältet för frågesvarsparen.

    Som du ser i exemplet nedan har vi lagt till en metadata med produkten som nyckel och surface_pen eller surface_earbuds som värden i tillämpliga fall. Du kan utöka det här exemplet för att extrahera data på flera produkter och lägga till ett annat värde för varje produkt.

    Screenshot of metadata example.

  3. För att begränsa systemet för att söka efter svaret på en viss produkt måste du skicka produkten som ett filter i den anpassade frågan som svarar på REST API.

    URL:en för FÖRUTSÄGELSE FÖR REST API kan hämtas från fönstret Distribuera projekt:

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

    I JSON-brödtexten för API-anropet har vi skickat surface_pen som värde för metadataprodukten. Därför letar systemet bara efter svaret bland QnA-paren med samma metadata.

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

    Du kan hämta metadatavärde baserat på användarindata på följande sätt:

    • Ta uttryckligen domänen som indata från användaren via robotklienten. Som du ser nedan kan du till exempel ta produktkategorin som indata från användaren när konversationen initieras.

      Take metadata input

    • Identifiera domänen implicit baserat på robotkontext. Om den tidigare frågan till exempel gällde en viss Surface-produkt kan den sparas som kontext av klienten. Om användaren inte anger produkten i nästa fråga kan du skicka robotkontexten som metadata till API:et Generera svar.

      Pass context

    • Extrahera entitet från användarfråga för att identifiera domän som ska användas för metadatafilter. Du kan använda andra Azure AI-tjänster, till exempel Namngiven entitetsigenkänning (NER) och förståelse för konversationsspråk för entitetsextrahering.

      Extract metadata from query

Hur stora kan våra projekt vara?

Du kan lägga till upp till 5 0000 frågesvarspar i ett enda projekt. Om dina data överskrider 50 000 frågesvarspar bör du överväga att dela upp projektet.

Skapa ett separat projekt för varje domän

Du kan också skapa ett separat projekt för varje domän och underhålla projekten separat. Alla API:er kräver att användaren skickar projektnamnet för att göra en uppdatering av projektet eller hämta ett svar på användarens fråga.

När användarfrågan tas emot av tjänsten måste du skicka vidare projectName i REST API-slutpunkten som visas för att hämta ett svar från det relevanta projektet. Du kan hitta URL:en på sidan Distribuera projekt under Hämta förutsägelse-URL:

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

Skapa en separat språkresurs för varje domän

Anta att marknadsföringsteamet på Microsoft vill skapa en kundsupportrobot som svarar på användarfrågor på Surface- och Xbox-produkter. De planerar att tilldela olika team åtkomst till projekt på Surface och Xbox. I det här fallet rekommenderar vi att du skapar två anpassade frågor som svarar på resurser – en för Surface och en annan för Xbox. Du kan dock definiera distinkta roller för användare som har åtkomst till samma resurs.