feat: 增强 AI 视频生成错误诊断和调试功能
🔍 问题分析: - 原始错误信息过于简单 (Unknown error) - 缺乏详细的错误追踪和调试信息 - Python 模块相对导入问题 🛠️ 解决方案: 1. 全面错误处理增强: - Python 模块:添加详细错误类型、消息和堆栈跟踪 - Rust 命令:增加执行日志和错误详情 - 前端服务:完整的错误信息传递和显示 2. 环境诊断工具: - 新增 test_ai_video_environment 命令 - 检查 Python 版本、模块导入、依赖包 - 前端环境测试按钮和结果显示 3. 导入问题修复: - 修复相对导入在直接运行时的问题 - 添加 fallback 机制支持独立脚本运行 - 统一模块导入逻辑 4. 调试功能: - 详细的执行日志输出 - 错误分类和追踪 - 前端控制台错误详情 ✅ 测试结果: - Python 模块可正常导入 ✓ - 脚本可独立运行 ✓ - 云存储上传成功 ✓ - API 任务提交成功 ✓ - 错误信息详细可追踪 ✓ 现在可以精确定位 AI 视频生成过程中的具体问题!
This commit is contained in:
@@ -13,8 +13,16 @@ from typing import Dict, Any, Optional, Callable
|
||||
import sys
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
from config import settings
|
||||
from utils import setup_logger
|
||||
try:
|
||||
from config import settings
|
||||
from utils import setup_logger
|
||||
except ImportError:
|
||||
# Fallback for when running as script
|
||||
import logging
|
||||
settings = type('Settings', (), {'LOG_LEVEL': 'INFO'})()
|
||||
def setup_logger(name):
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
return logging.getLogger(name)
|
||||
|
||||
logger = setup_logger(__name__)
|
||||
|
||||
@@ -124,9 +132,17 @@ class APIClient:
|
||||
logger.info(f"Task submitted successfully, job ID: {job_id}")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to submit task: {str(e)}")
|
||||
result['msg'] = str(e)
|
||||
|
||||
import traceback
|
||||
error_details = {
|
||||
'error_type': type(e).__name__,
|
||||
'error_message': str(e),
|
||||
'traceback': traceback.format_exc()
|
||||
}
|
||||
logger.error(f"Failed to submit task: {error_details['error_type']}: {error_details['error_message']}")
|
||||
logger.error(f"Traceback: {error_details['traceback']}")
|
||||
result['msg'] = f"{error_details['error_type']}: {error_details['error_message']}"
|
||||
result['error_details'] = error_details
|
||||
|
||||
return result
|
||||
|
||||
def query_task_status(self, job_id: str) -> Dict[str, Any]:
|
||||
|
||||
Reference in New Issue
Block a user