Få ett svar från en QNA Maker-kunskapsbas

Kommentar

Azure Open AI On Your Data använder stora språkmodeller (LLM: er) för att ge liknande resultat som QnA Maker. Om du vill migrera ditt QnA Maker-projekt till Azure Open AI On Your Data kan du läsa vår guide.

Kommentar

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 svar på frågor. Från och med den 1 oktober 2022 kommer du inte att kunna skapa nya QnA Maker-resurser. Information om hur du migrerar befintliga QnA Maker-kunskapsbas till frågesvar finns i migreringsguiden.

Kommentar

Den här dokumentationen gäller inte för den senaste versionen. Mer information om hur du använder den senaste frågan som besvarar API:er finns i redigeringsguiden för frågor som besvarar frågan.

Den här cURL-baserade snabbstarten vägleder dig genom att få ett svar från din kunskapsbas.

Förutsättningar

  • Du måste ha
  • En QnA Maker-resurs som skapats i Azure-portalen. Kom ihåg ditt Microsoft Entra-ID, prenumeration, QnA-resursnamn som du valde när du skapade resursen.
  • En tränad och publicerad kunskapsbas med frågor och svar, från föregående snabbstart, konfigurerad med metadata och Chit chat.

Kommentar

När du är redo att generera ett svar på en fråga från din kunskapsbas måste du träna och publicera din kunskapsbas. När din kunskapsbas publiceras visar sidan publicera inställningar för HTTP-begäran för att generera ett svar. Fliken cURL visar de inställningar som krävs för att generera ett svar från kommandoradsverktyget.

Använda metadata för att filtrera svar

Använd kunskapsbas från föregående snabb för att fråga efter ett svar baserat på metadata.

  1. På sidan kunskapsbas Inställningar väljer du fliken CURL för att se ett exempel på ett cURL-kommando som används för att generera ett svar från kunskapsbas.

  2. Kopiera kommandot till en redigerbar miljö (till exempel en textfil) så att du kan redigera kommandot. Redigera frågevärdet på följande sätt så att metadata service:qna_maker för används som ett filter för QnA-paren.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'top':30, 'question':'size','strictFilters': [{'name':'service','value':'qna_maker'}]}"
    

    Frågan är bara ett enda ord, size, som kan returnera något av de två QnA-paren. Matrisen strictFilters instruerar svaret att minska till bara qna_maker svaren.

  3. Svaret innehåller bara svaret som uppfyller filtervillkoren. Följande cURL-svar har formaterats för läsbarhet:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Om det finns ett fråge- och svarspar som inte uppfyllde söktermen men som uppfyllde filtret returneras det inte. I stället returneras det allmänna svaret No good match found in KB. .

Använda frågeegenskap för felsökning

Kommentar

Vi rekommenderar inte att du använder felsökningsegenskapen för något beroende. Den här egenskapen har lagts till för att hjälpa produktteamet att felsöka.

Felsökningsinformation hjälper dig att förstå hur det returnerade svaret fastställdes. Även om det är användbart är det inte nödvändigt. Om du vill generera ett svar med felsökningsinformation lägger du till egenskapen debug :

Debug: {Enable:true}
  1. Redigera cURL-kommandot för att inkludera felsökningsegenskapen för att se mer information.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'Debug':{'Enable':true}}"
    
  2. Svaret innehåller relevant information om svaret. I följande JSON-utdata har vissa felsökningsinformation ersatts med ellips för korthet.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

Använd test kunskapsbas

Om du vill få ett svar från testet kunskapsbas använder du isTest egenskapen body.

Egenskapen är ett booleskt värde.

isTest:true

CURL-kommandot ser ut så här:

curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'IsTest':true}"

JSON-svaret använder samma schema som den publicerade kunskapsbas frågan.

Kommentar

Om testet och publicerade kunskapsbas är exakt desamma kan det fortfarande finnas en viss variation eftersom testindexet delas mellan alla kunskapsbas i resursen.

