【TraeCode 上手记】我一个人,跑通了一条"无人机 AI 识别自动告警"全链路

## 一、我是谁,这次想解决什么

我是一个交通行业的全栈开发者,独立负责一个边坡/路基无人机巡检项目:无人机定期沿公路飞,拍回照片,人在平台上看图、发现隐患、上报处理。

这套流程最大的痛点是**纯人肉**——一个架次几十上百张照片,看图的人漏掉一条裂缝,可能就是汛期的一个塌方点。所以我一直想做的事很明确:

> 让 AI 先把照片过一遍,自动识别落石、裂缝、滑坡、人员入侵这类隐患,疑似问题直接生成告警,人只负责审核确认。

听起来是个"AI 平台级"的需求:要训模型、要做推理服务、要接进 Spring Boot 后端、要做前端审核页、还要部署到生产服务器。而我是一个人干活,典型的"想得多、手不够"。

这时候 TraeCode 就是那个"手"。

## 二、我是怎么把 TraeCode 慢慢用顺的

整个过程我最大的心得是:**不要一上来就甩一句"帮我做个 AI 告警系统"**,而是把 TraeCode 当成一个能力很强、但需要你拍板的搭档,分三步用。

### 第 1 步:先让它做调研和方案,我来拍板

一开始我只有个模糊念头。我没有让它直接写代码,而是先让它帮我算一笔账:生产服务器是 aarch64 架构的鲲鹏 CPU、没有 GPU,训练放上面根本不现实,怎么办?

TraeCode 给出的路线现在回头看依然是正确的:

- **训练**放在我自己的 Mac 上(M 系列芯片跑 MPS,POC 阶段够用);

- 数据集用 COCO 格式统一管理,人员入侵直接复用 COCO/VisDrone 预训练权重微调;

- 训练完导出 **ONNX**,生产服务器上用 **ONNX Runtime 的 aarch64 版本做 CPU 推理**——鲲鹏 16 核跑小模型绰绰有余。

它还提醒了我一个我完全没意识到的坑:我最初想用的某个 YOLO 训练框架对裂缝这种细长目标不友好,将来上分割任务会别扭,选型时就得想清楚。最后综合维护状态和部署难度,我拍板用了 MMYOLO。

:camera: 贴图 1:TraeCode 里讨论算力路线/技术选型的对话截图

### 第 2 步:让它出分阶段实施计划,一个阶段一个阶段验收

方案定了之后,让它把整条链路拆成可独立验收的阶段,而不是一口气糊完:

1. **推理微服务**:FastAPI 起一个 ai-inference 服务,加载 ONNX 模型,顺便用 PIL 从照片 EXIF 里提取 GPS 坐标;

2. **后端集成**:Spring Boot 定时扫描新照片 → 调推理服务 → 按置信度分级——≥0.60 自动生成告警,0.35~0.60 进待审核列表,<0.35 留档防重复扫描;

3. **前端审核页**:AI 检出结果画成橙色虚线框叠在图片上,审核人员可以删框、拖框、修正后保存回写;

4. **生产部署**:模型和服务部署到现场服务器,注册 systemd 开机自启。

每个阶段做完,我都在本地跑通端到端再进下一个。中间任何一步报错,直接把整段日志丢给 TraeCode,它翻译成人话再给修复方案,基本没有卡死过。

:camera: 贴图 2:AI 审核页面上,照片上叠加检测框的成果截图

### 第 3 步:部署翻车时,让它帮我"翻译报错 + 兜住细节"

真正见功夫的是部署那天。本地好好的,一到生产服务器就跑不起来,连着踩了几个典型的坑:

- **Python 版本不兼容**:我本地是 3.10,代码里用了 `str | None` 这种新语法,服务器是 3.9,直接语法报错。TraeCode 秒定位到 PEP 604 的问题,把类型标注全部改成了 `Optional[str]` 的兼容写法;

- **内网装不了依赖**:aarch64 的 onnxruntime 得走国内镜像源装,它直接给出了清华源命令和版本号(1.19.2);

- **一个很邪门的"自杀"问题**:我远程重启服务时,用 `pkill -f uvicorn` 杀进程,结果命令把自己也杀了——因为模式串出现在了远程 shell 自己的命令行里。TraeCode 想出的 `[u]vicorn` 写法绕开了自匹配,这种细节我可能要排查一晚上。

:camera: 贴图 3:服务器上推理日志截图(每张照片的识别耗时、HTTP 200 状态)

## 三、最后做成了什么

整条链路在生产上已经跑通:

- 无人机照片落库后,后端定时任务自动送 AI 识别,单张耗时 **150~350ms**(鲲鹏 CPU 推理),全链路 200 OK;

- 目前处于**观察期**:我把自动建告警的阈值临时调高,所有检出先进人工审核队列,跑一周看误报率,再恢复自动建告警;

- POC 模型对现场新场景的泛化还比较弱,零检出属于正常——正式数据集训练完,导出新 ONNX 替换掉服务器上的模型文件就行,**换模型不动代码**,这套架构的扩展性是留足了。

一个以前要靠人肉翻照片的场景,现在有了 7×24 小时不知疲倦的"AI 安全员"打底,人只做最后一步确认。

## 四、给后来人的三句建议

1. **先让 AI 出方案,你拍板,再动手。** TraeCode 的调研和拆解能力非常强,但架构决策(选什么框架、阈值怎么定)一定要自己拍——它负责把路铺好,方向盘在你手里;

2. **分阶段验收,别让它一口气写完。** 每个阶段有明确的"跑通标准",出问题当场解决,绝不带病进下一阶段;

3. **报错整段丢给它,别自己硬读。** 尤其是部署环境的坑(架构、Python 版本、镜像源),它见得比你多,一晚上 vs 三分钟的差距就在这。

这个开学季,如果你也想把"一直想做的那个东西"真正做出来,不妨让 TraeCode 当你的编程搭子——一个人,也能跑通一条完整的产品链路。

-–

*话题标签:TraeCode上手记*

3 个赞

我去,牛啊!!

1 个赞

好细致的分享 :+1:

1 个赞

好专业!!!确实解决痛点了!

1 个赞