为什么我应该在 Google Nodejs 客户端库的 Actions 中使用 dialogflow() 而不是 actionssdk()

Why should I used dialogflow() over actionssdk() in Actions on Google Nodejs client Library

基于 V1 到 V2 Node.js 客户端库 Migration guide 有两种收听对话的方式

所以下面的代码来自 V1

const {DialogflowApp } = require('actions-on-google');

const actionMap = new Map();

actionMap.set('input.welcome', app => {   app.ask('How are you?'); });

...

可以替换为 dialogflow 模块

const { dialogflow } = require('actions-on-google');
const app = dialogflow();

app.intent('Default Welcome Intent', conv => {   conv.ask('How are you?'); });

或 Actions SDK 模块

const { actionssdk } = require('actions-on-google');
const app = actionssdk();

app.intent('actions.intent.MAIN', conv => {   conv.ask('How are you?'); });

在第一种情况(dialogflow)中,您通过名称识别 Intent,但在第二种情况(actionSdk)中,您通过操作名称识别它。

为什么我应该使用一种而不是另一种?每种方法的优点和局限性是什么?

这两个库都会提供您的 Action 用户所说内容的转录。您使用哪个库取决于您打算如何理解文本 - 理解它并做出相应的反应。如果您打算以定制的方式解析它,或者如果您有自己的自然语言处理器(又名 NLP/NLU),您可以使用 Actions SDK。如果你不这样做,你可以使用 Dialog Flow 作为 NLP 及其库。