This commit is contained in:
@@ -102,7 +102,12 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
# 3. 调用听悟接口创建任务
|
||||
try:
|
||||
tingwu_response = service.create_transcription_task(oss_url)
|
||||
task_id = tingwu_response.get('TaskId')
|
||||
|
||||
# 兼容处理响应结构,通常为 {"Data": {"TaskId": "...", ...}}
|
||||
if 'Data' in tingwu_response and isinstance(tingwu_response['Data'], dict):
|
||||
task_id = tingwu_response['Data'].get('TaskId')
|
||||
else:
|
||||
task_id = tingwu_response.get('TaskId')
|
||||
|
||||
if task_id:
|
||||
task_record.task_id = task_id
|
||||
@@ -152,13 +157,19 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
service = AliyunTingwuService()
|
||||
try:
|
||||
result = service.get_task_info(task.task_id)
|
||||
task_status = result.get('TaskStatus')
|
||||
|
||||
# 兼容处理响应结构 {"Data": {"TaskStatus": "...", "Result": ...}}
|
||||
data_obj = result.get('Data', result)
|
||||
if not isinstance(data_obj, dict):
|
||||
data_obj = result
|
||||
|
||||
task_status = data_obj.get('TaskStatus')
|
||||
|
||||
if task_status == 'COMPLETE':
|
||||
task.status = TranscriptionTask.Status.SUCCEEDED
|
||||
|
||||
# 解析结果
|
||||
task_result = result.get('Result', {})
|
||||
task_result = data_obj.get('Result', {})
|
||||
|
||||
# 提取逐字稿
|
||||
sentences = task_result.get('Transcription', {}).get('Sentences', [])
|
||||
@@ -190,7 +201,7 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
|
||||
elif task_status == 'FAILED':
|
||||
task.status = TranscriptionTask.Status.FAILED
|
||||
task.error_message = result.get('TaskStatusText', 'Unknown error')
|
||||
task.error_message = data_obj.get('TaskStatusText', result.get('Message', 'Unknown error'))
|
||||
task.save()
|
||||
|
||||
# 其他状态 (PENDING, RUNNING) 不做更改
|
||||
|
||||
Reference in New Issue
Block a user