Dialogflow V2 API中V1的app.setContext()等效调用及代码示例
Dialogflow V1
app.setContext() 在V2 API中的等效实现及示例 核心结论
在Dialogflow V2(配合Actions on Google的dialogflow客户端)中,V1版本的app.setContext()方法被替换为**conv.contexts.set()**,这就是设置会话上下文的等效实现。
方法用法说明
conv.contexts.set()需要传入一个上下文配置对象,核心属性包括:
name: 上下文的名称(必填项)lifespanCount: 上下文的生命周期(可选,默认值为5,代表该上下文会在后续5轮对话后自动过期)parameters: 上下文携带的自定义参数(可选,以键值对形式存储)
示例代码修改(默认欢迎意图中设置上下文)
针对你提供的代码片段,我们可以在Default Welcome Intent的处理逻辑里添加上下文设置的代码,比如设置一个用于后续对话跟进的上下文:
// v2 const functions = require('firebase-functions'); const { dialogflow } = require('actions-on-google'); const app = dialogflow(); app.intent('Default Welcome Intent', conv => { // 设置上下文:名称为"greeting_followup",生命周期3轮,携带初始参数 conv.contexts.set({ name: 'greeting_followup', lifespanCount: 3, parameters: { user_mood: 'unknown' } }); conv.ask('How are you?'); }); exports.factsAboutGoogle = functions.https.onRequest(app);
额外小提示
- 如果只需要设置上下文名称和默认生命周期,可以简化写法:
conv.contexts.set('greeting_followup') - 若要更新已存在的上下文参数或生命周期,直接调用
conv.contexts.set()传入新配置即可,它会自动覆盖同名的现有上下文
内容的提问来源于stack exchange,提问作者hmisenar
相关产品推荐
相关产品推荐

