This commit is contained in:
@@ -297,15 +297,35 @@ class AliyunTingwuService:
|
||||
# 调用大模型生成总结 (如果 summary_data 或 auto_chapters_data 存在)
|
||||
if task.summary_data or task.auto_chapters_data:
|
||||
try:
|
||||
# 设置占位状态
|
||||
task.summary = "AI总结生成当中..."
|
||||
task.save(update_fields=['summary'])
|
||||
|
||||
# 异步执行总结
|
||||
import threading
|
||||
from .bailian_service import BailianService
|
||||
bailian_service = BailianService()
|
||||
bailian_service.summarize_task(task)
|
||||
|
||||
def async_summarize_in_service(task_id):
|
||||
try:
|
||||
# 重新获取 task 以避免线程安全问题
|
||||
from .models import TranscriptionTask
|
||||
t = TranscriptionTask.objects.get(id=task_id)
|
||||
bailian_service = BailianService()
|
||||
bailian_service.summarize_task(t)
|
||||
except Exception as e:
|
||||
logger.error(f"Async summary generation failed in service: {e}")
|
||||
|
||||
threading.Thread(target=async_summarize_in_service, args=(task.id,)).start()
|
||||
logger.info(f"Triggered async summary generation for task {task.id}")
|
||||
|
||||
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)
|
||||
# 同样改为异步触发
|
||||
import threading
|
||||
threading.Thread(target=self.trigger_ai_evaluations, args=(task,)).start()
|
||||
|
||||
def trigger_ai_evaluations(self, task):
|
||||
"""
|
||||
|
||||
@@ -284,6 +284,7 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
|
||||
# 如果任务成功但 AI 总结仍为空 (可能之前解析没触发,或者大模型调用失败)
|
||||
# 再次尝试强制触发 summarize_task (如果原始数据存在)
|
||||
# 注意:service.parse_and_update_task 内部已经尝试异步触发,这里作为补救措施
|
||||
if task.status == TranscriptionTask.Status.SUCCEEDED and not task.summary:
|
||||
if task.summary_data or task.auto_chapters_data:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user