# Setup ## Docker ```bash docker compose up --build ``` Open: - Frontend: http://localhost:5173 - Backend docs: http://localhost:9000/docs The backend runs Alembic migrations and sample data seeding before startup. ## Local Backend ```bash cd backend pip install -e ".[dev]" uvicorn app.main:app --reload ``` ## Local Frontend ```bash cd frontend npm install npm run dev ``` Set `ANTHROPIC_API_KEY` to use the Claude planner. Leave it empty to use the deterministic planner. ```bash export ANTHROPIC_API_KEY="your_claude_key_here" export ANTHROPIC_MODEL="claude-3-5-sonnet-latest" docker compose up --build ``` ## Real Wed Backend API The orchestrator generates tools from the Wed backend contract found in: ```text /Volumes/Corsair/Wed/wed-backend ``` Approved actions generate a Wed API call description, including method, URL, headers, JSON body, and cURL. The orchestrator does not send the request. ```bash export WED_API_BASE_URL="http://host.docker.internal:8000" export WED_DEFAULT_PARTNER_ID="partner_uuid_for_reservation_requests" export SONIOX_API_KEY="your_soniox_api_key" docker compose up -d --build ``` `WED_DEFAULT_PARTNER_ID` is only required for transcript phrases that create guest reservation requests. ## Microphone Transcription The dashboard records microphone audio locally with the browser `MediaRecorder` API. Stopping the recording uploads the audio to: ```text POST /transcriptions ``` The backend sends the audio to Soniox using `SONIOX_API_KEY`, polls until transcription completes, groups speaker-labeled segments, and ingests each segment through the orchestrator. The resulting pending actions still only generate API calls; they do not execute them.