Spaces:
Paused
Paused
Update admin_routes.py
Browse files- admin_routes.py +3 -94
admin_routes.py
CHANGED
|
@@ -271,32 +271,15 @@ async def get_environment(username: str = Depends(verify_token)):
|
|
| 271 |
# Provider tabanlı yeni yapıyı destekle
|
| 272 |
response = {}
|
| 273 |
|
| 274 |
-
# LLM Provider
|
| 275 |
if hasattr(env_config, 'llm_provider'):
|
| 276 |
response["llm_provider"] = env_config.llm_provider
|
| 277 |
-
else:
|
| 278 |
-
# Eski yapıdan provider bilgisini oluştur
|
| 279 |
-
response["llm_provider"] = {
|
| 280 |
-
"name": env_config.work_mode if env_config.work_mode in ["gpt4o", "gpt4o-mini"] else "spark_cloud",
|
| 281 |
-
"api_key": env_config.cloud_token or "",
|
| 282 |
-
"endpoint": str(env_config.spark_endpoint),
|
| 283 |
-
"settings": {
|
| 284 |
-
"internal_prompt": getattr(env_config, 'internal_prompt', None)
|
| 285 |
-
}
|
| 286 |
-
}
|
| 287 |
|
| 288 |
-
# TTS Provider
|
| 289 |
if hasattr(env_config, 'tts_provider'):
|
| 290 |
response["tts_provider"] = env_config.tts_provider
|
| 291 |
-
else:
|
| 292 |
-
response["tts_provider"] = {
|
| 293 |
-
"name": getattr(env_config, 'tts_engine', 'no_tts'),
|
| 294 |
-
"api_key": getattr(env_config, 'tts_engine_api_key', None) or "",
|
| 295 |
-
"endpoint": None,
|
| 296 |
-
"settings": getattr(env_config, 'tts_settings', {})
|
| 297 |
-
}
|
| 298 |
|
| 299 |
-
# STT Provider
|
| 300 |
if hasattr(env_config, 'stt_provider'):
|
| 301 |
response["stt_provider"] = env_config.stt_provider
|
| 302 |
else:
|
|
@@ -1002,80 +985,6 @@ async def get_activity_log(
|
|
| 1002 |
# Return most recent entries
|
| 1003 |
return logs[-limit:]
|
| 1004 |
|
| 1005 |
-
# ===================== TTS Endpoints =====================
|
| 1006 |
-
class TTSRequest(BaseModel):
|
| 1007 |
-
text: str
|
| 1008 |
-
voice_id: Optional[str] = None
|
| 1009 |
-
language: Optional[str] = "tr-TR"
|
| 1010 |
-
|
| 1011 |
-
@router.post("/tts/generate")
|
| 1012 |
-
@handle_exceptions
|
| 1013 |
-
async def generate_tts(
|
| 1014 |
-
request: TTSRequest,
|
| 1015 |
-
username: str = Depends(verify_token)
|
| 1016 |
-
):
|
| 1017 |
-
"""Generate TTS audio from text"""
|
| 1018 |
-
from tts_factory import TTSFactory
|
| 1019 |
-
from tts_preprocessor import TTSPreprocessor
|
| 1020 |
-
import base64
|
| 1021 |
-
|
| 1022 |
-
# Create TTS provider
|
| 1023 |
-
tts_provider = TTSFactory.create_provider()
|
| 1024 |
-
|
| 1025 |
-
if not tts_provider:
|
| 1026 |
-
# Return empty response for no TTS
|
| 1027 |
-
return Response(
|
| 1028 |
-
content=b"",
|
| 1029 |
-
media_type="audio/mpeg",
|
| 1030 |
-
headers={"X-TTS-Status": "disabled"}
|
| 1031 |
-
)
|
| 1032 |
-
|
| 1033 |
-
log_info(f"🎤 TTS request: '{request.text[:50]}...' with provider: {tts_provider.get_provider_name()}")
|
| 1034 |
-
|
| 1035 |
-
# Preprocess text if needed
|
| 1036 |
-
preprocessor = TTSPreprocessor(language=request.language)
|
| 1037 |
-
processed_text = preprocessor.preprocess(
|
| 1038 |
-
request.text,
|
| 1039 |
-
tts_provider.get_preprocessing_flags()
|
| 1040 |
-
)
|
| 1041 |
-
|
| 1042 |
-
# Generate audio
|
| 1043 |
-
audio_data = await tts_provider.synthesize(
|
| 1044 |
-
text=processed_text,
|
| 1045 |
-
voice_id=request.voice_id
|
| 1046 |
-
)
|
| 1047 |
-
|
| 1048 |
-
# Return audio as binary response
|
| 1049 |
-
return Response(
|
| 1050 |
-
content=audio_data,
|
| 1051 |
-
media_type="audio/mpeg",
|
| 1052 |
-
headers={
|
| 1053 |
-
"Content-Disposition": 'inline; filename="tts_output.mp3"',
|
| 1054 |
-
"X-TTS-Provider": tts_provider.get_provider_name()
|
| 1055 |
-
}
|
| 1056 |
-
)
|
| 1057 |
-
|
| 1058 |
-
@router.get("/tts/voices")
|
| 1059 |
-
@handle_exceptions
|
| 1060 |
-
async def get_tts_voices(username: str = Depends(verify_token)):
|
| 1061 |
-
"""Get available TTS voices"""
|
| 1062 |
-
from tts_factory import TTSFactory
|
| 1063 |
-
|
| 1064 |
-
tts_provider = TTSFactory.create_provider()
|
| 1065 |
-
|
| 1066 |
-
if not tts_provider:
|
| 1067 |
-
return {"voices": []}
|
| 1068 |
-
|
| 1069 |
-
voices = tts_provider.get_supported_voices()
|
| 1070 |
-
|
| 1071 |
-
# Convert dict to list format
|
| 1072 |
-
voice_list = [
|
| 1073 |
-
{"id": voice_id, "name": voice_name}
|
| 1074 |
-
for voice_id, voice_name in voices.items()
|
| 1075 |
-
]
|
| 1076 |
-
|
| 1077 |
-
return {"voices": voice_list}
|
| 1078 |
-
|
| 1079 |
# ===================== Helper Functions =====================
|
| 1080 |
async def notify_llm_startup(project, version):
|
| 1081 |
"""Notify LLM provider about project startup"""
|
|
|
|
| 271 |
# Provider tabanlı yeni yapıyı destekle
|
| 272 |
response = {}
|
| 273 |
|
| 274 |
+
# LLM Provider
|
| 275 |
if hasattr(env_config, 'llm_provider'):
|
| 276 |
response["llm_provider"] = env_config.llm_provider
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 277 |
|
| 278 |
+
# TTS Provider
|
| 279 |
if hasattr(env_config, 'tts_provider'):
|
| 280 |
response["tts_provider"] = env_config.tts_provider
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 281 |
|
| 282 |
+
# STT Provider
|
| 283 |
if hasattr(env_config, 'stt_provider'):
|
| 284 |
response["stt_provider"] = env_config.stt_provider
|
| 285 |
else:
|
|
|
|
| 985 |
# Return most recent entries
|
| 986 |
return logs[-limit:]
|
| 987 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 988 |
# ===================== Helper Functions =====================
|
| 989 |
async def notify_llm_startup(project, version):
|
| 990 |
"""Notify LLM provider about project startup"""
|