diff --git a/ai_knowledge_base_v2/README.md b/ai_knowledge_base_v2/README.md index e4030c7..cd97bda 100644 --- a/ai_knowledge_base_v2/README.md +++ b/ai_knowledge_base_v2/README.md @@ -15,8 +15,8 @@ 按照已上传的 AI 知识库系统需求包,重新规划和开发一版新系统: -- 用户端:手机号验证码登录、AI 聊天、多会话、历史聊天、流式回答、停止生成、Markdown 渲染、开放知识库过滤。 -- 管理后台:管理员登录、用户管理、管理员管理、知识库管理、Prompt 管理、模型管理、聊天记录、数据统计、系统配置、操作日志。 +- 用户端:手机号验证码登录、学员名单准入、AI 聊天、多会话、历史聊天、流式回答、停止生成、Markdown 渲染、开放知识库过滤。 +- 管理后台:管理员登录、用户管理、学员手动添加、学员批量导入、管理员管理、知识库管理、Prompt 管理、模型管理、聊天记录、数据统计、系统配置、操作日志。 - AI/RAG:一期以飞书知识库作为唯一知识来源;每次提问实时检索;按知识库开放状态过滤;已开放知识库默认所有用户可见;组装 Prompt;调用大模型;通过 SSE 流式输出;记录 AI 请求日志。 - 一期不做:文件上传、图片理解、OCR、联网搜索、向量数据库同步、支付系统、课程系统、自动授权、多租户、多 Prompt、重新生成、编辑消息。 diff --git a/ai_knowledge_base_v2/development_records/2026-07-06-api-priority.md b/ai_knowledge_base_v2/development_records/2026-07-06-api-priority.md index d0816c4..fd6099c 100644 --- a/ai_knowledge_base_v2/development_records/2026-07-06-api-priority.md +++ b/ai_knowledge_base_v2/development_records/2026-07-06-api-priority.md @@ -12,8 +12,8 @@ P0 接口必须最先实现,即使先用 mock,也要尽快跑通端到端流 | 接口 | 用途 | 备注 | | --- | --- | --- | -| `POST /auth/sms/send` | 发送短信验证码 | 开发阶段 mock。 | -| `POST /auth/login` | 手机号验证码登录 | 首次登录自动创建用户。 | +| `POST /auth/sms/send` | 发送短信验证码 | 开发阶段 mock;手机号必须存在于学员名单。 | +| `POST /auth/login` | 手机号验证码登录 | 不再自动创建用户,只允许已存在且启用的学员登录。 | | `POST /auth/logout` | 退出登录 | Token 立即失效。 | | `GET /user/profile` | 当前用户信息 | 返回额度、已用次数、账号信息。 | | `POST /chat/session` | 创建会话 | 用户提问前可自动创建。 | @@ -47,7 +47,8 @@ P2 用于让管理员能配置和运营系统。 | `GET /admin/dashboard` | 首页统计 | | `GET /admin/user/list` | 用户列表 | | `GET /admin/user/{id}` | 用户详情 | -| `POST /admin/user` | 新增用户 | +| `POST /admin/user` | 手动新增学员 | +| `POST /admin/user/import` | 批量导入学员 | | `PUT /admin/user` | 修改用户 | | `DELETE /admin/user/{id}` | 删除用户 | | `POST /admin/user/chat-limit` | 批量修改聊天次数 | diff --git a/ai_knowledge_base_v2/development_records/2026-07-06-decision-register.md b/ai_knowledge_base_v2/development_records/2026-07-06-decision-register.md index fe6c86f..a9a3328 100644 --- a/ai_knowledge_base_v2/development_records/2026-07-06-decision-register.md +++ b/ai_knowledge_base_v2/development_records/2026-07-06-decision-register.md @@ -16,6 +16,8 @@ | U-002 | 用户端直接使用 Vue 3,不使用 uni-app。 | 已确认 | V2 用户端按 Vue 3 H5 开发;后续小程序转换单独评估,不作为一期技术栈前置约束。 | | U-003 | V2 新需求不要继续混在旧项目文档里,要建立新目录和新开发记录。 | 已确认 | V2 文档和后续代码集中放在 `ai_knowledge_base_v2/` 下。 | | U-004 | 每次代码改动和内容改动都要提交并推送到 Git。 | 已确认 | 文档、代码、配置变更都必须 commit + push。 | +| U-005 | 修改需求时必须先修改相关文档,再修改代码。 | 已确认 | 后续需求变更需要先落中文开发记录和范围/接口/决策文档,再进入实现。 | +| U-006 | 用户端登录改为学员名单准入。 | 已确认 | 不再自动创建普通用户;后台手动添加或批量导入的手机号才可以登录。 | ## 当前默认工程决策 @@ -45,6 +47,7 @@ | D-022 | 用户-知识库授权先放在用户管理中维护。 | 已废弃 | 2026-07-07 需求调整后,一期不再按人分配知识库,已开放知识库默认所有用户可见。 | | D-023 | Agent 调试预览采用接近用户端聊天页的交互形态。 | 默认采用 | 测试问题从配置区移到预览窗口底部,减少调试和真实用户问答体验之间的差异。 | | D-024 | 知识库访问范围改为“开放即全员可见”。 | 用户确认 | 知识库不再精确到用户授权;用户端问答只使用已开放、未禁用知识库,用户管理不再承担知识库授权职责。 | +| D-025 | 学员批量导入一期先支持 CSV 文本粘贴。 | 默认采用 | 避免先引入复杂 Excel 解析和上传组件;后续需要时再扩展 xlsx 上传。 | ## 待确认决策 diff --git a/ai_knowledge_base_v2/development_records/2026-07-06-phase1-scope.md b/ai_knowledge_base_v2/development_records/2026-07-06-phase1-scope.md index 2d61482..6ee03e8 100644 --- a/ai_knowledge_base_v2/development_records/2026-07-06-phase1-scope.md +++ b/ai_knowledge_base_v2/development_records/2026-07-06-phase1-scope.md @@ -21,8 +21,8 @@ | 功能 | 一期要求 | 说明 | | --- | --- | --- | -| 手机号验证码登录 | 必须 | 先接 mock 短信,后续替换真实短信供应商。 | -| 自动创建普通用户 | 必须 | 首次手机号登录后自动创建用户,无需管理员审核。 | +| 手机号验证码登录 | 必须 | 先接 mock 短信,后续替换真实短信供应商;手机号必须已存在于学员名单。 | +| 学员名单准入 | 必须 | 不再自动注册,只有管理员手动添加或批量导入的学员可以登录。 | | Token 登录态 | 必须 | 支持登录有效期、退出后 Token 失效。 | | AI 聊天 | 必须 | 文本输入、发送、接收 AI 回复。 | | 多会话 | 必须 | 支持新建会话、切换会话、历史会话列表。 | @@ -40,7 +40,7 @@ | --- | --- | --- | | 管理员登录 | 必须 | 用户名 + 密码。 | | Dashboard | 必须 | 展示用户、聊天、Token 等核心统计;AI 成功率/失败率一期不展示。 | -| 用户管理 | 必须 | 查询、详情、启用/禁用、删除、设置额度和有效期。 | +| 用户管理 | 必须 | 查询、详情、手动添加学员、批量导入学员、启用/禁用、删除、设置额度和有效期。 | | 管理员管理 | 必须 | 仅超级管理员可维护管理员账号。 | | 知识库管理 | 必须 | 新增、编辑、删除、启用/禁用飞书知识库。 | | Prompt 管理 | 必须 | 查看、编辑、保存、恢复默认;保存后立即生效。 | @@ -96,10 +96,11 @@ ## 一期验收重点 -1. 用户可以完成登录、提问、流式回答、停止生成、查看历史。 +1. 已在学员名单中的用户可以完成登录、提问、流式回答、停止生成、查看历史。 2. AI 只使用已开放的知识库,知识库禁用或未开放时不能参与检索。 3. 无知识命中时不编造答案。 4. 飞书异常、模型异常、AI 超时都有明确提示和日志。 5. 后台可以维护用户、知识库、Prompt、模型、系统配置和聊天记录。 -6. 管理后台权限隔离生效:普通管理员不能维护管理员账号。 -7. 所有关键操作和 AI 请求都可追溯。 +6. 未在学员名单中的手机号不能发送验证码,也不能登录使用系统。 +7. 管理后台权限隔离生效:普通管理员不能维护管理员账号。 +8. 所有关键操作和 AI 请求都可追溯。 diff --git a/ai_knowledge_base_v2/development_records/2026-07-07-student-roster-login-change.md b/ai_knowledge_base_v2/development_records/2026-07-07-student-roster-login-change.md new file mode 100644 index 0000000..9f203bf --- /dev/null +++ b/ai_knowledge_base_v2/development_records/2026-07-07-student-roster-login-change.md @@ -0,0 +1,77 @@ +# 学员名单准入与导入需求变更记录 + +日期:2026-07-07 + +## 背景 + +此前用户端手机号验证码登录采用“首次登录自动创建普通用户”的口径。这种方式适合开放注册,但不适合当前内部学员使用场景。 + +现在需求调整为:系统必须先有学员记录,手机号才允许登录。没有被管理员添加或批量导入的手机号,不允许登录,也不能使用用户端程序。 + +## 新口径 + +1. 前台用户不再自动注册。 +2. 管理员负责维护学员名单。 +3. 管理员可以手动新增单个学员。 +4. 管理员可以批量导入学员。 +5. 发送验证码和登录时都应校验手机号是否存在于系统学员名单中。 +6. 只有系统中存在、未删除、启用状态正常且未过期的手机号可以登录成功。 + +## 后台用户管理要求 + +### 手动添加学员 + +管理员至少需要填写: + +- 手机号 +- 姓名 + +可选维护: + +- 昵称 +- 状态 +- 每日聊天额度 +- 账号有效期 + +### 批量导入学员 + +一期先支持轻量导入格式: + +```text +手机号,姓名,昵称 +13800000001,张三,三三 +13800000002,李四, +``` + +导入规则: + +- 手机号必填且格式必须正确。 +- 姓名必填。 +- 昵称可为空。 +- 已存在手机号不重复创建,按导入内容更新姓名、昵称、状态和额度。 +- 已被软删除的手机号再次导入时恢复为未删除。 +- 导入结果需要返回新增数、更新数、失败数和失败明细。 + +## 用户端登录要求 + +- 未在学员名单中的手机号: + - 发送验证码时拒绝。 + - 登录时拒绝。 + - 提示文案应明确为“手机号不在学员名单中,请联系管理员”。 +- 已禁用或已过期的学员: + - 登录失败。 + - 保持现有状态/有效期提示。 + +## 对现有文档的覆盖说明 + +旧文档中“首次手机号登录后自动创建用户”“自动创建普通用户”等描述从本次变更后废弃。 + +后续开发和验收以本记录以及更新后的 `development_records/` 文档为准。 + +## 验收重点 + +1. 管理员可以手动添加学员。 +2. 管理员可以批量导入学员,并看到导入结果。 +3. 已导入或手动添加的学员可以通过验证码登录。 +4. 系统中不存在的手机号不能发送验证码,也不能登录。 +5. 禁用或过期学员仍不能登录。 diff --git a/ai_knowledge_base_v2/development_records/README.md b/ai_knowledge_base_v2/development_records/README.md index c845358..a4266c0 100644 --- a/ai_knowledge_base_v2/development_records/README.md +++ b/ai_knowledge_base_v2/development_records/README.md @@ -38,4 +38,5 @@ | `2026-07-07-agent-management-adjustment.md` | Agent 管理与模型接入边界调整记录。 | | `2026-07-07-admin-operations-completion.md` | 管理后台知识库、用户权限和 Agent 预览补齐记录。 | | `2026-07-07-knowledge-open-access-change.md` | 知识库访问范围改为“开放即全员可见”的需求变更记录。 | +| `2026-07-07-student-roster-login-change.md` | 学员名单准入、手动添加和批量导入需求变更记录。 | | `../test_records/2026-07-06-phase6-verification.md` | 阶段六验证记录。 |