framely / community

MIT License
0 stars 2 forks source link

[Feature Request]: Value Recommendation (Zero entry prompt, and hard mode exception) (Originally Change runtime part of VR hard's behaviour) #75

Closed yigexu closed 2 years ago

yigexu commented 2 years ago

Is there an existing issue for this?

Summary

Check this: VR (ZEP, and hard exception)

Deprecate

Background: #50 Requirement: 1. runtime 将 VR hard 在 N 条时的表现改为和 soft 相同,即 - 展示 function result list - 当 user 选中的内容匹配到 list 中的 多个 candidates 时,展示匹配到的结果 - 当 user 选中的内容匹配到 list 中的 1个 candidates 时,选中填槽 - 当 user 选中的内容匹配到 list 中的 0个 candidates 时,选中填槽 2. builder 需要对上面 “user 选中内容匹配到 0个 candidates” 的情况自行使用 VC 检查,并告知 user 选中内容不合格 Note: 1. 目前没有 VC 在 MV 下的具体场景,因此对 per value VC 的情况不做设计。但 runtime 现有的设计应该/可以保证 per slot 的 VC 在 MV 时正确表现。

Motivation

/

Describe alternatives you've considered

/

Additional context

No response

xiaoyunwu commented 2 years ago

what? Why not jusr hide hard vr then ?

xiaoyunwu commented 2 years ago

Or have builder use soft

yigexu commented 2 years ago

Why not jusr hide hard vr then:SEP 和 ZEP 不一样

yigexu commented 2 years ago

Or have builder use soft: #50 里面有 hard VR-N 现在的表现,那个表现是不可接受的

yigexu commented 2 years ago

@xiaoyunwu 我以为你对#50 VC方案没什么问题了; 如果 revert 到还在讨论方案的阶段,这个 requirement 本质上就是在要求 runtime 对 VR-N 不区分 hard/soft,且表现对齐 soft。我们只要在概念上(心里的理解)也随之调整就可以。

xiaoyunwu commented 2 years ago

LGTM.

Zeng666666 commented 2 years ago

by design

image

https://naturali-io.feishu.cn/docs/doccn7QgZ5MoRGsMAIXYfBSzSBJ

Zeng666666 commented 2 years ago

我好像没有 get 目前遇到了什么问题,hard VR-N 不可接受的表现是什么呢?我在 #50 中没有找到,里面有好几个

xiaoyunwu commented 2 years ago

I remember it is from one of Chang's writing.

yigexu commented 2 years ago

@Zeng666666

Screen Shot 2022-03-08 at 1 37 56 PM
Zeng666666 commented 2 years ago

有这个 agent 的地址吗?还是我定义一个就可以复现了?

Zeng666666 commented 2 years ago

@yigexu 这个截图是指,VR 在选择 soft 和 hard 的时候,这个 case 的表现是不同的是吗?

image

hisunnymay commented 2 years ago

@Zeng666666 可以看example_2_user_none_one_of_the_vr_but_one_from_entity

  1. hard表现:让user重新选择,但是不输出vr-body
  2. soft表现:直接填槽,user不用重新选择

image

Zeng666666 commented 2 years ago

明白了。我理解这里的问题是:

VR-Hard 时,没有填槽,bot 重新追问时,应当有 prompt + VR(header+body+footer),现在 VR 返回了 header 和 footer,却缺失了 body,这里应该是个 bug

image

VR-soft 和 VR-hard 从定义角度时不同的:

  1. Hard: all the legal candidates will be returned by function.

  2. Soft: only some legal candidates will be returned by function.

因此预期表现应当是不一致的!

我理解这里是不同的,因此不应该改 soft 与 hard 的设计。

@yigexu @hisunnymay @xiaoyunwu

Zeng666666 commented 2 years ago

我 copy 了一个 agent,加了几个字段的定义:

https://framely.naturali.io/org/621d809561f0057d035f6437/agent/6205cc0ad980a8d37823fb8d/intent/6205cc33d980a8d37823fb97

Testcase 见:test75

https://framely.naturali.io/org/621d809561f0057d035f6437/agent/6205cc0ad980a8d37823fb8d/test_case

yigexu commented 2 years ago

1- hard/soft定义的是 VR 推荐什么(推荐的是function返回的candidates,这一点现在也没变),不定义 user 可以填什么。 2- user 填上不合格的结果之后,runtime怎么表现之前没设计过。所以不是 bug。

Zeng666666 commented 2 years ago

可以看一下这个文档:https://naturali-io.feishu.cn/docs/doccn7QgZ5MoRGsMAIXYfBSzSBJ

  1. 退一步说,无论怎样理解或解读,VR 的 header、body、footer 是一个整体,在 {} 内,不应该出现遗失 body 的情况,这里肯定是一个 bug;

  2. Hard 与 Soft 经测试体验是如下,除了 bug 外我理解预期是这样:

Hard 表现:

image

Soft 表现:

image

yigexu commented 2 years ago

目前的表现是你截图这样,但是vr body为空(空行)的体验是没办法被接受的: 我们提供给builder一个annotation,他按照我们的要求去定义了,然后user说了一句话,对话体验成了“你想选择哪天?我们有:请选择。” 这个需求就是定义对runtime的预期以不出现这种体验。

Zeng666666 commented 2 years ago

嗯嗯,需要看一下这个“空 body”是什么原因,所以我上面说是“缺失 body 的 bug”,而不是去修改 hard/soft 的 design

Zeng666666 commented 2 years ago

0315 更新备注

本 issue 包含以下三个问题(0402测试):

✅ 1. 修复 VR Hard 时,未得到 value 再次追问时,VR 只输出 header、footer 未输出 body 的 bug;见“现状分析”中“单值表现”、“多值表现”:https://naturali-io.feishu.cn/docs/doccnNQPx4qOBD8W14n42zowxuh#HUr5Tu

✅ 2. 为 VR Hard 增加,因超出 resultset 范围的异常提示信息“Bad Candidate”;

  1. “Bad Candidate”为 system intent:https://framely.naturali.io/org/5fa0e7dcf549c817cf952edd/agent/5fa27e3f3a0e9462a4a79edb/intent/62299cec1a585c2470d0507b
  2. 超出范围,先回复此 system intent 的 response;
  1. 修改 ZEP 默认表现,走到 ZEP,响应 ZEP prompt,然后 exit。

0309 预期:

  1. 修复 VR Hard 时,未得到 value 再次追问时,VR 只输出 header、footer 未输出 body 的 bug;

  2. 为 VR Hard 增加,因超出 resultset 导致再次追问的异常提示信息“Outlier Prompts”;

详情见文档:https://naturali-io.feishu.cn/docs/doccnNQPx4qOBD8W14n42zowxuh#

xiaoyunwu commented 2 years ago

https://naturali-io.feishu.cn/docs/doccnaJQSKvCyNf5YSDUMknej1z

Zeng666666 commented 2 years ago

测试了一下,目前体验上有这 3 个问题:

  1. 【问题】当 Hard ZEP 的时候,预期回复 ZEP 并退出 intent。目前回复 ZEP 后,就没有其他提示了,也没有追问 what else can I do for you?就好像暂停了,end-user 不知道此时的状态以及该做什么。

    • 【预期】退出 intent 可以有一个系统回复。比如,执行“AbortIntent”的 response,然后按照流程再接“What else can I do for you?”
image
  1. 【问题】在 Hard SEP Explicit 时,end-user 选择了在 slot type 范围内,但不在 function result set 中的 value,没有执行 BadCandidate intent。

image
  1. 【问题】在 MV Hard SEP 时,end-user 选择了在 slot type 范围内,但不在 function result set 中的 value,会填槽进去。

image
XiaoboYuan commented 2 years ago

@Zeng666666 @xiaoyunwu 关于问题1确认两个事情

  1. Main的List slot是叫skill还是叫skills?runtime在搜索target intent(比如在abort intent)过程中对Main做了特殊处理,所以这个是不能随意修改的,需要确定一个
  2. 这里是确定要执行abort intent的response吗?
xiaoyunwu commented 2 years ago

Should we move to skills? Both platform and runtime ?

xiaoyunwu commented 2 years ago

And abort is good for hard zep as default strategy

XiaoboYuan commented 2 years ago

问题1修复了 需要把Main的skill修改为skills 另外AbortIntent的response可能不太对,这是abort intent的问题,我之前在别的地方comment过,可以再开一个issue讨论abort intent

Zeng666666 commented 2 years ago

好的

XiaoboYuan commented 2 years ago

修复了问题2和3

Zeng666666 commented 2 years ago

checked