首页 > 解决方案 > 如何在 JSON 响应中设置系统实体?

问题描述

我有一个复合实体工作正常。但是当我尝试通过另一个组合来改变它的值时,它被解释为一个字符串值:

const entity = {
                  "name":"projects/myproject/agent/sessions/" + sessionID + 
                  "/entityTypes/lia_parametro1",
                     "entities":[{
                             "value":"@sys.email:email",
                               "synonyms":[
                                            "@sys.email:email"
                                           ]
                                              },

当我将此值直接放在 Dialogflow 控制台(@sys.email:email)中时,它可以正常工作,但是当我尝试如上所述动态执行此操作时,它会将“@sys.email:email”理解为一个值,而不是系统实体。

有没有一种特殊的方式来以 Json 格式声明系统实体?

非常感谢任何提示!

迭戈·梅斯基塔

标签: dialogflow-esdialogflow-es-fulfillment

解决方案


我认为您对实体的目的感到困惑。

提取参数时使用实体 - 它们是 Dialogflow 的提示,提示“我正在尝试从用户所说的任何内容中获取一条数据,顺便说一下,我希望您提取的一条数据看起来像这样 -> [@sys.email 的值] "。

当某些东西到达您的履行代码时,整个数据提取过程已经完成,因此实体变得无关紧要。您可以运行您希望提取数据的任何代码(例如正则表达式),然后将其作为参数值分配给某些输出上下文。

引用文档

每个意图参数都有一个类型,称为实体类型,它准确地规定了如何从最终用户表达式中提取数据。

我希望这会有所帮助-如果没有,您能否提供有关您的用例的更多信息?


推荐阅读