Använda cURL för att fråga efter ett Chit-chat-svar

  1. I den cURL-aktiverade terminalen använder du en robotkonversationslutande instruktion från användaren, till exempel Thank you frågan. Det finns inga andra egenskaper att ange.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'thank you'}"
    
  2. Kör cURL-kommandot och ta emot JSON-svaret, inklusive poängen och svaret.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Eftersom frågan Thank you exakt matchar en kommunikationsfråga är QnA Maker helt säker med poängen 100. QnA Maker returnerade också alla relaterade frågor och metadataegenskapen som innehåller chit-chat-metadatatagginformationen.

Använd tröskelvärde och standardsvar

Du kan begära ett minimitröskelvärde för svaret. Om tröskelvärdet inte uppfylls returneras standardsvaret.

  1. Lägg till egenskapen threshold för att be om ett svar på size med ett tröskelvärde på 80 % eller bättre. Kunskapsbas bör inte hitta det svaret eftersom frågans poäng är 71 %. Resultatet returnerar det standardsvar som du angav när du skapade kunskapsbas.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':80.00}"
    
  2. Kör cURL-kommandot och ta emot JSON-svaret.

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker returnerade en poäng på 0, vilket innebär inget förtroende. Det returnerade också standardsvaret.

  3. Ändra tröskelvärdet till 60 % och begär frågan igen:

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':60.00}"
    

    Den returnerade JSON-filen hittade svaret.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Använda ostrukturerade datakällor

Vi stöder nu möjligheten att lägga till ostrukturerade dokument som inte kan användas för att extrahera QnA:er. Användaren kan välja att inkludera eller exkludera ostrukturerade datauppsättningar i GenerateAnswer-API:et när ett svar på frågan hämtas. Vi stöder inte ostrukturerade datauppsättningar i GA-tjänsten, detta ingår endast i svar på anpassade frågor.

Denna Postmanbaserade snabbstart vägleder dig genom att hämta ett svar från en kunskapsbas.

Förutsättningar

  • En QnA Maker-resurs som skapats i Azure-portalen. Kom ihåg ditt Microsoft Entra-ID, prenumeration, QnA-resursnamn som du valde när du skapade resursen.
  • En tränad och publicerad kunskapsbas med frågor och svar, från föregående snabbstart, konfigurerad med metadata och Chit chat.

Kommentar

När du är redo att generera ett svar på en fråga från din kunskapsbas måste du träna och publicera din kunskapsbas. När din kunskapsbas publiceras visar sidan publicera inställningar för HTTP-begäran för att generera ett svar. På fliken Postman visas de inställningar som krävs för att generera ett svar.

Konfigurera Postman för begäranden

Den här snabbstarten använder samma inställningar för Postman POST-begäran och konfigurerar sedan posttext-JSON som skickas till tjänsten baserat på vad du försöker fråga efter.

Använd den här proceduren för att konfigurera Postman och läs sedan varje efterföljande avsnitt för att konfigurera POST-brödtextens JSON.

  1. På sidan kunskapsbas Inställningar väljer du fliken Postman för att se konfigurationen som används för att generera ett svar från kunskapsbas. Kopiera följande information som ska användas i Postman.

    Name Inställning Syfte och värde
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Det här är HTTP-metoden och vägen för URL:en.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Det här är värden för URL:en. Sammanfoga värden och postvärdena för att hämta den fullständiga generateAnswer-URL:en.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Huvudvärdet för att auktorisera din begäran till Azure.
    Content-type application/json Rubrikvärdet för ditt innehåll.
    {"question":"<Your question>"} Brödtexten i POST-begäran som ett JSON-objekt. Det här värdet ändras i varje avsnitt nedan beroende på vad frågan är avsedd att göra.

    Viktigt!

    Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns i säkerhetsartikeln för Azure AI-tjänster.

  2. Öppna Postman och skapa en ny grundläggande POST-begäran med dina publicerade kunskapsbas inställningar. I följande avsnitt ändrar du POST-brödtextens JSON för att ändra frågan till din kunskapsbas.

Använda metadata för att filtrera svar

