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:
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.
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:
- Criação – adicionar metadados ao par de pergunta e resposta
- Previsão de consulta – filtrar respostas por 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"
}
]
}
]
}