diff --git a/backend/ai_services/views.py b/backend/ai_services/views.py index 420db9a..9c39fdb 100644 --- a/backend/ai_services/views.py +++ b/backend/ai_services/views.py @@ -209,9 +209,26 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet): except Exception as e: logger.error(f"Error downloading transcription: {e}") transcription_data = {} - + elif isinstance(transcription_data, dict) and 'TranscriptionUrl' in transcription_data: + # 有些情况 Transcription 还是对象,但内容在 Url 字段 + try: + import requests + url = transcription_data['TranscriptionUrl'] + logger.info(f"Downloading transcription from {url}") + t_resp = requests.get(url) + if t_resp.status_code == 200: + transcription_data = t_resp.json() + except Exception as e: + logger.error(f"Error downloading transcription nested url: {e}") + if isinstance(transcription_data, dict): + # 尝试多种可能的路径提取句子 + # 1. 直接在根目录: {"Sentences": [...]} + # 2. 在 Transcription 字段下: {"Transcription": {"Sentences": [...]}} sentences = transcription_data.get('Sentences', []) + if not sentences and 'Transcription' in transcription_data: + sentences = transcription_data['Transcription'].get('Sentences', []) + full_text = " ".join([s.get('Text', '') for s in sentences]) task.transcription = full_text