← 主页 全部文档
下载 TXT 查看 MD 原文

木棉盛夏 — 产品说明与路线图

品牌:木棉盛夏(主软件)· 木棉书简(回忆录成书)· 木棉家忆(家族树)
基于代码库全局检索整理(页面路由、API、SaaS 进度、前后端实现)。
SAAS_IMPLEMENTATION.md 互补:该文档偏落地 checklist;本文档偏产品全景、功能说明与方向


文档目录

  1. 产品定位与成熟度
  2. 离「可上线产品」还差什么
  3. 功能说明(功能 / 实现 / 特点)
  4. 未来发展方向
  5. 总结对照表
  6. 建议落地顺序

1. 产品定位与成熟度

木棉盛夏 是一款基于 Web 的 AI 应用,两大产品模块:

技术栈摘要

层级 技术
后端 Python 3.11、FastAPI、Uvicorn、SQLAlchemy(raw SQL 为主)
数据库 PostgreSQL
认证 JWT + PBKDF2 密码哈希
前端 静态 HTML / CSS / JS(无构建步骤)
AI 火山方舟(对话/TTS/ASR)、DeepSeek(家族树抽取)、MediaKit OCR
部署 Docker Compose、Render Blueprint、本机 + ngrok 分享

当前成熟度可演示的 MVP / 内测原型(核心链路能跑,距离公开 SaaS 仍有明显缺口)。
粗估完成度约 70%~80%(功能面较全,工程化、安全收口、商业化未齐)。


2. 离「可上线产品」还差什么

P0 — 上线前必须补(安全 + 稳定)

缺口 现状 为何重要
API 安全收口 主页 /api/chat、TTS、OCR、ASR 未强制登录;部分访谈/归档接口鉴权偏弱;/api/admin/prompts 无管理员校验 公网(含 ngrok)暴露后可能被滥用,产生 AI 费用与数据风险
忘记密码 / 短信验证 仅有 CLI scripts/reset_user_password.py,无用户自助流程 普通用户无法自助找回密码
对象存储(A7) blob_storage 仅 local 实现;S3/OSS 为 NotImplementedError 云部署重启后上传文件易丢失
自动化测试(D1/D2) tests/ 目录;CI 仅 import/compile 改代码易回归;族谱流水线无自动化保障
监控告警(C4) 仅标准 logging,无 Sentry/告警 线上故障难以及时发现

相关文件backend/main.pybackend/routes/interview.pybackend/routes/archive.pybackend/services/blob_storage.py.github/workflows/ci.yml

P1 — 产品体验收口(从「能用」到「好用」)

缺口 对应 SAAS 项 说明
主页「家族树录入」与 /family-tree 四表流程割裂 B3 用户不知该用主页还是家族树页
塔状树两套实现 B4 服务端 step3/tower + 前端 tower-tree.html iframe 并存
新用户 onboarding B5 注册后缺少引导(创建家族、第一步做什么)
手机端体验 已有基础响应式;家族树多步骤在大屏更合适
邀请家庭成员 库表有 memberships,无邀请 API;注销时多成员家族不可删

P2 — 商业化与运营(若要对外收费)

