Files
meetnote/api/README.md
kang 3111c854c5 feat(api): A3 backend skeleton with FastAPI + SQLModel
- 3 tables: Meeting / TranscriptSegment / Summary (with state machine)
- Routes: /api/upload-url + /api/upload-complete + meetings CRUD
- MinIO presigned PUT for direct browser upload
- BackgroundTasks state-machine stub for A5 to flesh out
- SQLite for local dev, PostgreSQL+asyncpg for prod
- CORS configured for frontend on 4490

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:14:16 +08:00

1.0 KiB
Raw Blame History

MeetNote API

FastAPI 后端,端口 4491。

启动

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # 填 GROQ_API_KEY / POE_API_KEY
uvicorn app.main:app --reload --port 4491

路由

  • GET /health
  • POST /api/upload-url — 申请 presigned URL 创建会议
  • POST /api/upload-complete — 通知后端上传完成,触发后台处理
  • GET /api/meetings — 会议列表
  • GET /api/meetings/{id} — 单个会议
  • GET /api/meetings/{id}/transcript
  • GET /api/meetings/{id}/summary
  • DELETE /api/meetings/{id}

数据库

  • 默认 sqlite+aiosqlite:///./meetnote.db(本地开发)
  • 生产改 DATABASE_URL=postgresql+asyncpg://...

状态机

pending → uploading → uploaded → splitting → transcribing → summarizing → done | failed

A3 vs A5

A3本提交只搭好骨架 + state-machine stub。A5 会接上:

  • ffmpeg silencedetect 切片
  • Groq Whisper 真实转写
  • Poe Claude 真实总结