2

假设我有一个应用程序,我想给某人一个城市的天气。

第一个场景有提示:“你想要哪个城市的天气?”

然后我必须收集一个名为 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 做到这一点?

4

1 回答 1

1

您可以通过将您的意图参数类型设置为自由文本来完成此操作(这是来自示例存储库之一的示例)。

freeText: {}

如果将此类型应用于意图参数,则可以使用训练短语来提供必要的上下文,说明“单词”应在短语中的何处匹配(来自同一存储库的示例)。

我无法列出所有可以训练的城市。

如果您的 API 可以返回支持的位置集,则存在另一个选项。您还可以使用运行时类型覆盖从 API 提供的位置列表动态生成类型。这将更准确,但取决于您的数据源的外观。

于 2020-10-15T22:57:17.040 回答