Параметр timezoneOffset
в основном предоставлялся для определения того, какой сегодня день для пользователя, если он говорит что-то вроде «сегодня» или «завтра». Это также помогает, когда пользователь вводит относительное время, например, «через три часа». При использовании параметра timezoneOffset
возвращаемая сущность находится в предоставленном часовом поясе, а не в универсальном времени.
В LUIS v3 вместо предоставления смещения вы предоставляете ссылку DateTime
, а LUIS использует ее для обработки относительного время. Вы можете увидеть это документально здесь . Обратите внимание, что свойство datetimeReference
доступно только в запросах POST , а не в запросах GET, поскольку вы предоставляете его в теле запроса, а не в качестве параметра запроса.
Также обратите внимание, что datetimeReference
свойство в настоящее время недоступно в Bot Builder SDK. Вы можете написать свой собственный код для прямого доступа к API LUIS с помощью HttpClient
, но если вам все еще нужен предварительно собранный SDK для обработки, вы можете использовать этот пакет NuGet: Microsoft. Azure .CognitiveServices. Language.LUIS.Runtime 3.0.0
Вот пример того, как его использовать:
var appId = new Guid("<LUIS APP ID>");
var client = new LUISRuntimeClient(new ApiKeyServiceClientCredentials("<SERVICE KEY>"));
client.Endpoint = "https://westus2.api.cognitive.microsoft.com";
var options = new PredictionRequestOptions(activity.LocalTimestamp.Value.DateTime);
var request = new PredictionRequest("Book a flight in three hours", options);
var response = await client.Prediction.GetSlotPredictionAsync(appId, "PRODUCTION", request);
Console.WriteLine(JsonConvert.SerializeObject(response.Prediction.Entities, Formatting.Indented));