framely / community

MIT License
0 stars 2 forks source link

[Bug]: Single-entry prompt is displayed with slot prompt #303

Closed hisunnymay closed 2 years ago

hisunnymay commented 2 years ago

Is there an existing issue for this?

Current Behavior

目前 Single-entry prompt ( SEP ) 的输出的时候还会输出该slot的prompt,不论是Implicit或者Explicit

image

Expected Behavior

当输出 SEP 的时候,不会输出slot的prompt

补充:之前输出 SEP 的时候,不会输出slot的prompt。如下图所示,当输出 SEP 的时候,没有输出slot prompt,而是直接填fill了slot,然后输出了intent.confirmation

image

Framely Link

https://framely.naturali.io/org/615fa4282cc41400665536e3/agent/6267a7ed4d871ce8b2028380/test_case

Zeng666666 commented 2 years ago
  1. 从体验角度讲,我个人觉得这里不是 bug,理由可以看 Discussion #206

  2. 关于 VR 相关 bug fix 时,这里的测试就是这样的 #75 ,如: image

  3. 如果遵循最初的设计文档,这里的体验是 skip both prompt and confirmation (https://naturali-io.feishu.cn/docs/doccn7QgZ5MoRGsMAIXYfBSzSBJ)那上面取消的 case 就会变成:

    • user:cancel reservation
    • bot:Your reservation is large table at 20:00 on 2022-03-20

但在整体梳理 VR 时发现,这里的体验交给 builder 去定义是比较好的,毕竟每一种场景需要的着重点不同。就像 GUI 中的确认弹窗,是一个、还是连弹三个、还是确认后仍需确认、还是输入文字才能确认,都是不一样的处理,于是我提出了 Discussion #206 。但考虑到,这里优先级不高,也不影响 end-user,毕竟多一个 prompt 多一个 confirmation,在一些场景下是有必要且有帮助的,感觉这些可以等 case 多一些之后,再进行深入讨论。

yigexu commented 2 years ago

而且 prompt 是追问,implicit SEP 是 inform。而一个追问之后,却不让用户回答从体验上说不通。

On Wed, 27 Apr 2022 at 11:44, Yige Xu @.***> wrote:

SEP 的设计原来是 skip prompt。如果体验希望改变可以 discuss 一下。但是我理解现在的表现应该是按照之前的设计来的,因为实际设计 chartbot 或者 system intent 的思路都是按照之前的设计想的。

Message ID: @.***>

hisunnymay commented 2 years ago

@Zeng666666 我可以理解“是否skip可以交给builder去定义”,不过我的场景是对frame进行推荐,即:询问end-user要取消哪个订单。在目前的设计下,使用implicit SEP的时候,输出prompt,end-user需要填写完整信息才能直接对该frame填槽。这是我们期望提供的体验吗?

在Chatbot:reservationApp_0425 中的测试结果如下:

  • Bot输出的Prompt 和 Implicit SEP

image

  1. 回答:this one。实际结果:不支持选择。期望:应该允许选择?

image

  1. 回答:first + yes。实际结果:回答“first”之后,又输出了一次SEP。期望:回答“first”之后,应该直接填槽?

image

  1. 回答:small table at 09:00 on 2022-04-28

image

hisunnymay commented 2 years ago

而且 prompt 是追问,implicit SEP 是 inform。而一个追问之后,却不让用户回答从体验上说不通。

@yigexu 没有懂“不让用户回答”的意思是什么,输出prompt之后,是需要用户回答才能进行下去的

Zeng666666 commented 2 years ago

按照这个场景,话术比较恰当的体验应当是:

user:我要取消预定 bot: [prompt]你想取消哪个? [implicit SEP]我们查到你只有一个预定(xxxxx),因此已为你取消。 [Response]您的预定(xxxxx)已取消成功。 我还能帮你做些什么?

hisunnymay commented 2 years ago

@Zeng666666 目前implicit SEP 的表现是:输出SEP和slot prompt,然后等待end-user填槽,没有“填槽 move on”

hisunnymay commented 2 years ago

@Zeng666666 所以现在的bug是:输出SEP后没有自动为该slot填槽是吗?

Zeng666666 commented 2 years ago

是的,implicit SEP 是这样

hisunnymay commented 2 years ago

@Zeng666666 那对于implicit SEP来说,好像没有输出prompt的必要。

我之前以为implicit变成了:只是告诉用户选项只有一个,但是还是需要用户选,所以才输出prompt。如果implicit SEP会自动填槽的话,应该就不用输出prompt了吧?

xiaoyunwu commented 2 years ago

if we do not need user to input, then we should not have prompt.

hisunnymay commented 2 years ago

Checked,符合预期。

  1. 对于 Implicit SEP ,目前不会输出 Prompt
  2. 对于 Explicit SEP,目前会输出 Prompt

效果如下图所示:

  1. 对于 Explicit SEP 回答 “yes”

image

  1. 对于 Implicit SEP 回答 “no”

image