-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathquiz.json
More file actions
78 lines (78 loc) · 2.43 KB
/
Copy pathquiz.json
File metadata and controls
78 lines (78 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
"lesson": "86-constitutional-rules-engine",
"title": "顶点课 86 —— constitutional rules engine",
"questions": [
{
"stage": "pre",
"question": "为什么要用声明式的 YAML constitution,而不是临时写在代码里的检查?",
"options": [
"因为 YAML 解析比 Python 快",
"因为 YAML 里的规则非工程师也能 review,能进版本控制,还能不改代码就替换",
"因为标准库更偏好 YAML",
"因为 YAML 支持 anchor"
],
"correct": 1,
"explanation": ""
},
{
"stage": "pre",
"question": "每条规则至少必须具备哪些字段?",
"options": [
"name、regex、fix",
"id、owner、timestamp",
"name、severity、must、explanation",
"predicate、severity、owner"
],
"correct": 2,
"explanation": ""
},
{
"stage": "check",
"question": "这个 engine 是怎么组合 predicate 的?",
"options": [
"每条规则只能用单个 contains_regex",
"通过 all_of、any_of 和 not_ 递归地包裹原子 predicate",
"靠把置信度分数相乘",
"靠一个神经网络 classifier"
],
"correct": 1,
"explanation": ""
},
{
"stage": "check",
"question": "applies_when 的作用是什么?",
"options": [
"它永远求值为 true",
"它给 must predicate 加了道门:不适用的规则会被记为 not_applicable,而不是 violation",
"它覆盖 severity",
"它挑选 fixer 操作"
],
"correct": 1,
"explanation": ""
},
{
"stage": "check",
"question": "Fixer 是做什么的?",
"options": [
"它重写规则文件",
"它应用每条规则上声明的 fix(append、prepend、replace_regex),产出一段修订后的文本",
"它从 fix 里算出 severity",
"它调用一个远程模型来修复文本"
],
"correct": 1,
"explanation": ""
},
{
"stage": "post",
"question": "为什么 demo 在 fixer 之后要再跑一遍 engine?",
"options": [
"为了把报告撑大",
"为了验证修订后的文本确实满足规则,并暴露出 fixer 在本地修不了的规则",
"为了重新加载 constitution",
"因为第一遍只是 dry run"
],
"correct": 1,
"explanation": ""
}
]
}