AI换脸换装异步任务系统使用指南
🚀 系统概述
本系统实现了真正的异步任务处理,确保在执行AI换脸换装任务时,用户可以正常访问其他页面功能(如历史记录、素材库等),无需等待AI任务完成。
🏗️ 技术架构
后端架构
- 任务队列服务: 基于线程池的异步任务处理
- FastAPI: 异步Web框架,支持高并发
- 多线程处理: AI任务在独立线程中执行
- 状态管理: 实时任务状态跟踪
前端架构
- React: 组件化UI,独立状态管理
- 轮询机制: 定期检查任务状态
- 实时反馈: 任务进度和状态显示
📋 功能特性
✅ 核心功能
- 非阻塞任务提交: 立即返回任务ID,不阻塞用户界面
- 实时状态监控: 轮询任务状态,实时显示进度
- 并发API访问: 其他页面功能正常使用
- 任务管理: 支持取消、查看任务列表
- 错误处理: 完善的异常处理和用户反馈
✅ 用户体验
- 即时响应: 任务提交后立即可以切换页面
- 状态透明: 清楚显示任务状态和进度
- 操作灵活: 支持取消正在进行的任务
- 历史记录: 任务完成后自动更新历史记录
🔧 使用方法
1. 启动系统
# 启动后端服务
cd backend
python -m uvicorn api.ai_swap_api:app --reload --host 0.0.0.0 --port 8000
# 启动前端服务
cd new_frontend
npm start
2. 使用流程
- 登录系统: 访问登录页面,输入用户凭据
- 上传素材: 在素材库页面上传人脸和服装素材
- 开始处理: 在AI换脸换装页面选择素材并输入提示词
- 任务提交: 点击"开始AI换脸换装"按钮
- 状态监控: 查看任务状态和进度
- 自由操作: 可以切换到其他页面,功能正常使用
- 结果查看: 任务完成后查看处理结果
3. 任务状态说明
- 等待中 (pending): 任务已提交,等待处理
- 处理中 (processing): 任务正在执行
- 已完成 (completed): 任务成功完成
- 失败 (failed): 任务执行失败
- 已取消 (cancelled): 任务被用户取消
🧪 测试验证
1. 运行测试脚本
python test_async_system.py
2. 手动测试步骤
- 启动AI换脸换装任务
- 立即切换到历史记录页面
- 验证历史记录正常加载
- 切换到素材库页面
- 验证素材列表正常显示
- 返回AI换脸换装页面查看任务状态
3. 预期结果
- ✅ 其他页面可以正常访问和加载数据
- ✅ 任务状态实时更新
- ✅ 系统响应流畅,无阻塞现象
- ✅ 任务完成后结果正常显示
📊 API接口
任务管理接口
# 提交AI换脸换装任务
POST /api/v1/swap
{
"user_id": 3,
"face_image_id": 21,
"cloth_image_id": 40,
"prompt": "创意提示词"
}
# 获取任务状态
GET /api/v1/tasks/{task_id}
# 获取用户任务列表
GET /api/v1/users/{user_id}/tasks
# 取消任务
DELETE /api/v1/tasks/{task_id}
# 获取队列统计
GET /api/v1/tasks/queue/stats
响应示例
{
"success": true,
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"process_record_id": null,
"result_image_id": null,
"copywriter_text": null,
"history_prompt": null
}
🔍 监控和调试
1. 后端日志
# 查看任务队列日志
tail -f backend/logs/ai_swap_service.log
# 查看API访问日志
tail -f backend/logs/ai_swap_api.log
2. 前端调试
// 浏览器控制台查看任务状态
console.log('当前任务ID:', currentTaskId);
console.log('任务状态:', taskStatus);
// 网络面板查看API请求
// 检查 /api/v1/tasks/{task_id} 请求
3. 队列监控
# 查看队列统计
curl http://localhost:8000/api/v1/tasks/queue/stats
⚠️ 注意事项
1. 系统要求
- Python 3.8+
- Node.js 14+
- 足够的内存和CPU资源
- 稳定的网络连接
2. 性能考虑
- 任务队列最大并发数: 3个
- 轮询间隔: 2秒
- 任务超时: 无限制(建议监控长时间任务)
3. 错误处理
- 网络异常: 自动重试轮询
- 任务失败: 显示错误信息
- 系统异常: 记录详细日志
🚀 扩展功能
1. 可扩展功能
- WebSocket实时推送
- 任务优先级管理
- 分布式任务队列
- 任务结果缓存
- 批量任务处理
2. 性能优化
- 数据库连接池优化
- 静态文件CDN加速
- 图片压缩和缓存
- API响应缓存
📞 技术支持
如遇到问题,请检查:
- 后端服务是否正常启动
- 任务队列服务是否运行
- 数据库连接是否正常
- 网络连接是否稳定
- 浏览器控制台是否有错误
总结: 本异步任务系统确保了在执行AI换脸换装任务时,用户可以正常使用其他页面功能,提供了良好的用户体验和系统响应性。