Dialogflow es 在dialogflow实现中访问以前的后续意图参数

Dialogflow es 在dialogflow实现中访问以前的后续意图参数,dialogflow-es,Dialogflow Es,我使用内联编辑器中提供的默认dialogflow代码,基于dialogflow实现^0.5.0来整理在几个后续意图中给出的所有参数。我有一个跟进意图提问的设置,最终的意图是询问所有问题 从dialogflow控制台内的先前意图中提取数据以包含在响应中只需使用#order cream followup.chocolate type从先前意图获取参数,或使用$quantity从当前意图获取参数。但是,虽然agent.parameters['quantity']的工作方式类似于$quantity,但我

我使用内联编辑器中提供的默认dialogflow代码,基于dialogflow实现^0.5.0来整理在几个后续意图中给出的所有参数。我有一个跟进意图提问的设置,最终的意图是询问所有问题

从dialogflow控制台内的先前意图中提取数据以包含在响应中只需使用
#order cream followup.chocolate type
从先前意图获取参数,或使用
$quantity
从当前意图获取参数。但是,虽然
agent.parameters['quantity']
的工作方式类似于
$quantity
,但我找不到在dialogflow实现中实现与
#order cream followup.chocolate type
等效的方法

抱歉,如果这是一个明显的答案,我会迷失在DialiFlow的各种不同文档中,并在google上进行操作

我的代码:(当前只是在添加代码以处理数据输出之前登录到控制台)


要获取仍处于活动状态的上下文(即其
lifespanCount
尚未达到0),可以使用
agent.context.get()
。所以你的例子看起来像

agent.context.get('order-cream-followup').params['chocolate-type']
(这是在库的0.6.0版本中引入的。)

然而。。。这要求上下文仍然有效。如果您使用的是后续意图(可能会变得混乱),则寿命最初仅设置为2,因此它们可能已过期

你应该做两件事:

  • 不要使用后续意图。虽然在某些情况下很有用,但它们可能会将响应选项缩小得太多,并且会进行非常生硬的对话

  • 使用您控制的具有较长使用寿命的上下文作为webhook的一部分来收集结果。因此,在您收集新信息的每个意图之后,您将其存储在一个名为“order”的上下文中,该上下文的生命周期在每次更新后重置为99


  • 谢谢我一直在尝试使用上下文,但没有成功,可能是它已经过期了(
    agent.context
    在我尝试调用它时甚至没有定义)。遗憾的是,由于客户的意愿,选项1不可能实现。将尝试选项2:)如果未定义
    agent.context
    ,则可能存在其他问题。你能用你正在使用的库的版本更新你的问题吗?
    agent.context
    是在库的0.6.0版本中引入的,你说你正在运行0.5.0。由于旧方法已被弃用,您应该更新。非常感谢,我使用的是内联编辑器提供的默认package.json。将升级版本。还有一件事。从v0.6.1开始,上下文名称在Dialogflow的后端自动转换为小写,因此如果您尝试使用大写字符,则您的
    agent.content.get()
    可能返回未定义。此外,
    参数
    已更改为
    参数
    agent.context.get('order-cream-followup').params['chocolate-type']