ASYNC_SYSTEM_GUIDE.md 4.8 KB

AI换脸换装异步任务系统使用指南

🚀 系统概述

本系统实现了真正的异步任务处理,确保在执行AI换脸换装任务时,用户可以正常访问其他页面功能(如历史记录、素材库等),无需等待AI任务完成。

🏗️ 技术架构

后端架构

  • 任务队列服务: 基于线程池的异步任务处理
  • FastAPI: 异步Web框架,支持高并发
  • 多线程处理: AI任务在独立线程中执行
  • 状态管理: 实时任务状态跟踪

前端架构

  • React: 组件化UI,独立状态管理
  • 轮询机制: 定期检查任务状态
  • 实时反馈: 任务进度和状态显示

📋 功能特性

✅ 核心功能

  1. 非阻塞任务提交: 立即返回任务ID,不阻塞用户界面
  2. 实时状态监控: 轮询任务状态,实时显示进度
  3. 并发API访问: 其他页面功能正常使用
  4. 任务管理: 支持取消、查看任务列表
  5. 错误处理: 完善的异常处理和用户反馈

✅ 用户体验

  1. 即时响应: 任务提交后立即可以切换页面
  2. 状态透明: 清楚显示任务状态和进度
  3. 操作灵活: 支持取消正在进行的任务
  4. 历史记录: 任务完成后自动更新历史记录

🔧 使用方法

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. 使用流程

  1. 登录系统: 访问登录页面,输入用户凭据
  2. 上传素材: 在素材库页面上传人脸和服装素材
  3. 开始处理: 在AI换脸换装页面选择素材并输入提示词
  4. 任务提交: 点击"开始AI换脸换装"按钮
  5. 状态监控: 查看任务状态和进度
  6. 自由操作: 可以切换到其他页面,功能正常使用
  7. 结果查看: 任务完成后查看处理结果

3. 任务状态说明

  • 等待中 (pending): 任务已提交,等待处理
  • 处理中 (processing): 任务正在执行
  • 已完成 (completed): 任务成功完成
  • 失败 (failed): 任务执行失败
  • 已取消 (cancelled): 任务被用户取消

🧪 测试验证

1. 运行测试脚本

python test_async_system.py

2. 手动测试步骤

  1. 启动AI换脸换装任务
  2. 立即切换到历史记录页面
  3. 验证历史记录正常加载
  4. 切换到素材库页面
  5. 验证素材列表正常显示
  6. 返回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响应缓存

📞 技术支持

如遇到问题,请检查:

  1. 后端服务是否正常启动
  2. 任务队列服务是否运行
  3. 数据库连接是否正常
  4. 网络连接是否稳定
  5. 浏览器控制台是否有错误

总结: 本异步任务系统确保了在执行AI换脸换装任务时,用户可以正常使用其他页面功能,提供了良好的用户体验和系统响应性。