Skip to content

Latest commit

 

History

History
108 lines (82 loc) · 3.25 KB

File metadata and controls

108 lines (82 loc) · 3.25 KB

Meeting Accountability Engine

Extracts commitments from meeting transcripts (Zoom VTT), tracks follow-ups, and surfaces renegotiations via Discord. Built for CSE291P PA4.

Architecture

Zoom VTT → Ingest → 4-stage LLM pipeline (Gemini) → Postgres + LEANN
                                                          ↓
                                     React dashboard ← FastAPI
                                                          ↓
                                              Discord bot (follow-ups)

Pipeline stages:

  1. Extract — parse commitments from transcript
  2. Resolve — match speakers to team members (fuzzy + Gemini)
  3. Follow-up — daily Celery beat posts #commitments thread
  4. Renegotiate — Discord reply triggers LLM renegotiation or dispute

RAG: LEANN indexes (transcripts + commitments) for semantic search and citation-backed dispute resolution.

Stack

Layer Tech
Backend FastAPI, SQLAlchemy, Alembic, Celery
LLM Google Gemini 2.5 Flash
DB Postgres 16 + LEANN (vector search)
Queue Redis + Celery beat
Bot discord.py
Frontend React + TypeScript + Vite
Deploy Docker Compose

Quick Start

cd accountability-engine
cp .env.example .env
# Set GEMINI_API_KEY, DISCORD_BOT_TOKEN, DISCORD_GUILD_ID, DISCORD_COMMITMENTS_CHANNEL_ID
docker compose build api frontend
docker compose up

Environment Variables

Variable Required Description
API_KEY Yes Header auth for all protected routes (X-API-Key)
GEMINI_API_KEY Yes Google AI Studio key
DISCORD_BOT_TOKEN Yes* Bot token from Discord developer portal
DISCORD_GUILD_ID Yes* Server ID (Developer Mode → right-click server)
DISCORD_COMMITMENTS_CHANNEL_ID Yes* Channel for follow-up posts
GOOGLE_CLIENT_ID/SECRET No Google Calendar OAuth
DATABASE_URL Auto Set by Docker Compose
REDIS_URL Auto Set by Docker Compose

*Not required for local dev without Discord follow-ups.

Development (without Docker)

# Start infra
docker compose up postgres redis -d

# Backend
cd accountability-engine/backend
pip install -e ".[dev]"
alembic upgrade head
uvicorn app.main:app --reload --port 8000

# Celery worker
celery -A app.workers.celery_app worker --loglevel=info

# Frontend
cd accountability-engine/frontend
npm install && npm run dev

Demo

Upload accountability-engine/fixtures/e2e_demo_meeting.vtt via the Ingest page. Tests speaker resolution, commitment extraction, RAG search, and dispute flows. See accountability-engine/DEPLOY.md for full walkthrough.

Tests

cd accountability-engine/backend
PYTHONPATH=. pytest tests/ -q

Proposal Figures (LaTeX)

make figures   # Mermaid → PNG via Kroki (requires curl)
make pdf       # pdflatex main.tex (twice)
Figure Shows
figures/architecture.mmd Full system architecture
figures/pipeline.mmd 4-stage ingest pipeline
figures/rag.mmd Transcript chat retrieval
figures/guardrails.mmd Guardrails before Discord/chat output