A website/agent for getting real-time audience feedback.
Real-time audience thoughts tool for presentations and classrooms. Collective audience thinking, summarized in real-time.
uv sync
gcloud auth application-default login
This uses your Google Cloud project with Vertex AI enabled. Make sure you have:
Alternatively, you can set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to a service account key file.
Start the server:
uv run python app.py
The application will be available at http://localhost:8080
sequenceDiagram
participant Presenter
participant Audience
participant Server
participant LLM
Note over Presenter: Session Setup
Presenter->>Server: POST /api/session {question}
Server-->>Presenter: {session_id}
Presenter->>Server: GET /api/qr/{session_id}
Server-->>Presenter: QR code
Presenter->>Server: GET /api/stream/{session_id}
Server-->>Presenter: SSE: connection established
Note over Audience: Join & Submit
Audience->>Server: GET /audience/{session_id}
Server-->>Audience: Page with question
Audience->>Server: POST /api/feedback {name, thoughts}
Server-->>Audience: {status: ok}
Note over Server: Summarization (rate-limited)
Server->>LLM: Summarize responses
LLM-->>Server: Themed summary<br>{question, names, thoughts}
Server-->>Presenter: SSE: summary update
Key Concepts: