This commit is contained in:
@@ -183,8 +183,24 @@ class AliyunTingwuService:
|
||||
# 3. 解析结果
|
||||
task_result = data_obj.get('Result', {})
|
||||
|
||||
# 兼容处理:如果 Result 为空,或者不存在,尝试直接使用 data_obj 作为结果源
|
||||
# 某些情况下,Summarization/AutoChapters 可能直接位于 Data 层级
|
||||
if not task_result:
|
||||
task_result = data_obj
|
||||
|
||||
# 辅助函数:从源字典或其 Result 子字典中获取字段
|
||||
def get_data_field(source, key):
|
||||
# 1. 尝试直接从 task_result 获取 (如果 task_result 就是 Data 本身,这里也会生效)
|
||||
if isinstance(source, dict) and key in source:
|
||||
return source[key]
|
||||
# 2. 如果 source 是 Data,尝试从 source['Result'] 获取
|
||||
if isinstance(source, dict) and 'Result' in source and isinstance(source['Result'], dict):
|
||||
if key in source['Result']:
|
||||
return source['Result'][key]
|
||||
return None
|
||||
|
||||
# --- A. 处理逐字稿 (Transcription) ---
|
||||
transcription_data = task_result.get('Transcription', {})
|
||||
transcription_data = get_data_field(task_result, 'Transcription') or get_data_field(data_obj, 'Transcription') or {}
|
||||
|
||||
# 处理 URL 下载
|
||||
if isinstance(transcription_data, str) and transcription_data.startswith('http'):
|
||||
@@ -233,7 +249,7 @@ class AliyunTingwuService:
|
||||
task.transcription = "\n".join(full_text_lines)
|
||||
|
||||
# --- B. 处理 AI 总结 (Summarization) ---
|
||||
summarization = task_result.get('Summarization', {})
|
||||
summarization = get_data_field(task_result, 'Summarization') or get_data_field(data_obj, 'Summarization') or {}
|
||||
|
||||
# 处理 URL 下载
|
||||
if isinstance(summarization, str) and summarization.startswith('http'):
|
||||
@@ -270,12 +286,14 @@ class AliyunTingwuService:
|
||||
summary_text.append(summarization['Text'])
|
||||
elif 'Headline' in summarization:
|
||||
summary_text.append(summarization['Headline'])
|
||||
elif 'ParagraphSummary' in summarization:
|
||||
summary_text.append(summarization['ParagraphSummary'])
|
||||
|
||||
if summary_text:
|
||||
task.summary = "\n".join(summary_text)
|
||||
|
||||
# --- C. 处理章节 (AutoChapters) ---
|
||||
auto_chapters = task_result.get('AutoChapters', [])
|
||||
auto_chapters = get_data_field(task_result, 'AutoChapters') or get_data_field(data_obj, 'AutoChapters') or []
|
||||
|
||||
# 处理 URL 下载
|
||||
if isinstance(auto_chapters, str) and auto_chapters.startswith('http'):
|
||||
|
||||
Reference in New Issue
Block a user