This commit is contained in:
@@ -50,11 +50,36 @@ class BailianService:
|
|||||||
chapter_context = ""
|
chapter_context = ""
|
||||||
if task.auto_chapters_data:
|
if task.auto_chapters_data:
|
||||||
try:
|
try:
|
||||||
# 确保是字符串格式
|
chapters_str = ""
|
||||||
if isinstance(task.auto_chapters_data, (dict, list)):
|
# 处理特定的 AutoChapters 结构
|
||||||
chapters_str = json.dumps(task.auto_chapters_data, ensure_ascii=False, indent=2)
|
# 格式: {"AutoChapters": [{"Id": 1, "Start": 740, "End": 203436, "Headline": "...", "Summary": "..."}, ...]}
|
||||||
else:
|
if isinstance(task.auto_chapters_data, dict) and 'AutoChapters' in task.auto_chapters_data:
|
||||||
chapters_str = str(task.auto_chapters_data)
|
chapters = task.auto_chapters_data['AutoChapters']
|
||||||
|
if isinstance(chapters, list):
|
||||||
|
chapter_lines = []
|
||||||
|
for ch in chapters:
|
||||||
|
# 毫秒转 MM:SS
|
||||||
|
start_ms = ch.get('Start', 0)
|
||||||
|
end_ms = ch.get('End', 0)
|
||||||
|
start_str = f"{start_ms // 60000:02d}:{(start_ms // 1000) % 60:02d}"
|
||||||
|
end_str = f"{end_ms // 60000:02d}:{(end_ms // 1000) % 60:02d}"
|
||||||
|
|
||||||
|
headline = ch.get('Headline', '无标题')
|
||||||
|
summary = ch.get('Summary', '')
|
||||||
|
|
||||||
|
line = f"- [{start_str} - {end_str}] {headline}"
|
||||||
|
if summary:
|
||||||
|
line += f"\n 摘要: {summary}"
|
||||||
|
chapter_lines.append(line)
|
||||||
|
|
||||||
|
chapters_str = "\n".join(chapter_lines)
|
||||||
|
|
||||||
|
# 如果上面的解析为空(或者格式不匹配),回退到通用 JSON dump
|
||||||
|
if not chapters_str:
|
||||||
|
if isinstance(task.auto_chapters_data, (dict, list)):
|
||||||
|
chapters_str = json.dumps(task.auto_chapters_data, ensure_ascii=False, indent=2)
|
||||||
|
else:
|
||||||
|
chapters_str = str(task.auto_chapters_data)
|
||||||
|
|
||||||
chapter_context = f"\n\n【章节与时间戳信息】\n{chapters_str}\n\n(提示:请结合上述章节时间戳信息,分析发言者的语速、节奏变化及停顿情况。)"
|
chapter_context = f"\n\n【章节与时间戳信息】\n{chapters_str}\n\n(提示:请结合上述章节时间戳信息,分析发言者的语速、节奏变化及停顿情况。)"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user