缺口 说明
落地页 + 定价(C3 无产品介绍页、无套餐说明
支付 无 Stripe/微信/支付宝;用户协议写「后续付费」
Staging 环境(D3 无预发环境,改完直接上生产风险大
Redis 分布式限流(A8 多实例部署时内存限流失效

P3 — 可延后但长期有价值

SaaS 清单对照(摘自 SAAS_IMPLEMENTATION.md

已完成:A1–A6、B1–B2、C1–C2

未完成:A7、A8、B3–B5、C3–C4、D1–D3


3. 功能说明(功能 / 实现 / 特点)

3.1 账号与家族空间

功能 如何实现 特点
注册 / 登录 前端 login.html + auth.js;后端 POST /api/auth/register/login;JWT + PBKDF2(user_service.pysecurity.py 手机号 + 密码;注册须勾选协议;Token 存 localStorage
当前用户 GET /api/auth/medeps.py 解析 Bearer / Cookie 登录后绑定 user_idfamily_idperson_id
数据导出 GET /api/auth/export + account_data.py;页面 /account JSON 副本:会话、消息、族谱、草稿等(不含密码)
账号注销 POST /api/auth/delete-account 须密码 + 输入 DELETE;家族有多成员时拒绝删除
演示账号 scripts/seed_demo_account.py 13800000000 / demo123456,适合内测

页面路由/login/signin(重定向)、/account(见 backend/frontend_pages.py


3.2 人生访谈(回忆录)

功能 如何实现 特点
访谈对话 主页 / + app.jsPOST /api/session/startPOST /api/conversation/message 「人生访谈」与「家族树录入」两种 session 模式
多 Agent 编排 orchestrator.py + agent_1agent_5 Agent1 引导提问;Agent4 生成初稿;Agent5 修订
会话持久化 PostgreSQL sessionsconversation_messages 生产强制 DB;开发可警告后回退
结束并生成初稿 POST /api/interview/{id}/end 写入 memoir_drafts
回忆录阅读 /memoir + archive.py 章节树、阅读、修订、确认归档
提示词管理 /admin/prompts + /api/admin/prompts* 在线改 Agent 提示词(当前无鉴权,仅适合内网

主要 API 模块session_api.pyconversation.pyinterview.py


3.3 语音 / 图片 / 通用聊天

功能 如何实现 特点
实时语音输入 WebSocket /ws/asr + 火山 ASR 主页麦克风录音转文字
语音文件识别 POST /api/auc/file 上传音频转文字
AI 朗读 POST /api/tts 火山 TTS 返回 MP3
图片 OCR POST /api/ocr/image + MediaKit OCR 本地需 PUBLIC_BASE_URL(如 ngrok)供公网拉图
豆包式闲聊 POST /api/chat/api/chat/stream(火山方舟) 与访谈 Agent 独立;当前未强制登录

实现文件backend/main.pybackend/ws_client.pybackend/services/ocr_image.py


3.4 家族树(核心差异化)

功能 如何实现 特点
口述录入(主页) 主页「家族树录入」+ POST /api/familytree/generate-from-session/{session_id} 边聊边录,适合快速起步
四表专业流程 /family-tree + familytree-test.js ① DeepSeek 抽四表 → ② 世系表 HTML → ③ 塔状树
四表抽取 / 校验 POST /api/familytree/step1/* + family_marriage_extract.py 人物 / 婚姻 / 父子 / 兄弟姐妹
世系表渲染 POST /api/familytree/step2/render + family_tree_pipeline/ 校验、布局、HTML 世系图
塔状家族树 前端 tower-tree.html(iframe ?embed=1)+ 可选 step3/tower 过继、离异虚线、防重叠;两套实现并存
草稿保存 GET/POST /api/familytree/draft + family_tree_store.py 四表 JSON 持久化 DB + 本地 cache
关系矩阵(高级) POST /api/familytree/matrix/*families/* 后端完整;前端未作为主流程

正式入口/family-tree(旧 /familytree-test 307 重定向)


3.5 合规与分享

功能 如何实现 特点
隐私政策 / 用户协议 /privacy/terms 注册须勾选
账号与数据 /account 导出 + 注销
本机 + ngrok 分享 start.batbootstrap-ngrok.batshow-share-link.bat 朋友浏览器访问;宿主须保持 start 运行
手机 / 电脑 响应式 Web + 手机侧栏菜单(☰) 无独立 App;同一 https 链接多端可用

操作指南分享给朋友-ngrok一步步.md


3.6 基础设施(开发者向)

功能 如何实现 特点
健康检查 GET /api/health DB、ARK、语音、OCR、Agent 引擎状态
生产校验 startup_checks.py PRODUCTION=1 时强制 DB、JWT 等
限流 middleware/rate_limit.py 登录 / 注册 / 聊天;单实例内存
文件存储 services/blob_storage.py local 可用;S3/OSS 预留未实现
部署 Dockerfiledocker-compose.ymlrender.yaml 容器化与 Render Blueprint
CI .github/workflows/ci.yml 基础检查,无集成测试

3.7 用户路径简图

flowchart LR
  subgraph pages [页面]
    Home["/ 主页"]
    Memoir["/memoir"]
    FT["/family-tree"]
    Tower["/tower-tree"]
    Login["/login"]
    Account["/account"]
  end
  subgraph apis [主要 API]
    Chat["/api/chat*"]
    Session["/api/session/*"]
    Conv["/api/conversation/*"]
    FTAPI["/api/familytree/*"]
    Auth["/api/auth/*"]
    Archive["/api/archive/*"]
  end
  Home --> Session
  Home --> Conv
  Home --> Chat
  Home --> FTAPI
  Memoir --> Archive
  FT --> FTAPI
  FT --> Tower
  Login --> Auth
  Account --> Auth

4. 未来发展方向

4.1 从「个人工具」到「家族协作平台」

定位升级:「全家一起补回忆录 + 修族谱」,而非单人记事本。

4.2 AI 能力产品化

差异化:中文复杂亲属关系(过继、再婚、同父异母、相好等)的规则与可视化。

4.3 商业化路径

阶段 内容
免费内测 ngrok / 小云部署;限制人数与 AI 调用量
基础版 月费:访谈条数 + 族谱人数上限
高级版 导出印刷 PDF、大容量存储、多家庭成员、优先模型
B 端 地方志馆、家谱公司、养老机构白标

需补:落地页(C3)+ 支付 + 用量计费 + 套餐限制中间件

4.4 工程成熟度演进

flowchart TB
  subgraph now [当前 MVP]
    A1[本机 / ngrok]
    A2[单实例]
    A3[local 存储]
  end
  subgraph next [约 6 个月]
    B1[云部署 24h]
    B2[S3 / OSS]
    B3[测试 + Staging]
    B4[短信登录 / 找回密码]
  end
  subgraph later [约 12 个月+]
    C1[家庭协作]
    C2[付费套餐]
    C3[微信生态]
    C4[PWA / 小程序]
  end
  now --> next --> later

4.5 内容与生态


5. 总结对照表

维度 现状 产品化目标
核心功能 访谈 + 族谱 + 语音/OCR 已通 统一流程,减少双轨实现
用户体系 手机密码 + 单家族 短信/微信 + 邀请协作
部署 本机 / Docker / Render 骨架 24h 云端 + 对象存储
安全 部分 API 未鉴权 全站强制登录 + 管理后台保护
合规 隐私/协议、导出/注销已有 完善告知与审计
商业 落地页 + 套餐 + 支付
质量 几乎无自动化测试 CI 集成测试 + 李氏样例回归
分享 ngrok 本机隧道 固定域名 SaaS

6. 建议落地顺序

若目标为 「可给亲友长期使用的内测版」

  1. P0 安全收口:chat/TTS/OCR/ASR 与 admin 鉴权
  2. B3 + B4:主页与 /family-tree 引导统一;塔状树只保留一套
  3. 云部署 + 固定域名:摆脱「必须开着 start.bat」
  4. 自助找回密码(或短信验证码登录)
  5. A7 对象存储 + D1 基础集成测试

若目标为 「对外收费 SaaS」,在以上基础上追加:C3 落地页、支付、用量限制、C4 监控、D3 Staging


相关文档

文档 说明
SAAS_IMPLEMENTATION.md SaaS 分步 checklist(A/B/C/D 阶段)
分享给朋友-ngrok一步步.md 本机 + ngrok 零成本分享给朋友
README.md 安装、环境变量、Docker、GitHub

文档版本:与代码库同步整理。功能以实际代码与路由为准。