mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
fix: improve error handling and logging in video generation process
This commit is contained in:
parent
2060012660
commit
47d4bce84f
|
|
@ -15,6 +15,7 @@ from oss.serializers.file import FileSerializer, mime_types
|
|||
from models_provider.tools import get_model_instance_by_model_workspace_id
|
||||
from django.utils.translation import gettext
|
||||
|
||||
|
||||
class BaseImageToVideoNode(IImageToVideoNode):
|
||||
def save_context(self, details, workflow_manage):
|
||||
self.context['answer'] = details.get('answer')
|
||||
|
|
@ -47,7 +48,7 @@ class BaseImageToVideoNode(IImageToVideoNode):
|
|||
last_frame_url = self.get_file_base64(last_frame_url)
|
||||
video_urls = ttv_model.generate_video(question, negative_prompt, first_frame_url, last_frame_url)
|
||||
# 保存图片
|
||||
if video_urls is None:
|
||||
if video_urls is None or video_urls == '':
|
||||
return NodeResult({'answer': gettext('Failed to generate video')}, {})
|
||||
file_name = 'generated_video.mp4'
|
||||
if isinstance(video_urls, str) and video_urls.startswith('http'):
|
||||
|
|
@ -71,7 +72,7 @@ class BaseImageToVideoNode(IImageToVideoNode):
|
|||
'history_message': history_message, 'question': question}, {})
|
||||
|
||||
def get_file_base64(self, image_url):
|
||||
try :
|
||||
try:
|
||||
if isinstance(image_url, list):
|
||||
image_url = image_url[0].get('file_id')
|
||||
if isinstance(image_url, str) and not image_url.startswith('http'):
|
||||
|
|
@ -87,7 +88,6 @@ class BaseImageToVideoNode(IImageToVideoNode):
|
|||
raise ValueError(
|
||||
gettext("Failed to obtain the image"))
|
||||
|
||||
|
||||
def generate_history_ai_message(self, chat_record):
|
||||
for val in chat_record.details.values():
|
||||
if self.node.id == val['node_id'] and 'image_list' in val:
|
||||
|
|
|
|||
|
|
@ -85,9 +85,8 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo):
|
|||
# --- 异步提交任务 ---
|
||||
rsp = self._safe_call(VideoSynthesis.async_call, **params)
|
||||
if rsp.status_code != HTTPStatus.OK:
|
||||
maxkb_logger.info('提交任务失败,status_code: %s, code: %s, message: %s' %
|
||||
(rsp.status_code, rsp.code, rsp.message))
|
||||
return None
|
||||
maxkb_logger.info(f'提交任务失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}')
|
||||
raise RuntimeError(f'提交任务失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}')
|
||||
|
||||
maxkb_logger.info("task_id:", rsp.output.task_id)
|
||||
|
||||
|
|
@ -96,8 +95,10 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo):
|
|||
if status.status_code == HTTPStatus.OK:
|
||||
maxkb_logger.info("当前任务状态:", status.output.task_status)
|
||||
else:
|
||||
maxkb_logger.error('获取任务状态失败,status_code: %s, code: %s, message: %s' %
|
||||
(status.status_code, status.code, status.message))
|
||||
maxkb_logger.error(
|
||||
f'获取任务状态失败,status_code: {status.status_code}, code: {status.code}, message: {status.message}')
|
||||
raise RuntimeError(
|
||||
f'获取任务状态失败,status_code: {status.status_code}, code: {status.code}, message: {status.message}')
|
||||
|
||||
# --- 等待任务完成 ---
|
||||
rsp = self._safe_call(VideoSynthesis.wait, task=rsp, api_key=self.api_key)
|
||||
|
|
@ -105,6 +106,5 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo):
|
|||
maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url)
|
||||
return rsp.output.video_url
|
||||
else:
|
||||
maxkb_logger.error('生成失败,status_code: %s, code: %s, message: %s' %
|
||||
(rsp.status_code, rsp.code, rsp.message))
|
||||
return None
|
||||
maxkb_logger.error(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}')
|
||||
raise RuntimeError(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}')
|
||||
|
|
|
|||
Loading…
Reference in New Issue