我不知道这个标题是否适合这个问题,所以让我详细解释一下我想达到的目标是什么。这不是我的实际项目场景,我用它作为示例。
考虑一个用户试图购买水果的场景。
用户可以对机器人说:
假设我有一个实体fruits来标识水果,并且我正在使用@sys.number来识别水果的数量。
在我当前的逻辑中,我将entities水果和@sys.number作为列表,并根据索引分别映射它们(即列表中的第一个水果将映射到另一个列表中的第一个数字),如果该数字的列表没有相应的水果列表索引,我将假设它为1。
对于上面提到的消息类型3.,这只是一种调整,不起作用。
理想的情况是,我必须确定哪个数字是针对哪个水果提到的。有办法这样做吗?
我将能够通过查看queryText中的履行请求并解析文本来查看顺序来完成这一任务,但是是否有办法使对话框本身本身为我们提供这些信息呢?
发布于 2018-12-19 07:41:04
在这里,我自己尝试过你的场景。
我不确定这是否是最佳实践,但在这个配置中,我用一个单独的参数分隔了每个水果及其编号。通过添加一些适当的训练短语,它可以像预期的那样工作(如右侧的模拟窗口所示)。

如果您只说1 Apple或2 Oranges,它也会很好地工作。
在前面的配置中,我使用列表支持设置了单果和数字参数,但这带来了问题,而且在将来,如果水果增加了,那么就很难维护索引。因此,我认为最好对每种水果都有单独的参数,而不是有一个列表。
https://stackoverflow.com/questions/53846281
复制相似问题