1

我正在尝试通过添加 wit/datetime 来扩展 wit-ai 天气示例。

例如,用户可能会输入“柏林 1 小时内会有多冷?” 天气机器人将在 1 小时内带回柏林的天气数据。

到目前为止,这是可行的,但是当我尝试设置missingDate以询问日期是否丢失时,它的行为有点有趣。

对话将是: - How cold will it be in Berlin? - In what time? - In 1 hour.

相反,在 1 小时的步骤之后,我再次被询问上下文中的位置,而是再次被触发。

我的动作被命名getForecast({context, entities}),我将其定义如下:

actions:
[...],
    getForecast({ context, entities }) {

        console.log(`The current context is: ${JSON.stringify(context)}`);
        console.log(`Wit extracted ${JSON.stringify(entities)}`);

        // extract entity
        var location = firstEntityValue(entities, "location");
        var date     = firstEntityValue(entities, "datetime");
        // if the entity exists, do a remote weather call.
        if (date) {
            context.date = date;
            delete context.missingDate;
        } else {
            context.missingDate = true;
            delete context.date;
            delete context.forecast;
        }

        if (location) {
            context.forecast = '38 degrees';
            context.location = location;
            delete context.missingLocation;
        } else {
            context.missingLocation = true;
            delete context.forecast;
         }
           // return the context object
            return Promise.resolve(context);
}
4

0 回答 0