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:
root
2025-07-10 11:10:32 +08:00
parent d6c53b6570
commit 614ed61790
9 changed files with 1152 additions and 26 deletions

View File

@@ -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]: