gpt4 book ai didi

dialogflow-es - 如何设置 DialogFlow session 的时区?

转载 作者:行者123 更新时间:2023-12-03 23:28:41 29 4
gpt4 key购买 nike

当我在 Sialogflow 意图中使用“日期”实体时,我希望它解释 today根据特定时区的日期。

该时区可能因 session 而异,因为我的 Web 客户端知道用户的特定时区,并且可以在请求中或在首次启动 session 时传达这一点。

现在,Dialogflow 只使用 UTC,所以如果用户在加利福尼亚,UTC-7 是 January 1st, 9pm在加利福尼亚,它是 4am on January 2n d 在 UTC,所以用户说 today被解释为 January 2nd而不是所需的 January 1st .

最佳答案

根据docs ,有一个 timezone发送查询时的参数:

POST /query sample
HTTPCURL
curl \
https://api.dialogflow.com/v1/query?v=20150910 \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_CLIENT_ACCESS_TOKEN' \
-d '{
"contexts": [
"shop"
],
"lang": "en",
"query": "I need apples",
"sessionId": "12345",
"timezone": "America/New_York"
}'

因此,如果您知道用户的时区,则只需在每次请求时发送它。

API V2

对于 API V2 代理,可以在 queryParams.timeZone 中发送时区
const sessionClient = new dialogflow.SessionsClient({
keyFilename: '/path/to/google.json'
});
const sessionPath = sessionClient.sessionPath('[PROJECT_ID]', '[SESSION_ID]');

const request = {
session: sessionPath,
queryInput: {
text: {
text: 'query',
languageCode: 'en'
}
},
queryParams: {
timeZone: 'America/New_York'
}
};

sessionClient.detectIntent(request)
.then(res => console.log(res))
.catch(err => console.error(err))

关于dialogflow-es - 如何设置 DialogFlow session 的时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49883196/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com