Spaces:
Running
Running
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"""
|