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>
This commit is contained in:
37
api/README.md
Normal file
37
api/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# MeetNote API
|
||||
|
||||
FastAPI 后端,端口 4491。
|
||||
|
||||
## 启动
|
||||
|
||||
```bash
|
||||
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 真实总结
|
||||
Reference in New Issue
Block a user