Eseguire una query sulla knowledge base per ottenere risposte
È necessario pubblicare una knowledge base. Dopo la pubblicazione, viene eseguita una query sulla knowledge base nel runtime dell’endpoint di previsione usando l'API generateAnswer. La query include il testo della domanda e altre impostazioni per consentire a QnA Maker di selezionare la risposta con la migliore corrispondenza possibile.
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.
Come QnA Maker elabora una query utente per selezionare la risposta migliore
La knowledge base di QnA Maker sottoposta a training e pubblicata riceve una query utente da un bot o da un'altra applicazione client, all' API GenerateAnswer.. Il diagramma seguente mostra il processo quando viene ricevuta la query utente.
Processo del classificatore
Il processo è mostrato nella tabella seguente.
Procedi | Scopo |
---|---|
1 | L'applicazione client invia la query utente all' API GenerateAnswer. |
2 | QnA Maker pre-elabora la query utente tramite rilevamento lingua, correttori ortografici e word breaker. |
3 | Questa pre-elaborazione viene eseguita per modificare la query utente al fine di ottenere i migliori risultati della ricerca. |
4 | Questa query modificata viene inviata a un indice di Azure AI Search, che riceve il numero top di risultati. Se la risposta corretta non è tra questi risultati, aumentare leggermente il valore di top . In genere, un valore pari a 10 per top funziona nel 90% delle query. In questo passaggio i filtri di Ricerca di Azure arrestano le parole. |
5 | QnA Maker usa funzionalità sintattiche e semantiche per determinare la somiglianza tra la query utente e i risultati di domande e risposte recuperati. |
6 | Il modello di classificatore basato su apprendimento automatico usa le diverse funzionalità a partire dal passaggio 5 per determinare i punteggi di attendibilità e il nuovo ordine di classificazione. |
7 | I nuovi risultati vengono restituiti all'applicazione client in ordine di priorità. |
Le funzionalità usate includono, ma non sono limitate alla semantica a livello di parola, all'importanza a livello di termine in un corpus e ai modelli semantici di apprendimento avanzato per determinare la somiglianza e la pertinenza tra due stringhe di testo.
Richiesta e risposta HTTP con endpoint
Quando si pubblica la knowledge base, il servizio crea un endpoint HTTP basato su REST che può essere integrato nell'applicazione, in genere un chatbot.
Richiesta di query utente per generare una risposta
Una query utente è la domanda che l'utente finale pone alla knowledge base, ad esempio, How do I add a collaborator to my app?
. La query è spesso in un formato di linguaggio naturale o con alcune parole chiave che rappresentano la domanda, ad esempio help with collaborators
. La query viene inviata alla knowledge base da una richiesta HTTP nell'applicazione client.
{
"question": "How do I add a collaborator to my app?",
"top": 6,
"isTest": true,
"scoreThreshold": 20,
"strictFilters": [
{
"name": "QuestionType",
"value": "Support"
}],
"userId": "sd53lsY="
}
È possibile controllare la risposta impostando proprietà come scoreThreshold, top e strictFilters.
Usare il contesto della conversazione con le funzionalità a più turni in modo che la conversazione continui a perfezionare le domande e le risposte e trovi la risposta finale corretta.
Risposta da una chiamata per generare una risposta
La risposta HTTP è la risposta recuperata dalla knowledge base, basata sulla migliore corrispondenza per una determinata query utente. La risposta include la risposta e il punteggio di previsione. Se è stata richiesta più di una risposta principale con la proprietà top
, si ottengono più risposte principali, ognuna con un punteggio.
{
"answers": [
{
"questions": [
"How do I add a collaborator to my app?",
"What access control is provided for the app?",
"How do I find user management and security?"
],
"answer": "Use the Azure portal to add a collaborator using Access Control (IAM)",
"score": 100,
"id": 1,
"source": "Editorial",
"metadata": [
{
"name": "QuestionType",
"value": "Support"
},
{
"name": "ToolDependency",
"value": "Azure Portal"
}
]
}
]
}