Поделиться через


Запрос ответов в базе знаний

База знаний должна быть опубликована. После публикации база знаний запрашивается на конечной точке прогнозирования времени выполнения с помощью 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"
                }
            ]
        }
    ]
}

Следующие шаги