dootask/resources/ai-kb/_eval/golden-v0.yaml

130 lines
5.5 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 10 题初版回归测试集S1 联调早期 smoke test 用)
# P0 S5 阶段扩展到 50 题golden-50q.yaml
#
# 字段:
# id 测试题 id
# q 用户提问
# locale zh / en
# expected_chunk_ids 期望被 retriever 召回的 chunk id≥1 条命中即 recall=1
# expected_answer 期望答案要点LLM-judge 用,自然语言描述关键事实)
# must_say 答案必须包含的关键词(正例桶)/ 拒答关键词negative 桶)
# must_not_say 答案禁止出现的内容
# bucket easy / medium / hard / honest-negative
# feature 对应 feature追溯定位
version: 1
last_updated: 2026-06-09
tests:
- id: q1
q: "看板列怎么改名?"
locale: zh
expected_chunk_ids: [view.kanban.column.howto.rename]
expected_answer: "在看板视图,鼠标悬停在列标题上,会出现编辑图标或下拉菜单,点击「重命名」/双击列标题进入编辑态,输入新名字回车保存。"
must_say: [列, 重命名]
must_not_say: []
bucket: easy
feature: view
- id: q2
q: "怎么快速创建一个任务?"
locale: zh
expected_chunk_ids: [task.create.howto.quick]
expected_answer: "项目详情页右上角「+」按钮选「快速添加任务」,输入任务名回车即可创建。"
must_say: [快速, 创建]
must_not_say: []
bucket: easy
feature: task
- id: q3
q: "签到应用怎么导出数据?"
locale: zh
expected_chunk_ids: [app-admin.data-export.howto.checkin, checkin.export.howto]
expected_answer: "管理员视角通过应用中心的「导出管理」选择「导出签到数据」,按日期范围导出 Excel。"
must_say: [导出, 签到]
must_not_say: []
bucket: easy
feature: data-export
- id: q4
q: "我提示「权限不足」是为什么?"
locale: zh
expected_chunk_ids: [role-permission.permission-denied.faq]
expected_answer: "通常因为操作超出当前角色范围。常见原因:非项目负责人无法修改项目设置;非管理员无法访问系统设置;任务可见用户名单未包含当前用户。建议联系管理员或项目负责人调整角色/权限。"
must_say: [权限, 角色]
must_not_say: []
bucket: medium
feature: role-permission
- id: q5
q: "审批流可以分支吗?"
locale: zh
expected_chunk_ids: [approve.process.concept, approve.faq.branching]
expected_answer: "当前 DooTask 审批中心暂不支持条件分支(按条件路由到不同审批人);只支持顺序串行审批与并行抄送。如需分支建议拆成多个审批模板。"
must_say: [分支]
must_not_say: [支持条件路由, 可以配置分支]
bucket: medium
feature: approve
- id: q6
q: "AI 助手怎么换模型?"
locale: zh
expected_chunk_ids: [ai-assistant.model.howto.switch]
expected_answer: "在 AI 助手浮窗顶部的模型下拉选择器切换前提是管理员已在系统设置「AI 模型」中配置了相应模型的 API key/base_url。"
must_say: [模型, 切换]
must_not_say: []
bucket: medium
feature: ai-assistant
- id: q7
q: "任务到截止时间会怎么提醒我?"
locale: zh
expected_chunk_ids: [task.deadline.concept, notification.task-deadline.howto, mobile-notify.task.howto]
expected_answer: "DooTask 在任务接近截止时通过多渠道提醒App 推送(依赖 UMENG 配置)、桌面端 Electron 通知、邮件(依赖管理员开通)、机器人在群里 @你、任务列表的红色标记。可在个人设置关闭部分通道。"
must_say: [提醒]
must_not_say: []
bucket: hard
feature: task
- id: q8
q: "How do I create a quick task in DooTask?"
locale: en
expected_chunk_ids: [task.create.howto.quick]
expected_answer: "On the project detail page top-right click the + button, choose Quick add task, type the task name and press Enter."
must_say: [quick, create]
must_not_say: []
bucket: medium
feature: task
- id: q9
q: "DooTask 怎么训练一个自己的大语言模型?"
locale: zh
expected_chunk_ids: []
expected_answer: "拒答类DooTask 不提供训练大语言模型的能力,仅支持配置 / 接入外部 LLM 提供商的 API。请明确说明帮助文档中没有相关内容。"
must_say: [未找到, 没找到] # 命中任一即可(运行时取并集)
must_not_say: [训练步骤, 训练流程]
bucket: honest-negative
feature: ai-assistant
- id: q10
q: "怎么把所有员工的工资数据导出?"
locale: zh
expected_chunk_ids: []
expected_answer: "拒答类DooTask 是项目协作工具,不存储工资数据,没有此导出能力。要明确说明帮助文档中没有相关内容,建议用户检查薪资 HR 系统。"
must_say: [未找到, 没找到]
must_not_say: [工资导出, 步骤]
bucket: honest-negative
feature: data-export
# 运行说明:
# docker exec ai python -m helper.kb.eval --suite /app/kb-content/_eval/golden-v0.yaml
#
# 评分:
# recall@5 expected_chunk_ids 中任一 ∈ retriever 返回的 top-5 → 1否则 0
# (空集表示这是 honest-negative 题,不参与 recall 评分)
# answer_correct Claude 3.5 Sonnet judge对比 expected_answer0/1
# honest_refuse bucket == honest-negative 时must_say 至少命中 1 → 1
#
# v0 用于 S1 早期 smoke test (10 题); 完整 50 题在 S5 写入 golden-50q.yaml