Een antwoord ophalen uit een QNA Maker-knowledge base

Notitie

Azure Open AI On Your Data maakt gebruik van grote taalmodellen (LLM's) om vergelijkbare resultaten te produceren als QnA Maker. Als u uw QnA Maker-project wilt migreren naar Azure Open AI On Your Data, raadpleegt u onze handleiding.

Notitie

De QnA Maker-service wordt op 31 maart 2025 buiten gebruik gesteld. Een nieuwere versie van de vraag- en antwoordmogelijkheid is nu beschikbaar als onderdeel van Azure AI Language. Zie vraagantwoording voor vragen in de Language Service voor het beantwoorden van vragen. Vanaf 1 oktober 2022 kunt u geen nieuwe QnA Maker-resources maken. Raadpleeg de migratiehandleiding voor informatie over het migreren van bestaande QnA Maker-knowledge bases om vragen te beantwoorden.

Notitie

Deze documentatie is niet van toepassing op de nieuwste versie. Raadpleeg de handleiding voor het beantwoorden van vragen voor meer informatie over het gebruik van de meest recente vraag die API's beantwoordt.

Deze snelstart op basis van cURL begeleidt u bij het ophalen van een antwoord uit een knowledge base.

Vereisten

  • U moet beschikken over
    • Nieuwste cURL.
    • Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
  • Een QnA Maker-resource die in Azure Portal is gemaakt. Onthoud uw Microsoft Entra-id, Abonnement, QnA-resourcenaam die u hebt geselecteerd tijdens het maken van de resource.
  • Een getrainde en gepubliceerde knowledge base met vragen en antwoorden, van de vorige quickstart, geconfigureerd met metagegevens en weergepraat.

Notitie

Wanneer u klaar bent voor het genereren van een antwoord op een vraag uit uw knowledge base, moet u uw knowledge base trainen en publiceren. Wanneer uw knowledge base is gepubliceerd, geeft de pagina Publiceren de instellingen van de HTTP-aanvraag weer voor het genereren van een antwoord. Het tabblad cURL toont de instellingen die vereist zijn voor het genereren van een antwoord uit hulpprogramma voor opdrachtregels.

Metagegevens gebruiken om antwoord te filteren

Gebruik de knowledge base van de vorige quickstart om een antwoord te zoeken op basis van metagegevens.

  1. Selecteer op de pagina Instellingen van de knowledge base het tabblad cURL om een voorbeeld van een cURL-opdracht te zien die wordt gebruikt voor het genereren van een antwoord uit de knowledge base.

  2. Kopieer de opdracht naar een bewerkbare omgeving (zoals een tekstbestand), zodat u de opdracht kunt bewerken. Bewerk de waarde van de vraag als volgt zodat de metagegevens van service:qna_maker worden gebruikt als een filter voor de 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'}]}"
    

    De vraag is slechts één woord, size, waarmee een van de twee QnA-paren kan worden geretourneerd. De matrix strictFilters vertelt u de respons om alleen de qna_maker-antwoorden te verminderen.

  3. Het respons bevat alleen het antwoord dat voldoet aan de filtercriteria. De volgende cURL-respons is opgemaakt voor betere leesbaarheid:

    {
        "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
    }
    

    Als er een vraag-en-antwoordpaar is dat niet voldoet aan de zoekterm maar wel aan het filter voldoet, wordt het niet geretourneerd. In plaats daarvan wordt het algemene antwoord No good match found in KB. geretourneerd.

Query-eigenschap fouten opsporen gebruiken

Notitie

Het gebruik van de eigenschap fouten opsporen voor een afhankelijkheid wordt niet aanbevolen. Deze eigenschap is toegevoegd om het productteam te helpen bij het oplossen van problemen.

Informatie over foutopsporing geeft u inzicht in hoe het geretourneerde antwoord is vastgesteld. Hoewel het handig is, is het niet nodig. Als u een antwoord met foutopsporingsinformatie wilt genereren, voegt u de eigenschap debug toe:

Debug: {Enable:true}
  1. Bewerk de cURL-opdracht zodat u de eigenschap debug kunt gebruiken om meer informatie weer te geven.

    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. De respons bevat de relevante informatie over het antwoord. In de volgende JSON-uitvoer zijn een aantal foutopsporingsgegevens vervangen door het weglatingsteken om het korter te houden.

    {
        "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
    }
    

Test-knowledge base gebruiken

Als u een antwoord wilt ontvangen van de test-knowledge base, gebruikt u de hoofdteksteigenschap isTest.

De eigenschap is een booleaanse waarde.

isTest:true

De cURL-opdracht ziet er als volgt uit:

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}"

In de JSON-respons wordt hetzelfde schema gebruikt als voor de gepubliceerde knowledge base-query.

Notitie

