3.8 KiB
3.8 KiB
MeetNote 项目状态
立项日期:2026-04-13 个人项目 / 私有部署 / 自用优先
一句话
手机录音 → 上传网页 → 云端转写 → AI 总结,中英混说精准。对标 Otter.ai / 通义听悟 / 飞书妙记,零订阅成本。
锁定决策(Phase 1 规划结论)
架构
- 手机端录音:用原生录音 App(iOS 语音备忘录 / Android 录音机),不做浏览器录音
- PWA 角色:上传 + 资料库 + 查看,响应式网页即可
- 转写:云端 Groq Whisper-large-v3(中英混说最佳)
- 总结:Poe Claude Sonnet 4.6(已有配额)
- VPS Claude Code:MVP 不碰,v2 Phase C 作为智能体增强层
- 日历集成:MVP 不做,列表按日期分组替代;v2 再加 .ics 订阅
- 说话人分离:MVP 不做;v2 再加 pyannoteAI
技术栈
- 前端:Next.js 15 + React 19 + Tailwind + shadcn/ui
- 后端:FastAPI + SQLModel + RQ(内嵌 Redis)
- 上传:前端直传 MinIO,S3 multipart 断点续传(绕开后端 body 限制)
- 切片:后端 ffmpeg silencedetect,按静音点切成 <20MB/块,时间戳合并
- 存储:PostgreSQL (复用
/opt/postgres/新建 meetnote 库) + MinIO (复用/opt/minio/新建 meetnote bucket) - 部署:Coolify 两应用 →
meetnote.kang-kang.com+meetnote-api.kang-kang.com
设计风格(2026-04-13 锁定)
- 基座:风格库 10 BrandKit Purple(scene=应用,56 UI + 9 业务组件,Notion/Linear 对标)
- 色调:亮色(长文阅读优先,暗色 v2 预留)
- 主色:蓝紫中性
oklch(0.58 0.18 275)(从原版 310° 紫移到 275°,降饱和) - 字体:Inter + Noto Sans SC
- 详情见:
.memory/design-system.md 初选 11 Dark Dev SaaS→ 废弃,理由:落地页导向,scene 不匹配
端口分配
- 前端:4490
- API:4491
- 来源:init-project 分配(2026-04-13,端口注册中心 3201 当时 503,走文件扫描回退)
成本估算(个人使用,约 20h 会议/月)
| 项 | 月成本 |
|---|---|
| Groq Whisper API | ~$0.80 |
| Poe Claude 总结 | $0(已有配额) |
| VPS 增量 | $0(复用) |
| 合计 | ≈ $1/月 |
对比 Otter Pro $16.99/月、飞书妙记 ¥30/月 → 省 95%+。
MVP 任务清单(Phase A,目标 4-5 天)
- A1 项目初始化 ✓ 进行中
- A2 设计系统选型(对接风格库 11)
- A3 后端骨架(FastAPI + 三张表 + upload-url/upload-complete API)
- A4 前端直传 MinIO(分片 + 断点续传 + 进度条)
- A5 切片转写 + 总结 worker(ffmpeg → Groq → Poe)
- A6 前端列表 + 详情页(按日期分组 + 音频播放器 + 四格总结)
- A7 部署上线(Coolify)
v2 候选(Phase B + C,MVP 稳定后)
- Phase B:日历 .ics 订阅、全文/语义搜索(pgvector)、说话人分离、分享链接
- Phase C:VPS Claude Code 智能体层(跨会议关联、跨会议待办聚合、自动建 Gitea issue、生成跟进邮件)
关键约束 & 坑位
- Groq Whisper 单次上限 25MB → 必须切片,按静音点切避免切坏句子
- 长音频总结 → >2h 走 map-reduce(先分段总结再合成全局)
- MinIO CORS → 必须允许
meetnote.kang-kang.com直传,否则浏览器拦截 - iOS m4a → 1h ≈ 30MB,3h ≈ 90MB,6h ≈ 180MB
- 前端 @aws-sdk/client-s3 → S3 multipart 分片(5MB/片),断网续传
环境变量(后端)
DATABASE_URL=postgresql://...@127.0.0.1:5432/meetnote
MINIO_ENDPOINT=127.0.0.1:9000
MINIO_BUCKET=meetnote
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
GROQ_API_KEY=
POE_API_KEY=(复用全局)
依赖(未完成)
- Groq API key 申请(https://console.groq.com)
- MinIO 创建 meetnote bucket + CORS 配置
- PostgreSQL 创建 meetnote 库
- GitHub 远程未配(本机 gh 未装,走 Gitea only)