I en tidigare snabbstart lades metadata till i två QnA-par för att skilja mellan två olika frågor. Lägg till metadata i frågan för att begränsa filtret till bara det relevanta QnA-paret.

  1. I Postman ändrar du bara fråganS JSON genom att lägga till strictFilters egenskapen med namn/värde-paret service:qna_maker. Brödtextens JSON ska vara:

    {
        'question':'size',
        'strictFilters': [
            {
                'name':'service','value':'qna_maker'
            }
        ]
    }
    

    Frågan är bara ett enda ord, size, som kan returnera något av de två fråge- och svarsparen. Matrisen strictFilters instruerar svaret att minska till bara qna_maker svaren.

  2. Svaret innehåller bara svaret som uppfyller filtervillkoren.

    Följande svar har formaterats för läsbarhet:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Om det finns ett fråge- och svarspar som inte uppfyllde söktermen men som uppfyllde filtret returneras det inte. I stället returneras det allmänna svaret No good match found in KB. .

Använda frågeegenskap för felsökning

Kommentar

Vi rekommenderar inte att du använder felsökningsegenskapen för något beroende. Den här egenskapen har lagts till för att hjälpa produktteamet att felsöka.

Felsökningsinformation hjälper dig att förstå hur det returnerade svaret fastställdes. Även om det är användbart är det inte nödvändigt. Om du vill generera ett svar med felsökningsinformation lägger du till egenskapen debug :

  1. I Postman ändrar du bara JSON-brödtexten genom att lägga till egenskapen debug . JSON ska vara:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. Svaret innehåller relevant information om svaret. I följande JSON-utdata har vissa felsökningsinformation ersatts med ellips.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

Använd test kunskapsbas

Om du vill få ett svar från testet kunskapsbas använder du isTest egenskapen body.

I Postman ändrar du bara JSON-brödtexten genom att lägga till egenskapen isTest . JSON ska vara:

{
    'question':'size',
    'isTest': true
}

JSON-svaret använder samma schema som den publicerade kunskapsbas frågan.

Kommentar

Om testet och publicerade kunskapsbas är exakt desamma kan det fortfarande finnas en viss variation eftersom testindexet delas mellan alla kunskapsbas i resursen.

Fråga efter ett Chit-chat-svar

  1. I Postman ändrar du endast JSON-brödtexten till en konversationsslutande instruktion från användaren. JSON ska vara:

    {
        'question':'thank you'
    }
    
  2. Svaret innehåller poängen och svaret.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Eftersom frågan Thank you exakt matchar en kommunikationsfråga är QnA Maker helt säker med poängen 100. QnA Maker returnerade också alla relaterade frågor och metadataegenskapen som innehåller chit-chat-metadatatagginformationen.

Använd tröskelvärde och standardsvar

Du kan begära ett minimitröskelvärde för svaret. Om tröskelvärdet inte uppfylls returneras standardsvaret.

  1. I Postman ändrar du endast JSON-brödtexten till en konversationsslutande instruktion från användaren. JSON ska vara:

    {
        'question':'size',
        'scoreThreshold':80.00
    }
    

    Kunskapsbas bör inte hitta det svaret eftersom frågans poäng är 71 % och i stället returnerar standardsvaret du angav när du skapade kunskapsbas.

    Det returnerade JSON-svaret, inklusive poängen och svaret är:

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker returnerade en poäng på 0, vilket innebär inget förtroende. Det returnerade också standardsvaret.

  2. Ändra tröskelvärdet till 60 % och begär frågan igen:

    {
        'question':'size',
        'scoreThreshold':60.00
    }
    

    Den returnerade JSON-filen hittade svaret.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Använd ostrukturerade datakällor.

Vi stöder nu möjligheten att lägga till ostrukturerade dokument som inte kan användas för att extrahera QnA:er. Användaren kan välja att inkludera eller exkludera ostrukturerade datauppsättningar i GenerateAnswer-API:et när ett svar på frågan hämtas. Vi stöder inte ostrukturerade datauppsättningar i GA-tjänsten. Det stöds bara i svar på anpassade frågor.

Nästa steg

Läs mer om metadata: