Dela via


Filtrera svar med metadata

Med QnA Maker kan du lägga till metadata i form av nyckel- och värdepar i dina par med frågor och svar. Du kan sedan använda den här informationen för att filtrera resultat till användarfrågor och för att lagra ytterligare information som kan användas i uppföljningskonversationer.

Anteckning

QnA Maker-tjänsten dras tillbaka den 31 mars 2025. En nyare version av fråge- och svarsfunktionen är nu tillgänglig som en del av Azure AI Language. Information om funktioner för frågesvar i språktjänsten finns i frågor som besvaras. Från och med den 1 oktober 2022 kan du inte skapa nya QnA Maker-resurser. Information om hur du migrerar befintliga QnA Maker-kunskapsbaser till frågesvar finns i migreringsguiden.

Lagra frågor och svar med en QnA-entitet

Det är viktigt att förstå hur QnA Maker lagrar fråge- och svarsdata. Följande bild visar en QnA-entitet:

Bild av en QnA-entitet

Varje QnA-entitet har ett unikt och beständigt ID. Du kan använda ID:t för att göra uppdateringar av en viss QnA-entitet.

Använda metadata för att filtrera svar efter anpassade metadatataggar

Genom att lägga till metadata kan du filtrera svaren efter dessa metadatataggar. Lägg till metadatakolumnen på menyn Visa alternativ . Lägg till metadata i kunskapsbas genom att välja metadataikonen + för att lägga till ett metadatapar. Det här paret består av en nyckel och ett värde.

Skärmbild av att lägga till metadata

Filtrera resultat med strictFilters för metadatataggar

Tänk på användarfrågan "När stänger detta hotell?", där avsikten är underförstådd för restaurangen "Paradise".

Eftersom resultaten endast krävs för restaurangen "Paradise" kan du ange ett filter i GenerateAnswer-anropet på metadatan "Restaurangnamn". Följande exempel visar detta:

{
    "question": "When does this hotel close?",
    "top": 1,
    "strictFilters": [ { "name": "restaurant", "value": "paradise"}]
}

Filtrera efter källa

Om du har flera innehållskällor i kunskapsbas och vill begränsa resultatet till en viss uppsättning källor kan du göra det med hjälp av det reserverade nyckelordet source_name_metadata enligt nedan.

"strictFilters": [
    {
        "name": "category",
        "value": "api"
    },
   {
        "name": "source_name_metadata",
        "value": "boby_brown_docx"
    },
   {
        "name": "source_name_metadata",
        "value": "chitchat.tsv"
   }
]

Logisk AND som standard

Om du vill kombinera flera metadatafilter i frågan lägger du till ytterligare metadatafilter i egenskapens strictFilters matris. Som standard kombineras värdena logiskt (AND). En logisk kombination kräver att alla filter matchar QnA-paren för att paret ska returneras i svaret.

Detta motsvarar att använda strictFiltersCompoundOperationType egenskapen med värdet AND.

Logisk ELLER med egenskapen strictFiltersCompoundOperationType

När du kombinerar flera metadatafilter använder du egenskapen med värdet ORför om du bara bryr dig om ett eller några av filtren som matchar strictFiltersCompoundOperationType .

På så sätt kan kunskapsbas returnera svar när ett filter matchar men inte returnerar svar som inte har några metadata.

{
    "question": "When do facilities in this hotel close?",
    "top": 1,
    "strictFilters": [
      { "name": "type","value": "restaurant"},
      { "name": "type", "value": "bar"},
      { "name": "type", "value": "poolbar"}
    ],
    "strictFiltersCompoundOperationType": "OR"
}

Metadataexempel i snabbstarter

Läs mer om metadata i snabbstarten för metadata i QnA Maker-portalen:

Använda fråge- och svarsresultat för att behålla konversationskontexten

Svaret på GenerateAnswer innehåller motsvarande metadatainformation för det matchade fråge- och svarsparet. Du kan använda den här informationen i klientprogrammet för att lagra kontexten för föregående konversation för användning i senare konversationer.

{
    "answers": [
        {
            "questions": [
                "What is the closing time?"
            ],
            "answer": "10.30 PM",
            "score": 100,
            "id": 1,
            "source": "Editorial",
            "metadata": [
                {
                    "name": "restaurant",
                    "value": "paradise"
                },
                {
                    "name": "location",
                    "value": "secunderabad"
                }
            ]
        }
    ]
}

Nästa steg