feat: 添加复制题目提示词与导入页 AI 生成提示词模板
Deploy Examination / deploy (push) Successful in 22s

- 题目卡片新增「📋 复制题目」按钮,按题型组织提示词复制到剪贴板
- 导入弹窗新增可折叠的 AI 生成提示词区域,支持 7 种题型切换与复制
- 更新 architecture.md 和 requirements.md 文档

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
2026-09-02 20:12:32 +08:00
parent 71ceeaf704
commit 890d75cf00
3 changed files with 477 additions and 5 deletions
+24 -2
View File
@@ -9,6 +9,7 @@
│ │ index.html (单文件 SPA) │ │
│ │ ┌─────────┐ ┌──────────┐ ┌─────────────┐ │ │
│ │ │ 导航栏 │ │ 做题区域 │ │ 导入模态框 │ │ │
│ │ │ │ │ [复制题目]│ │ [提示词模板] │ │ │
│ │ └────┬────┘ └─────┬────┘ └──────┬──────┘ │ │
│ └───────┼─────────────┼──────────────┼──────────┘ │
└──────────┼─────────────┼──────────────┼─────────────┘
@@ -256,7 +257,7 @@ examination/
│ ▶ 其他主题 │ │ 重置 全部显示 提交全部 │ │
│ │ └────────────────────────┘ │
│ │ ┌─ Question Card ────────┐ │
│ ──────── │ │ #1 ★★★ │ │
│ ──────── │ │ #1 [📋复制] ★★★ │ │
│ 📥 导入 │ │ 题干 [____] │ │
│ │ │ [检查] [显示答案] │ │
│ │ │ 💡 解析... │ │
@@ -283,9 +284,19 @@ fetch topics/{slug}/{type}.json (并行) ──→ 合并 questions 数组
▼
renderQuiz() ──→ 渲染 Tab 栏 + 按当前 Tab 过滤题目卡片
│
│ 用户交互(选择/输入/检查/显示答案/切换 Tab)
│ 用户交互(选择/输入/检查/显示答案/切换 Tab/复制题目)
▼
answers / activeTab 状态更新 ──→ re-render
复制题目流程:
用户点击 [📋 复制题目] ──→ copyQuestionPrompt(qId)
──→ 按题型组织提示词(题干 + 选项/代码/子问题)
──→ navigator.clipboard.writeText() ──→ 按钮变为 ✅ 已复制
导入提示词流程:
用户打开导入弹窗 ──→ 点击 [📋 复制 AI 生成提示词]
──→ 选择题型 ──→ 预览提示词模板 ──→ 复制到剪贴板
──→ 粘贴到外部 AI ──→ 获取 JSON ──→ 粘贴回导入框
```
### 4.3 状态管理
@@ -329,6 +340,17 @@ let activeTab = 'all'; // 当前 Tab:'all' 或题型名称
### 5.1 非 Agent 环境(手动 LLM 对话)
**方式一:通过前端导入页面**
1. 点击侧边栏底部「📥 导入题目」按钮
2. 展开「📋 复制 AI 生成提示词」区域,选择目标题型
3. 点击「复制提示词」,将包含完整 JSON Schema 的提示词复制到剪贴板
4. 将提示词粘贴到外部 AI(ChatGPT / Claude 等),按需修改主题、数量等占位符
5. 获取 AI 返回的 JSON 后,粘贴回导入弹窗的文本框
6. 点击「导入」,题目将临时加载到当前会话
**方式二:通过 schema 模板文件**
1. 打开 `schema/prompt-template.md`,复制提示词模板
2. 替换 `{topic_name}`、`{question_type}`、`{count}` 等变量
3. 将提示词发送给 LLM(ChatGPT / Claude 等)