首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LuisV3.PredictionOptions不让我使用时区--怎么做?

LuisV3.PredictionOptions不让我使用时区--怎么做?
EN

Stack Overflow用户
提问于 2020-05-01 06:18:55
回答 1查看 105关注 0票数 1

我想我应该升级我的LuisRecognizer来使用LuisRecognizerOptionsV3。然而,我似乎不能以我喜欢的方式设置预测选项-我如何设置时区?v3预测选项缺少此字段。

在我的机器人中,我目前正在做:

代码语言:javascript
复制
var predictionOptions = new LuisPredictionOptions();
predictionOptions.TimezoneOffset = turnContext.Activity.LocalTimestamp.Value.Offset.TotalMinutes;

我找不到v3版本的数据结构中的等价物。

EN

回答 1

Stack Overflow用户

发布于 2020-05-02 05:24:46

提供timezoneOffset参数主要是为了确定用户的日期,以防他们说“今天”或“明天”之类的内容。当用户输入一个相对时间,比如“在三个小时内”时,它也会有所帮助。使用timezoneOffset参数时,返回的实体使用的是提供的时区,而不是世界时。

在LUIS v3中,您提供的不是偏移量,而是DateTime引用,LUIS使用该引用来处理相对时间。您可以看到有文档记录的here。请注意,datetimeReference属性仅在POST requests中可用,而不是GET请求中,因为它是在请求正文中提供的,而不是作为查询参数提供的。

还要注意,datetimeReference属性目前在Bot Builder SDK中不可用。您可以编写自己的代码来使用HttpClient直接访问LUIS API,但是如果您仍然希望使用预构建的SDK来处理事情,那么您可以使用这个NuGet包:Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime 3.0.0

下面是一个如何使用它的示例:

代码语言:javascript
复制
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));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61533713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档