This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user