【发布时间】:2018-12-06 22:16:43
【问题描述】:
我最近一直在使用 Dialogflow 来制作聊天机器人来完成一些简单的任务。例如,使用 webhook 和 youtube api,用户要求向他展示视频,然后机器人只用 youtube 视频 url 回答。
例如 用户说 给我看尼尔年轻的丰收之月
经纪人说 给你:https://www.youtube.com/watch?v=n2MtEsrcTTs
我通过使用一个名为“YoutubeQuery”的自定义实体来做到这一点
在我的 Intent 中,我只是做了几个这样的训练短语:
一切正常。
现在我的问题在于我称为 Orders 的新代理
我只想从 firestore 数据库中获取订单 ID,但在到达那里之前我遇到了一个大问题
我定义了订单的 ID 实体,就像使用 youtubeQuery 一样。我添加了一些示例订单 ID,我希望它们都以 OD 开头并在示例之后有 4 位(DX0001、DX0009、DX9999)
现在,除非我给出训练短语中的确切订单 ID 或我在实体中定义的 ID 示例,否则它总是会给我一个带有空参数 OrderID 的响应 我从说“我的订单”开始我的意图,然后我收到提示“你的 ID 是什么?
因此,当我提供一个未在 Intent 的训练短语中使用的 ID 时,我会在参数中得到一个空值,如下所示:
但是当我给出一个在训练短语中使用过的 ID 时,例如第一个 DX0808,它确实有效...
如何在不在训练短语或实体中添加从 DX0001 到 DX9999 的所有可能订单 ID 的情况下完成这项工作。 我的意思是它确实适用于我的 youtube 查询,我可以将任何它“捕获”值的东西放在那里。有什么帮助吗?
【问题讨论】:
-
嗨!你可以试试this 看看是否适合你!
-
我试过了,但只有当我把参数设置为不需要的时候它才有效,一旦我把它按要求它就不起作用了:/
-
我尝试使用@sys.any,它似乎可以工作,但我不知道为什么它不适用于自定义实体。
-
@sai.raj 有什么想法吗?
标签: dialogflow-es actions-on-google chatbot