Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом руководстве описано следующее:
- создание проекта и разделение пар "вопрос — ответ" по разным категориям с помощью метаданных;
- создание отдельного проекта для каждого домена;
- Создание отдельного языкового ресурса для каждого домена
При создании бота с часто задаваемыми вопросами могут возникнуть варианты использования, требующие решения запросов в нескольких доменах. Предположим, что команде маркетинга корпорации Майкрософт требуется создать бота поддержки клиентов, который бы отвечал на распространенные вопросы пользователей по нескольким продуктам Surface. Для простоты здесь мы используем два URL-адреса часто задаваемых вопросов, Surface Pen и Surface Earbuds для создания проекта.
Создание проекта с доменными метаданными
Авторы содержимого могут использовать документы для извлечения пар ответов на вопросы или добавления в проект пользовательских пар ответов на вопросы. Чтобы сгруппировать вопрос и ответы в определенные домены или категории, можно добавить метаданные.
Чтобы создать бота, отвечающего на вопросы по обоим продуктам Surface, можно использовать следующую последовательность действий.
Добавьте следующие URL-адреса часто задаваемых вопросов в качестве источников, выбрав "ДобавитьURL-адреса>источника>", а затем добавьте все после добавления каждого URL-адреса:
Часто задаваемые вопросы о Surface Pen
Часто задаваемые вопросы о Surface EarbudsВ этом проекте у нас есть наборы пар вопросов и ответов для двух разных продуктов. Наша цель состоит в том, чтобы четко различать эти продукты, чтобы пользователи могли искать соответствующие ответы в наборе вопросов и ответов для конкретного продукта.
В этом примере мы добавили метаданные с ключом product и значениями surface_pen или surface_earbuds, где применимо. Этот пример можно расширить, чтобы извлекать данные по нескольким продуктам и добавить различные значения для каждого продукта.
Теперь, чтобы ограничить систему поиском ответа в определенном продукте, необходимо передать этот продукт в качестве фильтра в пользовательском ответе REST API.
URL-адрес прогнозирования REST API можно получить из области проекта развертывания:
В тексте JSON для вызова API мы передали surface_pen в качестве значения для метаданных продукт. Таким образом, система ищет только ответ между парами QnA с теми же метаданными.
{ "question": "What is the price?", "top": 3 }, "answerSpanRequest": { "enable": true, "confidenceScoreThreshold": 0.3, "topAnswersWithSpan": 1 }, "filters": { "metadataFilter": { "metadata": [ { "key": "product", "value": "surface_pen" } ] } }Получить значения метаданных на основе данных, вводимых пользователем, можно следующими способами.
Явным образом принимать домен в качестве входных данных пользователя через клиента бота. Например, вы можете использовать категорию продукта в качестве входных данных от пользователя при запуске беседы.
Неявное определение домена на основе контекста бота. Например, если предыдущий вопрос был по определенному продукту Surface, он может быть сохранен клиентом в качестве контекста. Если пользователь не указал продукт в следующем запросе, можно передать контекст бота в виде метаданных в API создания ответов.
Извлечение сущности из пользовательского запроса для определения домена для фильтрации по метаданным. Для извлечения сущностей можно использовать другие средства Foundry, такие как распознавание именованных сущностей (NER) и понимание разговорного языка.
Насколько большим может быть проект?
В один проект можно добавить до 50000 пар ответов на вопросы. Если данные превышают 50 000 пар ответов на вопросы, следует рассмотреть возможность разделения проекта.
создание отдельного проекта для каждого домена;
Вы также можете создать отдельный проект для каждого домена и поддерживать проекты отдельно. Все API-интерфейсы требуют, чтобы пользователь передал имя проекта, чтобы внести любое обновление в проект или получить ответ на вопрос пользователя.
Когда служба получает вопрос пользователя, необходимо передать projectName через конечную точку REST API, чтобы получить ответ от соответствующего проекта. URL-адрес можно найти на странице "Развертывание проекта" в разделе Get prediction URL:
https://southcentralus.cognitiveservices.azure.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production
Создание отдельного языкового ресурса для каждого домена
Предположим, что команде маркетинга корпорации Майкрософт требуется создать бота поддержки клиентов, который бы отвечал на вопросы пользователей по продуктам Surface и Xbox. Они планируют назначить отдельные команды для доступа к проектам на Surface и Xbox. В этом случае необходимо создать два настраиваемых ресурса ответа на вопросы — один для Surface и другой для Xbox. Вы можете определить отдельные роли для пользователей, обращаюющихся к одному ресурсу.