Als de test en de gepubliceerde knowledge bases exact hetzelfde zijn, kan er nog een kleine variatie optreden omdat de testindex wordt gedeeld tussen alle knowledge bases in de resource.

cURL gebruiken om te zoeken naar een heen- en weergepraatantwoord

  1. Gebruik in de voor cURL ingeschakelde terminal een botinstructie van de gebruiker die het gesprek beëindigt, zoals Thank you als de vraag. Er zijn geen andere eigenschappen om in te stellen.

    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. Voer de cURL-opdracht uit en ontvang het JSON-antwoord inclusief de score en het antwoord.

    {
      "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
    }
    

    Omdat de vraag Thank you precies overeenkwam met een heen- en weergepraatvraag, is QnA Maker volledig zeker met de score van 100. QnA Maker heeft ook alle gerelateerde vragen geretourneerd en de metagegevenseigenschap met de taggegevens van de chit-chatmetagegevens.

Drempel en standaardantwoord gebruiken

U kunt een minimale drempelwaarde voor het antwoord aanvragen. Als niet wordt voldaan aan de drempelwaarde, wordt het standaardantwoord geretourneerd.

  1. Voeg de eigenschap threshold toe om te vragen om een antwoord op size met een drempel van 80% of hoger. De knowledge base mag dat antwoord niet vinden omdat de score van de vraag 71% is. Het resultaat retourneert het standaardantwoord dat u hebt gegeven tijdens het maken van de knowledge base.

    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. Voer de cURL-opdracht uit en ontvang het JSON-antwoord.

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

    QnA Maker heeft een score geretourneerd van 0, wat geen betrouwbaarheid betekent. Ook wordt het standaardantwoord geretourneerd.

  3. Wijzig de drempelwaarde in 60% en vraag de query opnieuw aan:

    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}"
    

    De geretourneerde JSON heeft het antwoord gevonden.

    {
        "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
    }
    

Ongestructureerde gegevensbronnen gebruiken

We ondersteunen nu de mogelijkheid om ongestructureerde documenten toe te voegen die niet kunnen worden gebruikt om QnA's te extraheren. De gebruiker kan ervoor kiezen om ongestructureerde gegevenssets op te nemen of uit te sluiten in de GenerateAnswer-API bij het ophalen van een antwoord op de query. We bieden geen ondersteuning voor ongestructureerde gegevenssets in de GA-service. Dit is alleen opgenomen in aangepaste vragen.

Deze snelstart op basis van Postman begeleidt u bij het ophalen van een antwoord uit een knowledge base.

Vereisten

  • U moet beschikken over
  • Een QnA Maker-resource die in Azure Portal is gemaakt. Onthoud uw Microsoft Entra-id, Abonnement, QnA-resourcenaam die u hebt geselecteerd tijdens het maken van de resource.
  • Een getrainde en gepubliceerde knowledge base met vragen en antwoorden, van de vorige quickstart, geconfigureerd met metagegevens en weergepraat.

Notitie

Wanneer u klaar bent voor het genereren van een antwoord op een vraag uit uw knowledge base, moet u uw knowledge base trainen en publiceren. Wanneer uw knowledge base is gepubliceerd, geeft de pagina Publiceren de instellingen van de HTTP-aanvraag weer voor het genereren van een antwoord. Het tabblad Postman toont de instellingen die vereist zijn voor het genereren van een antwoord.

Postman voor aanvragen instellen

Deze quickstart maakt gebruik van dezelfde instellingen voor de Postman-aanvraag POST en configureert vervolgens naar de hoofdtekst van de JSON die wordt verzonden naar de service op basis van waarvoor u een query wilt uitvoeren.

Gebruik deze procedure voor het configureren van Postman en lees elke volgende sectie om de JSON van de hoofdtekst te configureren.

  1. Selecteer op de pagina Instellingen van de knowledge base het tabblad Postman om de configuratie te zien die wordt gebruikt voor het genereren van een antwoord uit de knowledge base. Kopieer de volgende informatie om te gebruiken in Postman.

    Naam Instelling Doel en waarde
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Dit is de HTTP-methode en route voor de URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Dit is de host van de URL. Voeg de Host en Post-waarden toe om de volledige generateAnswer-URL op te halen.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx De headerwaarde om uw aanvraag aan Azure te autoriseren.
    Content-type application/json De headerwaarde van uw inhoud.
    {"question":"<Your question>"} De hoofdtekst van de POST-aanvraag als een JSON-object. Deze waarde wordt in elk van de volgende secties gewijzigd, afhankelijk van de bedoeling van de query.

    Belangrijk

    Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

  2. Open Postman en maak een nieuwe basis POST-aanvraag met uw gepubliceerde knowledge base-instellingen. Wijzig in de volgende secties de JSON POST-hoofdtekst om de query te wijzigen in uw knowledge base.

Metagegevens gebruiken om antwoord te filteren

