tingwu_new
All checks were successful
Deploy to Server / deploy (push) Successful in 14s

This commit is contained in:
jeremygan2021
2026-03-11 15:19:37 +08:00
parent aa2d96b242
commit 188f1fd22d

View File

@@ -159,13 +159,31 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
result = service.get_task_info(task.task_id)
# 兼容处理响应结构 {"Data": {"TaskStatus": "...", "Result": ...}}
# 有些情况下 SDK 返回的是 JSON 字符串,需要二次解析
if isinstance(result, str):
import json
try:
result = json.loads(result)
except:
pass
data_obj = result.get('Data', result)
if not isinstance(data_obj, dict):
# 如果 Data 不是字典,可能它本身就是字符串,或者 result 结构更平铺
data_obj = result
# 防御性编程:确保 data_obj 是字典
if not isinstance(data_obj, dict):
logger.error(f"Unexpected response format: {type(data_obj)} - {data_obj}")
return Response({'error': f"Unexpected response format: {type(data_obj)}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
task_status = data_obj.get('TaskStatus')
if task_status == 'COMPLETE' or task_status == 'COMPLETED':
# 兼容其他状态字段名
if not task_status:
task_status = data_obj.get('Status')
if task_status == 'COMPLETE' or task_status == 'COMPLETED' or task_status == 'SUCCEEDED':
task.status = TranscriptionTask.Status.SUCCEEDED
# 解析结果