Obtenha uma resposta de uma base de conhecimento do QNA Maker

Nota

O serviço QnA Maker será desativado no dia 31 de março de 2025. Uma versão mais recente do recurso de perguntas e respostas agora está disponível como parte da Linguagem de IA do Azure. Para obter os recursos de resposta a perguntas no Serviço Linguístico, consulte Resposta a perguntas. A partir de 1º de outubro de 2022, você não poderá criar novos recursos do QnA Maker. Para obter informações sobre como migrar bases de conhecimento existentes do QnA Maker para responder a perguntas, consulte o guia de migração.

Nota

Esta documentação não se aplica à versão mais recente. Para saber mais sobre como usar as APIs de resposta a perguntas mais recentes, consulte o guia de criação de respostas a perguntas.

Este guia de início rápido baseado em cURL orienta você a obter uma resposta da sua base de conhecimento.

Pré-requisitos

  • Você deve ter
  • Um recurso do QnA Maker criado no portal do Azure. Lembre-se de seu ID do Microsoft Entra, Assinatura, nome do recurso QnA que você selecionou quando criou o recurso.
  • Uma base de conhecimento treinada e publicada com perguntas e respostas, do início rápido anterior, configurada com metadados e bate-papo Chit.

Nota

Quando estiver pronto para gerar uma resposta a uma pergunta a partir da sua base de conhecimento, você deve treinar e publicar sua base de conhecimento. Quando sua base de dados de conhecimento é publicada, a página Publicar exibe as configurações de solicitação HTTP para gerar uma resposta. A guia cURL mostra as configurações necessárias para gerar uma resposta a partir da ferramenta de linha de comando.

Usar metadados para filtrar a resposta

