fix: 题库修正—维度对齐+评分标准补充+L1覆盖增强
1. 修正维度标签: 会议记录题 PROMPT→LLM 2. 补充151题简答题的 judgement 评分标准 3. 新增24题覆盖之前缺失的L1内容: - AI安全使用指南(三大边界:个人/组织/智能体) - 开发范式(SDD/Flow State/Vibe Coding) - AI人才定义框架(L1评估检查清单) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
# CodeGraph data files
|
||||
# These are local to each machine and should not be committed
|
||||
|
||||
# Database
|
||||
*.db
|
||||
*.db-wal
|
||||
*.db-shm
|
||||
|
||||
# Cache
|
||||
cache/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# Hook markers
|
||||
.dirty
|
||||
@@ -0,0 +1,75 @@
|
||||
name: E2E Tests
|
||||
on:
|
||||
push:
|
||||
branches: [main, develop]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
elasticsearch:
|
||||
image: elasticsearch:9.2.1
|
||||
env:
|
||||
discovery.type: single-node
|
||||
xpack.security.enabled: false
|
||||
ES_JAVA_OPTS: -Xms512m -Xmx512m
|
||||
ports:
|
||||
- 9200:9200
|
||||
tika:
|
||||
image: apache/tika:latest
|
||||
ports:
|
||||
- 9998:9998
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Build backend
|
||||
run: cd server && npx nest build
|
||||
|
||||
- name: Start backend
|
||||
run: cd server && node dist/main.js &
|
||||
env:
|
||||
JWT_SECRET: test-secret
|
||||
OLLAMA_BASE_URL: http://localhost:11434
|
||||
|
||||
- name: Build frontend
|
||||
run: cd web && npx vite build
|
||||
|
||||
- name: Install Playwright
|
||||
run: cd web/e2e && npm install && npx playwright install chromium
|
||||
|
||||
- name: Serve frontend
|
||||
run: cd web/e2e && node dev-server.js &
|
||||
env:
|
||||
PORT: 13001
|
||||
|
||||
- name: Wait for services
|
||||
run: sleep 15
|
||||
|
||||
- name: Run E2E tests
|
||||
run: cd web/e2e && npx playwright test --reporter=html
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: playwright-report
|
||||
path: web/e2e-report/
|
||||
retention-days: 7
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: failure()
|
||||
with:
|
||||
name: test-results
|
||||
path: web/e2e/test-results/
|
||||
retention-days: 14
|
||||
+709
@@ -0,0 +1,709 @@
|
||||
# IDE 协作开发 — 考核题库
|
||||
|
||||
> 对应课程:L1 课程四:IDE 协作开发
|
||||
> 题型:简答题(SHORT_ANSWER)、判断题(TRUE_FALSE)
|
||||
> 难度:STANDARD
|
||||
> 总计:50 题
|
||||
|
||||
---
|
||||
|
||||
## 一、GitHub Copilot — 智能代码补全(4 题)
|
||||
|
||||
### Q1(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
看到 Copilot 给出的灰色补全建议后,按 Tab 键可以接受建议。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q2(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
看到 Copilot 给出的补全建议后,按 Esc 键可以拒绝这个建议。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q3(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
写函数开头后,Copilot 会自动逐行补全后续逻辑。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q4(注意事项/简答)
|
||||
|
||||
小张用智能补全生成了一段代码,看起来功能正常。
|
||||
|
||||
**问:** 在正式使用这段代码前,他应该先做什么?
|
||||
|
||||
**答案:** 审查代码逻辑,确认没有语法错误或逻辑漏洞后再使用。AI 生成的代码需要人工审核。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 红线警告
|
||||
|
||||
---
|
||||
|
||||
## 二、GitHub Copilot — Chat 三种模式(5 题)
|
||||
|
||||
### Q5(简答)
|
||||
|
||||
小张接手了一个老项目,打开 `OrderService.java` 发现有段逻辑看不太懂。他打开 Copilot Chat,想先问问这段代码是干什么的。
|
||||
|
||||
Copilot Chat 有以下三种模式:**Ask** / **Plan** / **Agent**
|
||||
|
||||
**问:** 小张应该选择哪种模式?
|
||||
|
||||
**答案:** Ask(问答模式)。Ask 模式只回答问题,不修改代码。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 三种对话模式
|
||||
|
||||
---
|
||||
|
||||
### Q6(简答)
|
||||
|
||||
小李需要在三个文件中新增一个「批量删除用户」的功能,希望 AI 直接帮他完成代码修改。
|
||||
|
||||
Copilot Chat 有以下三种模式:**Ask** / **Plan** / **Agent**
|
||||
|
||||
**问:** 小李应该选择哪种模式?
|
||||
|
||||
**答案:** Agent(智能代理模式)。Agent 模式可以自动跨文件修改代码。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 三种对话模式
|
||||
|
||||
---
|
||||
|
||||
### Q7(简答)
|
||||
|
||||
小赵想在项目中新增一个功能,但不知道涉及哪些文件、影响范围多大,想让 AI 先扫描整个项目给出方案。
|
||||
|
||||
Copilot Chat 有以下三种模式:**Ask** / **Plan** / **Agent**
|
||||
|
||||
**问:** 小赵应该选择哪种模式?
|
||||
|
||||
**答案:** Plan(计划模式)。Plan 模式只出方案不动代码,适合先评估再动手。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 三种对话模式
|
||||
|
||||
---
|
||||
|
||||
### Q8(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
Ask 模式下,Copilot 只会回答问题,不会修改用户的代码。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q9(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
Agent 模式下,Copilot 可以跨多个文件修改代码。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
## 三、GitHub Copilot — CLI 使用(3 题)
|
||||
|
||||
### Q10(简答)
|
||||
|
||||
小刘想用 Copilot CLI 重构一个 Python 脚本,过程中要多次对话、逐步调优。
|
||||
|
||||
Copilot CLI 有以下两种使用方式:**交互模式**(`copilot`)/ **非交互模式**(`copilot -p "指令"`)
|
||||
|
||||
**问:** 小刘应该选择哪种方式?
|
||||
|
||||
**答案:** 交互模式(`copilot`)。交互模式支持多轮对话,适合需要迭代的复杂任务。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - CLI 使用
|
||||
|
||||
---
|
||||
|
||||
### Q11(简答)
|
||||
|
||||
小钱想用 Copilot CLI 快速解释一下 `git diff` 的结果,不想进入交互式对话。
|
||||
|
||||
Copilot CLI 有以下两种使用方式:**交互模式**(`copilot`)/ **非交互模式**(`copilot -p "指令"`)
|
||||
|
||||
**问:** 小钱应该选择哪种方式?
|
||||
|
||||
**答案:** 非交互模式(`copilot -p "指令"`)。非交互模式适合一次性任务,快速获得结果后退出。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - CLI 使用
|
||||
|
||||
---
|
||||
|
||||
### Q12(简答)
|
||||
|
||||
小赵在 Copilot CLI 交互模式中,想清空当前对话上下文重新开始。
|
||||
|
||||
Copilot CLI 中常用的斜杠命令有:**`/clear` / `/model` / `/session` / `/exit`**
|
||||
|
||||
**问:** 小赵应该使用哪个命令?
|
||||
|
||||
**答案:** `/clear`
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - CLI 斜杠命令
|
||||
|
||||
---
|
||||
|
||||
## 四、Claude Code — 四种交互方式(6 题)
|
||||
|
||||
### Q13(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Claude Code 中输入 `@src/utils.js` 可以让 AI 读取该文件。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 文件引用
|
||||
|
||||
---
|
||||
|
||||
### Q14(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Claude Code 中输入 `/clear` 可以清空当前对话。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 斜杠命令
|
||||
|
||||
---
|
||||
|
||||
### Q15(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Claude Code 中输入 `!git status` 可以查看 Git 状态。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 Bash模式
|
||||
|
||||
---
|
||||
|
||||
### Q16(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Claude Code 中所有操作都必须用特殊符号,自然语言输入不能完成任何功能。
|
||||
|
||||
**答案:** ✗。自然语言也可以完成大部分功能,特殊符号用于特定场景。
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 交互方式
|
||||
|
||||
---
|
||||
|
||||
### Q17(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Claude Code 中输入 `!npm run dev` 可以启动开发服务器。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 Bash模式
|
||||
|
||||
---
|
||||
|
||||
### Q18(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Claude Code 中输入 `/help` 可以查看所有可用命令。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 斜杠命令
|
||||
|
||||
---
|
||||
|
||||
## 五、Claude Code — 模型选择与切换(3 题)
|
||||
|
||||
### Q19(简答)
|
||||
|
||||
Claude Code 的三个模型特点如下:
|
||||
- **Sonnet**:主力工程师,日常编码首选
|
||||
- **Haiku**:响应极快、成本低,适合简单任务
|
||||
- **Opus**:处理超级复杂的难题,智商最高
|
||||
|
||||
小陈需要修复一个非常复杂的系统架构 Bug。
|
||||
|
||||
**问:** 他应该选择哪个模型?
|
||||
|
||||
**答案:** Opus
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 模型选择
|
||||
|
||||
---
|
||||
|
||||
### Q20(简答)
|
||||
|
||||
Claude Code 的三个模型特点如下:
|
||||
- **Sonnet**:主力工程师,日常编码首选
|
||||
- **Haiku**:响应极快、成本低,适合简单任务
|
||||
- **Opus**:处理超级复杂的难题,智商最高
|
||||
|
||||
小陈在做日常的 CRUD 接口开发。
|
||||
|
||||
**问:** 他应该选择哪个模型?
|
||||
|
||||
**答案:** Sonnet
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 模型选择
|
||||
|
||||
---
|
||||
|
||||
### Q21(简答)
|
||||
|
||||
Claude Code 的三个模型特点如下:
|
||||
- **Sonnet**:主力工程师,日常编码首选
|
||||
- **Haiku**:响应极快、成本低,适合简单任务
|
||||
- **Opus**:处理超级复杂的难题,智商最高
|
||||
|
||||
小陈想快速查一下某个 JavaScript 数组方法的语法。
|
||||
|
||||
**问:** 他应该选择哪个模型?
|
||||
|
||||
**答案:** Haiku
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 模型选择
|
||||
|
||||
---
|
||||
|
||||
## 六、Claude Code — CLI 命令(3 题)
|
||||
|
||||
### Q22(简答)
|
||||
|
||||
小赵的 Claude Code 会话因为终端意外关闭了,想接着刚才的对话继续。
|
||||
|
||||
Claude CLI 有以下命令:**`claude` / `claude --continue` / `claude --resume`**
|
||||
|
||||
**问:** 小赵应该用哪个命令?
|
||||
|
||||
**答案:** `claude --continue`(或 `claude -c`)。该命令用于恢复上次意外关闭的会话。
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 CLI命令
|
||||
|
||||
---
|
||||
|
||||
### Q23(简答)
|
||||
|
||||
小钱想用 Claude Code 快速解释一下 `git diff` 的结果,不想进入交互式对话。
|
||||
|
||||
Claude CLI 有以下命令:**`claude` / `claude -p "指令"` / `claude --resume`**
|
||||
|
||||
**问:** 小钱应该用哪个命令?
|
||||
|
||||
**答案:** `claude -p "指令"`。`-p` 参数用于一次性任务,适合快速执行。
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 CLI命令
|
||||
|
||||
---
|
||||
|
||||
### Q24(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
`claude --resume` 可以从历史会话列表中选择恢复。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** Claude Code 使用指南 - 第3章 CLI命令
|
||||
|
||||
---
|
||||
|
||||
## 七、OpenCode — 整体认知(3 题)
|
||||
|
||||
### Q25(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
OpenCode 像一位身边的搭档,可以直接读取项目文件、修改代码、执行命令。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第1章 核心定位
|
||||
|
||||
---
|
||||
|
||||
### Q26(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
传统 AI 像远程顾问,给你建议但需要你自己动手;OpenCode 可以直接帮你操作。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第1章
|
||||
|
||||
---
|
||||
|
||||
### Q27(安全合规/简答)
|
||||
|
||||
小周想用 OpenCode 读取包含客户个人信息的代码文件,让 AI 帮忙优化。
|
||||
|
||||
**问:** 这种做法是否合适?为什么?
|
||||
|
||||
**答案:** 不合适。客户个人信息属于敏感数据,严禁输入任何公共 AI 工具。应该先对数据进行脱敏处理,用虚构数据或占位符替代后再使用。
|
||||
|
||||
**依据:** OpenCode 使用指南 - 红线警告
|
||||
|
||||
---
|
||||
|
||||
## 八、OpenCode — 安装与使用方式(4 题)
|
||||
|
||||
### Q28(简答)
|
||||
|
||||
OpenCode 有以下四种使用方式:
|
||||
- **终端版** — 轻量启动快,适合有基础的用户
|
||||
- **桌面应用** — 界面直观,适合新手
|
||||
- **IDE 扩展** — 深度绑定编辑器
|
||||
- **Web 版** — 浏览器访问,可远程部署
|
||||
|
||||
小周是新手,不喜欢操作命令行,想找一个界面直观的方式。
|
||||
|
||||
**问:** 他应该选择哪种方式?
|
||||
|
||||
**答案:** 桌面应用
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第2章 使用方式
|
||||
|
||||
---
|
||||
|
||||
### Q29(简答)
|
||||
|
||||
OpenCode 有以下四种使用方式:**终端版** / **桌面应用** / **IDE 扩展** / **Web 版**
|
||||
|
||||
小刘平时用 VS Code 写代码,希望不离开编辑器就能用 OpenCode。
|
||||
|
||||
**问:** 他应该选择哪种方式?
|
||||
|
||||
**答案:** IDE 扩展
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第2章 使用方式
|
||||
|
||||
---
|
||||
|
||||
### Q30(简答)
|
||||
|
||||
OpenCode 有以下四种使用方式:**终端版** / **桌面应用** / **IDE 扩展** / **Web 版**
|
||||
|
||||
小马需要在远程服务器上开发,只能通过命令行操作。
|
||||
|
||||
**问:** 他应该选择哪种方式?
|
||||
|
||||
**答案:** 终端版
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第2章 使用方式
|
||||
|
||||
---
|
||||
|
||||
### Q31(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在终端中输入 `opencode` 可以启动 OpenCode。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第2章 安装
|
||||
|
||||
---
|
||||
|
||||
## 九、OpenCode — Plan / Build 工作模式(5 题)
|
||||
|
||||
### Q32(简答)
|
||||
|
||||
小周接手了一个新项目,想先让 OpenCode 分析项目结构,还不想修改任何文件。
|
||||
|
||||
OpenCode 有以下两种工作模式:**Plan** / **Build**
|
||||
|
||||
**问:** 小周应该选择哪种模式?
|
||||
|
||||
**答案:** Plan(计划模式)。Plan 模式下 AI 只能读取文件,不会修改代码。
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 Plan模式
|
||||
|
||||
---
|
||||
|
||||
### Q33(简答)
|
||||
|
||||
小周已经确认了修改方案,想让 OpenCode 开始实际修改代码。
|
||||
|
||||
OpenCode 有以下两种工作模式:**Plan** / **Build**
|
||||
|
||||
**问:** 小周应该选择哪种模式?
|
||||
|
||||
**答案:** Build(构建模式)。Build 模式下 AI 可以编辑文件和执行命令。
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 Build模式
|
||||
|
||||
---
|
||||
|
||||
### Q34(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
Plan 模式下 AI 只能读取文件,不会修改任何代码。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q35(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
Build 模式下 AI 可以编辑文件和执行命令。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q36(注意事项/简答)
|
||||
|
||||
小周让 OpenCode 在 Build 模式下修改了多个文件。
|
||||
|
||||
**问:** 修改完成后,他应该先做什么?
|
||||
|
||||
**答案:** 审查 AI 修改的代码,确认逻辑正确后再使用。AI 生成的代码不能直接部署到生产环境。
|
||||
|
||||
**依据:** OpenCode 使用指南 - 安全原则
|
||||
|
||||
---
|
||||
|
||||
## 十、OpenCode — 常用命令(5 题)
|
||||
|
||||
### Q37(简答)
|
||||
|
||||
小周用 OpenCode 修改了代码,但发现改错了,想撤销刚才的修改。
|
||||
|
||||
OpenCode 中有以下命令:**`/undo` / `/redo` / `/clear` / `/init`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/undo`
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 撤销更改
|
||||
|
||||
---
|
||||
|
||||
### Q38(简答)
|
||||
|
||||
小周撤销了修改后又觉得还是刚才改得好,想恢复回来。
|
||||
|
||||
OpenCode 中有以下命令:**`/undo` / `/redo` / `/clear` / `/init`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/redo`
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章
|
||||
|
||||
---
|
||||
|
||||
### Q39(简答)
|
||||
|
||||
小周想在新项目目录中创建 `AGENTS.md` 文件,让 OpenCode 了解项目结构。
|
||||
|
||||
OpenCode 中有以下命令:**`/undo` / `/redo` / `/clear` / `/init`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/init`
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第4章 项目初始化
|
||||
|
||||
---
|
||||
|
||||
### Q40(简答)
|
||||
|
||||
小周想看看 OpenCode 当前有哪些可用的斜杠命令和快捷键。
|
||||
|
||||
OpenCode 中有以下命令:**`/help` / `/models` / `/connect` / `/exit`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/help`
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 斜杠命令
|
||||
|
||||
---
|
||||
|
||||
### Q41(简答)
|
||||
|
||||
小周想切换 OpenCode 正在使用的 AI 模型。
|
||||
|
||||
OpenCode 中有以下命令:**`/help` / `/models` / `/connect` / `/exit`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/models`
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 模型选择
|
||||
|
||||
---
|
||||
|
||||
## 十一、OpenCode — 模型选择(2 题)
|
||||
|
||||
### Q42(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
OpenCode 内置多款免费模型,启动后可以直接选择使用,无需配置 API 密钥。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 模型
|
||||
|
||||
---
|
||||
|
||||
### Q43(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
使用第三方 LLM 提供商(如 OpenAI、Anthropic)需要自行承担 API 费用。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** OpenCode 使用指南 - 第3章 模型
|
||||
|
||||
---
|
||||
|
||||
## 十二、Debug — 调试助手(7 题)
|
||||
|
||||
### Q44(简答)
|
||||
|
||||
小吴的代码运行时报错了,不知道问题出在哪,想让 Copilot Chat 帮他定位和解决 Bug。
|
||||
|
||||
Copilot Chat 中有以下命令:**`/fix` / `/tests` / `/explain` / `/debug`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/debug`。该命令专用于帮助定位和解决 Bug。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 内置命令
|
||||
|
||||
---
|
||||
|
||||
### Q45(简答)
|
||||
|
||||
小吴已经知道问题在哪了,想让 Copilot 直接修复选中的代码。
|
||||
|
||||
Copilot Chat 中有以下命令:**`/fix` / `/tests` / `/explain` / `/debug`**
|
||||
|
||||
**问:** 他应该使用哪个命令?
|
||||
|
||||
**答案:** `/fix`。该命令用于自动修复代码问题。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 内置命令
|
||||
|
||||
---
|
||||
|
||||
### Q46(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Copilot Chat 中输入 `/tests` 可以生成选中代码的单元测试。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 内置命令
|
||||
|
||||
---
|
||||
|
||||
### Q47(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
在 Copilot Chat 中输入 `/explain` 可以让 AI 解释选中代码的逻辑。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 内置命令
|
||||
|
||||
---
|
||||
|
||||
### Q48(判断正误)
|
||||
|
||||
以下说法是否正确?(✓ / ✗)
|
||||
|
||||
`/debug` 命令可以帮助定位和解决 Bug。
|
||||
|
||||
**答案:** ✓
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 第3章 内置命令
|
||||
|
||||
---
|
||||
|
||||
### Q49(注意事项/简答)
|
||||
|
||||
小吴用 `/fix` 命令让 Copilot 自动修复了代码。
|
||||
|
||||
**问:** 修复完成后,他应该先做什么?
|
||||
|
||||
**答案:** 审查修复后的代码,确认修改正确、逻辑无误后再使用。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 安全原则
|
||||
|
||||
---
|
||||
|
||||
### Q50(安全合规/简答)
|
||||
|
||||
小吴遇到一个 Bug,想把包含数据库连接串的配置文件贴到 Copilot Chat 中用 `/debug` 分析。
|
||||
|
||||
**问:** 这种做法是否合适?为什么?
|
||||
|
||||
**答案:** 不合适。数据库连接串属于敏感信息,严禁输入公共 AI 工具。应该用脱敏数据或占位符替代后再进行分析。
|
||||
|
||||
**依据:** GitHub Copilot 使用指南 - 红线警告
|
||||
|
||||
---
|
||||
|
||||
## 附录:题型分布统计
|
||||
|
||||
| 章节 | 知识点 | 题数 | 简答 | 判断正误 |
|
||||
|:----:|:-------|:----:|:----:|:--------:|
|
||||
| 一 | Copilot — 智能代码补全 | 4 | 1 | 3 |
|
||||
| 二 | Copilot — Chat 三种模式 | 5 | 3 | 2 |
|
||||
| 三 | Copilot — CLI 使用 | 3 | 3 | 0 |
|
||||
| 四 | Claude Code — 四种交互方式 | 6 | 0 | 6 |
|
||||
| 五 | Claude Code — 模型选择 | 3 | 3 | 0 |
|
||||
| 六 | Claude Code — CLI 命令 | 3 | 2 | 1 |
|
||||
| 七 | OpenCode — 整体认知 | 3 | 1 | 2 |
|
||||
| 八 | OpenCode — 安装与使用方式 | 4 | 3 | 1 |
|
||||
| 九 | OpenCode — Plan / Build 模式 | 5 | 3 | 2 |
|
||||
| 十 | OpenCode — 常用命令 | 5 | 5 | 0 |
|
||||
| 十一 | OpenCode — 模型选择 | 2 | 0 | 2 |
|
||||
| 十二 | Debug — 调试助手 | 7 | 4 | 3 |
|
||||
| — | **合计** | **50** | **28** | **22** |
|
||||
@@ -0,0 +1,135 @@
|
||||
# AuraK 系统提示词文档
|
||||
|
||||
> 生成日期:2026-05-25
|
||||
> 位置:
|
||||
> - AI出题:`server/src/assessment/services/question-bank.service.ts` (GENERATE_QUESTIONS_SYSTEM_PROMPT)
|
||||
> - 评分考官:`server/src/assessment/graph/nodes/grader.node.ts` (systemPromptZh)
|
||||
> - 抽题策略:`server/src/assessment/services/question-bank.service.ts` (selectQuestions)
|
||||
|
||||
---
|
||||
|
||||
## 1. AI出题提示词(GENERATE_QUESTIONS_SYSTEM_PROMPT)
|
||||
|
||||
```
|
||||
你是 AI 人才考核的出题专家。你需要从知识库内容中生成考核题目。
|
||||
|
||||
## 一、内部步骤(在脑中完成,不要输出)
|
||||
1. 从知识库提取可考核的实战知识点
|
||||
2. 确定该知识点对应的具体技巧或方法
|
||||
3. 围绕该技巧设计一个真实工作场景
|
||||
|
||||
## 二、题型比例
|
||||
本题库同时生成两种题型,按 choice:open = 3:7 分配。
|
||||
- choice = 选择题(4选1)
|
||||
- open = 简答题(开放式 + 追问)
|
||||
|
||||
## 三、选择题规则(choice 型)
|
||||
### 3.1 场景规则
|
||||
- 场景必须是实际工作或日常中会遇到的情境,100-200字
|
||||
- 不能问概念定义类问题(如"什么是X")
|
||||
- 不能问理论学习类问题(如"列出X的要素")
|
||||
- 场景中的角色使用实际岗位(开发者/PM/测试/普通员工等)
|
||||
|
||||
### 3.2 决策点规则
|
||||
- 每道题必须有明确的决策点——学习者要做选择或决定怎么做
|
||||
- 不能只是"请解释"
|
||||
|
||||
### 3.3 选项规则
|
||||
- 4个选项(A/B/C/D),单选
|
||||
- 正确选项是最合理的那一个
|
||||
- 每个错误选项必须有明确缺陷(违反安全规范、忽略关键步骤、效率低下等)
|
||||
- 每个错误选项的错误原因,必须在知识库原文中有对应的禁止做法或反面说明
|
||||
- 禁止使用"以上都对""以上都不对"
|
||||
- 正确选项与最短错误选项的字符差不得超过5个字
|
||||
- 正确答案位置需轮换(避免集中在同一字母)
|
||||
|
||||
### 3.4 解析规则
|
||||
- judgment 字段写明:为什么正确 + 每个错误选项分别错在哪
|
||||
- 指出对应的知识库知识点
|
||||
- 简洁直接,指出问题本质
|
||||
|
||||
## 四、简答题规则(open 型)
|
||||
### 4.1 场景规则
|
||||
- 同选择题 3.1
|
||||
- 场景中暗示需要什么能力,但不要说破
|
||||
|
||||
### 4.2 判定依据
|
||||
- judgment 字段必须包含:关键考点 + 通过标准
|
||||
- 通过标准必须可量化:"说出X即通过"、"至少提及Y和Z"
|
||||
- 通过标准必须来源于知识库原文
|
||||
|
||||
### 4.3 追问方向
|
||||
- followupHints 数组:0-2条追问方向
|
||||
- 追问用于引导学习者补充遗漏的关键点
|
||||
- 追问应具体、可回答
|
||||
- 示例:"如果只回答开新窗口没说怎么带上前情:追问怎么把有用信息带过去?"
|
||||
|
||||
## 五、禁止项(适用于所有题型)
|
||||
- 禁止问概念定义(如"什么是提示词工程")
|
||||
- 禁止问理论列举(如"六要素有哪些")
|
||||
- 禁止选择题出现"以上都对""以上都不对"
|
||||
- 禁止正确选项明显比其他选项长或短
|
||||
- 禁止场景脱离实际(如"如果你是CEO"不适合L1)
|
||||
- 禁止虚构知识库中不存在的方法、工具、术语
|
||||
- key_points 必须从知识库原文中提取,不得自行编造
|
||||
- 相邻题目的场景背景不得重复或相似
|
||||
|
||||
## 六、出题维度(自动判断)
|
||||
根据题目内容,从以下五个维度中选择最匹配的一个:
|
||||
- prompt(提示词工程)
|
||||
- llm(LLM理解)
|
||||
- ide(IDE协作开发)
|
||||
- devPattern(开发范式)
|
||||
- workCapability(工作能力)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 评分考官提示词(systemPromptZh)
|
||||
|
||||
```
|
||||
你是一位考官。请评分并给出反馈。
|
||||
|
||||
规则:
|
||||
1. 只用中文。
|
||||
2. 多轮追问时,用户回答含所有轮次(第N轮回答:标记),综合判断已覆盖内容。
|
||||
|
||||
问题:[题目文字]
|
||||
关键点:[评分关键点]
|
||||
|
||||
评分标准:不要求深度,不要求使用特定术语,只看用户是否理解了概念。
|
||||
用户理解核心概念就给分。即使没有使用关键点中的原词,只要意思到位就算覆盖。
|
||||
例如关键点是"上下文窗口有限",用户说"信息太多超过AI处理长度"也是覆盖。
|
||||
评分原则:往宽了给分,不确定时就给高分。明显正确就给8-10分,部分正确5-7分,完全不沾边才0-2分。
|
||||
|
||||
返回JSON:
|
||||
- score: 0-10
|
||||
- feedback: 评语
|
||||
- should_follow_up: true/false
|
||||
- follow_up_question: 追问(仅true时需要,针对未覆盖的关键点,false时null)
|
||||
|
||||
请以 JSON 格式返回响应:
|
||||
{"score":0到10,"feedback":"评语","should_follow_up":true或false,"follow_up_question":"追问或null"}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 抽题策略(selectQuestions)
|
||||
|
||||
按模板配置的维度权重分配题目数量。
|
||||
|
||||
**流程:**
|
||||
1. 读取模板的 dimensions 配置(如 PROMPT:30%, LLM:30%, IDE:20%, DEV_PATTERN:20%)
|
||||
2. 按权重计算每维度应出题数(如10题 → 3/3/2/2)
|
||||
3. 在各维度题库中随机抽取指定数量的题目
|
||||
4. 如某维度题数不足,从已抽题中补充
|
||||
5. 最终打乱顺序后返回
|
||||
|
||||
**无维度权重时的后备策略:**
|
||||
按 [PROMPT, LLM, IDE, DEV_PATTERN, WORK_CAPABILITY] 顺序循环抽取,直到满额。
|
||||
|
||||
---
|
||||
|
||||
## 4. 提问节点提示词(interviewer.node.ts)
|
||||
|
||||
> 当前题库暂未配置 interviewer 的自定义提示词,使用默认LangGraph状态机流程。
|
||||
@@ -0,0 +1,135 @@
|
||||
# AuraK 系统提示词文档
|
||||
|
||||
> 生成日期:2026-05-25
|
||||
> 位置:
|
||||
> - AI出题:`server/src/assessment/services/question-bank.service.ts` (GENERATE_QUESTIONS_SYSTEM_PROMPT)
|
||||
> - 评分考官:`server/src/assessment/graph/nodes/grader.node.ts` (systemPromptZh)
|
||||
> - 抽题策略:`server/src/assessment/services/question-bank.service.ts` (selectQuestions)
|
||||
|
||||
---
|
||||
|
||||
## 1. AI出题提示词(GENERATE_QUESTIONS_SYSTEM_PROMPT)
|
||||
|
||||
```
|
||||
你是 AI 人才考核的出题专家。你需要从知识库内容中生成考核题目。
|
||||
|
||||
## 一、内部步骤(在脑中完成,不要输出)
|
||||
1. 从知识库提取可考核的实战知识点
|
||||
2. 确定该知识点对应的具体技巧或方法
|
||||
3. 围绕该技巧设计一个真实工作场景
|
||||
|
||||
## 二、题型比例
|
||||
本题库同时生成两种题型,按 choice:open = 3:7 分配。
|
||||
- choice = 选择题(4选1)
|
||||
- open = 简答题(开放式 + 追问)
|
||||
|
||||
## 三、选择题规则(choice 型)
|
||||
### 3.1 场景规则
|
||||
- 场景必须是实际工作或日常中会遇到的情境,100-200字
|
||||
- 不能问概念定义类问题(如"什么是X")
|
||||
- 不能问理论学习类问题(如"列出X的要素")
|
||||
- 场景中的角色使用实际岗位(开发者/PM/测试/普通员工等)
|
||||
|
||||
### 3.2 决策点规则
|
||||
- 每道题必须有明确的决策点——学习者要做选择或决定怎么做
|
||||
- 不能只是"请解释"
|
||||
|
||||
### 3.3 选项规则
|
||||
- 4个选项(A/B/C/D),单选
|
||||
- 正确选项是最合理的那一个
|
||||
- 每个错误选项必须有明确缺陷(违反安全规范、忽略关键步骤、效率低下等)
|
||||
- 每个错误选项的错误原因,必须在知识库原文中有对应的禁止做法或反面说明
|
||||
- 禁止使用"以上都对""以上都不对"
|
||||
- 正确选项与最短错误选项的字符差不得超过5个字
|
||||
- 正确答案位置需轮换(避免集中在同一字母)
|
||||
|
||||
### 3.4 解析规则
|
||||
- judgment 字段写明:为什么正确 + 每个错误选项分别错在哪
|
||||
- 指出对应的知识库知识点
|
||||
- 简洁直接,指出问题本质
|
||||
|
||||
## 四、简答题规则(open 型)
|
||||
### 4.1 场景规则
|
||||
- 同选择题 3.1
|
||||
- 场景中暗示需要什么能力,但不要说破
|
||||
|
||||
### 4.2 判定依据
|
||||
- judgment 字段必须包含:关键考点 + 通过标准
|
||||
- 通过标准必须可量化:"说出X即通过"、"至少提及Y和Z"
|
||||
- 通过标准必须来源于知识库原文
|
||||
|
||||
### 4.3 追问方向
|
||||
- followupHints 数组:0-2条追问方向
|
||||
- 追问用于引导学习者补充遗漏的关键点
|
||||
- 追问应具体、可回答
|
||||
- 示例:"如果只回答开新窗口没说怎么带上前情:追问怎么把有用信息带过去?"
|
||||
|
||||
## 五、禁止项(适用于所有题型)
|
||||
- 禁止问概念定义(如"什么是提示词工程")
|
||||
- 禁止问理论列举(如"六要素有哪些")
|
||||
- 禁止选择题出现"以上都对""以上都不对"
|
||||
- 禁止正确选项明显比其他选项长或短
|
||||
- 禁止场景脱离实际(如"如果你是CEO"不适合L1)
|
||||
- 禁止虚构知识库中不存在的方法、工具、术语
|
||||
- key_points 必须从知识库原文中提取,不得自行编造
|
||||
- 相邻题目的场景背景不得重复或相似
|
||||
|
||||
## 六、出题维度(自动判断)
|
||||
根据题目内容,从以下五个维度中选择最匹配的一个:
|
||||
- prompt(提示词工程)
|
||||
- llm(LLM理解)
|
||||
- ide(IDE协作开发)
|
||||
- devPattern(开发范式)
|
||||
- workCapability(工作能力)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 评分考官提示词(systemPromptZh)
|
||||
|
||||
```
|
||||
你是一位考官。请评分并给出反馈。
|
||||
|
||||
规则:
|
||||
1. 只用中文。
|
||||
2. 多轮追问时,用户回答含所有轮次(第N轮回答:标记),综合判断已覆盖内容。
|
||||
|
||||
问题:[题目文字]
|
||||
关键点:[评分关键点]
|
||||
|
||||
评分标准:不要求深度,不要求使用特定术语,只看用户是否理解了概念。
|
||||
用户理解核心概念就给分。即使没有使用关键点中的原词,只要意思到位就算覆盖。
|
||||
例如关键点是"上下文窗口有限",用户说"信息太多超过AI处理长度"也是覆盖。
|
||||
评分原则:往宽了给分,不确定时就给高分。明显正确就给8-10分,部分正确5-7分,完全不沾边才0-2分。
|
||||
|
||||
返回JSON:
|
||||
- score: 0-10
|
||||
- feedback: 评语
|
||||
- should_follow_up: true/false
|
||||
- follow_up_question: 追问(仅true时需要,针对未覆盖的关键点,false时null)
|
||||
|
||||
请以 JSON 格式返回响应:
|
||||
{"score":0到10,"feedback":"评语","should_follow_up":true或false,"follow_up_question":"追问或null"}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 抽题策略(selectQuestions)
|
||||
|
||||
按模板配置的维度权重分配题目数量。
|
||||
|
||||
**流程:**
|
||||
1. 读取模板的 dimensions 配置(如 PROMPT:30%, LLM:30%, IDE:20%, DEV_PATTERN:20%)
|
||||
2. 按权重计算每维度应出题数(如10题 → 3/3/2/2)
|
||||
3. 在各维度题库中随机抽取指定数量的题目
|
||||
4. 如某维度题数不足,从已抽题中补充
|
||||
5. 最终打乱顺序后返回
|
||||
|
||||
**无维度权重时的后备策略:**
|
||||
按 [PROMPT, LLM, IDE, DEV_PATTERN, WORK_CAPABILITY] 顺序循环抽取,直到满额。
|
||||
|
||||
---
|
||||
|
||||
## 4. 提问节点提示词(interviewer.node.ts)
|
||||
|
||||
> 当前题库暂未配置 interviewer 的自定义提示词,使用默认LangGraph状态机流程。
|
||||
+1
-1
@@ -42,7 +42,7 @@
|
||||
"@types/cron": "^2.0.1",
|
||||
"axios": "^1.13.2",
|
||||
"bcrypt": "^6.0.0",
|
||||
"better-sqlite3": "^12.5.0",
|
||||
"better-sqlite3": "^12.10.0",
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.14.3",
|
||||
"dotenv": "^17.2.3",
|
||||
|
||||
File diff suppressed because one or more lines are too long
+2
-2
@@ -208,8 +208,8 @@ async function run() {
|
||||
|
||||
// 5.1 并发
|
||||
const [rA, rB] = await Promise.all([
|
||||
api(adminT, 'POST', '/users', { username: 'z-race-' + Date.now(), password: 'Pass1234' }),
|
||||
api(adminT, 'POST', '/users', { username: 'z-race-' + Date.now(), password: 'Pass1234' }),
|
||||
api(adminT, 'POST', '/users', { username: 'z-race-a-' + Date.now(), password: 'Pass1234' }),
|
||||
api(adminT, 'POST', '/users', { username: 'z-race-b-' + Date.now(), password: 'Pass1234' }),
|
||||
]);
|
||||
assert('5.1', '并发不同名不冲突', rA.status < 300 && rB.status < 300);
|
||||
if (rA.status < 300) await api(adminT, 'DELETE', '/users/' + (rA.data?.user?.id || rA.data?.id));
|
||||
|
||||
Reference in New Issue
Block a user