Spaces:
Building
Building
Update admin_routes.py
Browse files- admin_routes.py +54 -0
admin_routes.py
CHANGED
@@ -783,6 +783,60 @@ async def get_activity_log(
|
|
783 |
# Return most recent entries
|
784 |
return logs[-limit:]
|
785 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
786 |
# ===================== Helper Functions =====================
|
787 |
async def notify_llm_startup(project, version):
|
788 |
"""Notify LLM provider about project startup"""
|
|
|
783 |
# Return most recent entries
|
784 |
return logs[-limit:]
|
785 |
|
786 |
+
# ===================== TTS Endpoints =====================
|
787 |
+
class TTSRequest(BaseModel):
|
788 |
+
text: str
|
789 |
+
voice_id: Optional[str] = None
|
790 |
+
language: Optional[str] = "tr-TR"
|
791 |
+
|
792 |
+
@router.post("/tts/generate")
|
793 |
+
async def generate_tts(
|
794 |
+
request: TTSRequest,
|
795 |
+
username: str = Depends(verify_token)
|
796 |
+
):
|
797 |
+
"""Generate TTS audio from text"""
|
798 |
+
cfg = ConfigProvider.get()
|
799 |
+
|
800 |
+
# Check if TTS is enabled
|
801 |
+
tts_engine = getattr(cfg.global_config, 'tts_engine', 'no_tts')
|
802 |
+
if tts_engine == 'no_tts':
|
803 |
+
# Return empty response for no TTS
|
804 |
+
return {
|
805 |
+
"audio_url": None,
|
806 |
+
"audio_base64": None,
|
807 |
+
"message": "TTS is disabled"
|
808 |
+
}
|
809 |
+
|
810 |
+
log(f"🎤 TTS request: '{request.text[:50]}...' with engine: {tts_engine}")
|
811 |
+
|
812 |
+
# For now, return mock response
|
813 |
+
# TODO: Implement actual TTS integration (ElevenLabs, Blaze, etc.)
|
814 |
+
return {
|
815 |
+
"audio_url": None,
|
816 |
+
"audio_base64": None,
|
817 |
+
"message": f"TTS would generate audio for: {request.text[:50]}..."
|
818 |
+
}
|
819 |
+
|
820 |
+
@router.get("/tts/voices")
|
821 |
+
async def get_tts_voices(username: str = Depends(verify_token)):
|
822 |
+
"""Get available TTS voices"""
|
823 |
+
cfg = ConfigProvider.get()
|
824 |
+
|
825 |
+
tts_engine = getattr(cfg.global_config, 'tts_engine', 'no_tts')
|
826 |
+
if tts_engine == 'no_tts':
|
827 |
+
return {"voices": []}
|
828 |
+
|
829 |
+
# TODO: Implement actual voice list based on TTS engine
|
830 |
+
# For now return mock voices
|
831 |
+
return {
|
832 |
+
"voices": [
|
833 |
+
{"id": "voice_1", "name": "Türkçe Erkek", "language": "tr-TR"},
|
834 |
+
{"id": "voice_2", "name": "Türkçe Kadın", "language": "tr-TR"},
|
835 |
+
{"id": "voice_3", "name": "English Male", "language": "en-US"},
|
836 |
+
{"id": "voice_4", "name": "English Female", "language": "en-US"}
|
837 |
+
]
|
838 |
+
}
|
839 |
+
|
840 |
# ===================== Helper Functions =====================
|
841 |
async def notify_llm_startup(project, version):
|
842 |
"""Notify LLM provider about project startup"""
|