4.8 第一次企业级改bug 经验
·


一、项目是什么
这是一个灵衍AI图片生成API服务,用于服装设计。
核心流程:
用户请求 → FastAPI接收 → Redis存储 → RabbitMQ排队 → Worker处理 → 豆包AI生成 → 返回结果
二、核心文件及作用
| 文件 | 作用 |
|---|---|
src/api/main.py |
API入口,接收HTTP请求 |
src/validation/validation.py |
校验参数,构建提示词 |
src/core/task_manager.py |
任务生命周期管理 |
src/core/doubao_client.py |
调用豆包AI |
src/core/redis_client.py |
Redis操作 |
config/settings.py |
集中配置管理 |
三、validation.py 核心逻辑
这个文件是提示词构建的核心。
3.1 build_prompt_for_tool() 方法
根据不同功能,把各个参数拼接成完整的提示词:
def build_prompt_for_tool(self, tool_name: str) -> str:
if tool_name == "AI服装设计":
parts = []
if self.creative_description:
parts.append(self.creative_description)
if self.design_features:
parts.append(self.design_features)
if self.creation_style:
parts.append(self.creation_style)
return ", ".join(parts) if parts else self.prompt
elif tool_name == "线稿转实物":
parts = []
if self.creative_description:
parts.append(self.creative_description)
if self.sketch_type:
parts.append(self.sketch_type)
if self.sketch_style:
parts.append(self.sketch_style)
if self.image_type:
parts.append(self.image_type)
if self.creation_style:
parts.append(self.creation_style)
return ", ".join(parts) if parts else self.prompt
四、Bug 修复(AI服装设计-领口畸形)
4.1 Bug 现象
用户使用"AI服装设计"功能生成 Polo 衫时:
- 领子左右不对称
- V字领歪斜
- 领尖角度不一致
- 缝合效果不自然
4.2 问题根因
这是AI生成图片的对称性不足导致的典型问题。AI在生成细节时随机性太大,导致结构不准确。
4.3 解决方案
在 build_prompt_for_tool() 方法中,给"AI服装设计"功能追加约束性提示词。
4.4 代码改动
修改前:
elif tool_name == "AI服装设计":
parts = []
if self.creative_description:
parts.append(self.creative_description)
if self.design_features:
parts.append(self.design_features)
if self.creation_style:
parts.append(self.creation_style)
return ", ".join(parts) if parts else self.prompt
修改后:
elif tool_name == "AI服装设计":
parts = []
if self.creative_description:
parts.append(self.creative_description)
if self.design_features:
parts.append(self.design_features)
if self.creation_style:
parts.append(self.creation_style)
# 【修复】追加约束性提示词,解决领口畸形问题
parts.append("左右严格对称,结构工整,服装细节清晰")
return ", ".join(parts) if parts else self.prompt
4.5 修复流程
1. 发现问题 → 用户反馈Polo衫领口畸形
↓
2. 分析问题 → 确认是AI对称性不足
↓
3. 设计提示词 → "左右严格对称,结构工整,服装细节清晰"
↓
4. 定位代码 → 找到 validation.py 中的 build_prompt_for_tool()
↓
5. 修改代码 → 在 return 之前添加提示词
↓
6. 测试验证 → 重启服务,curl 测试
↓
7. 提交代码 → git add → git commit → git push
4.6 为什么这个提示词有效?
| 提示词 | 作用 | 影响设计内容吗 |
|---|---|---|
| 左右严格对称 | 约束结构对称性 | ❌ 不影响 |
| 结构工整 | 约束整体准确度 | ❌ 不影响 |
| 服装细节清晰 | 约束细节质量 | ❌ 不影响 |
这个提示词只管"画得准不准",不管"设计成什么样",所以可以通用地应用到所有服装款式。
五、项目启动流程
每次重启电脑后需要启动:
# 1. Docker容器
docker start my-redis
docker start rabbitmq
# 2. API服务(窗口1)
cd e:\code\lingyan_webly
venv\Scripts\activate
python start_server.py
# 3. Worker(窗口2)
cd e:\code\lingyan_webly
venv\Scripts\activate
celery -A src.celery_app worker --loglevel=info --queues=webly_queue_server_a --pool=solo
六、Git 操作流程
# 1. 查看改动
git status # 看有哪些文件改动
git diff 文件名 # 看具体改动内容
# 2. 提交代码(只提交指定文件,不传doubao_test.py)
git add src/validation/validation.py # 只添加指定文件
git status # 确认暂存区
git commit -m "AI服装设计追加提示词:左右严格对称,结构工整,服装细节清晰"
# 3. 推送代码
git push
七、遇到的问题及解决
| 问题 | 解决方式 |
|---|---|
| 依赖没安装 | pip install -r requirements.txt |
| .env 文件名不对 | 把 aaa.env 改成 .env |
| Redis 没启动 | Docker 启动 Redis 容器 |
| RabbitMQ 权限没配置 | 用 rabbitmqctl 创建用户和虚拟主机 |
| Worker 队列监听不对 | 指定 --queues=webly_queue_server_a |
| Windows Celery 权限报错 | 加参数 --pool=solo |
| 没有仓库写权限 | 联系管理员要权限 |
| 远程有冲突 | git pull 或 git push --force |
八、调试技巧
- 加日志:
logger.info()打印关键变量 - 看日志:观察数据流向,确定问题在哪一步
- curl 测试:绕过前端,直接测后端接口
- 分段排查:从请求 → 校验 → 队列 → Worker → AI 一步步排查
九、重要概念
| 概念 | 理解 |
|---|---|
| API | 应用程序接口,像餐厅的菜单 |
| FastAPI | Python Web 框架,用于接收请求 |
| Redis | 内存数据库,存临时数据 |
| RabbitMQ | 消息队列,像快递的中转站 |
| Celery | 任务队列框架,协调异步任务 |
| Worker | 后台干活的进程 |
| Prompt Engineering | 通过提示词引导AI生成正确结果 |
十、总结
今天你完成了:
- ✅ 理解项目整体架构
- ✅ 掌握核心文件作用
- ✅ 学会找bug的方法(加日志定位)
- ✅ 成功修复AI服装设计领口畸形bug
- ✅ 学会Git完整操作流程
- ✅ 掌握项目启动和调试方法
- ✅ 成功把代码提交到GitLab
恭喜你完成了第一次Bug修复! 🚀
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)