IBM Watson Assistant聊天中如何传递扩展响应值到自定义响应类型
IBM Watson Assistant 扩展返回值传递给自定义响应类型实现方法
扩展程序调用完成后,返回结果会自动存入对话上下文的固定变量中,直接通过表达式引用即可完成传值,不需要额外做中间变量赋值,具体操作如下:
- 先跑一次扩展调用流程,在对话调试面板里查看上下文变量,找到格式为
$webhook_result_<你的扩展自定义标识名>的变量,确认你要取值的字段在返回结构里的完整层级路径。 - 编辑对话节点的自定义响应时,切换到源编辑模式,在
user_defined对象的对应字段位置,直接插入SpEL取值表达式即可,系统渲染响应时会自动把表达式替换成扩展返回的实际值。
举个实际配置示例,假设你的扩展标识为color_tool,要取返回体里的picked_color字段赋值给my_response_value,正确的响应JSON写法如下:
{ "generic": [ { "user_defined": { "default_color": "blue", "template_name": "color_picker", "my_response_value": "<? $webhook_result_color_tool.response.body.picked_color ?>" }, "response_type": "user_defined" } ] }
两个容易踩的坑:
- 取值表达式不要额外用引号包裹,否则系统会把表达式当成普通字符串输出,不会解析成实际返回值。
- 注意核对返回结构的嵌套层级,部分云函数部署的扩展会在返回体外多包一层result嵌套,以调试面板里看到的实际上下文变量结构为准,不要凭感觉写路径。
内容的提问来源于stack exchange,提问作者Peter Pajchl
相关产品推荐
相关产品推荐

