1 line
167 KiB
JSON
1 line
167 KiB
JSON
{"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"}}}} |