Maia/backend/README.md

83 lines
2.2 KiB
Markdown

# Meeting Assistant API
FastAPI orchestration backend for Meeting Assistant - middleware between Mobile App, Whisper, and Ollama.
## Architecture
```
Mobile App → FastAPI API → Whisper (transcription) + Ollama (AI analysis)
→ PostgreSQL (data) + Redis (queues/cache)
→ Celery Worker (async processing)
```
## Quick Start
```bash
cp .env.example .env
docker-compose up -d
docker-compose exec api alembic upgrade head
```
## API Documentation
- **Swagger UI:** http://localhost:8080/docs
- **ReDoc:** http://localhost:8080/redoc
## Endpoints
### Auth
- `POST /api/auth/register` - Register new user
- `POST /api/auth/login` - Login (returns JWT)
- `POST /api/auth/refresh` - Refresh access token
- `GET /api/auth/me` - Get current user
### Meetings
- `POST /api/meetings/upload` - Upload audio + trigger processing
- `GET /api/meetings` - List meetings
- `GET /api/meetings/{id}` - Get meeting details
- `GET /api/meetings/{id}/status` - Get processing status
- `GET /api/meetings/{id}/analyses` - Get all analyses
- `GET /api/meetings/{id}/analyses/{type}` - Get specific analysis
- `PUT /api/meetings/{id}/participants/{label}` - Update speaker name
- `DELETE /api/meetings/{id}` - Delete meeting
### WebSocket
- `WS /ws/meetings/{meeting_id}` - Real-time status updates
### Health
- `GET /health` - Health check
## Processing Pipeline
1. Audio uploaded → saved to storage/
2. Celery task queued
3. Audio sent to Whisper for diarized transcription
4. Transcription sent to Ollama for parallel analyses:
- `minutes` - Structured meeting minutes
- `sentiment` - Emotional tone analysis
- `psychological` - Behavioral patterns
- `communication` - Communication quality feedback
- `summary` - Executive summary
5. Status updated to `completed`
6. WebSocket notification sent
## Environment Variables
See `.env.example` for all configuration options.
## Development
```bash
# View logs
docker-compose logs -f api
# Run migrations
docker-compose exec api alembic upgrade head
# Create new migration
docker-compose exec api alembic revision --autogenerate -m "description"
# Check celery worker
docker-compose logs -f worker
```