In een vorige quickstart zijn metagegevens toegevoegd aan twee QnA-paren om onderscheid te maken tussen twee verschillende vragen. Voeg de metagegevens toe aan de query om het filter te beperken tot alleen het relevante QnA-paar.

  1. Wijzig in Postman alleen de query JSON door de eigenschap strictFilters toe te voegen met de combinatie van naam/waarde van service:qna_maker. De JSON van de hoofdtekst moet het volgende zijn:

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

    De vraag is slechts één woord, size, waarmee een van de twee paren vragen en antwoorden kan worden geretourneerd. De matrix strictFilters vertelt u de respons om alleen de qna_maker-antwoorden te verminderen.

  2. Het respons bevat alleen het antwoord dat voldoet aan de filtercriteria.

    Het volgende antwoord is opgemaakt voor betere leesbaarheid:

    {
        "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
    }
    

    Als er een vraag-en-antwoordpaar is dat niet voldoet aan de zoekterm maar wel aan het filter voldoet, wordt het niet geretourneerd. In plaats daarvan wordt het algemene antwoord No good match found in KB. geretourneerd.

Query-eigenschap fouten opsporen gebruiken

Notitie

Het gebruik van de eigenschap fouten opsporen voor een afhankelijkheid wordt niet aanbevolen. Deze eigenschap is toegevoegd om het productteam te helpen bij het oplossen van problemen.

Informatie over foutopsporing geeft u inzicht in hoe het geretourneerde antwoord is vastgesteld. Hoewel het handig is, is het niet nodig. Als u een antwoord met foutopsporingsinformatie wilt genereren, voegt u de eigenschap debug toe:

  1. Wijzig in Postman alleen de JSON van de hoofdtekst door de eigenschap debug toe te voegen. De JSON moet het volgende zijn:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. De respons bevat de relevante informatie over het antwoord. In de volgende JSON-uitvoer zijn een aantal foutopsporingsgegevens vervangen door het weglatingsteken.

    {
        "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
    }
    

Test-knowledge base gebruiken

Als u een antwoord wilt ontvangen van de test-knowledge base, gebruikt u de hoofdteksteigenschap isTest.

Wijzig in Postman alleen de JSON van de hoofdtekst door de eigenschap isTest toe te voegen. De JSON moet het volgende zijn:

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

In de JSON-respons wordt hetzelfde schema gebruikt als voor de gepubliceerde knowledge base-query.

Notitie

Als de test en de gepubliceerde knowledge bases exact hetzelfde zijn, kan er nog een kleine variatie optreden omdat de testindex wordt gedeeld tussen alle knowledge bases in de resource.

Zoeken naar een heen- en weergepraatantwoord

  1. Wijzig in Postman alleen de JSON van de hoofdtekst in een instructie voor het beëindigen van een gesprek van de gebruiker. De JSON moet het volgende zijn:

    {
        'question':'thank you'
    }
    
  2. De respons bevat de score en het antwoord.

    {
      "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
    }
    

    Omdat de vraag Thank you precies overeenkwam met een heen- en weergepraatvraag, is QnA Maker volledig zeker met de score van 100. QnA Maker heeft ook alle gerelateerde vragen geretourneerd en de metagegevenseigenschap met de taggegevens van de chit-chatmetagegevens.

Drempel en standaardantwoord gebruiken

U kunt een minimale drempelwaarde voor het antwoord aanvragen. Als niet wordt voldaan aan de drempelwaarde, wordt het standaardantwoord geretourneerd.

  1. Wijzig in Postman alleen de JSON van de hoofdtekst in een instructie voor het beëindigen van een gesprek van de gebruiker. De JSON moet het volgende zijn:

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

    De knowledge base mag dat antwoord niet vinden omdat de score van de vraag 71% is en het standaardantwoord dat u hebt ingevoerd tijdens het maken van de Knowledge Base, in plaats daarvan wordt geretourneerd.

    Het geretourneerde JSON-response, inclusief de score en het antwoord is:

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

    QnA Maker heeft een score geretourneerd van 0, wat geen betrouwbaarheid betekent. Ook wordt het standaardantwoord geretourneerd.

  2. Wijzig de drempelwaarde in 60% en vraag de query opnieuw aan:

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

    De geretourneerde JSON heeft het antwoord gevonden.

    {
        "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
    }
    

Gebruik ongestructureerde gegevensbronnen.

We ondersteunen nu de mogelijkheid om ongestructureerde documenten toe te voegen die niet kunnen worden gebruikt om QnA's te extraheren. De gebruiker kan ervoor kiezen om ongestructureerde gegevenssets op te nemen of uit te sluiten in de GenerateAnswer-API bij het ophalen van een antwoord op de query. We bieden geen ondersteuning voor ongestructureerde gegevenssets in de GA-service. Het wordt alleen ondersteund bij het beantwoorden van aangepaste vragen.

Volgende stappen

Meer informatie over metagegevens: