Filtrar respostas com metadados
O QnA Maker permite adicionar metadados, na forma de pares de chave e valor, aos seus pares de perguntas e respostas. Em seguida, você pode usar essas informações para filtrar resultados para consultas de usuários e armazenar informações adicionais que podem ser usadas em conversas de acompanhamento.
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.
Armazenar perguntas e respostas com uma entidade QnA
É importante entender como o QnA Maker armazena os dados de perguntas e respostas. A ilustração a seguir mostra uma entidade QnA:
Cada entidade QnA tem uma ID exclusiva e persistente. Você pode usar o ID para fazer atualizações em uma entidade QnA específica.
Usar metadados para filtrar respostas por tags de metadados personalizadas
Adicionar metadados permite filtrar as respostas por essas tags 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 de metadados + para adicionar um par de metadados. Este par consiste em uma chave e um valor.
Filtrar resultados com strictFilters para tags de metadados
Considere a pergunta do usuário "Quando este hotel fecha?", onde a intenção está implícita para o restaurante "Paraíso".
Como os resultados são necessários apenas para o restaurante "Paradise", você pode definir um filtro na chamada GenerateAnswer nos metadados "Nome do restaurante". O exemplo a seguir mostra isso:
{
"question": "When does this hotel close?",
"top": 1,
"strictFilters": [ { "name": "restaurant", "value": "paradise"}]
}
Filtrar por fonte
Caso você tenha várias fontes de conteúdo em sua base de dados de conhecimento e queira limitar os resultados a um conjunto específico de fontes, você pode fazer isso usando a palavra-chave source_name_metadata
reservada, conforme mostrado abaixo.
"strictFilters": [
{
"name": "category",
"value": "api"
},
{
"name": "source_name_metadata",
"value": "boby_brown_docx"
},
{
"name": "source_name_metadata",
"value": "chitchat.tsv"
}
]
Lógica E por padrão
Para combinar vários filtros de metadados na consulta, adicione os filtros de metadados adicionais à matriz da strictFilters
propriedade. Por padrão, os valores são logicamente combinados (AND). Uma combinação lógica requer que todos os filtros correspondam aos pares QnA para que o par seja retornado na resposta.
Isso equivale a usar a strictFiltersCompoundOperationType
propriedade com o valor de AND
.
OR lógico usando a propriedade strictFiltersCompoundOperationType
Ao combinar vários filtros de metadados, se você estiver preocupado apenas com um ou alguns dos filtros correspondentes, use a strictFiltersCompoundOperationType
propriedade com o valor de OR
.
Isso permite que sua base de dados de conhecimento retorne respostas quando qualquer filtro corresponder, mas não retornará respostas que não tenham 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 início rápido do portal do QnA Maker para metadados:
Use os 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 de perguntas e respostas correspondentes. Você pode usar essas informações em seu 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"
}
]
}
]
}