- README 重写:补充实际目录结构、当前题目清单、部署方式、设计原则 - 删除 docs/architecture.md 和 docs/requirements.md(内容已整合到 README)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 🎯 CS 知识应试强化系统
|
||||
|
||||
基于纯 HTML + CSS + JS 的计算机科学知识应试训练平台。
|
||||
零依赖、纯前端的计算机科学知识应试训练平台。题目以 JSON 文件存储于 Git 仓库,通过单文件 SPA 提供交互式刷题体验。
|
||||
|
||||
## 快速开始
|
||||
|
||||
@@ -10,69 +10,102 @@ python3 -m http.server 8080
|
||||
# 浏览器打开 http://localhost:8080
|
||||
```
|
||||
|
||||
无需安装任何依赖,无需构建步骤。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
├── index.html # 前端入口(单文件 SPA)
|
||||
├── topics/ # 题目数据
|
||||
│ ├── index.json # 主题索引
|
||||
│ └── {topic-slug}/
|
||||
│ ├── meta.json # 主题元信息
|
||||
│ ├── fill_blank.json # 填空题
|
||||
│ └── single_choice.json # 单选题
|
||||
├── schema/ # JSON Schema 与模板
|
||||
│ ├── question.schema.json # 题目校验 Schema
|
||||
│ ├── prompt-template.md # LLM 生成提示词模板
|
||||
│ └── templates/ # 各题型示例模板
|
||||
└── .ref/ # 参考数据(不提交 git)
|
||||
├── index.html # 单文件 SPA(HTML + CSS + JS,约 1100 行)
|
||||
├── topics/ # 题目数据
|
||||
│ ├── index.json # 主题索引(前端启动时加载)
|
||||
│ └── qunar-ai-fullstack/ # 题目分组:去哪儿 AI 全栈面试
|
||||
│ ├── gc-jvm/ # GC / JVM / 三色标记
|
||||
│ ├── ai-structured-output/ # AI 结构化输出 / Agent 架构
|
||||
│ ├── ai-memory/ # Agent 记忆管理 / 冲突消解
|
||||
│ ├── ai-hallucination/ # AI 幻觉 / 评估体系 / 标准
|
||||
│ └── ai-tooling/ # AI 工具选型 / Harness / 综合
|
||||
├── schema/ # 数据规范
|
||||
│ ├── question.schema.json # JSON Schema(题目校验)
|
||||
│ ├── prompt-template.md # LLM 生成提示词模板
|
||||
│ └── templates/ # 各题型示例模板(7 种)
|
||||
├── Dockerfile # nginx:alpine 静态站点容器
|
||||
└── .gitea/workflows/deploy.yml # Gitea Actions 自动部署流水线
|
||||
```
|
||||
|
||||
## 数据格式
|
||||
|
||||
每个主题是一个独立目录,包含:
|
||||
- **meta.json** — 主题描述、标签、统计数据
|
||||
- **{题型}.json** — 按题型拆分的题目文件
|
||||
|
||||
题目文件顶层结构:
|
||||
```json
|
||||
{
|
||||
"topic": "gc-jvm",
|
||||
"type": "fill_blank",
|
||||
"schema_version": "1.0.0",
|
||||
"questions": [...]
|
||||
}
|
||||
```
|
||||
|
||||
详见 [schema/question.schema.json](schema/question.schema.json)。
|
||||
每个子主题目录包含:
|
||||
- **meta.json** — 主题元信息与题目文件列表
|
||||
- **fill_blank.json** — 填空题
|
||||
- **single_choice.json** — 单选题
|
||||
|
||||
## 支持的题型
|
||||
|
||||
| 题型 | 代码 | 说明 |
|
||||
|------|------|------|
|
||||
| 单选题 | sc | 4 选 1 |
|
||||
| 多选题 | mc | 多选多 |
|
||||
| 判断题 | tf | 对/错 |
|
||||
| 填空题 | fb | 填写空白 |
|
||||
| 简答题 | sa | 开放式回答 |
|
||||
| 代码阅读 | cr | 阅读代码回答问题 |
|
||||
| 场景分析 | sn | 分析技术场景 |
|
||||
| 题型 | 代码 | 交互方式 |
|
||||
|------|------|----------|
|
||||
| 单选题 | `sc` | 点击选项,即时判定 |
|
||||
| 多选题 | `mc` | 勾选多个选项 |
|
||||
| 判断题 | `tf` | 对 / 错 二选一 |
|
||||
| 填空题 | `fb` | 内联文本输入,支持模糊匹配 |
|
||||
| 简答题 | `sa` | 开放式作答,关键词自检 |
|
||||
| 代码阅读 | `cr` | 代码块 + 嵌套子问题 |
|
||||
| 场景分析 | `sn` | 场景描述 + 嵌套子问题 |
|
||||
|
||||
## 当前题目
|
||||
|
||||
| 子主题 | 题目数 | 覆盖内容 |
|
||||
|--------|--------|----------|
|
||||
| GC / JVM / 三色标记 | 20 | JVM 堆模型、GC 算法、三色标记、CMS/G1/ZGC、GC Roots |
|
||||
| AI 结构化输出 / Agent 架构 | 20 | 结构化输出方法、ReAct/Reflexion 模式、约束解码 |
|
||||
| Agent 记忆管理 / 冲突消解 | 20 | 记忆分层架构、淘汰策略、冲突检测与消解 |
|
||||
| AI 幻觉 / 评估体系 / 标准 | 20 | 幻觉分类、Critic 架构、Context Engineering、RAG |
|
||||
| AI 工具选型 / Harness / 综合 | 20 | 工具选型、Harness 架构、可靠性工程、效率分析 |
|
||||
|
||||
> 共 5 个子主题,100 道题目(每主题 10 填空 + 10 单选)。
|
||||
|
||||
## 添加新题目
|
||||
|
||||
1. 在 `topics/` 下创建 `{topic-slug}/` 目录
|
||||
1. 在 `topics/{group-slug}/` 下创建 `{topic-slug}/` 目录
|
||||
2. 创建 `meta.json`(参考已有主题)
|
||||
3. 按题型创建 JSON 文件(参考 `schema/templates/`)
|
||||
4. 更新 `topics/index.json`
|
||||
5. 刷新页面即可
|
||||
|
||||
## 使用 LLM 批量生成题目
|
||||
|
||||
参考 [schema/prompt-template.md](schema/prompt-template.md) 中的提示词模板。
|
||||
## 使用 LLM 生成题目
|
||||
|
||||
## 自定义导入
|
||||
每个题目卡片右上角有 **📋 复制提示词** 按钮,可将题目格式化为提示词复制到剪贴板,粘贴到任意 AI 工具获取解析。
|
||||
|
||||
在页面侧边栏点击"📥 导入题目",可粘贴 JSON 或上传文件临时导入。
|
||||
批量生成参考 [schema/prompt-template.md](schema/prompt-template.md) 中的提示词模板,支持一次生成多个题型。
|
||||
|
||||
## License
|
||||
## 导入题目
|
||||
|
||||
MIT
|
||||
在页面侧边栏点击 **📥 导入题目**,可粘贴 JSON 或上传 `.json` 文件临时导入(仅当前会话有效)。
|
||||
|
||||
## 部署
|
||||
|
||||
### Docker
|
||||
|
||||
```bash
|
||||
docker build -t examination-site .
|
||||
docker run -d -p 8080:80 examination-site
|
||||
```
|
||||
|
||||
### Gitea Actions(自动)
|
||||
|
||||
推送到 `main` 分支自动触发部署流水线,构建镜像并启动容器。
|
||||
|
||||
### 本地开发
|
||||
|
||||
任意静态文件服务器即可,无需 Node.js 或构建工具:
|
||||
|
||||
```bash
|
||||
python3 -m http.server 8080
|
||||
# 或
|
||||
npx serve .
|
||||
```
|
||||
|
||||
## 设计原则
|
||||
|
||||
- **零依赖** — 纯 HTML + CSS + JS,无框架、无构建工具、无 npm
|
||||
- **数据即代码** — 题目以 JSON 文件存储于 Git,版本可追溯
|
||||
- **单文件应用** — 整个前端在一个 `index.html` 中,便于部署和分发
|
||||
- **Meta/题目分离** — `meta.json` 稳定不变,题目文件按题型拆分,支持并行生成无冲突
|
||||
Reference in New Issue
Block a user