From 9143c27af8059a7c5069e1b844a129693123239d Mon Sep 17 00:00:00 2001 From: Dennis Thiessen Date: Wed, 18 Feb 2026 11:54:26 +0100 Subject: [PATCH] fixed bug --- backend/app/routers/voice.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/backend/app/routers/voice.py b/backend/app/routers/voice.py index f6c7ae4..2a87bca 100644 --- a/backend/app/routers/voice.py +++ b/backend/app/routers/voice.py @@ -1,13 +1,35 @@ """FluentGerman.ai — Admin voice-to-instruction & voice API router.""" -from fastapi import APIRouter, Depends, UploadFile, File, HTTPException import logging +from fastapi import APIRouter, Depends, UploadFile, File, HTTPException +from fastapi.responses import Response -# ... imports ... +from app.auth import require_admin, get_current_user +from app.config import get_settings +from app.models import User +from app.schemas import VoiceConfigOut, VoiceInstructionRequest +from app.services.llm_service import summarize_instruction +from app.services.voice_service import synthesize, transcribe +# Setup logger logger = logging.getLogger("fluentgerman.voice") -# ... +router = APIRouter(prefix="/api/voice", tags=["voice"]) + + +@router.get("/config", response_model=VoiceConfigOut) +async def voice_config(user: User = Depends(get_current_user)): + """Return current voice mode so frontend knows whether to use browser or API.""" + settings = get_settings() + # Check if we have a dedicated voice key OR a generic LLM key for OpenAI + has_key = bool(settings.openai_api_key or (settings.llm_api_key and settings.llm_provider == "openai")) + + api_available = bool(settings.voice_mode == "api" and has_key) + return VoiceConfigOut( + voice_mode=settings.voice_mode, + voice_api_available=api_available, + ) + @router.post("/transcribe") async def transcribe_audio(