Filtrare le risposte con i metadati
QnA Maker consente di aggiungere metadati sotto forma di coppie di chiave e valore per i set di domande/risposte. Queste informazioni possono essere usate per filtrare i risultati per le query utente e per archiviare informazioni aggiuntive utilizzabili nelle conversazioni di follow-up.
Nota
Il servizio QnA Maker sarà ritirato il 31 marzo 2025. Una versione più recente della funzionalità di domande e risposte è ora disponibile come parte di Lingua di Azure AI. Per le funzionalità di risposta alla domanda all'interno del servizio di linguaggio vedere Risposta alla domanda. A partire dal 1° ottobre 2022 non è più possibile creare nuove risorse di QnA Maker. Per informazioni sulla migrazione delle knowledge base di QnA Maker esistenti alla funzionalità di risposta alla domanda vedere la guida alla migrazione.
Prima di tutto, è importante comprendere come i dati di domanda e risposta vengono archiviati da QnA Maker. La figura seguente mostra un'entità di tipo Domande e risposte:
Ogni entità di tipo Domande e risposte ha un ID univoco e persistente. L'ID può essere usato per aggiornare un'entità di tipo Domande e risposte specifica.
L'aggiunta di metadati consente di filtrare le risposte in base a questi tag di metadati. Aggiungere la colonna dei metadati dal menu Visualizza opzioni. Aggiungere metadati alla knowledge base selezionando l'icona dei metadati + per aggiungere una coppia di metadati. Questa coppia è costituita da una chiave e da un valore.
Si consideri la domanda dell'utente "Quando chiude questo hotel?", dove l'intento è implicito per il ristorante "Paradise".
Poiché sono richiesti i risultati solo per il ristorante "Paradise", è possibile impostare un filtro nella chiamata a GenerateAnswer sui metadati relativi al nome del ristorante, come indicato di seguito. Nell'esempio riportato di seguito viene illustrata questa situazione.
{
"question": "When does this hotel close?",
"top": 1,
"strictFilters": [ { "name": "restaurant", "value": "paradise"}]
}
Se nella knowledge base sono presenti più origini di contenuto e si vuole limitare i risultati a un determinato set di origini, è possibile usare la parola chiave riservata source_name_metadata
, come illustrato di seguito.
"strictFilters": [
{
"name": "category",
"value": "api"
},
{
"name": "source_name_metadata",
"value": "boby_brown_docx"
},
{
"name": "source_name_metadata",
"value": "chitchat.tsv"
}
]
Per combinare diversi filtri di metadati nella query, aggiungere i filtri di metadati aggiuntivi alla matrice della proprietà strictFilters
. Per impostazione predefinita, i valori vengono combinati logicamente (AND). Una combinazione logica richiede che tutti i filtri corrispondano alle coppie QnA affinché la coppia venga restituita nella risposta.
Equivale a usare la proprietà strictFiltersCompoundOperationType
con il valore di AND
.
Quando si combinano diversi filtri di metadati, se si è interessati solo a uno o ad alcuni filtri corrispondenti, usare la proprietà strictFiltersCompoundOperationType
con il valore di OR
.
Ciò consente alla knowledge base di restituire risposte quando sono presenti dei filtri con corrispondenze che non restituiscono risposte senza metadati.
{
"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"
}
Altre informazioni sui metadati sono disponibili nell’avvio rapido al portale di QnA Maker per i metadati:
- Creazione e modifica - aggiungere metadati a una coppia di domanda e risposta
- Eseguire query sulle previsioni - filtrare le risposte in base ai metadati
La risposta a GenerateAnswer contiene le informazioni sui metadati corrispondenti del set di domande e risposte corrispondente. È possibile usare queste informazioni nell'applicazione client per archiviare il contesto della conversazione precedente da usare nelle conversazioni successive.
{
"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"
}
]
}
]
}