Filtrar respostas com metadados

O QnA Maker permite adicionar metadados, na forma de pares de chave e valor, a pares de pergunta e resposta. Você pode usar essas informações para filtrar os resultados de consultas de usuários e armazenar informações adicionais para uso em conversas de acompanhamento.

Observação

O serviço de QnA Maker está sendo desativado no dia 31 de março de 2025. Uma versão mais recente da funcionalidade de perguntas e respostas agora está disponível como parte da Linguagem de IA do Azure. Para saber mais sobre o recurso de respostas às perguntas no Serviço de Linguagem, confira respostas às perguntas. A partir de 1º de outubro de 2022, você não poderá criar novos recursos de QnA Maker. Para obter informações sobre como migrar bases de dados de conhecimento do QnA Maker existentes para responder à pergunta, consulte o Guia de migração.

Armazenar perguntas e respostas com uma entidade de par de pergunta e resposta

É importante entender como o QnA Maker armazena os dados de pergunta e resposta. A ilustração a seguir mostra uma entidade QnA:

Ilustração de uma entidade de par de pergunta e resposta

Cada entidade QnA tem uma ID exclusiva e persistente. Você pode usar a ID para alterar uma entidade específica de par de pergunta e resposta.

Usar metadados para filtrar respostas por marcações de metadados personalizadas

A adição de metadados permite filtrar as respostas pelas marcações de metadados. Adicione a coluna de metadados no menu Opções de exibição. Adicione metadados à sua base de dados de conhecimento selecionando o ícone + para adicionar um par de metadados. Esse par é composto por uma chave e um valor.

Captura de tela da adição de metadados

Filtrar resultados com strictFilters para marcas de metadados

Considere a pergunta do usuário "Quando este hotel fecha?", em que a intenção é direcionada ao restaurante "Paradise".

Como são necessários resultados apenas do restaurante "Paradise", é possível definir um filtro na chamada do GenerateAnswer nos metadados "Nome do restaurante". O seguinte exemplo mostra isso:

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

Filtrar por origem

Caso você tenha várias fontes de conteúdo em sua base de dados de conhecimento e queira limitar os resultados a um determinado conjunto de fontes, você pode fazer isso usando a palavra-chave reservada source_name_metadata, conforme mostrado abaixo.

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

AND lógico por padrão

Para combinar vários filtros de metadados na consulta, adicione os filtros adicionais à matriz da propriedade strictFilters. Por padrão, os valores são combinados logicamente (AND). Com a combinação lógica, um par de pergunta e resposta só é retornado como resposta quando todos os filtros correspondem a ele.

Isso é equivalente a usar a propriedade strictFiltersCompoundOperationType com o valor AND.

OR lógico usando a propriedade strictFiltersCompoundOperationType

Ao combinar vários filtros de metadados, se você tiver interesse apenas em um ou alguns dos filtros correspondentes, use a propriedade strictFiltersCompoundOperationType com o valor OR.

Dessa forma, a base de dados de conhecimento retorna respostas quando algum filtro corresponde, mas não retorna respostas que não têm metadados.

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

Exemplos de metadados em guias de início rápido

Saiba mais sobre metadados no guia de início rápido do portal do QnA Maker para metadados:

Usar resultados de perguntas e respostas para manter o contexto da conversa

A resposta ao GenerateAnswer contém as informações de metadados correspondentes do par correspondente de pergunta e resposta. Você pode usar essas informações em um aplicativo cliente para armazenar o contexto da conversa anterior para uso em conversas posteriores.

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

Próximas etapas