# 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 天) 1. A1 项目初始化 ✓ 进行中 2. A2 设计系统选型(对接风格库 11) 3. A3 后端骨架(FastAPI + 三张表 + upload-url/upload-complete API) 4. A4 前端直传 MinIO(分片 + 断点续传 + 进度条) 5. A5 切片转写 + 总结 worker(ffmpeg → Groq → Poe) 6. A6 前端列表 + 详情页(按日期分组 + 音频播放器 + 四格总结) 7. 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)