gpt4 book ai didi

dialogflow-es - Slot-filling 一次填充多个 slot 并弄乱像 "13:00"这样的字符串

转载 作者:行者123 更新时间:2023-12-03 22:51:56 25 4
gpt4 key购买 nike

我有一个意图,其中包含三个必需的插槽(我们称它们为:slot_aslot_bslot_c),所有类型都是 @系统编号。当检测到意图时,系统会提示我询问缺少的插槽:

What's slot_a?

我:1

What's slot_b?

我:2

What's slot_c?

我:3

这很好用。当我添加语音到文本时,问题就开始了,因为有时系统理解“1:00”、“2:00”、“3:00”而不是简单的数字,当这些被提供给 dialogflow 时,它的行为如下:

What's slot_a?

我:1(但被转换为“1:00”)

dialogflow 拆分“1”和“00”,并将“1”分配给a,将“0”分配给b

What's slot_c?

我:3(但被转换为“3:00”)

dialogflow 已经有了 b,所以它直接请求 c

it-IT 语言环境会发生这种情况,我不知道如何应对。将“1”转换为“1:00”是问题的前半部分,但我可以在实现过程中解决它,但随后 dialogflow 在 : 上拆分并且没有给我任何有机会输入下一个缺失的插槽。

编辑添加意图的屏幕截图:

enter image description here

我已经使用了右侧的立即尝试区域,写着:

  1. “随便”(触发意图)
  2. “1:00”(按照系统提示填写slot_a)

结果是slot_b也填了“0”,现在让我填slot_c,我没办法输入真正的slot_b.

最佳答案

这里有几件事在起作用。

首先是“1:00”不是数字。它是什么取决于你想如何解释它。例如,如果这是实体类型 @sys.time,您可以将其视为一个时间,并且它适合一个槽。

Dialogflow 似乎在尝试对槽位填充提供帮助,槽位填充通常用于填充用户输入中的空白,而不是必须提示输入。因此,如果它可以将值填充到参数中,它就会这样做。在这种情况下,它看到“1:00”,它需要填写两个数字,所以它这样做了。

如何解决这个问题取决于您要做什么。如果实体类型确实是时间,请使用 @sys.time 或类似的东西。如果它是您需要解析的字符串,那么 @sys.any 可能更合适。

如果这真的应该是一个数字 - 您希望“1:00”做什么?丢弃“:00”部分?完全忽略它?

在最坏的情况下,您可能需要自己手动提示每一个,而不是尝试使用插槽填充。这使您可以更灵活地处理输入。

目前尚不清楚为什么语音转文本会将数字话语变成时间,除非您还有其他需要时间的东西。如果这是问题 - 这是更大的问题,需要检查。

关于dialogflow-es - Slot-filling 一次填充多个 slot 并弄乱像 "13:00"这样的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54752039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com