案例7不是单个图像分类脚本,而是手机上传、NPU索引、语义检索、触摸屏显示和ESP32电子纸拉图的完整系统。
先给出本讲路线图;后续每一段都对应这里的一行,最后回到路线收束。
先按五段建立系统全景。每段都有自己的数据和证据,不能用最终页面替代索引或设备拉图验证。
客户端只通过HTTP访问服务。FastAPI连接SQLite、FAISS、NPU运行时和按需渲染器,设备不直接接触模型或任意文件路径。
服务启动先检查CANN、模型hash和索引,再开放上传、搜索、显示和设备接口。任何一部分未就绪都应显式暴露状态。
SQLite是文件与元数据的关系索引,FAISS是可重建检索缓存。不要把FAISS当作唯一真源,也不要混用模型空间。
按“图像、中文文本、英文文本、相似图”选择模型。模型ID是API和索引的硬边界。
客户端可以表达查询语言或模型ID,但真实路径由服务端注册表决定。分数只在同一模型空间内有排序意义。
FAISS是派生缓存,SQLite与受管文件才是可恢复的组合。模型变化时需要建立新索引,不能沿用旧模型向量。
准入是模型、板卡、版本和查询合同的联合结论。文件存在、ATC成功或单次输出有限都只是其中一层。
单锁会降低吞吐,但能控制内存峰值和模型切换。生产回退会掩盖准入失败,因此必须失败关闭。
画面只加载了案例7的web/index.html静态前端。顶部服务异常,天气接口404,主区域没有照片,NPU状态是排队准备中。不能把空库解释成检索结果。
五组字段必须一起出现。空主区域、服务异常和天气404是后端未连接的证据,不是“搜索无结果”或“图库为空”的业务结论。
这是案例7最重要的证据边界页。空页面不是搜索零命中,而是没有后端数据源;不能写任何检索成功或准确率。
当前截图只覆盖1920×1080空库页面。其他视口、照片存在状态、搜索结果和触摸操作仍需独立捕获和验收。
局域网上“发现设备”“注册成功”“设备主动拉图”和“面板实际刷新”是四个状态,不能合并。
选图是多个信号组合后的确定性状态,不是由LLM随意生成。当前天气404和空库使这部分无法进入业务验证。
按健康、索引、搜索、显示、设备拉图的顺序验收。每一步都有独立接口和原始证据。
当前截图没有真实照片。后续补拍真实图库时必须使用合成或匿名照片,并隐藏EXIF、设备ID和路径。
最终要求学生逐层勾选。空库截图不能填“搜索”或“设备”两栏,后端未连接时也不能填任何NPU证据。