From b819d0abc1a9d715b239dac9bdba215e00dbf00a Mon Sep 17 00:00:00 2001 From: Igor Loskutov Date: Fri, 5 Dec 2025 15:51:11 -0500 Subject: [PATCH] llm doc --- docs/docs/installation/docker-setup.md | 4 +++ docs/docs/installation/overview.md | 16 ++++++--- docs/docs/installation/requirements.md | 1 + .../reflector_transcriber.py | 1 + server/env.example | 33 +++++++++++++++---- 5 files changed, 44 insertions(+), 11 deletions(-) diff --git a/docs/docs/installation/docker-setup.md b/docs/docs/installation/docker-setup.md index 6355ad18..701ad15e 100644 --- a/docs/docs/installation/docker-setup.md +++ b/docs/docs/installation/docker-setup.md @@ -100,7 +100,11 @@ docker compose -f docker-compose.prod.yml logs server --tail 50 ### Restart a service ```bash +# Quick restart (doesn't reload .env changes) docker compose -f docker-compose.prod.yml restart server + +# Reload .env and restart +docker compose -f docker-compose.prod.yml up -d server ``` ### Run database migrations diff --git a/docs/docs/installation/overview.md b/docs/docs/installation/overview.md index f0e91e53..fab18f8e 100644 --- a/docs/docs/installation/overview.md +++ b/docs/docs/installation/overview.md @@ -24,6 +24,7 @@ Before starting, you need: - [ ] **Two domain names** - e.g., `app.example.com` (frontend) and `api.example.com` (backend) - [ ] **Modal.com account** - Free tier at https://modal.com - [ ] **HuggingFace account** - Free at https://huggingface.co +- [ ] **OpenAI API key** - For summaries and topic detection at https://platform.openai.com/account/api-keys ### Optional (for live meeting rooms) @@ -159,7 +160,14 @@ DIARIZATION_BACKEND=modal DIARIZATION_URL=https://yourname--reflector-diarizer-web.modal.run DIARIZATION_MODAL_API_KEY= -# Auth - disable for initial setup (see Step 9 for authentication) +# Storage - where to store audio files and transcripts +TRANSCRIPT_STORAGE_BACKEND=local + +# LLM - for generating titles, summaries, and topics +LLM_API_KEY=sk-your-openai-api-key +LLM_MODEL=gpt-4o-mini + +# Auth - disable for initial setup (see Step 8 for authentication) AUTH_BACKEND=none ``` @@ -286,9 +294,9 @@ DAILYCO_STORAGE_AWS_REGION=us-east-1 DAILYCO_STORAGE_AWS_ROLE_ARN= ``` -Restart server: +Reload env and restart: ```bash -docker compose -f docker-compose.prod.yml restart server worker +docker compose -f docker-compose.prod.yml up -d server worker ``` --- @@ -302,7 +310,7 @@ docker compose -f docker-compose.prod.yml logs ### CORS errors in browser - Verify `CORS_ORIGIN` in `server/.env` matches your frontend domain exactly (including `https://`) -- Restart: `docker compose -f docker-compose.prod.yml restart server` +- Reload env: `docker compose -f docker-compose.prod.yml up -d server` ### SSL certificate errors - Caddy auto-provisions Let's Encrypt certificates diff --git a/docs/docs/installation/requirements.md b/docs/docs/installation/requirements.md index fe8f1f2b..71b3add4 100644 --- a/docs/docs/installation/requirements.md +++ b/docs/docs/installation/requirements.md @@ -36,6 +36,7 @@ This page lists hardware and software requirements. For the complete deployment - **Two domain names** - One for frontend (e.g., `app.example.com`), one for API (e.g., `api.example.com`) - **Modal.com account** - For GPU-accelerated transcription and diarization (free tier available) - **HuggingFace account** - For Pyannote diarization model access +- **OpenAI API key** - For generating summaries and topic detection (https://platform.openai.com/account/api-keys) ### Required for Live Meeting Rooms diff --git a/gpu/modal_deployments/reflector_transcriber.py b/gpu/modal_deployments/reflector_transcriber.py index 3be25542..3f652de9 100644 --- a/gpu/modal_deployments/reflector_transcriber.py +++ b/gpu/modal_deployments/reflector_transcriber.py @@ -89,6 +89,7 @@ image = ( "torch==2.5.1", "faster-whisper==1.1.1", "fastapi==0.115.12", + "python-multipart", "requests", "librosa==0.10.1", "numpy<2", diff --git a/server/env.example b/server/env.example index 471bceb3..0ae9b4ff 100644 --- a/server/env.example +++ b/server/env.example @@ -63,18 +63,21 @@ TRANSLATE_URL=https://monadical-sas--reflector-translator-web.modal.run #TRANSLATION_MODAL_API_KEY=xxxxx ## ======================================================= -## LLM backend +## LLM backend (Required) ## -## Responsible for titles and short summary -## Check reflector/llm/* for the full list of available -## llm backend implementation +## Responsible for generating titles, summaries, and topic detection +## Requires OpenAI API key ## ======================================================= +## OpenAI API key - get from https://platform.openai.com/account/api-keys +LLM_API_KEY=sk-your-openai-api-key +LLM_MODEL=gpt-4o-mini + +## Optional: Custom endpoint (defaults to OpenAI) +# LLM_URL=https://api.openai.com/v1 + ## Context size for summary generation (tokens) -# LLM_MODEL=microsoft/phi-4 LLM_CONTEXT_WINDOW=16000 -LLM_URL= -LLM_API_KEY=sk- ## ======================================================= ## Diarization @@ -88,6 +91,22 @@ DIARIZATION_URL=https://monadical-sas--reflector-diarizer-web.modal.run #DIARIZATION_MODAL_API_KEY=xxxxx +## ======================================================= +## Transcript Storage +## +## Where to store audio files and transcripts +## Options: local, aws +## ======================================================= +TRANSCRIPT_STORAGE_BACKEND=local + +## For AWS S3 storage (optional): +#TRANSCRIPT_STORAGE_BACKEND=aws +#TRANSCRIPT_STORAGE_AWS_ACCESS_KEY_ID=your-aws-access-key +#TRANSCRIPT_STORAGE_AWS_SECRET_ACCESS_KEY=your-aws-secret-key +#TRANSCRIPT_STORAGE_AWS_BUCKET_NAME=reflector-media +#TRANSCRIPT_STORAGE_AWS_REGION=us-east-1 + + ## ======================================================= ## Sentry ## =======================================================