Files
Unraid-AppOps-Gateway-Public/backend/app/api/routes_voice_operator.py
T

41 lines
1.4 KiB
Python

from __future__ import annotations
from fastapi import APIRouter, Depends, Request
from sqlmodel import Session
from ..db.session import get_session
from ..services import voice_catalog
from ..services.home_assistant_voice_readiness import build_readiness
from ..services.setup_service import apply_stored_connector_settings
router = APIRouter(prefix='/api/operator/voice')
@router.get('/commands')
def commands(session: Session = Depends(get_session)):
return voice_catalog.list_commands(session)
@router.get('/home-assistant/export')
def home_assistant_export(request: Request, session: Session = Depends(get_session)):
apply_stored_connector_settings(session)
return voice_catalog.home_assistant_export(session, str(request.base_url).rstrip('/'))
@router.get('/home-assistant/readiness')
def home_assistant_readiness(session: Session = Depends(get_session)):
apply_stored_connector_settings(session)
return build_readiness(session)
@router.post('/test-intent')
def test_intent(payload: dict | None = None, session: Session = Depends(get_session)):
text = str((payload or {}).get('input') or (payload or {}).get('phrase') or '').strip()
return voice_catalog.test_intent(session, text)
@router.post('/commands/{command_id}/dry-run')
def dry_run(command_id: str, session: Session = Depends(get_session)):
return voice_catalog.dry_run(session, command_id)