Dialogflow webhook(Google 上的操作)。我是否应该使用 RichResponse?

Dialogflow webhook (Actions on Google). Should I be using RichResponse or not?

通读 Google 上的操作文档,我使用丰富的响应 class 构建了一个浏览轮播,并为其提供了一个简单的响应、轮播和一些建议芯片。

const carouselItems = [];
items.forEach(item => {
    const carouselItem = new BrowseCarouselItem({
        description: item.description.text,
        image: new Image({
            alt: item.title,
            url: item.image,
        }),
        url: item.link,
        title: item.title,
    })
    carouselItems.push(carouselItem)
});


conv.ask(new RichResponse({
    items: [{
        simpleResponse: new SimpleResponse("the simple response message"),
        carouselBrowse: new BrowseCarousel({ 
            items: [ browseCarouselItem1, browseCarouselItem2 ],
        }),
    }],
    suggestions: ["suggestion1", "suggestion2"]
});

在花时间这样做之后,我发现富响应 class 似乎是不必要的。事实上,我可以通过连续三次使用 conv.ask() 来获得相同的结果。

conv.ask("the simple response message");
conv.ask(new BrowseCarousel({
    items: [ browseCarouselItem1, browseCarouselItem2 ]
}));
conv.ask(new Suggestions([ "suggestion1", "suggestion2" ]);

有了这个发现,我发现自己不确定正确的方法。这些方法中的一种会替代另一种吗?最佳做法是什么?我在我的 webhook 中使用了几次 RichResponse,现在我不确定我是否在使用过时的 class.

不是"obsolete",但是没有必要。标准做法是多次调用 ask() 并让库为您构建 RichResponse 对象。但是图书馆确实在内部使用它,所以它并没有过时。

当我使用 actions-on-google 库时,我更喜欢使用多个 ask(),因为我不必全部使用它们。我可以将其中一些包含在不同的块中,具体取决于可用的功能或合适的响应。

使用最适合您的方法。