Maia/backend
Arlei Nalasso 34e0661b0d feat: initial MAIA monorepo - frontend, backend, diarization API
- PWA React 18 + Vite + TypeScript com gravacao continua e upload de chunks
- Backend FastAPI + Celery + PostgreSQL + Redis para processamento assincrono
- Diarization API com SpeechBrain ECAPA-TDNN para identificacao de speakers
- Integracao com Whisper.cpp GPU (large-v3) para transcricao
- Integracao com LLM deepseek-v3.1 para analise de reunioes
- Autenticacao SSO via Keycloak
- README.md completo com arquitetura, instalacao e configuracao
- CHANGELOG.md com historico v1.0.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-23 17:52:10 -03:00
..
alembic feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
app feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
.env.example feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
Dockerfile feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
README.md feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
alembic.ini feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
docker-compose.yml feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00
requirements.txt feat: initial MAIA monorepo - frontend, backend, diarization API 2026-04-23 17:52:10 -03:00

README.md

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

cp .env.example .env
docker-compose up -d
docker-compose exec api alembic upgrade head

API Documentation

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

# 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