Расширение приложения во время прогнозирования
Внимание
LUIS будет прекращена 1 октября 2025 г. и с 1 апреля 2023 г. вы не сможете создать новые ресурсы LUIS. Мы рекомендуем перенести приложения LUIS в понимание общения, чтобы воспользоваться продолжением поддержки продуктов и многоязычными возможностями.
Схема приложения (модели и функции) обучается и публикуется в конечной точке прогнозирования. Эта опубликованная модель используется в среде выполнения прогнозирования. Вы можете передать новую информацию вместе с речевым фрагментом пользователя в среду выполнения прогнозирования, чтобы улучшить прогноз.
В схему среды выполнения прогнозирования внесены два изменения.
Внешние сущности
Внешние сущности дают вашему приложению LUIS возможность идентифицировать и маркировать сущности во время выполнения, которые могут использоваться в качестве функций для существующих сущностей. Это позволяет использовать собственные пользовательские средства извлечения сущностей перед отправкой запросов в конечную точку прогнозирования. Так как это делается в конечной точке прогнозирования запросов, вам не нужно повторно обучать и публиковать модель.
Клиентское приложение предоставляет собственное средство извлечения сущностей, управляя сопоставлением сущностей, определяя расположение соответствующей сущности в речевом фрагменте и затем отправляя эту информацию с запросом.
Внешние сущности — это механизм для расширения любого типа сущности, который по-прежнему используется в качестве сигналов для других моделей.
Это полезно для сущности, данные для которой доступны только во время выполнения прогнозирования запросов. Примерами данных такого типа являются постоянно изменяющиеся данные или данные, привязанные к отдельным пользователям. Вы можете расширить сущность контакта LUIS с помощью внешней информации из списка контактов пользователя.
Внешние сущности являются частью API разработки версии 3.
Сущность уже существует в приложении
Значение entityName
для внешней сущности, передаваемое в теле POST запроса к конечной точке, должно уже существовать в обученном и опубликованном приложении во время выполнения запроса. Тип сущности не имеет значения, поддерживаются все типы.
Первый цикл в беседе
Рассмотрим первый речевой фрагмент в рамках беседы в чат-боте. Пользователь вводит следующую неполную информацию.
Send Hazem a new message
В теле запроса POST от чат-бота к LUIS могут передаваться сведения о Hazem
, что напрямую соответствует одному из контактов пользователя.
"externalEntities": [
{
"entityName":"contacts",
"startIndex": 5,
"entityLength": 5,
"resolution": {
"employeeID": "05013",
"preferredContactType": "TeamsChat"
}
}
]
В ответ операции прогнозирования эта внешняя сущность включается вместе со всеми остальными спрогнозированными сущностями, так как она определена в запросе.
Второй цикл в беседе
В следующем речевом фрагменте пользователя в чат-боте используется более расплывчатый термин.
Send him a calendar reminder for the party.
В этом цикле беседы в речевом фрагменте под him
имеется в виду Hazem
. Чат-бот может сопоставить him
в теле запроса POST со значением сущности, извлеченным из первого речевого фрагмента, Hazem
.
"externalEntities": [
{
"entityName":"contacts",
"startIndex": 5,
"entityLength": 3,
"resolution": {
"employeeID": "05013",
"preferredContactType": "TeamsChat"
}
}
]
В ответ операции прогнозирования эта внешняя сущность включается вместе со всеми остальными спрогнозированными сущностями, так как она определена в запросе.
Переопределение существующих прогнозов модели
Свойство preferExternalEntities
определяет, какую сущность должно выбрать приложение LUIS, когда пользователь отправляет внешнюю сущность, которая пересекается с прогнозируемой сущностью с тем же именем: переданную сущность или сущность, имеющуюся в модели.
В качестве примера рассмотрим запрос today I'm free
. LUIS определяет today
как datetimeV2 со следующим ответом.
"datetimeV2": [
{
"type": "date",
"values": [
{
"timex": "2019-06-21",
"value": "2019-06-21"
}
]
}
]
Пользователь отправляет внешнюю сущность.
{
"entityName": "datetimeV2",
"startIndex": 0,
"entityLength": 5,
"resolution": {
"date": "2019-06-21"
}
}
Если свойство preferExternalEntities
имеет значение false
, LUIS возвращает такой ответ, как если бы внешняя сущность не отправлялась.
"datetimeV2": [
{
"type": "date",
"values": [
{
"timex": "2019-06-21",
"value": "2019-06-21"
}
]
}
]
Если для preferExternalEntities
задано значение true
, LUIS возвращает ответ, который включает следующее.
"datetimeV2": [
{
"date": "2019-06-21"
}
]
Разрешение
Необязательное свойство resolution
возвращается в ответе операции прогнозирования, что позволяет передать метаданные, связанные с внешней сущностью, а затем получить их обратно в ответе.
Основной целью является расширение предварительно созданных сущностей, но этим типом сущностей она не ограничивается.
Свойство resolution
может быть числом, строкой, объектом или массивом.
- "Dallas"
- {"text": "value"}
- 12345
- ["a", "b", "c"]
Динамические списки
Динамические списки позволяют расширить существующий обученный и опубликованный объект списка уже в приложении LUIS.
Используйте эту функцию, если необходимо периодически менять значения сущностей в списке. Эта функция позволяет расширить уже обученный и опубликованный список сущностей:
- во время запроса к конечной точке прогнозирования запросов;
- для одного запроса.
Сущность списка может быть пустой в приложении LUIS, но она должна существовать. Сущность списка в приложении LUIS не изменяется, но возможности прогнозирования в конечной точке расширяются до двух списков с 1000 элементами.
Тело запроса JSON динамического списка
Отправьте следующее тело запроса JSON, чтобы добавить в список новый вложенный список с синонимами и спрогнозировать сущность списка для текста LUIS
с запросом прогнозирования POST
.
{
"query": "Send Hazem a message to add an item to the meeting agenda about LUIS.",
"options":{
"timezoneOffset": "-8:00"
},
"dynamicLists": [
{
"listEntity*":"ProductList",
"requestLists":[
{
"name": "Azure AI services",
"canonicalForm": "Azure-Cognitive-Services",
"synonyms":[
"language understanding",
"luis",
"qna maker"
]
}
]
}
]
}
В ответ операции прогнозирования эта сущность списка включается вместе со всеми остальными спрогнозированными сущностями, так как она определена в запросе.