问题描述
然后我必须收集一个名为conv.param.city的插槽/参数,然后在我的节点webhook中使用它:
const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');
const app = conversation();
app.handle('schedule',(conv,{location}) => {
let temperature = callApi(location);// this part doesn't matter right Now
**conv.add(`You want to kNow the weather in ${location}`);
conv.close(`The weather in ${location} is ${temperature}`);
});
exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
据我所知,您只能接受由类型/意图预定义的参数/插槽。我无法列出要培训的所有城市。我基本上该怎么说:无论用户在此时说什么,都要将该词放入此变量中。
我该如何使用Google Actions SDK?
解决方法
您可以通过将intent参数类型设置为自由文本来完成此操作(这里是示例存储库之一的example)。
freeText: {}
如果将此类型应用于intent参数,则可以使用训练短语来提供必要的上下文,以说明短语中“ word”应匹配的位置(来自同一仓库的example)。
我无法列出要培训的所有城市。
如果您的API可以返回支持的位置集,则存在另一个选项。您还可以使用runtime type overrides从API提供的位置列表中动态生成类型。这将更加准确,但是取决于您的数据源是什么样。