AI-Assisted Development
本篇演示 AI 辅助开发:用一句自然语言描述需求,由 Claude(基于 ne503-dev skill)完成应用的开发、部署与验收,全程无需手动执行命令。
演示应用为 停留告警(Loitering Detection):检测到人员连续停留 10 秒即触发告警,人员离开后重置。
想跳过开发过程、直接部署成品?下载本次演示产出的预编译包 lingering-detection.tar,解压即得 app.yaml 与 image.tar,按 Hello World §4 的步骤部署到设备即可。
1. 前置准备
| 条件 | 说明 |
|---|---|
| Claude Code | 安装到本机。 |
| ne503 源码仓库 | 克隆到本地(随 NE503 SDK 一并提供),ne503-dev skill 位于仓库的 .claude/skills/ne503-dev/;或下载 skill zip 解压至 .claude/skills/。 |
| Docker | 安装到本机,用于构建应用镜像。 |
| NE503 设备 | 准备一台就绪的设备:记下设备 IP 与 admin 密码,并确认平台已初始化(HALv2 已装、ai-runtime 健康、检测模型已 scan+load)。 |
2. 从一句话到一个新应用
传统开发流程要做的事——编写 app.py 业务逻辑、配置 app.yaml 权限、查询设备可用的模型与视频流、构建镜像、部署、验收——在 AI 辅助开发里全部交给 Claude,开发者只需用自然语言描述需求。以下是一次真机会话的完整过程(2026-06-22),输入仅一句话。
2.1 输入需求
在 Claude Code 中调用 ne503-dev skill,用自然语言描述需求:
做一个应用:检测到人停留 10 秒就发告警。部署到
<设备 IP>。
Claude 读取 skill 后自主启动规划,与开发者确认少数细节后即开工:
2.2 Claude 开发这个应用(核心)
需求确认后,Claude 以 SDK 的 apps/template/ 应用模板为起点自主开发,关键决策有三:
- 占位值修正:模板里的示例模型与视频流在真机上跑不通,Claude 查询设备后改为真实值——模型
hailo_yolov8n_384_640、视频流sub(发布原始 NV12 帧;main只发编码 H264,无法推理)。 - 停留状态机:应用的核心逻辑。人进入画面即开始计时,连续停留满 10 秒触发告警,连续 3 秒未检测到则判定离开并重置;3 秒宽限窗口(
GRACE_SECONDS)容忍侧身、遮挡造成的短暂丢帧。 - 清单配置:
app.yaml声明所需的视频流、模型、事件主题,以及可调环境变量(停留时长LOITER_SECONDS、检测阈值DETECTION_THRESHOLD、宽限秒数GRACE_SECONDS等)。
完整的开发过程(模板选取 → 占位修正 → 状态机编写)见下:
2.3 Claude 部署并验收
代码写完后,部署同样由 Claude 自主完成——调用 skill 内置脚本,将"构建→上传→安装→启动→验收"全自动一次跑通,应用随之进入 running。
部署完成后,Claude 进一步验证三件事:推理确实上线(拉日志确认模型加载与首帧到达)、平台注入的权限与 app.yaml 声明一致、人进入画面即可触发一次完整检测。Web 控制台视角的验收过程见下:
真机重复多轮,告警稳定落在 10.1 秒,累计 3 次独立告警,无误报、无漏报。
输入一句话需求,即可产出一个在设备上实跑的停留告警应用——全程无任何手动步骤。
完整过程汇总视频(按需查看):