@sokeai/cli 1.0.73 → 1.0.74
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/package.json
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soke-exam-question-pool
|
|
3
|
-
summary:
|
|
4
|
-
version: 1.
|
|
5
|
-
description: "
|
|
3
|
+
summary: 授客可练习题库(题库列表、题库详情、题目列表、题库练习交卷),通过 soke-cli exam-question-pool 命令操作
|
|
4
|
+
version: 1.1.0
|
|
5
|
+
description: "授客可练习题库:按 examQuestionPool 接口链路先查询题库列表,再用题库 uuid 查询详情、题目列表,可进行题库练习交卷。当用户需要查看可练习题库、题库详情、题目内容、答案和解析,或提交题库练习交卷时使用。 | Soke question pool: use the examQuestionPool API flow to list pools, get pool detail, list questions, and finish a practice session."
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|
|
9
9
|
cliHelp: "soke-cli exam-question-pool --help"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
#
|
|
12
|
+
# 可练习题库 (examQuestionPool)
|
|
13
13
|
|
|
14
14
|
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../soke-shared/SKILL.md`](../soke-shared/SKILL.md),其中包含认证、配置、权限处理**
|
|
15
15
|
|
|
16
16
|
## 核心链路
|
|
17
17
|
|
|
18
|
-
这组命令对接 `/skills/examQuestionPool/...`
|
|
18
|
+
这组命令对接 `/skills/examQuestionPool/...` 接口。推荐调用顺序:
|
|
19
19
|
|
|
20
|
-
1. `+list`
|
|
21
|
-
2. `+get --pool-id <uuid>`
|
|
20
|
+
1. `+list` 获取题库列表,从默认输出的 `uuid` 取题库 UUID。
|
|
21
|
+
2. `+get --pool-id <uuid>` 查询详情,确认题库列表的 `uuid` 与传入 `pool-id` 一致。
|
|
22
22
|
3. `+questions --pool-id <uuid>` 使用同一个 `pool-id` 查询题目。
|
|
23
|
+
4. `+finish --pool-id <uuid> --answers '<答案JSON>'` 进行题库练习交卷。
|
|
23
24
|
|
|
24
|
-
`--page`、`--page-size
|
|
25
|
+
`--page`、`--page-size` 用于第一步题库列表分页查询。
|
|
25
26
|
|
|
26
27
|
## Shortcuts 总览
|
|
27
28
|
|
|
28
29
|
| Shortcut | 说明 |
|
|
29
30
|
|----------|------|
|
|
30
|
-
| `+list` | 获取可练习题库列表,返回后续 `pool-id`
|
|
31
|
+
| `+list` | 获取可练习题库列表,返回后续 `pool-id` 所需的题库 `uuid` |
|
|
31
32
|
| `+get` | 根据题库 `pool-id` 获取可练习题库详情 |
|
|
32
|
-
| `+questions` |
|
|
33
|
+
| `+questions` | 根据 `pool-id`(题库id),即题库列表的 `uuid`,获取题库题目 |
|
|
34
|
+
| `+finish` | 根据 `pool-id` 进行题库练习交卷 |
|
|
33
35
|
|
|
34
36
|
## +list
|
|
35
37
|
|
|
@@ -38,25 +40,23 @@ metadata:
|
|
|
38
40
|
```bash
|
|
39
41
|
soke-cli exam-question-pool +list \
|
|
40
42
|
--page 1 \
|
|
41
|
-
--page-size 10
|
|
42
|
-
--status 1 \
|
|
43
|
-
--format json
|
|
43
|
+
--page-size 10
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
| 参数 | 必需 | 说明 |
|
|
47
47
|
|------|------|------|
|
|
48
48
|
| `--page` | 否 | 页码,从 1 开始,默认 1 |
|
|
49
49
|
| `--page-size` | 否 | 每页条数,默认 10 |
|
|
50
|
-
| `--status` | 否 | 状态筛选,`1` 表示启用 |
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
默认输出为横向单行文本,每条题库数据显示:
|
|
53
52
|
|
|
54
53
|
| 字段 | 说明 |
|
|
55
54
|
|------|------|
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
|
|
|
55
|
+
| `uuid` | 题库 UUID,后续作为 `--pool-id` |
|
|
56
|
+
| `title` | 题库标题 |
|
|
57
|
+
| `description` | 题库描述,默认会清理简单 HTML 标签和换行 |
|
|
58
|
+
| `题目数量` | 来自 `question_count` |
|
|
59
|
+
| `创建时间` | 来自 `create_exercise_time` |
|
|
60
60
|
|
|
61
61
|
## +get
|
|
62
62
|
|
|
@@ -64,25 +64,24 @@ soke-cli exam-question-pool +list \
|
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
66
|
soke-cli exam-question-pool +get \
|
|
67
|
-
--pool-id "
|
|
68
|
-
--format json
|
|
67
|
+
--pool-id "<上一步题库列表的 uuid,即题库id>"
|
|
69
68
|
```
|
|
70
69
|
|
|
71
70
|
| 参数 | 必需 | 说明 |
|
|
72
71
|
|------|------|------|
|
|
73
|
-
| `--pool-id` | 是 | 题库 ID,必须来自 `+list`
|
|
72
|
+
| `--pool-id` | 是 | 题库 ID,必须来自 `+list` 默认输出中的 `uuid` |
|
|
74
73
|
|
|
75
|
-
|
|
74
|
+
默认输出为横向单行文本,题库详情数据:
|
|
76
75
|
|
|
77
76
|
| 字段 | 说明 |
|
|
78
77
|
|------|------|
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
| `data.
|
|
85
|
-
|
|
78
|
+
| `uuid` | 题库 UUID,应与请求 `--pool-id` 一致 |
|
|
79
|
+
| `title` | 题库标题 |
|
|
80
|
+
| `description` | 题库描述,默认会清理简单 HTML 标签和换行 |
|
|
81
|
+
| `题目数量` | 来自 `question_count` |
|
|
82
|
+
| `创建时间` | 来自 `create_exercise_time` |
|
|
83
|
+
| `总题数` | 来自 `data.all_count` |
|
|
84
|
+
|
|
86
85
|
|
|
87
86
|
## +questions
|
|
88
87
|
|
|
@@ -90,35 +89,67 @@ soke-cli exam-question-pool +get \
|
|
|
90
89
|
|
|
91
90
|
```bash
|
|
92
91
|
soke-cli exam-question-pool +questions \
|
|
93
|
-
--pool-id "
|
|
94
|
-
--format json
|
|
92
|
+
--pool-id "<题库列表的 uuid,即题库id>"
|
|
95
93
|
```
|
|
96
94
|
|
|
97
95
|
| 参数 | 必需 | 说明 |
|
|
98
96
|
|------|------|------|
|
|
99
97
|
| `--pool-id` | 是 | 题库 ID,复用列表或详情中的同一个 UUID |
|
|
100
98
|
|
|
101
|
-
|
|
99
|
+
默认输出为 JSON,是题目数据本身。
|
|
100
|
+
|
|
101
|
+
关键字段:
|
|
102
102
|
|
|
103
103
|
| 字段 | 说明 |
|
|
104
104
|
|------|------|
|
|
105
|
-
| `
|
|
106
|
-
| `
|
|
107
|
-
| `
|
|
108
|
-
| `
|
|
109
|
-
| `
|
|
110
|
-
| `
|
|
111
|
-
| `data.content[].analysis` | 题目解析 |
|
|
105
|
+
| `uuid` | 题目 UUID |
|
|
106
|
+
| `title` | 题目标题 |
|
|
107
|
+
| `type` | 题目类型 |
|
|
108
|
+
| `choices` | 选项列表 |
|
|
109
|
+
| `show_answer` | 展示答案 |
|
|
110
|
+
| `analysis` | 题目解析 |
|
|
112
111
|
|
|
113
112
|
## 推荐操作顺序
|
|
114
113
|
|
|
115
114
|
```bash
|
|
116
|
-
# 1.
|
|
117
|
-
soke-cli exam-question-pool +list --page 1 --page-size 10
|
|
115
|
+
# 1. 查询题库列表,取输出中的 uuid
|
|
116
|
+
soke-cli exam-question-pool +list --page 1 --page-size 10
|
|
118
117
|
|
|
119
118
|
# 2. 查询题库详情
|
|
120
|
-
soke-cli exam-question-pool +get --pool-id "<pool_uuid>"
|
|
119
|
+
soke-cli exam-question-pool +get --pool-id "<pool_uuid>"
|
|
120
|
+
|
|
121
|
+
# 3. 查询同一题库的题目列表
|
|
122
|
+
soke-cli exam-question-pool +questions --pool-id "<pool_uuid>"
|
|
121
123
|
|
|
122
|
-
#
|
|
123
|
-
soke-cli exam-question-pool +
|
|
124
|
+
# 4. 题库练习交卷
|
|
125
|
+
soke-cli exam-question-pool +finish \
|
|
126
|
+
--pool-id "<pool_uuid>" \
|
|
127
|
+
--answers '{"<question_uuid>":[0,1]}'
|
|
124
128
|
```
|
|
129
|
+
|
|
130
|
+
## +finish
|
|
131
|
+
|
|
132
|
+
提交可练习题库练习交卷。
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
soke-cli exam-question-pool +finish \
|
|
136
|
+
--pool-id "70DE9AFB-1C18-4F5C-B158-E25182ECBE1A" \
|
|
137
|
+
--answers '{"A93647C7-7ECF-44D6-931D-DE84344DA580":["1","1","1"],"0E7E8283-EB5F-489C-9778-34A9B2F13BA7":[0]}'
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
| 参数 | 必需 | 说明 |
|
|
141
|
+
|------|------|------|
|
|
142
|
+
| `--pool-id` | 是 | 题库 ID,复用列表或详情中的同一个 UUID |
|
|
143
|
+
| `--answers` | 是 | 答案 JSON 原文,key 为题目 ID,数组为答题选项 |
|
|
144
|
+
|
|
145
|
+
`--answers` 会加密之后进行传输。
|
|
146
|
+
|
|
147
|
+
返回结果默认展示:
|
|
148
|
+
|
|
149
|
+
| 字段 | 说明 |
|
|
150
|
+
|------|------|
|
|
151
|
+
| `rightCount` | 答对题目数 |
|
|
152
|
+
| `allCount` | 全部题目数量 |
|
|
153
|
+
| `rate` | 题库练习进度 |
|
|
154
|
+
|
|
155
|
+
默认输出示例:`题库id:70DE9AFB-1C18-4F5C-B158-E25182ECBE1A,答对题目数:2,全部题目数量:0,题库练习进度:0%`。使用 `--format json` 时输出接口原始字段。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soke-task
|
|
3
|
-
summary:
|
|
3
|
+
summary: 授客学堂异步任务管理(创建任务/查询任务),支持学习地图学员统计报表和统计生成
|
|
4
4
|
version: 1.0.0
|
|
5
|
-
description: "授客学堂异步任务管理:通过独立 task
|
|
5
|
+
description: "授客学堂异步任务管理:通过独立 task 命令创建和查询异步任务。目前支持学习地图学员统计报表和统计生成,按“创建任务 -> 获取 data.id -> 查询任务详情和 filePath”的流程使用。当用户需要生成学习地图学员统计报表、生成统计、查询任务状态或获取文件下载地址时使用。 | Soke Academy async task management: create and query jobs through the standalone task command. Currently supports learning map learner statistics report/statistics generation. Use when users need to generate learner statistics reports, generate statistics, check task status, or obtain file URLs."
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|
|
@@ -18,11 +18,12 @@ metadata:
|
|
|
18
18
|
- 任务接口是独立模块,命令统一使用 `soke-cli task ...`,不要使用 `soke-cli learning-map ...` 创建或查询任务。
|
|
19
19
|
- 创建任务后必须保存返回的 `data.id`,再调用 `+get` 查询任务详情。
|
|
20
20
|
- 默认用 `--format json` 获取结构化输出;需要人工快速查看时可省略 format 输出表格。
|
|
21
|
-
-
|
|
21
|
+
- 当前已知任务类型是学习地图学员统计相关任务,`--module` 默认 `learningMapUser`,`--action` 默认 `export`,`--type` 默认 `aloneDept`。
|
|
22
|
+
- 查询 `soke-cli task +get --id "TASK-ID"` 后,必须根据创建任务时传入的 `--action` 判断状态字段:`action=export` 看 `data.export_status`,`action=report` 看 `data.status`。
|
|
22
23
|
|
|
23
24
|
## 命令
|
|
24
25
|
|
|
25
|
-
###
|
|
26
|
+
### 创建学习地图学员统计任务
|
|
26
27
|
|
|
27
28
|
```bash
|
|
28
29
|
soke-cli task +create \
|
|
@@ -44,8 +45,10 @@ soke-cli task +create \
|
|
|
44
45
|
| `--learn-status` | 否 | 空 | 学习状态筛选:空值表示不限,`learning` 未完成,`finished` 已完成 |
|
|
45
46
|
| `--eligible-status` | 否 | 空 | 达标状态筛选,空值表示不限 |
|
|
46
47
|
| `--limit` | 否 | `4500` | 任务处理上限 |
|
|
47
|
-
| `--action` | 否 | `export` |
|
|
48
|
+
| `--action` | 否 | `export` | 操作类型:`export` 生成报表,`report` 生成统计 |
|
|
48
49
|
| `--type` | 否 | `aloneDept` | 部门导出类型:`aloneDept` 单列导出,`manyDept` 部门多列导出 |
|
|
50
|
+
| `--is-leave` | 否 | `0` | 是否离职:`0` 否,`1` 是 |
|
|
51
|
+
| `--taskId` | 否 | 空字符串 | 任务 ID,默认空字符串 |
|
|
49
52
|
| `--custom-tags` | 否 | 空 | 导出的自定义字段列表,多个字段用英文逗号分隔;也可传 JSON 字符串数组 |
|
|
50
53
|
|
|
51
54
|
响应关键字段:
|
|
@@ -58,18 +61,25 @@ soke-cli task +create \
|
|
|
58
61
|
|
|
59
62
|
默认输出会打印单行任务 ID,例如 `id:13288419`。需要完整字段时使用 `--format json`。
|
|
60
63
|
|
|
61
|
-
###
|
|
64
|
+
### 查询异步任务
|
|
62
65
|
|
|
63
66
|
```bash
|
|
64
67
|
soke-cli task +get --id "TASK-ID" --format json
|
|
65
68
|
```
|
|
66
69
|
|
|
70
|
+
状态判断规则:
|
|
71
|
+
|
|
72
|
+
| 创建任务时的 `--action` | 查询完成状态字段 | 说明 |
|
|
73
|
+
|-------------------------|------------------|------|
|
|
74
|
+
| `export` | `data.export_status` | 生成报表时用导出状态判断是否生成文件 |
|
|
75
|
+
| `report` | `data.status` | 生成统计时用任务执行状态判断是否完成 |
|
|
76
|
+
|
|
67
77
|
响应关键字段:
|
|
68
78
|
|
|
69
79
|
| 字段 | 说明 |
|
|
70
80
|
|------|------|
|
|
71
|
-
| `data.status` |
|
|
72
|
-
| `data.export_status` |
|
|
81
|
+
| `data.status` | 任务执行状态;`action=report` 生成统计时用此字段判断任务状态,接口示例中 `2` 表示执行完成 |
|
|
82
|
+
| `data.export_status` | 导出状态;`action=export` 生成报表时用此字段判断导出状态,接口示例中 `2` 表示已生成导出文件 |
|
|
73
83
|
| `data.filePath` | 导出文件访问地址,未生成时为空 |
|
|
74
84
|
| `data.filename` | 导出文件名 |
|
|
75
85
|
| `data.filesize` | 导出文件大小 |
|
|
@@ -89,6 +99,16 @@ TASK_ID=$(soke-cli task +create \
|
|
|
89
99
|
soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.filePath'
|
|
90
100
|
```
|
|
91
101
|
|
|
102
|
+
按创建任务的 action 查询状态:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# action=export
|
|
106
|
+
soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.export_status'
|
|
107
|
+
|
|
108
|
+
# action=report
|
|
109
|
+
soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.status'
|
|
110
|
+
```
|
|
111
|
+
|
|
92
112
|
## API 接口映射
|
|
93
113
|
|
|
94
114
|
| CLI 命令 | API 路径 | 方法 |
|
|
@@ -101,4 +121,4 @@ soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.filePath'
|
|
|
101
121
|
- `data.filePath` 为空:任务可能还未完成,等待后重新执行 `task +get --id "TASK-ID" --format json`。
|
|
102
122
|
- `未登录授权`:按 `soke-shared` 执行 `soke-cli auth login` 后重试。
|
|
103
123
|
- 自定义字段没有导出:确认已通过 `--custom-tags "字段1,字段2"` 指定,字段名需与学习地图学员统计支持的自定义字段一致。
|
|
104
|
-
- 任务创建失败:确认 `--map-id` 是有效学习地图 UUID,`--module learningMapUser`,`--action export`,`--type aloneDept` 或 `--type manyDept`。
|
|
124
|
+
- 任务创建失败:确认 `--map-id` 是有效学习地图 UUID,`--module learningMapUser`,`--action export` 或 `--action report`,`--type aloneDept` 或 `--type manyDept`。
|