tingwu_new
All checks were successful
Deploy to Server / deploy (push) Successful in 18s

This commit is contained in:
jeremygan2021
2026-03-11 21:08:47 +08:00
parent 852bc74bc1
commit 599b3cded7
2 changed files with 62 additions and 85 deletions

View File

@@ -272,63 +272,8 @@ class AliyunTingwuService:
# 提取文本 (MindMapSummary)
# 结构: {"MindMapSummary": [{"Title": "...", "Topic": [...]}]}
summary_text = []
# 移除了原先的 summary_text 拼接逻辑
# 1. 优先提取段落标题和摘要
if 'ParagraphTitle' in summarization:
summary_text.append(f"### {summarization['ParagraphTitle']}")
if 'ParagraphSummary' in summarization:
summary_text.append(summarization['ParagraphSummary'])
summary_text.append("") # 空行分隔
# 2. 提取思维导图作为大纲
def parse_mindmap_topic(topic_list, level=0):
indent = " " * level
for topic in topic_list:
title = topic.get('Title', '')
if title:
summary_text.append(f"{indent}- {title}")
sub_topics = topic.get('Topic', [])
if sub_topics:
parse_mindmap_topic(sub_topics, level + 1)
if 'MindMapSummary' in summarization:
summary_text.append("### 内容大纲")
parse_mindmap_topic(summarization['MindMapSummary'])
summary_text.append("")
# 3. 提取对话总结 (ConversationalSummary)
if 'ConversationalSummary' in summarization and isinstance(summarization['ConversationalSummary'], list):
summary_text.append("### 对话总结")
for conv in summarization['ConversationalSummary']:
speaker = conv.get('SpeakerName', '发言人')
summary = conv.get('Summary', '')
if summary:
summary_text.append(f"- **{speaker}**: {summary}")
summary_text.append("")
# 4. 提取问答总结 (QuestionsAnsweringSummary)
if 'QuestionsAnsweringSummary' in summarization and isinstance(summarization['QuestionsAnsweringSummary'], list):
summary_text.append("### 问答回顾")
for qa in summarization['QuestionsAnsweringSummary']:
question = qa.get('Question', '')
answer = qa.get('Answer', '')
if question and answer:
summary_text.append(f"**Q: {question}**")
summary_text.append(f"A: {answer}")
summary_text.append("")
# 兼容旧逻辑:如果上述都为空,尝试 Text 或 Headline
if not summary_text:
if 'Text' in summarization:
summary_text.append(summarization['Text'])
elif 'Headline' in summarization:
summary_text.append(summarization['Headline'])
if summary_text:
task.summary = "\n".join(summary_text)
# --- C. 处理章节 (AutoChapters) ---
auto_chapters = get_data_field(task_result, 'AutoChapters') or get_data_field(data_obj, 'AutoChapters') or []
@@ -346,34 +291,18 @@ class AliyunTingwuService:
# 保存原始数据
task.auto_chapters_data = auto_chapters
# 将章节信息追加到 summary
if auto_chapters and isinstance(auto_chapters, list):
if summary_text:
summary_text.append("\n\n### 章节速览")
else:
summary_text.append("### 章节速览")
for chapter in auto_chapters:
headline = chapter.get('Headline', '')
summary = chapter.get('Summary', '')
start_time = chapter.get('Start', 0)
# 格式化时间戳 (毫秒 -> HH:MM:SS)
seconds = int(start_time / 1000)
m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
time_str = f"{h:02d}:{m:02d}:{s:02d}"
chapter_text = f"- [{time_str}] {headline}"
if summary:
chapter_text += f"\n {summary}"
summary_text.append(chapter_text)
if summary_text:
task.summary = "\n".join(summary_text)
# 保存任务,确保原始数据已写入数据库
task.save()
# 调用大模型生成总结 (如果 summary_data 或 auto_chapters_data 存在)
if task.summary_data or task.auto_chapters_data:
try:
from .bailian_service import BailianService
bailian_service = BailianService()
bailian_service.summarize_task(task)
except Exception as e:
logger.error(f"Failed to trigger AI summarization: {e}")
# 4. 自动触发 AI 评估 (如果任务首次成功且有启用的模板)
if previous_status != 'SUCCEEDED' and task.status == 'SUCCEEDED' and task.transcription:
self.trigger_ai_evaluations(task)