Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/chenlili0501_ai-intro-teaching-agent.json

1 line
167 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "chenlili0501/ai-intro-teaching-agent", "files": {"README.md": {"40e8a6d73cb145da7f8757a843cdb71099751523": {"t": 1785747275.3834424, "n": 8847, "h": "cb8e4e06bfd973a3", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 考核发布迭代 | `main` | 统一试卷、智能出题、审核发布、时限与次数控制已完成 |\n| 课程成员迭代 | `main` | 入课申请、教师审批、课程隔离和角色化 Dashboard 已完成 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n默认本地开发使用项目内持久化 Chroma,不需要单独启动向量数据库服务。首次\n启动或数据库模型更新后,先在项目根目录执行迁移:\n\n```powershell\n.\\.venv\\Scripts\\alembic.exe upgrade head\n```\n\n随后打开两个 PowerShell 终端。\n\n终端一启动后端:\n\n```powershell\ncd D:\\桌面\\小学期课程设计\\AI_intro_teaching_agent\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 --reload\n```\n\n终端二启动前端:\n\n```powershell\ncd D:\\桌面\\小学期课程设计\\AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n| 服务 | 地址 |\n|---|---|\n| 前端页面 | http://localhost:5173 |\n| 后端 API | http://localhost:8000/api/v1 |\n| Swagger API 文档 | http://localhost:8000/docs |\n| 健康检查 | http://localhost:8000/health |\n\n如果需要测试独立 Chroma 服务,应在 `.env` 中设置 `CHROMA_MODE=http`、\n`CHROMA_HOST=localhost` 和 `CHROMA_PORT=8001`,再启动 Chroma。Docker Compose\n环境已经使用该模式,本地日常开发无需额外进程。\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n### 首次配置模型与智能体\n\n1. 使用管理员账号登录,进入“管理后台 → 大模型配置”。\n2. 新建并测试一个 DeepSeek 模型配置;API Key 可以保存在该配置中,也可以\n 继续使用本机 `.env` 的 `DEEPSEEK_API_KEY`。连通性测试与实际运行使用相同\n 的密钥回退规则;测试失败时,页面会显示后端返回的具体原因,而不是统一的\n “测试请求失败”。\n3. 首个模型配置创建成功后,系统自动补全课程知识问答、学习资源推荐和学习\n 评价三个功能智能体。\n4. 在“智能体管理”分别调整三个智能体的名称、系统提示词、绑定模型和启停\n 状态。修改后,后续对话、资源推荐、学习评分与报告分析立即使用新配置。\n5. “智能体调用”页面只显示已启用、且绑定模型具有可用凭据的智能体。\n\n教师章节考核的智能出题仍由“考核发布管理”内部服务调用大模型完成,不作为\n学生端可调用智能体展示。教师应在考核发布工作台配置题型、数量、时限并审核\n发布试卷。\n\n模型配置中的 `temperature`、`max_tokens` 和 `top_p` 会进入真实模型请求;\n被智能体引用的模型配置必须先解除绑定,才能删除。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| POST | `/api/v1/courses/{id}/chapters` | 创建章节 | Teacher/Admin |\n| PATCH | `/api/v1/courses/{id}/chapters/{chapter_id}` | 编辑章节 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/chapters/{chapter_id}` | 删除章节及关联资源 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/generate` | 基于章节 RAG 智能出题 | Teacher/Admin |\n| GET | `/api/v1/assessment/configs/{id}/questions` | 审核试卷题目 | Teacher/Admin |\n| DELETE | `/api/v1/assessment/configs/{id}/questions/{question_id}` | 删除试卷题目 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/questions/{question_id}/regenerate` | 重新生成单道题 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/publish` | 发布考核 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/unpublish` | 撤回考核 | Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 课程申请与成员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 学生查看开设中课程及申请状态 | 登录 |\n| POST | `/api/v1/course-enrollments/{course_id}/apply` | 申请加入课程 | Student |\n| GET | `/api/v1/course-enrollments/mine` | 当前学生申请记录 | Student |\n| GET | `/api/v1/course-enrollments/requests` | 待审批申请 | Teacher/Admin |\n| PATCH | `/api/v1/course-enrollments/requests/{id}` | 批准或拒绝申请 | 课程教师/Admin |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(知识问答/资源推荐/学习报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/available` | 获取当前学生可参加的已发布考核 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 按已发布配置开始或继续评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/sessions/{id}/report` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **assessment_question_templates** — 教师审核并发布的统一试卷题目\n- **course_enrollments** — 学生入课申请和已审批课程成员关系\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 学生/教师/管理员差异化仪表盘、课程申请与审批 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师/管理员) | 考核发布管理 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "d2adfcc3856dcbb4dde446642da839b96a42c68f": {"t": 1785772089.582165, "n": 8699, "h": "04f63b2f6c29ca9d", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 考核发布迭代 | `main` | 统一试卷、智能出题、审核发布、时限与次数控制已完成 |\n| 课程成员迭代 | `main` | 入课申请、教师审批、课程隔离和角色化 Dashboard 已完成 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n默认本地开发使用项目内持久化 Chroma,不需要单独启动向量数据库服务。首次\n启动或数据库模型更新后,先在项目根目录执行迁移:\n\n```powershell\n.\\.venv\\Scripts\\alembic.exe upgrade head\n```\n\n随后打开两个 PowerShell 终端。\n\n终端一启动后端:\n\n```powershell\ncd D:\\桌面\\小学期课程设计\\AI_intro_teaching_agent\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 --reload\n```\n\n终端二启动前端:\n\n```powershell\ncd D:\\桌面\\小学期课程设计\\AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n| 服务 | 地址 |\n|---|---|\n| 前端页面 | http://localhost:5173 |\n| 后端 API | http://localhost:8000/api/v1 |\n| Swagger API 文档 | http://localhost:8000/docs |\n| 健康检查 | http://localhost:8000/health |\n\n如果需要测试独立 Chroma 服务,应在 `.env` 中设置 `CHROMA_MODE=http`、\n`CHROMA_HOST=localhost` 和 `CHROMA_PORT=8001`,再启动 Chroma。Docker Compose\n环境已经使用该模式,本地日常开发无需额外进程。\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n### 首次配置模型与智能体\n\n1. 使用管理员账号登录,进入“管理后台 → 大模型配置”。\n2. 新建并测试一个 DeepSeek 模型配置;API Key 可以保存在该配置中,也可以\n 继续使用本机 `.env` 的 `DEEPSEEK_API_KEY`。\n3. 首个模型配置创建成功后,系统自动补全课程知识问答、学习资源推荐、章节\n 考核和学习评价四个功能智能体。\n4. 在“智能体管理”分别调整四个智能体的名称、系统提示词、绑定模型和启停\n 状态。修改后,后续对话、出题、评分和智能体调用立即使用新配置。\n5. “智能体调用”页面只显示已启用、且绑定模型具有可用凭据的智能体。\n\n模型配置中的 `temperature`、`max_tokens` 和 `top_p` 会进入真实模型请求;\n被智能体引用的模型配置必须先解除绑定,才能删除。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| POST | `/api/v1/courses/{id}/chapters` | 创建章节 | Teacher/Admin |\n| PATCH | `/api/v1/courses/{id}/chapters/{chapter_id}` | 编辑章节 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/chapters/{chapter_id}` | 删除章节及关联资源 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/generate` | 基于章节 RAG 智能出题 | Teacher/Admin |\n| GET | `/api/v1/assessment/configs/{id}/questions` | 审核试卷题目 | Teacher/Admin |\n| DELETE | `/api/v1/assessment/configs/{id}/questions/{question_id}` | 删除试卷题目 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/questions/{question_id}/regenerate` | 重新生成单道题 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/publish` | 发布考核 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/unpublish` | 撤回考核 | Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 课程申请与成员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 学生查看开设中课程及申请状态 | 登录 |\n| POST | `/api/v1/course-enrollments/{course_id}/apply` | 申请加入课程 | Student |\n| GET | `/api/v1/course-enrollments/mine` | 当前学生申请记录 | Student |\n| GET | `/api/v1/course-enrollments/requests` | 待审批申请 | Teacher/Admin |\n| PATCH | `/api/v1/course-enrollments/requests/{id}` | 批准或拒绝申请 | 课程教师/Admin |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/available` | 获取当前学生可参加的已发布考核 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 按已发布配置开始或继续评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/sessions/{id}/report` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **assessment_question_templates** — 教师审核并发布的统一试卷题目\n- **course_enrollments** — 学生入课申请和已审批课程成员关系\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 学生/教师/管理员差异化仪表盘、课程申请与审批 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师/管理员) | 考核发布管理 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "4d77990f0fd13e7a7d2f1e42c76677b9c56e3550": {"t": 1785772091.032189, "n": 8318, "h": "57295f192eee3c8c", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 考核发布迭代 | `main` | 统一试卷、智能出题、审核发布、时限与次数控制已完成 |\n| 课程成员迭代 | `main` | 入课申请、教师审批、课程隔离和角色化 Dashboard 已完成 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n默认本地开发使用项目内持久化 Chroma,不需要单独启动向量数据库服务。首次\n启动或数据库模型更新后,先在项目根目录执行迁移:\n\n```powershell\n.\\.venv\\Scripts\\alembic.exe upgrade head\n```\n\n随后打开两个 PowerShell 终端。\n\n终端一启动后端:\n\n```powershell\ncd D:\\桌面\\小学期课程设计\\AI_intro_teaching_agent\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 --reload\n```\n\n终端二启动前端:\n\n```powershell\ncd D:\\桌面\\小学期课程设计\\AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n| 服务 | 地址 |\n|---|---|\n| 前端页面 | http://localhost:5173 |\n| 后端 API | http://localhost:8000/api/v1 |\n| Swagger API 文档 | http://localhost:8000/docs |\n| 健康检查 | http://localhost:8000/health |\n\n如果需要测试独立 Chroma 服务,应在 `.env` 中设置 `CHROMA_MODE=http`、\n`CHROMA_HOST=localhost` 和 `CHROMA_PORT=8001`,再启动 Chroma。Docker Compose\n环境已经使用该模式,本地日常开发无需额外进程。\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| POST | `/api/v1/courses/{id}/chapters` | 创建章节 | Teacher/Admin |\n| PATCH | `/api/v1/courses/{id}/chapters/{chapter_id}` | 编辑章节 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/chapters/{chapter_id}` | 删除章节及关联资源 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/generate` | 基于章节 RAG 智能出题 | Teacher/Admin |\n| GET | `/api/v1/assessment/configs/{id}/questions` | 审核试卷题目 | Teacher/Admin |\n| DELETE | `/api/v1/assessment/configs/{id}/questions/{question_id}` | 删除试卷题目 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/questions/{question_id}/regenerate` | 重新生成单道题 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/publish` | 发布考核 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/unpublish` | 撤回考核 | Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 课程申请与成员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 学生查看开设中课程及申请状态 | 登录 |\n| POST | `/api/v1/course-enrollments/{course_id}/apply` | 申请加入课程 | Student |\n| GET | `/api/v1/course-enrollments/mine` | 当前学生申请记录 | Student |\n| GET | `/api/v1/course-enrollments/requests` | 待审批申请 | Teacher/Admin |\n| PATCH | `/api/v1/course-enrollments/requests/{id}` | 批准或拒绝申请 | 课程教师/Admin |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/available` | 获取当前学生可参加的已发布考核 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 按已发布配置开始或继续评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/sessions/{id}/report` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **assessment_question_templates** — 教师审核并发布的统一试卷题目\n- **course_enrollments** — 学生入课申请和已审批课程成员关系\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 学生/教师/管理员差异化仪表盘、课程申请与审批 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师/管理员) | 考核发布管理 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "e4570a7dec7bac20b7d52fe9bd6b2e4c5ee18b91": {"t": 1785772093.2694013, "n": 8235, "h": "7ec537084736a445", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 考核发布迭代 | `main` | 统一试卷、智能出题、审核发布、时限与次数控制已完成 |\n| 课程成员迭代 | `main` | 入课申请、教师审批、课程隔离和角色化 Dashboard 已完成 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| POST | `/api/v1/courses/{id}/chapters` | 创建章节 | Teacher/Admin |\n| PATCH | `/api/v1/courses/{id}/chapters/{chapter_id}` | 编辑章节 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/chapters/{chapter_id}` | 删除章节及关联资源 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/generate` | 基于章节 RAG 智能出题 | Teacher/Admin |\n| GET | `/api/v1/assessment/configs/{id}/questions` | 审核试卷题目 | Teacher/Admin |\n| DELETE | `/api/v1/assessment/configs/{id}/questions/{question_id}` | 删除试卷题目 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/questions/{question_id}/regenerate` | 重新生成单道题 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/publish` | 发布考核 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/unpublish` | 撤回考核 | Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 课程申请与成员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 学生查看开设中课程及申请状态 | 登录 |\n| POST | `/api/v1/course-enrollments/{course_id}/apply` | 申请加入课程 | Student |\n| GET | `/api/v1/course-enrollments/mine` | 当前学生申请记录 | Student |\n| GET | `/api/v1/course-enrollments/requests` | 待审批申请 | Teacher/Admin |\n| PATCH | `/api/v1/course-enrollments/requests/{id}` | 批准或拒绝申请 | 课程教师/Admin |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/available` | 获取当前学生可参加的已发布考核 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 按已发布配置开始或继续评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/sessions/{id}/report` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **assessment_question_templates** — 教师审核并发布的统一试卷题目\n- **course_enrollments** — 学生入课申请和已审批课程成员关系\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 学生/教师/管理员差异化仪表盘、课程申请与审批 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师/管理员) | 考核发布管理 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "7545cf99531fed9fe43f8c8f5a1ef51711f907ff": {"t": 1785772095.8475366, "n": 7614, "h": "96ebeef6b9e6feff", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 考核发布迭代 | `main` | 统一试卷、智能出题、审核发布、时限与次数控制已完成 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| POST | `/api/v1/courses/{id}/chapters` | 创建章节 | Teacher/Admin |\n| PATCH | `/api/v1/courses/{id}/chapters/{chapter_id}` | 编辑章节 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/chapters/{chapter_id}` | 删除章节及关联资源 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/generate` | 基于章节 RAG 智能出题 | Teacher/Admin |\n| GET | `/api/v1/assessment/configs/{id}/questions` | 审核试卷题目 | Teacher/Admin |\n| DELETE | `/api/v1/assessment/configs/{id}/questions/{question_id}` | 删除试卷题目 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/publish` | 发布考核 | Teacher/Admin |\n| POST | `/api/v1/assessment/configs/{id}/unpublish` | 撤回考核 | Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/available` | 获取当前学生可参加的已发布考核 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 按已发布配置开始或继续评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/sessions/{id}/report` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **assessment_question_templates** — 教师审核并发布的统一试卷题目\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师/管理员) | 考核发布管理 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "09098150f160df423a163dcafe312088a47af893": {"t": 1785772097.266498, "n": 7065, "h": "557f526c953b58c8", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| POST | `/api/v1/courses/{id}/chapters` | 创建章节 | Teacher/Admin |\n| PATCH | `/api/v1/courses/{id}/chapters/{chapter_id}` | 编辑章节 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/chapters/{chapter_id}` | 删除章节及关联资源 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/sessions` | 列出评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 开始评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/reports/{id}` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "caca7026e3e380e244bb2716af76daf098a17c89": {"t": 1785772101.3085945, "n": 6833, "h": "21afec0c809633fa", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n| ITEM-009/010/011 功能增强 | `main` | 用户删除/重置密码、课程 CRUD、资源删除 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| DELETE | `/api/v1/courses/{id}` | 删除课程及关联数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| POST | `/api/v1/admin/users/{id}/reset-password` | 重置用户密码为 `123456789` | Admin |\n| DELETE | `/api/v1/admin/users/{id}` | 删除用户及关联数据 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| DELETE | `/api/v1/courses/{id}/resources/{resource_id}` | 删除资源及向量数据 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/sessions` | 列出评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 开始评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/reports/{id}` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "63d7931ee204780adb9dfc863a077df3f2f36f6f": {"t": 1785772103.5362928, "n": 6478, "h": "625b29c28ac52543", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n| P0 核心缺陷修复 | `main` | LLM 调用日志、审计日志、智能体 SSE 流式 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | SSE 流式执行智能体工具(检索/推荐/考核/报告) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/sessions` | 列出评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 开始评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/reports/{id}` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "5564324bf98a4be454b650af456edc928808e82b": {"t": 1785772105.2792504, "n": 6421, "h": "c33c47030d321cc1", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n> 本地 RAG 已同步 0—10 章 11 份课件,共 1669 个 Chroma 检索片段。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n课程资料与 RAG 同步:[docs/rag/courseware-sync.md](./docs/rag/courseware-sync.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n本地开发默认直接使用 `./data/cache/chroma` 中的持久化 Chroma,无需额外启动\nChroma 服务。Docker Compose 环境才使用独立 Chroma HTTP 服务。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传、解析并加入 RAG | Teacher/Admin |\n| POST | `/api/v1/courses/{id}/resources/{resource_id}/reindex` | 重新解析并覆盖向量 | Teacher/Admin |\n| GET | `/api/v1/courses/{id}/resources/{resource_id}/ingestion` | 查询导入历史 | 登录 |\n| POST | `/api/v1/rag/retrieve` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | 执行知识检索、资源推荐、考核或报告工具 | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/sessions` | 列出评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 开始评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/reports/{id}` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters,记录可重新入库的存储路径)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(本地持久化模式;Docker 使用 HTTP 服务)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "3235af5b096e16f991a5864e2ee73ce386dd438a": {"t": 1785772109.0652218, "n": 6057, "h": "61c451f46ec7da2a", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n| 学生端迭代 1:缺陷修复与增强 | `main` | 已完成,待用户验收 |\n\n> 前端主要业务已对接真实后端,包括认证、课程、对话、Dashboard、智能体工具、\n> 模型配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。学生端已支持只读课程资源、对话管理与公式渲染。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:启动前端开发服务器\n\n前端业务默认调用真实 API。只启动前端可以查看登录页,但登录后功能需要后端服务。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传教学资源并触发解析 | Teacher/Admin |\n| GET | `/api/v1/ingestion/jobs` | 查询导入任务状态 | 登录 |\n| GET | `/api/v1/retrieval/search` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| PATCH | `/api/v1/chat/conversations/{id}` | 重命名或置顶对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### Dashboard 与智能体工具\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/dashboard` | 当前用户统计、活动和章节进度 | 登录 |\n| POST | `/api/v1/agents/invoke` | 执行知识检索、资源推荐、考核或报告工具 | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/sessions` | 列出评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 开始评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/reports/{id}` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter,支持置顶)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(容器已配置,ONNX 嵌入模型已缓存到 D 盘)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "67124384eab1708feca3f290db806f1fc34602fa": {"t": 1785772111.4563112, "n": 5967, "h": "28a813a6ac6b982c", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈部署 | `main` | Docker Compose 四服务配置完成(api/web/caddy/chroma),待手动验证 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` → `main` | 已完成并合并 |\n\n> 前端所有 API 模块已全面对接真实后端(`USE_MOCK` 全部关闭),包括认证、\n> 课程、对话、模型配置、智能体配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览 UI)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n## 后端 API(Phase 1~5 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传教学资源并触发解析 | Teacher/Admin |\n| GET | `/api/v1/ingestion/jobs` | 查询导入任务状态 | 登录 |\n| GET | `/api/v1/retrieval/search` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### 评测执行(Phase 5)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/assessment/sessions` | 列出评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions` | 开始评测会话 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/answers` | 提交答案 | 登录 |\n| POST | `/api/v1/assessment/sessions/{id}/submit` | 提交评测(触发评分) | 登录 |\n| GET | `/api/v1/assessment/reports/{id}` | 查看学习报告 | 登录 |\n| GET | `/api/v1/assessment/progress` | 学习进度统计 | 登录 |\n| POST | `/api/v1/courses/{id}/chapters` | 添加章节 | Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n- **assessment_sessions** — 评测会话(FK → users/assessment_configs)\n- **questions** — 评测题目(FK → assessment_sessions)\n- **answers** — 用户答案(FK → questions)\n- **learning_reports** — 学习报告(FK → assessment_sessions,含知识点掌握度和建议)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(容器已配置,ONNX 嵌入模型已缓存到 D 盘)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "355307b6c3891ae964669c2786c47ec46896f78c": {"t": 1785772112.63659, "n": 5244, "h": "097bbd71b39fef6f", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈骨架 | `main` | 已编排;Chroma 健康验证通过,应用镜像待网络恢复后构建 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 5:评测引擎 | `backend` | 已完成,待合并到 main |\n\n> 前端所有 API 模块已全面对接真实后端(`USE_MOCK` 全部关闭),包括认证、\n> 课程、对话、模型配置、智能体配置、用户管理、日志查询和评测执行。\n> 评测引擎已实现:LLM+RAG 出题、客观题自动评分、简答题 LLM 辅助评分、\n> 学习报告生成和学习进度追踪。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览 UI)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n## 后端 API(Phase 1~4 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传教学资源并触发解析 | Teacher/Admin |\n| GET | `/api/v1/ingestion/jobs` | 查询导入任务状态 | 登录 |\n| GET | `/api/v1/retrieval/search` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(容器已配置,ONNX 嵌入模型已缓存到 D 盘)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "54d270a8236c781c732597a744ab2d6b0257144d": {"t": 1785772114.0164087, "n": 5197, "h": "fbcb6cb1c9ba76bc", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,API 已对接真实后端 |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈骨架 | `main` | 已编排;Chroma 健康验证通过,应用镜像待网络恢复后构建 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` | 已完成,待合并到 main |\n| 后端 Phase 5:智能体与评测 | 后续阶段 | 尚未实现 |\n\n> 前端所有 API 模块已全面对接真实后端(`USE_MOCK` 全部关闭),包括认证、\n> 课程、对话、模型配置、智能体配置、用户管理和日志查询。考核执行引擎\n> (出题、答题、评分)待 Phase 5 实现。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览 UI)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 前端 API 已全部对接真实后端。如需单独启动前端演示(无后端),可将对应 API 文件中的 `USE_MOCK` 设回 `true`。\n\n## 后端 API(Phase 1~4 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传教学资源并触发解析 | Teacher/Admin |\n| GET | `/api/v1/ingestion/jobs` | 查询导入任务状态 | 登录 |\n| GET | `/api/v1/retrieval/search` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(容器已配置,ONNX 嵌入模型已缓存到 D 盘)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "732b49305396ea4e5c99904cb5ffc9093d6071bc": {"t": 1785772115.4756954, "n": 5169, "h": "f28df5239b47fc5a", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,当前使用 Mock API |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈骨架 | `main` | 已编排;Chroma 健康验证通过,应用镜像待网络恢复后构建 |\n| 后端 Phase 3:文件处理与 RAG | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 4:RAG + DeepSeek 对话 | `backend` | 已完成,待合并到 main |\n| 后端 Phase 5:智能体与评测 | 后续阶段 | 尚未实现 |\n\n> 当前前端 Chat 模块已切换到真实后端接口(`USE_MOCK = false`),其余模块\n> 仍使用 Mock 数据。对话、RAG 已在后端完成,智能体执行和评测引擎待后续实现。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览 UI)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 连接真实后端时,需将前端 API 文件中的 `USE_MOCK = true` 改为 `false`。\n\n## 后端 API(Phase 1~4 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 文件处理与 RAG(Phase 3)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/courses/{id}/resources/upload` | 上传教学资源并触发解析 | Teacher/Admin |\n| GET | `/api/v1/ingestion/jobs` | 查询导入任务状态 | 登录 |\n| GET | `/api/v1/retrieval/search` | RAG 语义检索(Top-k) | 登录 |\n\n### 对话与问答(Phase 4)\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/chat/conversations` | 列出当前用户对话 | 登录 |\n| POST | `/api/v1/chat/conversations` | 创建新对话 | 登录 |\n| DELETE | `/api/v1/chat/conversations/{id}` | 删除对话及消息 | 登录 |\n| GET | `/api/v1/chat/conversations/{id}/messages` | 获取对话消息列表 | 登录 |\n| POST | `/api/v1/chat/stream` | SSE 流式问答(RAG + DeepSeek) | 登录 |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n- **ingestion_jobs** — 文件导入管道状态追踪\n- **conversations** — 对话会话(FK → users,可选关联 course/chapter)\n- **messages** — 对话消息(FK → conversations,含 sources 和 token 用量)\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(容器已配置,ONNX 嵌入模型已缓存到 D 盘)\n- **RAG**:ChromaDB 语义检索 + DeepSeek 上下文注入(已实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek deepseek-v4-flash(流式对话已实现)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "db55ad87478f8d52671d29ec4ca1f8fd6a707629": {"t": 1785772118.0368278, "n": 4321, "h": "09f3e3815a8f6125", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端 17 个页面 | `front_design` → `main` | 页面与交互已完成,当前使用 Mock API |\n| 后端 Phase 1:基础 CRUD | `backend` → `main` | 已完成并合并 |\n| 后端 Phase 2:配置管理 | `backend` → `main` | 已完成并合并 |\n| Docker 全栈骨架 | `main` | 已编排;Chroma 健康验证通过,应用镜像待网络恢复后构建 |\n| 后端 Phase 3:文件处理与 RAG | 下一阶段 | 尚未实现 |\n| 后端 Phase 4:对话、智能体、评测 | 后续阶段 | 尚未实现 |\n\n> 当前前端 API 模块均设置为 `USE_MOCK = true`。页面可以独立演示,但不代表\n> 对话、RAG、智能体执行和评测引擎已经在后端完成。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n当前实现状态:[docs/architecture/implementation-status.md](./docs/architecture/implementation-status.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览 UI)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 连接真实后端时,需将前端 API 文件中的 `USE_MOCK = true` 改为 `false`。\n\n## 后端 API(Phase 1~2 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 配置管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| CRUD | `/api/v1/admin/model-configs` | 模型配置与连通测试 | Admin |\n| CRUD | `/api/v1/admin/agent-configs` | 智能体配置 | Admin |\n| CRUD | `/api/v1/assessment/configs` | 章节评测配置 | 读:登录;写:Teacher/Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n- **model_configs** — 模型连接配置\n- **agent_configs** — 智能体提示词和工具配置\n- **assessment_configs** — 章节评测规则配置\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(容器已配置,业务接入待实现)\n- **RAG**:LangChain(待实现)\n- **大模型**:OpenAI SDK 兼容 DeepSeek(配置与连通测试已实现,业务调用待实现)\n- **部署**:Docker Compose (Caddy + Nginx + Uvicorn + Chroma)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "180aa06ef565e2077ebbb47f425a5824dc0942da": {"t": 1785772120.260922, "n": 3727, "h": "ca21979005bb165d", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n| 阶段 | 分支 | 状态 |\n|---|---|---|\n| 前端全面重构 | `front_design` → `main` | 已完成并合并 |\n| Docker 部署配置 | `front_design` → `main` | 已完成并合并 |\n| 后端 Phase 1: CRUD 基础 | `backend` | 已完成,待合并到 main |\n| 后端 Phase 2: 配置管理 | (计划中) | 待开发 |\n| 后端 Phase 3: 文件处理管道 | (计划中) | 待开发 |\n| 后端 Phase 4: AI 核心 (DeepSeek) | (计划中) | 待开发 |\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览 UI)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n**后端**(需要 `uv` 或 Python 虚拟环境):\n\n```powershell\n# 使用 uv(推荐)\nuv run alembic upgrade head\nuv run uvicorn backend.app.main:app --reload\n\n# 或使用虚拟环境\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n**前端**:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/health\n\n> 连接真实后端时,需将前端 API 文件中的 `USE_MOCK = true` 改为 `false`。\n\n## 后端 API(Phase 1 已实现)\n\n### 认证\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| POST | `/api/v1/auth/register` | 学生注册 | 公开 |\n| POST | `/api/v1/auth/login` | 登录获取 JWT | 公开 |\n\n### 用户\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/users/me` | 获取当前用户信息 | 登录 |\n| PATCH | `/api/v1/users/me` | 更新个人资料 | 登录 |\n| POST | `/api/v1/users/me/password` | 修改密码 | 登录 |\n\n### 课程管理\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/courses` | 课程列表(含章节/资源计数) | 公开 |\n| POST | `/api/v1/courses` | 创建课程 | 登录 |\n| GET | `/api/v1/courses/{id}` | 课程详情 | 公开 |\n| PATCH | `/api/v1/courses/{id}` | 更新课程 | 登录 |\n| GET | `/api/v1/courses/{id}/chapters` | 章节列表 | 公开 |\n| GET | `/api/v1/courses/{id}/resources` | 资源列表(支持筛选) | 公开 |\n\n### 管理员\n\n| 方法 | 路径 | 说明 | 权限 |\n|---|---|---|---|\n| GET | `/api/v1/admin/users` | 用户列表 | Admin |\n| PATCH | `/api/v1/admin/users/{id}/roles` | 修改用户角色 | Admin |\n| GET | `/api/v1/admin/logs/call` | 调用日志(分页) | Admin |\n| GET | `/api/v1/admin/logs/audit` | 审计日志(分页) | Admin |\n\n### 数据库模型\n\n- **users** — 用户(含 display_name、last_login_at)\n- **courses** — 课程\n- **chapters** — 章节(FK → courses)\n- **resources** — 教学资源(FK → courses/chapters)\n- **call_logs** — LLM 调用日志\n- **audit_logs** — 管理审计日志\n\n数据库迁移使用 Alembic,迁移脚本位于 `backend/alembic/versions/`。\n\n## 前端页面概览\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n## 技术栈\n\n- **前端**:Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router\n- **后端**:Python 3.11、FastAPI、SQLAlchemy 2.0、Pydantic v2\n- **认证**:JWT (PyJWT) + Argon2 密码哈希 (pwdlib)\n- **数据库**:SQLite + Alembic 迁移\n- **向量数据库**:ChromaDB(计划)\n- **RAG**:LangChain(计划)\n- **大模型**:DeepSeek API(计划)\n- **部署**:Docker Compose (Caddy + Nginx + Uvicorn + Chroma)\n\n## 分支策略\n\n项目采用**分阶段分支开发**模式:\n\n1. 在功能分支(如 `backend`、`front_design`)上进行开发\n2. 每个阶段完成后经验证,合并到 `main` 分支\n3. 确保 `main` 始终处于可运行状态\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置通过 `.env.example` 说明。\n"}, "e30e9c4e5ece8d886b95c35cb8b7c56553bc1051": {"t": 1785772121.6419702, "n": 2066, "h": "e73cb74018fb32f3", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n当前已完成系统设计、课件统一抽取原型、开发环境,以及可运行的 FastAPI +\nVue 3 + Element Plus 快速原型。\n\n`front_design` 分支包含完全重写的前端界面,采用生产级 UI 设计,覆盖所有功能模块。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n## 本地启动\n\n### 方式一:仅启动前端(推荐快速预览)\n\n前端内置 Mock 数据层,**无需启动后端**即可浏览全部页面和交互。\n\n```powershell\ncd AI_intro_teaching_agent\ngit checkout front_design\n.\\scripts\\env\\pnpm.cmd install\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问 http://127.0.0.1:5173\n\n**Mock 登录说明**(任意密码均可登录,角色由用户名决定):\n\n| 用户名前缀 | 角色 | 可见菜单 |\n|---|---|---|\n| student 或其他 | 学生 | 首页、对话、智能体、考核路线、个人中心 |\n| teacher | 教师 | 学生菜单 + 课程管理、资源管理、考核配置 |\n| admin | 管理员 | 全部菜单 + 模型配置、智能体管理、用户管理、调用日志 |\n\n### 方式二:前后端同时启动(完整功能)\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n后端:\n\n```powershell\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n前端:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端界面:http://127.0.0.1:5173\n- API 文档:http://127.0.0.1:8000/docs\n- 健康接口:http://127.0.0.1:8000/api/v1/health\n\n> 连接真实后端时,需将前端 API 文件中的 USE_MOCK = true 改为 false。\n\n## 前端页面概览(front_design 分支)\n\n| 模块 | 页面 | 路径 |\n|---|---|---|\n| 认证 | 登录/注册 | /login, /register |\n| 首页 | 仪表盘 | /dashboard |\n| 对话 | 智能问答 | /chat |\n| 智能体 | 介绍/调用 | /agent/intro, /agent/invoke |\n| 考核 | 路线/答题/报告 | /assessment/route, /assessment/take, /assessment/report/:id |\n| 考核(教师) | 考核配置 | /assessment/config |\n| 课程(教师) | 课程管理/资源管理 | /course/manage, /course/resources |\n| 管理(管理员) | 模型配置/智能体/用户/日志 | /admin/* |\n| 个人中心 | 资料编辑/密码修改 | /profile |\n\n### 前端技术栈\n\n- Vue 3 + TypeScript + Vite\n- Element Plus + @element-plus/icons-vue\n- Pinia 状态管理\n- Vue Router(角色守卫 + 懒加载)\n- CSS 变量设计系统(品牌渐变、多层阴影、响应式布局)\n\n## 计划技术栈\n\n- 前端:Vue 3、TypeScript、Element Plus\n- 后端:Python、FastAPI\n- 数据库:SQLite\n- 向量数据库:Chroma\n- RAG:LangChain\n- 大模型:DeepSeek API\n- 部署:Docker Compose\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置将在实现阶段通过 .env.example 说明。"}, "149cdbd424541a3ebe00f2a79023615c848f9e6c": {"t": 1785772122.7842925, "n": 1439, "h": "819c33e14fe98a99", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n当前已完成系统设计、课件统一抽取原型、开发环境,以及可运行的 FastAPI +\nVue 3 + Element Plus 快速原型。前端首页可以通过 Vite 代理检查后端状态。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n本地开发与 Docker 验证流程:[docs/development/workflow.md](./docs/development/workflow.md)\n\n环境自检:\n\n```powershell\n.\\scripts\\env\\verify-environment.cmd\n```\n\n## 本地启动\n\n打开两个 PowerShell 终端,并进入项目根目录。\n\n后端:\n\n```powershell\n.\\.venv\\Scripts\\alembic.exe upgrade head\n.\\.venv\\Scripts\\python.exe -m uvicorn backend.app.main:app --reload\n```\n\n前端:\n\n```powershell\n.\\scripts\\env\\pnpm.cmd dev\n```\n\n访问:\n\n- 前端原型:<http://127.0.0.1:5173>\n- API 文档:<http://127.0.0.1:8000/docs>\n- 健康接口:<http://127.0.0.1:8000/api/v1/health>\n\n日常开发使用本地热更新,不需要反复构建 Docker 镜像。\n\n首次启动先执行 Alembic 迁移。运行数据库保存在 `data/runtime/app.db`,已被\nGit 忽略。\n\n## 工作区边界\n\n`AI_intro_teaching_agent/` 是唯一 Git 项目根目录,存放可交付源码、配置、测试和文档。\n\n项目外部输入和中间产物位于父目录:\n\n- `../人工智能导论课程资料/`:原始课程资料。\n- `../资料处理工作区/`:清单、解析输出、清洗切分、评测集和临时产物。\n- `../小学期课程实践项目说明书.docx`:课程任务原始说明书。\n\n项目代码不能依赖这些目录的绝对路径;运行时通过上传、初始化脚本或可配置路径导入资料。\n\n## 计划技术栈\n\n- 前端:Vue 3、TypeScript、Element Plus\n- 后端:Python、FastAPI\n- 数据库:SQLite\n- 向量数据库:Chroma\n- RAG:LangChain\n- 大模型:DeepSeek API\n- 部署:Docker Compose\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置将在实现阶段通过 `.env.example` 说明。\n"}, "0cc3083d58443727d62e5b6154914d7d1fea269d": {"t": 1785772124.8549278, "n": 877, "h": "7439e5356de0b349", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n当前已完成系统设计、课件统一抽取原型和项目开发环境,准备进入 Sprint 1 工程骨架开发。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n开发环境规范:[docs/development/environment.md](./docs/development/environment.md)\n\n环境自检:\n\n```powershell\n.\\scripts\\env\\verify-environment.cmd\n```\n\n## 工作区边界\n\n`AI_intro_teaching_agent/` 是唯一 Git 项目根目录,存放可交付源码、配置、测试和文档。\n\n项目外部输入和中间产物位于父目录:\n\n- `../人工智能导论课程资料/`:原始课程资料。\n- `../资料处理工作区/`:清单、解析输出、清洗切分、评测集和临时产物。\n- `../小学期课程实践项目说明书.docx`:课程任务原始说明书。\n\n项目代码不能依赖这些目录的绝对路径;运行时通过上传、初始化脚本或可配置路径导入资料。\n\n## 计划技术栈\n\n- 前端:Vue 3、TypeScript、Element Plus\n- 后端:Python、FastAPI\n- 数据库:SQLite\n- 向量数据库:Chroma\n- RAG:LangChain\n- 大模型:DeepSeek API\n- 部署:Docker Compose\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置将在实现阶段通过 `.env.example` 说明。\n"}, "d99282b3935913ef832cdc9586ce1c4f5a234d8c": {"t": 1785772127.2111542, "n": 712, "h": "cb3eeca443a3af9d", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n当前处于系统设计阶段,尚未开始业务代码开发。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n## 工作区边界\n\n`AI_intro_teaching_agent/` 是唯一 Git 项目根目录,存放可交付源码、配置、测试和文档。\n\n项目外部输入和中间产物位于父目录:\n\n- `../人工智能导论课程资料/`:原始课程资料。\n- `../资料处理工作区/`:清单、解析输出、清洗切分、评测集和临时产物。\n- `../小学期课程实践项目说明书.docx`:课程任务原始说明书。\n\n项目代码不能依赖这些目录的绝对路径;运行时通过上传、初始化脚本或可配置路径导入资料。\n\n## 计划技术栈\n\n- 前端:Vue 3、TypeScript、Element Plus\n- 后端:Python、FastAPI\n- 数据库:SQLite\n- 向量数据库:Chroma\n- RAG:LangChain\n- 大模型:DeepSeek API\n- 部署:Docker Compose\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置将在实现阶段通过 `.env.example` 说明。\n"}, "831263f9c780b87dcd312dc59bd2aa80a4e9937f": {"t": 1785772129.6188526, "n": 476, "h": "dc3f60b68912b538", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n当前处于系统设计阶段,尚未开始业务代码开发。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n项目执行入口:[项目进度控制/README.md](./项目进度控制/README.md)\n\n## 计划技术栈\n\n- 前端:Vue 3、TypeScript、Element Plus\n- 后端:Python、FastAPI\n- 数据库:SQLite\n- 向量数据库:Chroma\n- RAG:LangChain\n- 大模型:DeepSeek API\n- 部署:Docker Compose\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置将在实现阶段通过 `.env.example` 说明。\n"}, "12ba0bd235c29f519513f16e6977b6889d2ea444": {"t": 1785772130.8403575, "n": 429, "h": "91501e194d7824c7", "c": "# AI Introduction Teaching Agent\n\n人工智能导论课程教学智能体系统。\n\n本项目是小学期课程实践项目,目标是实现一个具有完整前后端、课程知识库、RAG 问答、学习资源推荐、章节考核和学习评价能力的 Web 智能体系统。\n\n## 当前状态\n\n当前处于系统设计阶段,尚未开始业务代码开发。\n\n设计文档入口:[系统设计/README.md](./系统设计/README.md)\n\n## 计划技术栈\n\n- 前端:Vue 3、TypeScript、Element Plus\n- 后端:Python、FastAPI\n- 数据库:SQLite\n- 向量数据库:Chroma\n- RAG:LangChain\n- 大模型:DeepSeek API\n- 部署:Docker Compose\n\n## 仓库说明\n\n该仓库不提交 API 密钥、运行数据库、向量数据、模型缓存和原始课程课件。运行配置将在实现阶段通过 `.env.example` 说明。\n"}}}}