Use a base de dados de conhecimento da rápida anterior para consultar uma resposta com base em metadados.

  1. Na página Configurações da base de dados de conhecimento, selecione a guia CURL para ver um exemplo de comando cURL usado para gerar uma resposta da base de conhecimento.

  2. Copie o comando para um ambiente editável (como um arquivo de texto) para que você possa editá-lo. Edite o valor da pergunta da seguinte forma para que os metadados de sejam usados como um filtro para os pares QnA service:qna_maker .

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

    A questão é apenas uma única palavra, sizeque pode retornar qualquer um dos dois pares QnA. A strictFilters matriz diz a resposta para reduzir a apenas as qna_maker respostas.

  3. A resposta inclui apenas a resposta que atende aos critérios de filtro. A seguinte resposta cURL foi formatada para legibilidade:

    {
        "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://video2.skills-academy.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Se houver um par de perguntas e respostas que não atendesse ao termo de pesquisa, mas atendesse ao filtro, ele não seria retornado. Em vez disso, a resposta No good match found in KB. geral é devolvida.

Usar propriedade de consulta de depuração

Nota

Não recomendamos o uso da propriedade Debug para qualquer dependência. Esta propriedade foi adicionada para ajudar a equipe de produto na solução de problemas.

As informações de depuração ajudam a entender como a resposta retornada foi determinada. Embora seja útil, não é necessário. Para gerar uma resposta com informações de depuração, adicione a debug propriedade:

Debug: {Enable:true}
  1. Edite o comando cURL para incluir a propriedade debug para ver mais informações.

    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. A resposta inclui as informações relevantes sobre a resposta. Na saída JSON a seguir, alguns detalhes de depuração foram substituídos por reticências para brevidade.

    {
        "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://video2.skills-academy.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
    }
    

Usar a base de conhecimento do teste

Se você quiser obter uma resposta da base de conhecimento do teste, use a isTest propriedade body.

A propriedade é um valor booleano.

isTest:true

O comando cURL tem a seguinte aparência:

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

A resposta JSON usa o mesmo esquema que a consulta da base de dados de conhecimento publicada.

Nota

Se o teste e as bases de conhecimento publicadas forem exatamente iguais, ainda pode haver alguma pequena variação porque o índice de teste é compartilhado entre todas as bases de conhecimento no recurso.

Use cURL para consultar uma resposta Chit-chat

  1. No terminal habilitado para cURL, use uma instrução de encerramento de conversa do bot do usuário, como Thank you a pergunta. Não há outras propriedades para definir.

    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. Execute o comando cURL e receba a resposta JSON, incluindo a pontuação e a resposta.

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

    Uma vez que a pergunta Thank you corresponde exatamente a uma pergunta Chit-chat, o Criador de FAQ está completamente confiante com a classificação 100. O QnA Maker também retornou todas as perguntas relacionadas e a propriedade de metadados contendo as informações da tag de metadados Chit-chat.

Usar limite e resposta padrão

Você pode solicitar um limite mínimo para a resposta. Se o limite não for atingido, a resposta padrão será retornada.

  1. Adicione a threshold propriedade para pedir uma resposta com size um limite de 80% ou superior. A base de conhecimento não deve encontrar essa resposta porque a pontuação da pergunta é de 71%. O resultado retorna a resposta padrão que você forneceu quando criou a base de dados de conhecimento.

    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. Execute o comando cURL e receba a resposta JSON.

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

    QnA Maker devolveu uma pontuação de , o 0que significa que não há confiança. Ele também retornou a resposta padrão.

  3. Altere o valor do limite para 60% e solicite a consulta novamente:

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

    O JSON retornado encontrou a resposta.

    {
        "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://video2.skills-academy.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
    }
    

Usar fontes de dados não estruturadas

Agora suportamos a capacidade de adicionar documentos não estruturados que não podem ser usados para extrair QnAs. O usuário pode optar por incluir ou excluir conjuntos de dados não estruturados na API GenerateAnswer ao buscar uma resposta à consulta. Não suportamos conjuntos de dados não estruturados no serviço GA, isso só está incluído na resposta a perguntas personalizadas.

Este início rápido baseado na extensão Visual Studio Code REST Client orienta você na obtenção de uma resposta da sua base de dados de conhecimento.

Pré-requisitos

  • Um recurso do QnA Maker criado no portal do Azure. Lembre-se de seu ID do Microsoft Entra, Assinatura, nome do recurso QnA que você selecionou quando criou o recurso.
  • Uma base de conhecimento treinada e publicada com perguntas e respostas, do início rápido anterior, configurada com metadados e bate-papo Chit.

Nota

Quando estiver pronto para gerar uma resposta a uma pergunta a partir da sua base de conhecimento, você deve treinar e publicar sua base de conhecimento. Quando sua base de dados de conhecimento é publicada, a página Publicar exibe as configurações de solicitação HTTP para gerar uma resposta. A guia Carteiro mostra as configurações necessárias para gerar uma resposta.

Configurar a extensão Visual Studio Code REST Client para solicitações

Este guia de início rápido usa as mesmas configurações para a solicitação POST da extensão do Visual Studio Code REST Client e, em seguida, configura para JSON do corpo do POST enviado ao serviço com base no que você está tentando consultar.

Use este procedimento para configurar a extensão Visual Studio Code REST Client e, em seguida, leia cada seção subsequente para configurar o JSON do corpo POST.

  1. Na página Configurações da base de conhecimento, selecione a guia Postman para ver a configuração usada para gerar uma resposta a partir da base de conhecimento. Copie as seguintes informações para usar na extensão de cliente REST do Visual Studio Code.

    Nome Definição Finalidade e valor
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Este é o método HTTP e a rota para a URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Este é o host da URL. Concatene os valores Host e Post para obter a URL generateAnswer completa.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx O valor do cabeçalho para autorizar sua solicitação ao Azure.
    Content-type application/json O valor do cabeçalho para o seu conteúdo.
    {"question":"<Your question>"} O corpo da solicitação POST como um objeto JSON. Esse valor será alterado em cada seção a seguir, dependendo do que a consulta deve fazer.

    Importante

    Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais informações.

  2. Use a extensão Visual Studio Code REST Client para criar uma nova solicitação POST básica com suas configurações de base de dados de conhecimento publicadas. Nas seções a seguir, altere o JSON do corpo do POST para alterar a consulta para sua base de dados de conhecimento.

Usar metadados para filtrar a resposta

Em um início rápido anterior, os metadados foram adicionados a dois pares de QnA para distinguir entre duas perguntas diferentes. Adicione os metadados à consulta para restringir o filtro apenas ao par QnA relevante.

  1. Na extensão Visual Studio Code REST Client, altere apenas a consulta JSON adicionando a strictFilters propriedade com o par nome/valor de service:qna_maker. O corpo JSON deve ser:

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

    A pergunta é apenas uma única palavra, sizeque pode retornar qualquer um dos dois pares de perguntas e respostas. A strictFilters matriz diz a resposta para reduzir a apenas as qna_maker respostas.

  2. A resposta inclui apenas a resposta que atende aos critérios de filtro.

    A seguinte resposta foi formatada para facilitar a leitura:

    {
        "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://video2.skills-academy.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Se houver um par de perguntas e respostas que não atendesse ao termo de pesquisa, mas atendesse ao filtro, ele não seria retornado. Em vez disso, a resposta No good match found in KB. geral é devolvida.

Usar propriedade de consulta de depuração

Nota

Não recomendamos o uso da propriedade Debug para qualquer dependência. Esta propriedade foi adicionada para ajudar a equipe de produto na solução de problemas.

As informações de depuração ajudam a entender como a resposta retornada foi determinada. Embora seja útil, não é necessário. Para gerar uma resposta com informações de depuração, adicione a debug propriedade:

  1. Na extensão Visual Studio Code REST Client, altere apenas o corpo JSON adicionando a debug propriedade. O JSON deve ser:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. A resposta inclui as informações relevantes sobre a resposta. Na saída JSON a seguir, alguns detalhes de depuração foram substituídos por reticências.

    {
        "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://video2.skills-academy.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
    }
    

Usar a base de conhecimento do teste

Se você quiser obter uma resposta da base de conhecimento do teste, use a isTest propriedade body.

Na extensão Visual Studio Code REST Client, altere apenas o corpo JSON adicionando a isTest propriedade. O JSON deve ser:

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

A resposta JSON usa o mesmo esquema que a consulta da base de dados de conhecimento publicada.

Nota

Se o teste e as bases de conhecimento publicadas forem exatamente iguais, ainda pode haver alguma pequena variação porque o índice de teste é compartilhado entre todas as bases de conhecimento no recurso.

Consulta para uma resposta Chit-chat

  1. Na extensão Visual Studio Code REST Client, altere apenas o corpo JSON para uma instrução de fim de conversa do usuário. O JSON deve ser:

    {
        'question':'thank you'
    }
    
  2. A resposta inclui a pontuação e a resposta.

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

    Uma vez que a pergunta Thank you corresponde exatamente a uma pergunta Chit-chat, o Criador de FAQ está completamente confiante com a classificação 100. O QnA Maker também retornou todas as perguntas relacionadas e a propriedade de metadados contendo as informações da tag de metadados Chit-chat.

Usar limite e resposta padrão

Você pode solicitar um limite mínimo para a resposta. Se o limite não for atingido, a resposta padrão será retornada.

  1. Na extensão Visual Studio Code REST Client, altere apenas o corpo JSON para uma instrução de fim de conversa do usuário. O JSON deve ser:

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

    A base de dados de conhecimento não deve encontrar essa resposta porque a pontuação da pergunta é de 71% e, em vez disso, retornar a resposta padrão que você forneceu quando criou a base de dados de conhecimento.

    A resposta JSON retornada, incluindo a pontuação e a resposta é:

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

    QnA Maker devolveu uma pontuação de , o 0que significa que não há confiança. Ele também retornou a resposta padrão.

  2. Altere o valor do limite para 60% e solicite a consulta novamente:

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

    O JSON retornado encontrou a resposta.

    {
        "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://video2.skills-academy.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
    }
    

Use fontes de dados não estruturadas.

Agora suportamos a capacidade de adicionar documentos não estruturados que não podem ser usados para extrair QnAs. O usuário pode optar por incluir ou excluir conjuntos de dados não estruturados na API GenerateAnswer ao buscar uma resposta à consulta. Não suportamos conjuntos de dados não estruturados no serviço GA. Só é suportado na resposta a perguntas personalizadas.

Próximos passos

Saiba mais sobre metadados: