This commit is contained in:
@@ -50,11 +50,36 @@ class BailianService:
|
||||
chapter_context = ""
|
||||
if task.auto_chapters_data:
|
||||
try:
|
||||
# 确保是字符串格式
|
||||
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)
|
||||
chapters_str = ""
|
||||
# 处理特定的 AutoChapters 结构
|
||||
# 格式: {"AutoChapters": [{"Id": 1, "Start": 740, "End": 203436, "Headline": "...", "Summary": "..."}, ...]}
|
||||
if isinstance(task.auto_chapters_data, dict) and 'AutoChapters' in 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(提示:请结合上述章节时间戳信息,分析发言者的语速、节奏变化及停顿情况。)"
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user