feat: add DashScope custom voice enrollment flow
This commit is contained in:
@@ -20,6 +20,7 @@ from schemas import (
|
||||
ModelResourceUpsert,
|
||||
)
|
||||
from services.auth import require_admin
|
||||
from services.dashscope_voice import VoiceRequest, manage_voice
|
||||
from services.interface_catalog import validate_fields
|
||||
from services.masking import mask_secrets, merge_secrets
|
||||
from services.model_resource_tester import test_model_resource
|
||||
@@ -377,3 +378,16 @@ async def delete_model_resource(
|
||||
await session.delete(row)
|
||||
await session.commit()
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
@router.post("/model-resources/dashscope/voice")
|
||||
async def manage_dashscope_voice(request: VoiceRequest, session: AsyncSession = Depends(get_session)):
|
||||
"""Create/query a voice using draft settings and server-held credentials."""
|
||||
stored = {}
|
||||
if request.resource_id:
|
||||
row = await session.get(ModelResource, request.resource_id)
|
||||
if not row or row.interface_type != "dashscope-tts":
|
||||
raise HTTPException(404, "百炼 TTS 模型资源不存在")
|
||||
stored = row.secrets or {}
|
||||
key = merge_secrets({"apiKey": request.api_key}, stored).get("apiKey", "")
|
||||
return await manage_voice(request, key)
|
||||
|
||||
Reference in New Issue
Block a user