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

This commit is contained in:
jeremygan2021
2026-03-11 21:40:15 +08:00
parent 791afa52eb
commit f14d52f69b
2 changed files with 78 additions and 2 deletions

View File

@@ -96,3 +96,62 @@ class BailianService:
evaluation.error_message = str(e)
evaluation.save()
return evaluation
def summarize_task(self, task):
"""
对转写任务进行总结
"""
if not self.client:
logger.warning("BailianService not initialized, skipping summary.")
return
if not task.transcription:
logger.warning(f"Task {task.id} has no transcription, skipping summary.")
return
try:
content = task.transcription
# 简单截断防止过长
if len(content) > 15000:
content = content[:15000] + "...(内容过长已截断)"
# 准备上下文数据
context_data = ""
if task.summary_data:
context_data += f"\n\n【总结原始数据】\n{json.dumps(task.summary_data, ensure_ascii=False, indent=2)}"
if task.auto_chapters_data:
context_data += f"\n\n【章节原始数据】\n{json.dumps(task.auto_chapters_data, ensure_ascii=False, indent=2)}"
system_prompt = f"""你是一个专业的会议/内容总结助手。请根据提供的【转写文本】、【总结原始数据】和【章节原始数据】,生成一份结构清晰、内容详实的总结报告。
请按照以下结构输出Markdown格式
1. **标题**:基于内容生成一个合适的标题。
2. **核心摘要**:简要概括主要内容。
3. **主要观点/话题**:结合思维导图数据,列出关键话题和层级。
4. **章节速览**:结合章节数据,列出时间点和主要内容。[HH:MM:SS]格式来把章节列出来
5. **问答精选**(如果有):基于问答总结数据,列出重要问答。
请确保语言通顺,重点突出,能够还原内容的逻辑结构。"""
user_content = f"以下是需要总结的内容:\n\n【转写文本】\n{content}{context_data}"
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': user_content}
]
# 使用 qwen-plus 作为默认模型
completion = self.client.chat.completions.create(
model="qwen-plus",
messages=messages
)
summary_content = completion.choices[0].message.content
task.summary = summary_content
task.save(update_fields=['summary'])
logger.info(f"Task {task.id} summary generated successfully.")
except Exception as e:
logger.error(f"Failed to generate summary for task {task.id}: {e}")