astron-eval 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/bin/astron-eval.mjs +111 -0
- package/package.json +24 -0
- package/skills/astron-eval/SKILL.md +60 -0
- package/skills/model-evaluation/SKILL.md +180 -0
- package/skills/model-evaluation/assets/dimensions//345/206/205/345/256/271/347/233/270/345/205/263/346/200/247/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/206/205/345/256/271/347/262/276/347/241/256/347/273/264/345/272/246.json +19 -0
- package/skills/model-evaluation/assets/dimensions//345/207/206/347/241/256/346/200/247/347/273/264/345/272/246-/344/270/252/346/200/247/345/214/226/350/247/204/345/210/222.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/207/206/347/241/256/346/200/247/347/273/264/345/272/246-/344/277/241/346/201/257/345/210/206/346/236/220.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/207/206/347/241/256/346/200/247/347/273/264/345/272/246-/346/227/205/346/270/270/345/207/272/350/241/214.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/207/206/347/241/256/346/200/247/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/210/233/346/204/217/346/200/247-/345/220/270/345/274/225/346/200/247/347/273/264/345/272/246.json +21 -0
- package/skills/model-evaluation/assets/dimensions//345/210/233/346/226/260/346/200/247/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/256/214/346/225/264/346/200/247/347/273/264/345/272/246-/344/277/241/346/201/257/345/210/206/346/236/220.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/256/214/346/225/264/346/200/247/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/275/242/345/274/217/347/233/270/345/205/263/346/200/247/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//345/277/240/350/257/232/345/272/246/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/214/207/344/273/244/351/201/265/345/276/252/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/226/207/346/234/254/345/267/256/345/274/202/345/272/246-TER/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/234/211/346/225/210/346/200/247/347/273/264/345/272/246-/344/270/252/346/200/247/345/214/226/350/247/204/345/210/222.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/234/211/346/225/210/346/200/247/347/273/264/345/272/246-/344/277/241/346/201/257/345/210/206/346/236/220.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/234/211/346/225/210/346/200/247/347/273/264/345/272/246-/346/265/201/347/250/213/350/207/252/345/212/250/345/214/226.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/234/211/346/225/210/346/200/247/347/273/264/345/272/246.json +21 -0
- package/skills/model-evaluation/assets/dimensions//346/240/270/345/277/203/345/205/203/347/264/240/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//346/240/274/345/274/217/351/201/265/345/276/252/347/273/264/345/272/246.json +19 -0
- package/skills/model-evaluation/assets/dimensions//347/211/271/350/211/262/344/272/256/347/202/271/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//347/224/250/344/276/213/347/272/247/350/257/204/346/265/213/347/273/264/345/272/246/346/250/241/346/235/277.json +25 -0
- package/skills/model-evaluation/assets/dimensions//347/233/270/344/274/274/345/272/246-BERTScore/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//347/233/270/344/274/274/345/272/246-Cosine/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//347/233/270/344/274/274/345/272/246-ROUGE/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//347/233/270/345/205/263/346/200/247/347/273/264/345/272/246-/344/270/252/346/200/247/345/214/226/350/247/204/345/210/222.json +20 -0
- package/skills/model-evaluation/assets/dimensions//347/233/270/345/205/263/346/200/247/347/273/264/345/272/246.json +21 -0
- package/skills/model-evaluation/assets/dimensions//347/262/276/347/241/256/346/200/247-BLUE/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//347/262/276/347/241/256/346/200/247-COMET/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//351/200/273/350/276/221/345/220/210/347/220/206/346/200/247/347/273/264/345/272/246.json +20 -0
- package/skills/model-evaluation/assets/dimensions//351/200/273/350/276/221/350/277/236/350/264/257/346/200/247/347/273/264/345/272/246-/344/270/252/346/200/247/345/214/226/350/247/204/345/210/222.json +20 -0
- package/skills/model-evaluation/assets/dimensions//351/200/273/350/276/221/350/277/236/350/264/257/346/200/247/347/273/264/345/272/246-/344/277/241/346/201/257/345/210/206/346/236/220.json +20 -0
- package/skills/model-evaluation/assets/dimensions//351/200/273/350/276/221/350/277/236/350/264/257/346/200/247/347/273/264/345/272/246-/346/265/201/347/250/213/350/207/252/345/212/250/345/214/226.json +20 -0
- package/skills/model-evaluation/assets/dimensions//351/200/273/350/276/221/350/277/236/350/264/257/346/200/247/347/273/264/345/272/246.json +21 -0
- package/skills/model-evaluation/assets/eval-judge.json +11 -0
- package/skills/model-evaluation/assets/experts/business-process-automation.json +71 -0
- package/skills/model-evaluation/assets/experts/content-generation.json +75 -0
- package/skills/model-evaluation/assets/experts/content-match.json +37 -0
- package/skills/model-evaluation/assets/experts/information-analysis.json +87 -0
- package/skills/model-evaluation/assets/experts/marketing-digital-human.json +27 -0
- package/skills/model-evaluation/assets/experts/personalized-planning.json +87 -0
- package/skills/model-evaluation/assets/experts/text-translation.json +103 -0
- package/skills/model-evaluation/assets/experts/tourism-travel.json +119 -0
- package/skills/model-evaluation/assets/templates/custom-dimension.template.json +30 -0
- package/skills/model-evaluation/eval-build.md +281 -0
- package/skills/model-evaluation/eval-execute.md +196 -0
- package/skills/model-evaluation/eval-init.md +237 -0
- package/skills/model-evaluation/processes/dimension-process.md +207 -0
- package/skills/model-evaluation/processes/evalset-create-process.md +184 -0
- package/skills/model-evaluation/processes/evalset-parse-process.md +171 -0
- package/skills/model-evaluation/processes/evalset-supplement-process.md +136 -0
- package/skills/model-evaluation/processes/keypoint-process.md +148 -0
- package/skills/model-evaluation/processes/python-env-process.md +113 -0
- package/skills/model-evaluation/references//344/270/255/351/227/264/344/272/247/347/211/251/350/257/264/346/230/216.md +340 -0
- package/skills/model-evaluation/references//345/206/205/347/275/256/346/250/241/346/235/277/350/257/264/346/230/216.md +149 -0
- package/skills/model-evaluation/references//350/204/232/346/234/254/345/256/232/344/271/211.md +274 -0
- package/skills/model-evaluation/references//350/256/244/350/257/201/346/234/215/345/212/241/346/216/245/345/217/243/350/257/264/346/230/216.md +271 -0
- package/skills/model-evaluation/references//350/257/204/346/265/213/346/234/215/345/212/241/346/216/245/345/217/243/350/257/264/346/230/216.md +455 -0
- package/skills/model-evaluation/references//350/257/204/346/265/213/347/273/264/345/272/246/350/257/264/346/230/216.md +171 -0
- package/skills/model-evaluation/scripts/cfg/eval-auth.cfg +16 -0
- package/skills/model-evaluation/scripts/cfg/eval-server.cfg +1 -0
- package/skills/model-evaluation/scripts/clients/__init__.py +33 -0
- package/skills/model-evaluation/scripts/clients/api_client.py +97 -0
- package/skills/model-evaluation/scripts/clients/auth_client.py +96 -0
- package/skills/model-evaluation/scripts/clients/http_client.py +199 -0
- package/skills/model-evaluation/scripts/clients/oauth_callback.py +397 -0
- package/skills/model-evaluation/scripts/clients/token_manager.py +53 -0
- package/skills/model-evaluation/scripts/eval_auth.py +588 -0
- package/skills/model-evaluation/scripts/eval_dimension.py +240 -0
- package/skills/model-evaluation/scripts/eval_set.py +410 -0
- package/skills/model-evaluation/scripts/eval_task.py +324 -0
- package/skills/model-evaluation/scripts/files/__init__.py +38 -0
- package/skills/model-evaluation/scripts/files/file_utils.py +330 -0
- package/skills/model-evaluation/scripts/files/streaming.py +245 -0
- package/skills/model-evaluation/scripts/utils/__init__.py +128 -0
- package/skills/model-evaluation/scripts/utils/constants.py +101 -0
- package/skills/model-evaluation/scripts/utils/datetime_utils.py +60 -0
- package/skills/model-evaluation/scripts/utils/errors.py +244 -0
- package/skills/model-evaluation/scripts/utils/keypoint_prompts.py +73 -0
- package/skills/skill-driven-eval/SKILL.md +456 -0
- package/skills/skill-driven-eval/agents/grader.md +144 -0
- package/skills/skill-driven-eval/eval-viewer/__init__.py +1 -0
- package/skills/skill-driven-eval/eval-viewer/generate_report.py +485 -0
- package/skills/skill-driven-eval/eval-viewer/viewer.html +767 -0
- package/skills/skill-driven-eval/references/schemas.md +282 -0
- package/skills/skill-driven-eval/scripts/__init__.py +1 -0
- package/skills/skill-driven-eval/scripts/__main__.py +70 -0
- package/skills/skill-driven-eval/scripts/aggregate_results.py +681 -0
- package/skills/skill-driven-eval/scripts/extract_transcript.py +294 -0
- package/skills/skill-driven-eval/scripts/test_aggregate.py +244 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "旅游出行",
|
|
3
|
+
"description": "围绕旅游全流程需求,多角度评测模型在提供实用出行指导方面的表现",
|
|
4
|
+
"type": "通用维度级评测",
|
|
5
|
+
"evals": [
|
|
6
|
+
{
|
|
7
|
+
"name": "形式相关性",
|
|
8
|
+
"type": "llm-judge",
|
|
9
|
+
"judge_id": "",
|
|
10
|
+
"params": {
|
|
11
|
+
"answer": "answer",
|
|
12
|
+
"reference": "reference"
|
|
13
|
+
},
|
|
14
|
+
"prompt": {
|
|
15
|
+
"role": "",
|
|
16
|
+
"definition": "助手响应内容的形式是否满足要求。注意:只关注助手响应内容的形式,忽略用户问题。\r\n其中,旅游行程攻略是指为旅行者定制的详细计划指南,旨在通过整合目的地信息如交通、住宿、景点、餐饮等优化行程安排,提升旅行体验,不能是视频脚本或景点清单。",
|
|
17
|
+
"instruct": "助手响应内容是否为旅游行程攻略,是通过,否不通过。",
|
|
18
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
19
|
+
},
|
|
20
|
+
"weight": 0.1
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "内容相关性",
|
|
24
|
+
"type": "llm-judge",
|
|
25
|
+
"judge_id": "",
|
|
26
|
+
"params": {
|
|
27
|
+
"answer": "answer",
|
|
28
|
+
"reference": "reference"
|
|
29
|
+
},
|
|
30
|
+
"prompt": {
|
|
31
|
+
"role": "",
|
|
32
|
+
"definition": "助手响应内容和用户问题的相关性。\r\n例如,用户问题是出一份五一合肥周边亲子游行程,助手响应要输出五一&合肥周边&亲子游的行程规划强相关的内容。",
|
|
33
|
+
"instruct": "助手响应内容是否与用户问题强相关,是通过,否不通过。\r\n\r\n评分建议:\r\n - 评判过程要考虑助手响应内容是否满足用户需求,比如指定的时间、路线、途经点、穿越点等等。不考虑行程安排是否合理。\r\n - 如果用户需求是一日游,但助手响应安排了住宿,不影响相关性评判。\r\n - 如果助手响应的全部内容只是说明其会生成或已生成相关内容,但是实际并没有对应内容,则认为不通过。",
|
|
34
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
35
|
+
},
|
|
36
|
+
"weight": 0.15
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "核心元素",
|
|
40
|
+
"type": "llm-score",
|
|
41
|
+
"judge_id": "",
|
|
42
|
+
"params": {
|
|
43
|
+
"answer": "answer",
|
|
44
|
+
"reference": "reference"
|
|
45
|
+
},
|
|
46
|
+
"prompt": {
|
|
47
|
+
"role": "",
|
|
48
|
+
"definition": "助手响应内容中核心元素的覆盖情况。\r\n其中,核心元素包含交通、景点信息、行程规划、住宿安排、饮食推荐,共5个核心元素。",
|
|
49
|
+
"instruct": "5分:包含交通、景点信息、行程规划、住宿安排和饮食推荐。\r\n4分:包含交通、景点信息、行程规划3个核心元素,另加住宿安排或者饮食推荐中任一个。\r\n3分:包含交通、景点信息、行程规划三项3个核心元素,对住宿安排和饮食推荐不做要求。\r\n2分:包含交通、景点信息、行程规划中任两个核心元素,对住宿安排和饮食推荐不做要求。\r\n1分:包含交通、景点信息、行程规划中3个元素中任一个,对住宿安排和饮食推荐不做要求。\r\n0分:内容不包含交通、景点信息、行程规划的元素。",
|
|
50
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
51
|
+
},
|
|
52
|
+
"weight": 0.25
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "逻辑合理性",
|
|
56
|
+
"type": "llm-score",
|
|
57
|
+
"judge_id": "",
|
|
58
|
+
"params": {
|
|
59
|
+
"answer": "answer",
|
|
60
|
+
"reference": "reference"
|
|
61
|
+
},
|
|
62
|
+
"prompt": {
|
|
63
|
+
"role": "",
|
|
64
|
+
"definition": "规划的行程需符合逻辑合理性,包括逻辑与行程合理性,如时间合理,路线可执行,行程整体闭环。",
|
|
65
|
+
"instruct": "必须先设置分数上限并做细节检查,然后在分数上限范围内依据标准进行评分。\r\n其中,分数上限仅为基础,具体得分必须严格根据后续细节检查和评分标准调整,可能降至1分或0分,但不能超过分数上限。\r\n具体步骤如下:\r\n1. 设置分数上限: \r\n - 如果用户没有指定出发点,检查助手响应内容是否包含抵达目的地的交通方式,如果不包含,判定分数上限为2分(出发缺失)\r\n - 如果用户明确指定具体出发点,但助手响应内容缺失从该具体出发点到目的地的交通安排,判定分数上限为2分(出发点不一致)\r\n - 检查助手响应内容是否提及返程(只要提及即可,不需要具体安排),如果没有提及,判定分数上限为2分(返程缺失)\r\n2. 细节检查:\r\n - 评估前先强制检查以下细节,供后续评分参考:\r\n 1. 时间安排:是否过于紧凑(如夜间长途接驳),是否存在冲突(如时间重叠)\r\n 2. 路线合理性:是否跳跃、绕路或折返导致效率低下\r\n 3. 整体逻辑:是否严重混乱(如虚构元素、关键节点冲突)\r\n 4. 可执行性:行程是否脱离实际(如无法实现的交通衔接)\r\n3. 在分数上限范围内依据标准进行评分:\r\n 5分:\r\n 逻辑严谨:行程逻辑完美,时间分配科学,节奏舒缓有序,兼顾兴趣与体力分配。\r\n 闭环完整:出发到返程均无缺失,全流程闭合,每日行程过渡自然(如首日抵达住宿地、末日返程前无空白期),关键节点全明确(如航班/车次、住宿地点)。\r\n 4分:\r\n 逻辑通顺:行程框架合理,偶有小绕路,时间较充实但局部稍紧凑。\r\n 闭环完整:出发到返程均无缺失,主要流程闭合(如首尾交通明确),但个别跨天衔接未细化(如抵达次日的行程起点未明确)。\r\n 3分:\r\n 逻辑可接受:行程基本可行(如存在绕行或折返),时间安排存在部分紧凑/宽松失衡(如前半程过松/后半程仓促)。\r\n 闭环有缺口:跨天衔接存在断层(如某日结束后未明确次日起点),但核心流程无问题,出发到返程均无缺失。\r\n 2分:\r\n 逻辑混乱:行程跳跃混乱,时间冲突频发(如夜间长途接驳失误),景点分布跳跃导致效率低下。\r\n 闭环断裂:行程存在明显断层(如某日完全空白或交通断档),核心环节缺失,出发缺失或返程缺失。\r\n 1分:\r\n 逻辑严重缺陷:行程严重不合理,关键节点冲突(如交通延误风险高),闭环完全缺失,出发缺失或返程缺失。\r\n 0分:\r\n 毫无逻辑可言,完全脱离实际,虚构拼凑,无法执行。",
|
|
66
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
67
|
+
},
|
|
68
|
+
"weight": 0.15
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "准确性",
|
|
72
|
+
"type": "llm-score",
|
|
73
|
+
"judge_id": "",
|
|
74
|
+
"params": {
|
|
75
|
+
"answer": "answer",
|
|
76
|
+
"reference": "reference"
|
|
77
|
+
},
|
|
78
|
+
"prompt": {
|
|
79
|
+
"role": "",
|
|
80
|
+
"definition": "响应对元素准确性的校验,枚举需检查准确性元素为:景点信息、交通方式&价格、门票、住宿地点&价格。",
|
|
81
|
+
"instruct": "5分:完全准确:\r\n所有元素信息完全正确,包括不限于交通方式、时间、价格与信源数据一致,景点开放时间、门票价格标注最新来源(如2024年官网),天气、必需物品、美食推荐、费用预算等数据真实可靠。无任何虚构内容(0处'小众秘境''独家路线'等误导表述)\r\n4分:存在瑕疵:\r\n≥90%的元素信息正确,存在10%的元素出现误差。\r\n3分:基本正确:\r\n≥60%的元素信息正确,如推荐的酒店已拆迁。\r\n2分:大部分错误:\r\n≥40%元素正确,存在较多的错误,如景点开放时间、门票价格与信源不符;必需物品遗漏关键项(如身份证未提及)。\r\n弱元素错误较多:如推荐的酒店已拆迁、美食菜品与当地不符\r\n1分:严重失实:\r\n≥20%元素信息正确,绝大多数元素错误严重影响可用性:\r\n如交通方式不可行(如推荐停运的列车班次)、核心景点信息错误(如营业时间完全颠倒)、多数推荐内容不真实(如虚构餐厅、酒店)\r\n0分:完全不可信:\r\n元素全部错误:交通、景点、门票等核心信息均为虚构;涉及敏感内容或高风险活动(如推荐政治争议地点)",
|
|
82
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
83
|
+
},
|
|
84
|
+
"weight": 0.15
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "忠诚度",
|
|
88
|
+
"type": "llm-score",
|
|
89
|
+
"judge_id": "",
|
|
90
|
+
"params": {
|
|
91
|
+
"answer": "answer",
|
|
92
|
+
"reference": "reference"
|
|
93
|
+
},
|
|
94
|
+
"prompt": {
|
|
95
|
+
"role": "",
|
|
96
|
+
"definition": "回复结果涉及到搜索带有溯源的标识的内容进行检测(如引用链接、来源标识等)。可以通过关键信息对比回复内容与溯源标记的原文,判断其一致性。",
|
|
97
|
+
"instruct": "5分:完全溯源:\r\n- 涉及搜索数据项(景点/交通/住宿等)100%标注完整来源标识,如\"故宫官网2024/5\"+\"链接可访问\"),存在0信源不匹配情况。\r\n- 标注的信源与内容逻辑一致(如某景点门票价格标注'XX景区官网',而非其他无关平台)\r\n\r\n3分:部分脱节:\r\n>=60%的标注内容信源匹配(不匹配的情况如天气数据标注'百科'而非气象网站)\r\n\r\n1分:大部分错误:\r\n<60%的标注内容信源匹配,大部分>=40以上不匹配\r\n如\r\n- 高铁时刻表标注'旅游博主'而非12306\r\n- 标注与内容无关的来源(如餐饮数据标注交通网站)\r\n- 系统性格式错误(如混用'XX网/网友推荐/数据显示'等非标准表述)",
|
|
98
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
99
|
+
},
|
|
100
|
+
"weight": 0.1
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "特色亮点",
|
|
104
|
+
"type": "llm-score",
|
|
105
|
+
"judge_id": "",
|
|
106
|
+
"params": {
|
|
107
|
+
"answer": "answer",
|
|
108
|
+
"reference": "reference"
|
|
109
|
+
},
|
|
110
|
+
"prompt": {
|
|
111
|
+
"role": "",
|
|
112
|
+
"definition": "评估助手响应内容是否体现出此行程的地域独特性带来的情感价值体验。",
|
|
113
|
+
"instruct": "5分:超强心动,非去不可:\r\n 行程规划中展现的目的地亮点直击用户渴望,引发用户强烈兴奋、期待或幸福感,是行程的'非去不可'理由。\r\n4分:很想体验,明显吸引力:\r\n 行程规划中展现的目的地亮点能够唤起用户的兴趣和向往,让用户眼前一亮,产生明显的愉悦想象,是行程的重要吸引力。\r\n3分:有点兴趣,轻微好感:\r\n 行程规划中展现的目的地亮点可以给用户带来好感或好奇,但情绪波动不大,属于'可接受但不惊艳'的程度。\r\n2分:有亮点但不够打动人心:\r\n 行程规划中展现的亮点能引发用户短暂注意,但缺乏深入的情感共鸣点,存在感薄弱。\r\n1分:亮点普通,可有可无:\r\n 行程规划中展现的亮点平平无奇,几乎无法引发用户情绪共鸣,感觉可有可无。\r\n0分:下头了!负面情绪:\r\n 行程规划中描述的亮点冗杂或无特色,引发用户无聊、困惑甚至反感等负面情绪,降低出行欲。\r\n\r\n特殊场景评分建议:\r\n - 当助手响应内容未生成完、被截断或被终止,只能1分。\r\n - 当助手响应内容表示已生成所需内容,但实际无具体内容时,只能1分。",
|
|
114
|
+
"step": "注意,整个评判过程必须只考虑该评测维度,并严格遵循评分标准和评分建议进行评分。\r\n另外,整个评判过程必须忽略用户对字数的要求和限制,不考虑助手响应是否满足字数要求。\r\n\r\n请遵循下面的步骤进行评判:\r\n 1. 深入分析用户问题,识别用户的具体诉求。\r\n 2. 结合对话场景深入分析助手响应。\r\n 3. 准确把握当前的维度说明和评判标准等,区分是客观判断还是主观评分。\r\n 4. 以裁判的视角结合场景和评判维度对助手响应进行评判。\r\n 5. 先清晰地陈述评判依据,再得出最终的评判结果。如果是评分方式,评判结果只能是评分标准中列举的分数值。\r\n 6. 严格按照输出格式要求提供最终的输出内容。"
|
|
115
|
+
},
|
|
116
|
+
"weight": 0.1
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scenario": "自定义场景",
|
|
3
|
+
"description": "请填写场景描述",
|
|
4
|
+
"dimensions": [
|
|
5
|
+
{
|
|
6
|
+
"name": "维度1名称",
|
|
7
|
+
"description": "维度1的详细描述",
|
|
8
|
+
"weight": 0.25,
|
|
9
|
+
"criteria": "1-5分评分标准说明"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "维度2名称",
|
|
13
|
+
"description": "维度2的详细描述",
|
|
14
|
+
"weight": 0.25,
|
|
15
|
+
"criteria": "1-5分评分标准说明"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "维度3名称",
|
|
19
|
+
"description": "维度3的详细描述",
|
|
20
|
+
"weight": 0.25,
|
|
21
|
+
"criteria": "1-5分评分标准说明"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "维度4名称",
|
|
25
|
+
"description": "维度4的详细描述",
|
|
26
|
+
"weight": 0.25,
|
|
27
|
+
"criteria": "1-5分评分标准说明"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eval-build
|
|
3
|
+
description: Use when initialization completed and need to configure evaluation dimensions, judges, or process evaluation datasets
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 评测构建阶段
|
|
7
|
+
|
|
8
|
+
## 目标
|
|
9
|
+
|
|
10
|
+
完成评测场景确认、维度配置、评委配置、评测集处理后,进入执行阶段。
|
|
11
|
+
|
|
12
|
+
核心原则:**按序执行,用户确认优先,配置校验后置**。
|
|
13
|
+
|
|
14
|
+
**前置验证**:`auth.json` 存在、`{session-id}/` 目录存在。验证失败则返回初始化阶段。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 何时使用
|
|
19
|
+
|
|
20
|
+
- 初始化阶段已完成(环境、鉴权、会话目录就绪)
|
|
21
|
+
- 需要配置评测场景、维度、评委或评测集时
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 阶段完成标志
|
|
26
|
+
|
|
27
|
+
| 验证条件 | 不满足时执行 |
|
|
28
|
+
|----------|--------------|
|
|
29
|
+
| `eval-dimension.json` 存在 | 任务1、任务2 |
|
|
30
|
+
| `eval-judge.json` 存在 | 任务3 |
|
|
31
|
+
| `evalset-meta.json` 存在 | 任务4 |
|
|
32
|
+
|
|
33
|
+
全部通过后,进入执行阶段。
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 流程速查
|
|
38
|
+
|
|
39
|
+
| 编号 | 流程名称 | 文档位置 | 调用时机 |
|
|
40
|
+
|------|----------|----------|----------|
|
|
41
|
+
| 流程1 | 评测集生成 | [evalset-create-process.md](./processes/evalset-create-process.md) | 任务4步骤1 |
|
|
42
|
+
| 流程2 | 评测集补充 | [evalset-supplement-process.md](./processes/evalset-supplement-process.md) | 任务4步骤1 |
|
|
43
|
+
| 流程3 | 评测集解析 | [evalset-parse-process.md](./processes/evalset-parse-process.md) | 任务4步骤2 |
|
|
44
|
+
| 流程4 | 评测点生成 | [keypoint-process.md](./processes/keypoint-process.md) | 任务4步骤4 |
|
|
45
|
+
| 流程5 | 定制用例级评测配置 | [dimension-process.md](./processes/dimension-process.md#流程5定制用例级评测配置) | 任务2步骤3 |
|
|
46
|
+
| 流程6 | 通用维度级评测配置 | [dimension-process.md](./processes/dimension-process.md#流程6通用维度级评测配置) | 任务2步骤3 |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 任务列表
|
|
51
|
+
|
|
52
|
+
### 任务1:确认评测场景
|
|
53
|
+
|
|
54
|
+
**目标**:收集用户需求 → 确认评测场景。
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
#### 步骤1:收集用户需求
|
|
59
|
+
|
|
60
|
+
**判断1**:分析历史对话,识别用户已提供的信息。
|
|
61
|
+
|
|
62
|
+
| 信息类型 | 识别依据 | 后续处理 |
|
|
63
|
+
|----------|----------|----------|
|
|
64
|
+
| 评测场景 | 场景名称或描述 | 必需。若未提供则询问 |
|
|
65
|
+
| 评测方式 | "维度级"/"用例级"/"评测要点"等关键词 | 若用户提供则保存,否则跳过 |
|
|
66
|
+
| 评测维度 | 具体维度名称列表 | 若用户提供则保存,否则跳过 |
|
|
67
|
+
|
|
68
|
+
| 场景识别结果 | 动作 |
|
|
69
|
+
|--------------|------|
|
|
70
|
+
| 场景已明确 | 输出识别结果(含可选信息),进入步骤2 |
|
|
71
|
+
| 场景不明确 | → 判断2 |
|
|
72
|
+
|
|
73
|
+
**判断2**:展示内置模板列表,等待用户选择。
|
|
74
|
+
|
|
75
|
+
参考 [内置模板说明.md](./references/内置模板说明.md) 第1节"专家模板"。
|
|
76
|
+
|
|
77
|
+
**注意** 以**表格形式**展示(含序号、模板名称、适用说明、评测方式),末尾添加"其他场景"选项。让用户输入序号。
|
|
78
|
+
|
|
79
|
+
当选择"其他场景"后,需进一步记录场景描述,再进入步骤2。
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
#### 步骤2:确认场景信息
|
|
84
|
+
|
|
85
|
+
输出识别结果,等待用户确认。
|
|
86
|
+
|
|
87
|
+
| 条件 | 动作 |
|
|
88
|
+
|------|------|
|
|
89
|
+
| 用户已明确给出具体场景名称 | 无需确认,进入任务2 |
|
|
90
|
+
| 用户提供场景描述或多个场景名称 | 输出识别结果,等待用户确认 |
|
|
91
|
+
|
|
92
|
+
确认后进入任务2。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 任务2:确认评测标准
|
|
97
|
+
|
|
98
|
+
**目标**:匹配专家模板 → 自定义配置(按需) → 确认配置摘要。
|
|
99
|
+
|
|
100
|
+
**输出**:`{work-dir}/.eval/{session-id}/eval-dimension.json`
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
#### 步骤1:匹配专家模板
|
|
105
|
+
|
|
106
|
+
参考 [内置模板说明.md](./references/内置模板说明.md) 第1节"专家模板",根据任务1确认的评测场景匹配模板。
|
|
107
|
+
|
|
108
|
+
| 匹配结果 | 动作 |
|
|
109
|
+
|----------|------|
|
|
110
|
+
| 匹配成功 | 复制模板 → 进入步骤4 |
|
|
111
|
+
| 匹配失败 | → 步骤2 |
|
|
112
|
+
|
|
113
|
+
**复制命令**:
|
|
114
|
+
```bash
|
|
115
|
+
cp {skill-dir}/assets/experts/{template-name}.json {work-dir}/.eval/{session-id}/eval-dimension.json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
#### 步骤2:确定评测方式
|
|
121
|
+
|
|
122
|
+
**判断**:分析任务1收集的评测方式信息。
|
|
123
|
+
|
|
124
|
+
| 评测方式 | 判断依据 |
|
|
125
|
+
|----------|----------|
|
|
126
|
+
| 定制用例级 | 用户明确提及"用例级"或"评测要点" |
|
|
127
|
+
| 通用维度级 | 用户明确提及"维度级" |
|
|
128
|
+
| 未明确 | 无相关信息 | → 询问用户 |
|
|
129
|
+
|
|
130
|
+
**询问用户**:
|
|
131
|
+
|
|
132
|
+
请选择评测方式:
|
|
133
|
+
1. 通用维度级评测 - 宏观全面覆盖,适用标准评测场景
|
|
134
|
+
2. 定制用例级评测 - 细节偏好对齐,适用定制化需求
|
|
135
|
+
|
|
136
|
+
确认后进入步骤3。
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
#### 步骤3:自定义评测配置
|
|
141
|
+
|
|
142
|
+
根据评测方式执行对应流程:
|
|
143
|
+
|
|
144
|
+
| 评测方式 | 执行流程 |
|
|
145
|
+
|----------|----------|
|
|
146
|
+
| 定制用例级 | 执行流程5 → 步骤4 |
|
|
147
|
+
| 通用维度级 | 执行流程6 → 步骤4 |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
#### 步骤4:确认配置摘要
|
|
152
|
+
|
|
153
|
+
展示维度配置摘要,等待用户确认或调整。
|
|
154
|
+
|
|
155
|
+
| 调整类型 | 处理方式 |
|
|
156
|
+
|----------|----------|
|
|
157
|
+
| 权重调整 | 更新权重,确保总和为1.0 |
|
|
158
|
+
| 维度增删 | 从内置库选择或删除 |
|
|
159
|
+
| 高级调整 | 提供配置路径 `{work-dir}/.eval/{session-id}/eval-dimension.json`,用户自行编辑 |
|
|
160
|
+
|
|
161
|
+
**⚠️ 不可跳过**:必须等待用户确认或调整维度配置。
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### 任务3:确认评委配置
|
|
166
|
+
|
|
167
|
+
#### 步骤1:检查 `eval-judge.json` 是否存在。
|
|
168
|
+
|
|
169
|
+
- **文件有效** → 进入任务4
|
|
170
|
+
- **文件无效或不存在** → 进入步骤2
|
|
171
|
+
|
|
172
|
+
#### 步骤2:复制默认配置:
|
|
173
|
+
```bash
|
|
174
|
+
cp {skill-dir}/assets/eval-judge.json {work-dir}/.eval/{session-id}/eval-judge.json
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### 任务4:确认评测集
|
|
180
|
+
|
|
181
|
+
**目标**:识别评测集来源 → 执行前置流程 → 解析转换 → 上传。
|
|
182
|
+
|
|
183
|
+
**输出**:`{work-dir}/.eval/{session-id}/evalset/evalset-meta.json`
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
#### 步骤1:识别评测集来源
|
|
188
|
+
|
|
189
|
+
**判断**:分析历史对话,查找评测集相关信息。
|
|
190
|
+
|
|
191
|
+
| 识别结果 | 判断依据 | 后续动作 |
|
|
192
|
+
|----------|----------|----------|
|
|
193
|
+
| 已有完整评测集 | 文件路径 + 问题+答案字段 | → 步骤2 |
|
|
194
|
+
| 仅有问题集 | 文件路径 + 仅问题字段 | 执行流程2 → 步骤2 |
|
|
195
|
+
| 需生成评测集 | "生成"、"无评测集"等意图 | 执行流程1 → 步骤2 |
|
|
196
|
+
| 无法判断 | 无相关信息 | → 询问用户 |
|
|
197
|
+
|
|
198
|
+
**询问用户**(无法判断时):
|
|
199
|
+
```
|
|
200
|
+
请确认评测集来源:
|
|
201
|
+
1. 我已有完整评测集文件(包含问题和答案)
|
|
202
|
+
2. 我仅有问题集,需要补充答案
|
|
203
|
+
3. 我没有评测集,需要自动生成
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
#### 步骤2:执行解析流程
|
|
209
|
+
|
|
210
|
+
执行流程3,完成后进入步骤3。
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
#### 步骤3:标准化转换
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
{python-env}{python-cmd} {skill-dir}/scripts/eval_set.py normalize \
|
|
218
|
+
--input {work-dir}/.eval/{session-id}/evalset/evalset-prepared.{ext} \
|
|
219
|
+
--mapping {work-dir}/.eval/{session-id}/evalset/evalset-fields-mapping.json \
|
|
220
|
+
--output {work-dir}/.eval/{session-id}/evalset/evalset-standard.jsonl
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
#### 步骤4:评测点生成(按需)
|
|
226
|
+
|
|
227
|
+
**判断**:是否需要评测点生成?
|
|
228
|
+
|
|
229
|
+
| 评测方式 | keypoint 字段状态 | 动作 |
|
|
230
|
+
|----------|-------------------|------|
|
|
231
|
+
| 通用维度级 | - | 跳过 → 步骤5 |
|
|
232
|
+
| 定制用例级 | 存在且全部非空 | 跳过 → 步骤5 |
|
|
233
|
+
| 定制用例级 | 不存在或部分为空 | 执行流程4 → 步骤5 |
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
#### 步骤5:上传评测集
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
{python-env}{python-cmd} {skill-dir}/scripts/eval_set.py submit \
|
|
241
|
+
--auth {work-dir}/.eval/auth.json \
|
|
242
|
+
--config {skill-dir}/scripts/cfg/eval-server.cfg \
|
|
243
|
+
--evalset {work-dir}/.eval/{session-id}/evalset/evalset-standard.jsonl \
|
|
244
|
+
--output {work-dir}/.eval/{session-id}/evalset/evalset-meta.json
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**失败处理**:参考 [评测服务接口说明.md](./references/评测服务接口说明.md#错误码)。
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Red Flags
|
|
252
|
+
|
|
253
|
+
| 违规行为 | 简洁理由 |
|
|
254
|
+
|----------|----------|
|
|
255
|
+
| 跳过场景确认 | 场景是专家模板匹配的必需依据 |
|
|
256
|
+
| 跳过维度确认 | 维度权重影响评测结果,必须经用户确认 |
|
|
257
|
+
| 跳过映射确认 | 字段映射必须经用户确认后才能标准化 |
|
|
258
|
+
| 权重设置不正确 | 所有维度权重总和必须为1.0 |
|
|
259
|
+
| 跳过格式验证 | 评测集格式检查可防止上传失败 |
|
|
260
|
+
|
|
261
|
+
> 通用违规行为见 [SKILL.md Red Flags](./SKILL.md#red-flags---停止并检查)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 常见错误
|
|
266
|
+
|
|
267
|
+
| 错误 | 原因 | 解决方案 |
|
|
268
|
+
|------|------|----------|
|
|
269
|
+
| 场景识别失败 | 描述不清晰或超出预设场景 | 明确询问用户或要求补充说明 |
|
|
270
|
+
| 专家模板匹配失败 | 场景不在预设模板库 | 进入自定义流程,参考内置维度 |
|
|
271
|
+
| 维度配置错误 | 模板格式不符合规范 | 检查 evals 数组结构和 judge_id 字段 |
|
|
272
|
+
| 评测集解析失败 | 文件格式损坏或不支持 | 检查格式,提供支持格式列表 |
|
|
273
|
+
| 字段映射不明确 | 原始字段名与标准字段差异大 | 展示示例数据并请求确认 |
|
|
274
|
+
|
|
275
|
+
> API 错误码见 [评测服务接口说明.md](./references/评测服务接口说明.md#错误码)
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## 变量速查
|
|
280
|
+
|
|
281
|
+
变量定义见 [SKILL.md 变量速查](./SKILL.md#变量速查)
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eval-execute
|
|
3
|
+
description: Use when build phase completed and ready to submit or check evaluation tasks
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 评测执行阶段
|
|
7
|
+
|
|
8
|
+
## 目标
|
|
9
|
+
|
|
10
|
+
完成任务提交、状态监控、结果展示后,评测流程结束。
|
|
11
|
+
|
|
12
|
+
核心原则:**轮询优先,状态驱动,错误可追溯**。
|
|
13
|
+
|
|
14
|
+
**前置验证**:`eval-dimension.json`、`evalset-meta.json`、`eval-judge.json` 存在。缺失则返回构建阶段(加载 `eval-build.md`)。
|
|
15
|
+
|
|
16
|
+
## 何时使用
|
|
17
|
+
|
|
18
|
+
- 构建阶段已完成(维度、评测集、评委配置就绪)
|
|
19
|
+
- 需要提交、查询或展示评测任务时
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 阶段完成标志
|
|
24
|
+
|
|
25
|
+
**验证顺序**(按序执行,任一失败则执行对应任务):
|
|
26
|
+
|
|
27
|
+
1. ✅ 检查 `{work-dir}/.eval/{session-id}/evaltask/evaltask-meta.json` 存在 → 否则执行任务1
|
|
28
|
+
2. ✅ 检查任务状态为 `Succeeded` 或 `Failed` → 否则执行任务2
|
|
29
|
+
3. ✅ 评测结果已展示给用户 → 否则执行任务3
|
|
30
|
+
|
|
31
|
+
全部通过后,评测流程结束。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 任务列表
|
|
36
|
+
|
|
37
|
+
### 任务1:提交评测任务
|
|
38
|
+
|
|
39
|
+
执行任务时展示:
|
|
40
|
+
|
|
41
|
+
> **当前任务:提交评测任务**
|
|
42
|
+
> 校验配置完整性 → 提交至评测服务 → 获取任务ID
|
|
43
|
+
|
|
44
|
+
**执行流程**(脚本自动执行):
|
|
45
|
+
|
|
46
|
+
1. **填充 judge_id**:将评委配置中的 `id` 填充到所有主观评测维度
|
|
47
|
+
2. **校验配置**:检查维度配置完整性(必填字段、权重总和等)
|
|
48
|
+
3. **提交任务**:将任务提交至远程评测服务
|
|
49
|
+
|
|
50
|
+
**提交命令**:
|
|
51
|
+
```bash
|
|
52
|
+
{python-env}{python-cmd} "{skill-dir}/scripts/eval_task.py" submit \
|
|
53
|
+
--config "{skill-dir}/scripts/cfg/eval-server.cfg" \
|
|
54
|
+
--auth "{work-dir}/.eval/auth.json" \
|
|
55
|
+
--eval_set "{work-dir}/.eval/{session-id}/evalset/evalset-meta.json" \
|
|
56
|
+
--eval_dimension "{work-dir}/.eval/{session-id}/eval-dimension.json" \
|
|
57
|
+
--eval_judge "{work-dir}/.eval/{session-id}/eval-judge.json" \
|
|
58
|
+
--output "{work-dir}/.eval/{session-id}/evaltask/evaltask-meta.json"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**失败处理**:参考 [评测服务接口说明.md](./references/评测服务接口说明.md#错误码) 进行排查。
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### 任务2:查询任务状态
|
|
66
|
+
|
|
67
|
+
执行任务时展示:
|
|
68
|
+
|
|
69
|
+
> **当前任务:查询任务状态**
|
|
70
|
+
> 轮询任务状态 → 等待执行完成 → 下载评测报告
|
|
71
|
+
|
|
72
|
+
#### 执行方式
|
|
73
|
+
|
|
74
|
+
| 方式 | 说明 |
|
|
75
|
+
|------|------|
|
|
76
|
+
| 后台轮询(默认) | 使用 Bash 后台模式执行轮询,用户可继续其他工作,完成后自动通知主代理 |
|
|
77
|
+
| 前台轮询 | 阻塞等待,实时展示状态(用户要求时使用) |
|
|
78
|
+
| 单次查询 | 立即返回当前状态(仅需检查状态时使用) |
|
|
79
|
+
|
|
80
|
+
#### 后台轮询(默认)
|
|
81
|
+
|
|
82
|
+
使用 Bash 工具执行轮询命令,设置 `run_in_background: true`,继承主会话权限。
|
|
83
|
+
|
|
84
|
+
> **注意**:不使用 Agent 工具启动子代理,因为子代理无法继承主会话的权限配置,会导致执行失败。
|
|
85
|
+
|
|
86
|
+
**步骤1**:启动后台任务
|
|
87
|
+
|
|
88
|
+
使用 Bash 工具执行以下命令,设置 `run_in_background: true`:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
{python-env}{python-cmd} "{skill-dir}/scripts/eval_task.py" status \
|
|
92
|
+
--config "{skill-dir}/scripts/cfg/eval-server.cfg" \
|
|
93
|
+
--auth "{work-dir}/.eval/auth.json" \
|
|
94
|
+
--evaltask "{work-dir}/.eval/{session-id}/evaltask/evaltask-meta.json" \
|
|
95
|
+
--output "{work-dir}/.eval/{session-id}/evaltask/evaltask-result.json" \
|
|
96
|
+
--poll --interval 30 --timeout 3600
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Bash 工具参数**:
|
|
100
|
+
- `run_in_background: true` - 后台执行
|
|
101
|
+
- `timeout: 600000` - 超时时间(毫秒)
|
|
102
|
+
|
|
103
|
+
**步骤2**:提示用户
|
|
104
|
+
|
|
105
|
+
> 评测任务正在后台执行,您可以继续其他工作。任务完成后会自动通知您。
|
|
106
|
+
|
|
107
|
+
**步骤3**:处理结果
|
|
108
|
+
|
|
109
|
+
后台任务完成后,主代理收到通知,根据状态执行动作:
|
|
110
|
+
|
|
111
|
+
| 状态 | 动作 |
|
|
112
|
+
|------|------|
|
|
113
|
+
| Succeeded | 进入任务3 |
|
|
114
|
+
| Failed | 展示错误信息 |
|
|
115
|
+
| Cancelled | 询问用户后续操作 |
|
|
116
|
+
|
|
117
|
+
#### 其他方式
|
|
118
|
+
|
|
119
|
+
**前台轮询**:用户要求实时观察进度时使用,直接执行轮询命令(不启动子代理)。
|
|
120
|
+
|
|
121
|
+
**单次查询**:仅需检查当前状态时使用,移除 `--poll` 参数。
|
|
122
|
+
|
|
123
|
+
#### 状态说明
|
|
124
|
+
|
|
125
|
+
| 状态 | 说明 | 动作 |
|
|
126
|
+
|------|------|------|
|
|
127
|
+
| Pending | 任务已创建,等待执行 | 继续等待 |
|
|
128
|
+
| Running | 任务正在执行 | 继续等待 |
|
|
129
|
+
| Succeeded | 任务执行成功 | 进入任务3 |
|
|
130
|
+
| Failed | 任务执行失败 | 展示错误信息 |
|
|
131
|
+
| Cancelled | 任务被取消 | 询问用户后续操作 |
|
|
132
|
+
|
|
133
|
+
#### 失败处理
|
|
134
|
+
|
|
135
|
+
参考 [评测服务接口说明.md](./references/评测服务接口说明.md#错误码) 进行排查。
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### 任务3:展示评测结果
|
|
140
|
+
|
|
141
|
+
执行任务时展示:
|
|
142
|
+
|
|
143
|
+
> **当前任务:展示评测结果**
|
|
144
|
+
> 解析评测结果 → 展示得分摘要 → 提供在线报告链接
|
|
145
|
+
|
|
146
|
+
**目标**:将评测结果摘要展示给用户,并提供在线查看链接。
|
|
147
|
+
|
|
148
|
+
**结果展示命令**:
|
|
149
|
+
```bash
|
|
150
|
+
{python-env}{python-cmd} "{skill-dir}/scripts/eval_task.py" summary \
|
|
151
|
+
--result "{work-dir}/.eval/{session-id}/evaltask/evaltask-result.json" \
|
|
152
|
+
--platform_url "{在线报告链接}"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**输出内容**:
|
|
156
|
+
|
|
157
|
+
1. **综合得分**:按分类展示各模型综合得分
|
|
158
|
+
2. **各维度得分**:各模型在每个维度的得分
|
|
159
|
+
3. **良好率**:各维度达到阈值的样本占比
|
|
160
|
+
4. **改进建议**:从评测报告中提取的改进建议
|
|
161
|
+
5. **在线报告**:完整报告的网页链接
|
|
162
|
+
|
|
163
|
+
**注意事项**:
|
|
164
|
+
- 使用 `summary` 子命令可避免读取大文件,节省 Token
|
|
165
|
+
- 在线链接应在任务状态查询成功后从返回结果中获取
|
|
166
|
+
- 若在线链接获取失败,仍需展示本地JSON结果路径
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Red Flags
|
|
171
|
+
|
|
172
|
+
| 违规行为 | 正确做法 |
|
|
173
|
+
|----------|----------|
|
|
174
|
+
| 跳过前置验证 | 任务提交前必须检查eval-dimension.json、evalset-meta.json、eval-judge.json是否存在 |
|
|
175
|
+
| 未等待任务完成就展示结果 | 必须等待任务状态变为Succeeded或Failed后才能展示结果 |
|
|
176
|
+
| 未展示在线报告链接 | 任务成功后必须展示在线报告链接,便于用户查看完整报告 |
|
|
177
|
+
|
|
178
|
+
> 通用违规行为见 [SKILL.md Red Flags](./SKILL.md#red-flags---停止并检查)
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 常见错误
|
|
183
|
+
|
|
184
|
+
| 错误 | 原因 | 解决方案 |
|
|
185
|
+
|------|------|----------|
|
|
186
|
+
| 任务提交失败 | 配置不完整或网络问题 | 检查配置文件完整性,确认网络连接 |
|
|
187
|
+
| 任务状态查询超时 | 网络不稳定或服务繁忙 | 增加超时时间或重试 |
|
|
188
|
+
| 结果展示失败 | 结果文件损坏或格式错误 | 检查结果文件完整性 |
|
|
189
|
+
|
|
190
|
+
> API 错误码见 [评测服务接口说明.md](./references/评测服务接口说明.md#错误码)
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 变量速查
|
|
195
|
+
|
|
196
|
+
变量定义见 [SKILL.md 变量速查](./SKILL.md#变量速查)
|