Purpose
Quick Help calling provides a real-time voice assistance flow for learners using LiveKit-backed sessions and transcript persistence. The backend entrypoint issrc/apis/quick_help.py, with domain behavior in src/core/voice_assistance/service.py.
Core flow
- Client starts a session with
POST /api/v1/quick-help/sessions. - Backend creates a session document, provisions/mints LiveKit join credentials, and returns session metadata.
- Client and internal voice agent append transcript chunks over time.
- Client ends the call with
POST /api/v1/quick-help/sessions/{session_id}/end. - Backend finalizes the session, and optionally triggers summarization/next-step generation.
API endpoints
User-facing endpoints:POST /api/v1/quick-help/sessions— create session and receive call credentials.GET /api/v1/quick-help/sessions/{session_id}— fetch caller-owned session state.GET /api/v1/quick-help/sessions/{session_id}/transcript— fetch transcript + summary snapshot.POST /api/v1/quick-help/sessions/{session_id}/transcript— append transcript utterances from caller/client.POST /api/v1/quick-help/sessions/{session_id}/end— end session and optionally summarize.
GET /api/v1/quick-help/internal/sessions/{session_id}/context— fetch session context for voice agent runtime.POST /api/v1/quick-help/internal/sessions/{session_id}/transcript— append transcript utterances from agent pipeline.
quick-help tag), sourced from docs/api-reference/openapi.public.json.
Auth and access model
- User endpoints require authenticated user context and enforce organization + ownership checks.
- Internal endpoints require
X-Quick-Help-Agent-Key, validated server-side by Quick Help service configuration. - Cross-organization access is rejected.
Session and transcript behavior
- Session status transitions are managed server-side (create, active, ended/failure).
- Transcript append APIs are additive and keep a canonical per-session transcript record.
- Transcript fetch returns a stable payload shape even when no utterances exist yet.
Cost and usage linkage
Quick Help usage contributes to AI usage accounting via per-minute tracking fields (quick_help_minutes) and pricing (quick_help_price_per_minute) in AI usage events. See AI usage and cost tracking for pricing precedence and reporting behavior.
Operational notes
- Keep session ownership and org checks intact whenever adding new Quick Help endpoints.
- Coordinate payload changes with frontend call clients and any internal voice worker integrations.
- If you add/modify routes, regenerate OpenAPI docs: