Skip to content

需求记录

本文档按业务域记录已落地需求和维护约束。若需求变更,应同步更新相关代码、测试与三端说明书。

1. 账号与个人中心

需求状态关键位置
小程序、Web 均支持手机号密码登录/注册已实现backend/app/routers/auth.pyminiapp/src/api/auth.tsweb/src/api/auth.ts
登录后用户可修改密码已实现POST /api/auth/passwordminiapp/src/pages/profile/index.vueweb/src/pages/Profile/index.tsx
Web 支持 refresh token 自动续期已实现backend/app/services/auth_service.pyweb/src/api/refresh.ts
小程序保留“记住我”偏好已实现miniapp/src/api/token.tsminiapp/src/stores/auth.ts

约束:

  • 密码校验以后端 Pydantic 模型和服务层为准。
  • 认证接口不走 RLS 注入,业务数据接口必须走 CurrentSecureUser 和 RLS。

2. 隐私政策与用户协议

需求状态关键位置
小程序不得默认勾选用户协议/隐私政策已实现miniapp/src/subpkg-extra/pages/login/index.vue
用户需主动阅读/选择后才能继续登录注册已实现agreementprivacy 分包页面
未勾选协议时登录/注册按钮置灰不可点击已实现login/index.vuedisabled: loading || !agreementChecked
首次进入首页不强制授权手机号、头像、昵称已实现登录后置,浏览体验优先
用户协议和隐私政策入口可点击、可返回已实现agreement/index.vueprivacy/index.vue
隐私政策打开不再空白(不依赖微信官方隐私弹窗)已实现openPrivacy() 直接跳本地 privacy
个人中心可随时查看协议/隐私政策已实现miniapp/src/pages/profile/index.vue

验收重点:

  • 真机打开首页不弹强制授权。
  • 登录页协议默认未勾选,按钮置灰直至主动勾选。
  • 点击协议/隐私能完整打开页面并返回,内容非空白。

3. 小程序导航与页面结构

需求状态关键位置
智米军师作为首页已实现miniapp/src/pages.jsonpages/chat/index.vue
文章管理合并到生成文章模块,并改名历史记录已实现CustomTabBar.vuepages/article-list/index.vue
原文章管理入口替换为个人中心已实现pages/profile/index.vue
封面神器保留独立 Tab已实现pages/cover-tool/index.vue

维护约束:

  • 新增页面必须同步 pages.jsonCustomTabBar.vue
  • 分包页面不能反向依赖主包内不允许引用的位置。

4. 智米军师

需求状态关键位置
Web 和小程序均支持聊天助手已实现web/src/pages/Chatminiapp/src/pages/chat
支持 WS 流式回复和重连已实现backend/app/services/chat_ws.pyuseChat.ts
支持媒体上传和签名媒体 URL已实现backend/app/routers/chat.pychat_storage.py
小程序输入框随键盘上浮已实现miniapp/src/composables/useKeyboardDock.ts
用户切换后聊天状态重置已实现stores/chat.tsuseChat.ts

验收重点:

  • 手机真机键盘弹出时输入框可见。
  • WS ticket 过期/4001 时可重新取票重连。
  • 上传媒体 URL 不应 401 失效过快。

5. 文章生成与历史记录

需求状态关键位置
四步文章生成向导已实现useArticleWizardarticle_service.py
生成任务有阶段进度已实现task_service.pyuseTaskPolling.ts
图片/文本方向分析结果压缩控制已实现upload_service.pyarticle_service.py
Web 文章编辑支持乐观锁已实现If-Matcharticles.version
历史记录可查看文章详情已实现article-listarticle-detail

维护约束:

  • LLM 失败必须提供兜底,不能直接让用户流程变成 500。
  • 多图分析和主题生成要限制输入长度,避免超时和成本失控。

6. 封面神器

需求状态关键位置
创建封面项目、上传素材、AI 分析、风格、出图、选择封面已实现/api/cover/*cover_service.pyCoverTool
生成过程异步执行并可恢复轮询已实现generate_covers_background、前端轮询目标 style covers
上传图片自动 EXIF 转正和压缩已实现_compress_reference_image
支持删除素材图片已实现DELETE /projects/{id}/images/{image_id}
列表支持删除项目,且为硬删除已实现DELETE /projects/{id}、小程序/Web 删除入口
生成封面要保留原图主体、包装、Logo、道具已实现compose_cover_prompt
同一风格下候选图要有结构差异已实现COVER_VARIATIONS
引入归藏社交卡片 prompt skill已实现GUIZANG_SOCIAL_CARD_SKILL
图片中文字必须清晰且禁止乱码已实现TEXT_RENDERING_CONSTRAINT

验收重点:

  • 删除项目后数据库和本地 cover-tool/{project_id} 目录都应消失。
  • 生成完成以“目标风格已有封面”为准,不只看项目状态。
  • 真机中图片 URL 需要保留签名参数,避免 401。

维护约束:

  • 即梦出图尺寸必须使用 64 的倍数标准组合(3:4 → 896×1152 等),禁止按面积反推宽高,否则算法报 50501 height or width invalid
  • 即梦单账号在途任务并发有限,生成任务需串行(_jimeng_generation_lock),避免 429。

7. 管理后台

需求状态关键位置
商家管理、规则管理、知识库管理已实现admin/src/pages/*backend/app/routers/admin.py
LLM 功能级配置已实现llm_function_configsModelConfig.tsx
封面 AI 配置与诊断已实现cover_ai_configs/api/admin/cover-ai/diagnose
管理端内网访问控制已实现AdminIntranetMiddleware、nginx 配置
会话管理和人工接管已实现ChatSessions.tsxchat_ws.py

维护约束:

  • 模型配置变更是全局影响,必须先测试再保存。
  • 管理端不得暴露完整 API Key,只显示布尔状态或来源。

基于 VitePress 构建 · 由 GitHub Actions 自动部署