从Watson Discovery结果提取passage_text作为Watson Assistant响应问题
解决Watson Assistant提取Webhook返回的passage_text字段问题
看起来你已经成功调用Watson Discovery的Webhook并拿到了正确的返回结果,但在提取passage_text字段时踩了语法或遍历的小坑。我来帮你梳理下正确的处理方式:
情况1:只需要返回第一个匹配段落的文本
你的Webhook返回里passages是一个数组(哪怕只有一个元素),所以必须通过数组索引访问单个对象的字段。在Watson Assistant的响应模板中,要记得用双大括号包裹变量表达式——这是助手识别并解析变量的关键语法,正确写法应该是:
{{$webhook_result_1.passages[0].passage_text}}
你之前尝试的$webhook_result_1.passages[0].passage_text无效,大概率是因为没加上{{}},导致助手把它当成了普通字符串输出,而非变量解析。
情况2:需要返回所有匹配段落的文本
如果后续可能出现多个段落结果,你可以用Watson Assistant的each循环语法遍历整个passages数组,逐个输出段落文本:
{{#each $webhook_result_1.passages}} - {{passage_text}} {{/each}}
这样会自动把每个段落转化为列表项,输出格式更清晰规整。
额外验证小技巧
为了确保万无一失,你可以在Watson Assistant的「尝试」面板里做个快速检查:
- 触发Webhook后,查看上下文变量
$webhook_result_1的结构是否和你提供的返回结果完全一致 - 确认
passages数组确实存在,且每个元素里都包含passage_text字段
内容的提问来源于stack exchange,提问作者ishalijadhav
相关产品推荐
相关产品推荐

