Запрос ответов в базе знаний
База знаний должна быть опубликована. После публикации база знаний запрашивается на конечной точке прогнозирования времени выполнения с помощью API generateAnswer. Запрос содержит текст вопроса и другие параметры, помогающие QnA Maker выбрать наилучшее совпадение для предоставления в качестве ответа.
Примечание.
Поддержка службы QnA Maker будет прекращена 31 марта 2025 г. Новая версия вопроса и возможности ответа теперь доступна как часть языка искусственного интеллекта Azure. Сведения о возможностях ответов на вопросы в службе Языка см. в статье с ответами на вопросы. С 1 октября 2022 г. вы не сможете создавать ресурсы QnA Maker. Сведения о переносе существующих баз знаний QnA Maker в функцию вопросов и ответов см. в руководстве по миграции.
Порядок обработки QnA Maker запроса пользователя для выбора наилучшего ответа
База знаний с обученным и опубликованным QnA Maker получает пользовательский запрос от бота или другого клиентского приложения в API GenerateAnswer. На следующей схеме показан процесс получения пользовательского запроса.
Процесс ранжирования
Этот процесс описан в следующей таблице.
Этап | Характер использования |
---|---|
1 | Клиентское приложение отправляет пользовательский запрос в API GenerateAnswer. |
2 | QnA Maker предварительно обрабатывает пользовательский запрос с помощью определения языка, средств проверки орфографии и средств разбиения по словам. |
3 | Эта предварительная обработка применяется для изменения пользовательского запроса для получения наилучших результатов поиска. |
4 | Этот измененный запрос отправляется в индекс поиска ИИ Azure, который получает top количество результатов. Если нужный ответ отсутствует в этих результатах, немного увеличьте значение top . Как правило, для 90 % запросов подходит значение 10 для параметра top . Служба поиска Azure на этом шаге фильтрует стоп-слова. |
5 | QnA Maker использует синтаксическое и семантическое конструирование признаков для определения сходства между пользовательским запросом и результатами, полученными QnA. |
6 | Модель ранжирования, обученная с помощью машинного обучения, использует различные признаки из шага 5, чтобы определить оценки достоверности и новый порядок ранжирования. |
7 | Новые результаты возвращаются клиентскому приложению в порядке ранжирования. |
Используемые признаки включают, помимо прочего, семантику на уровне слов, важность на уровне терминов в основной части и семантические модели, полученные в ходе глубокого изучения, для определения сходства и релевантности между двумя текстовыми строками.
HTTP-запрос и ответ с конечной точкой
При публикации базы знаний служба создает конечную точку HTTP на основе средств REST, которую можно интегрировать в приложение, как правило, в чат-бот.
Запрос на создание ответа
Пользовательский запрос — это вопрос, который конечный пользователь отправляет в базу знаний, например How do I add a collaborator to my app?
. Запрос — это несколько ключевых слов, представляющие вопрос, часто в формате естественного языка, например help with collaborators
. Запрос отправляется в базу знаний из HTTP-запроса в клиентском приложении.
{
"question": "How do I add a collaborator to my app?",
"top": 6,
"isTest": true,
"scoreThreshold": 20,
"strictFilters": [
{
"name": "QuestionType",
"value": "Support"
}],
"userId": "sd53lsY="
}
Для управления ответом можно использовать такие свойства, как scoreThreshold, top и strictFilters.
Используйте контекст диалога с функцией многоэтапной беседы, чтобы продолжить обсуждение для уточнения вопросов и ответов для поиска правильного и окончательного ответа.
Ответ из вызова для создания ответа
HTTP-ответ представляет собой извлеченный из базы знаний ответ, наиболее подходящий для запроса данного пользователя. Ответ включает сам ответ и оценку прогноза. Если вы запросили несколько популярных ответов с помощью свойства top
, вы получите несколько популярных ответов, каждый из которых имеет оценку.
{
"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"
}
]
}
]
}