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

This commit is contained in:
jeremygan2021
2026-03-11 21:17:35 +08:00
parent 071970e043
commit 2b7f0a6317
2 changed files with 25 additions and 53 deletions

View File

@@ -234,10 +234,19 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
"""
task = self.get_object()
# 如果任务已经完成或失败,但逐字稿为空,允许重新刷新
if task.status == TranscriptionTask.Status.SUCCEEDED and not task.transcription:
pass # 继续执行刷新逻辑
elif task.status in [TranscriptionTask.Status.SUCCEEDED, TranscriptionTask.Status.FAILED]:
# 允许刷新的条件:
# 1. 任务未完成 (PENDING, PROCESSING)
# 2. 任务已完成但逐字稿 (transcription) 为空
# 3. 任务已完成但 AI总结 (summary) 为空 (新增)
should_refresh = False
if task.status not in [TranscriptionTask.Status.SUCCEEDED, TranscriptionTask.Status.FAILED]:
should_refresh = True
elif task.status == TranscriptionTask.Status.SUCCEEDED:
if not task.transcription or not task.summary:
should_refresh = True
if not should_refresh:
serializer = self.get_serializer(task)
return Response(serializer.data)
@@ -273,7 +282,18 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
# 调用 Service 进行解析和更新
service.parse_and_update_task(task, result)
# 重新获取 task 以包含更新后的关联字段 (如 ai_evaluations)
# 如果任务成功但 AI 总结仍为空 (可能之前解析没触发,或者大模型调用失败)
# 再次尝试强制触发 summarize_task (如果原始数据存在)
if task.status == TranscriptionTask.Status.SUCCEEDED and not task.summary:
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"Force trigger AI summarization failed: {e}")
# 重新获取 task 以包含更新后的关联字段
task.refresh_from_db()
serializer = self.get_serializer(task)