网友作品 #000211 · 提交于 2026/09/04
面辅料AI识别工作台:服装工艺单识别并归档飞书表格



1 / 3
作品简介
fabric-analyzer(面辅料识别工作台)是一款面向服装跟单/技术部门的桌面级 AI 识别工具:把款式工艺单(PDF 或图片)交给豆包视觉模型,自动识别出面辅料构成清单(面料/辅料/工艺三大类,每项附识别证据),人工快速核对后一键上传飞书多维表格归档。每个识别任务独占一个 Tab,多份 PDF、多张图片可同时开跑互不干扰,把「人眼逐页看图、手工敲表格」压缩成「导入 → 识别 → 核对 → 上传」四步。
核心亮点
- 证据链可溯源:每条识别结果附证据说明(如「图1标注‘主布:色丁’」),提示词要求文字标注与图像互证、多图互补交叉核对,人工核对只看证据列即可快速判断对错
- 文档导入与选页:支持 PDF(150dpi 渲染)与 PNG/JPG/WebP/BMP;缩略图网格逐页预览,全选/全不选/反选、删除未勾选页,Ctrl+滚轮缩放,双击打开全屏看图器(缩放锚定鼠标、拖拽看细节)
- 参数可调:API Key、模型 ID、深度思考档位(low/medium/high)、图片质量(low 省 token / high 小字更准)、图片压缩最长边均可配置
- 核对即改:面料/辅料/工艺三组表格,明细列为下拉框(选项来自三份清单),支持输入清单外自定义值;款号自动填充可改,一键导出 JSON
- 飞书闭环:按 PersonalBaseToken 模式直连多维表格按行写入;识别到款号后自动查询并分组显示历史上传记录(只提示不判重,尊重同一款号多次制作的业务现实)
- 配置即生效:三份清单用 chip 标签编辑器维护,同时驱动结果表下拉选项与默认提示词;全部配置持久化到 settings.json,改完立即生效
技术与工具
- Python 3.12 + NiceGUI(Quasar/Vue 前端,桌面窗口与浏览器双模式启动)
- PyMuPDF 渲染 PDF,提交大模型前 LANCZOS 等比压缩;httpx 异步调用火山方舟 Ark API(doubao 视觉模型)
- 飞书 Base OpenAPI(search 分页过滤 + batch_create 按行写入);大图预览走自建 HTTP 路由,规避 websocket 3MB 上限
- 质量保障:ruff + mypy + pytest(27 用例),uv 管理依赖,日志按天滚动
开发过程
- 作者借助 Python skill 开发,用 NiceGUI 搭建界面,自述「漂亮是有的,但比较容易踩坑」,为界面美观付出了额外的时间与 token 成本
- 每轮 UI 改动执行「最小实例验证 → 冒烟启动 → 浏览器实测」三步验证;实测踩坑结论(如 base64 大图超 websocket 上限会静默丢弃)直接沉淀为架构选择
适用场景
- 服装跟单员收到新款工艺单后快速识别归档;面辅料采购、技术工艺员、生产文员的日常办单
- 归档建库:识别结果入多维表格后按款号、类别检索统计;生产旺季多份工艺单并行识别
- 同款号修订核对:历史上传记录可见,工艺变更前后可对比;小字标注单据可切 high 档提升证据提取质量
原始提交内容(点开查看,可复制全文去问 AI)
服装面辅料构成 AI 识别工具(fabric-analyzer)
一款面向服装跟单 / 技术部门的桌面级 AI 识别工具:把款式工艺单(PDF 或图片)交给多模态大模型,自动识别出面辅料构成清单(面料 / 辅料 / 工艺三大类、每项附识别证据),人工快速核对后一键上传飞书多维表格归档。把“人眼逐页看图、手工敲表格”的活儿压缩成“导入 识别 核对 上传”四步。
功能总览
1. 多任务并行识别
-
每个任务独占一个 Tab(导入选页 识别 结果核对),互不清空
-
Tab 只显示“任务 N”序号,悬停 tooltip 显示来源文件名;带状态图标(转圈=识别中,绿色=已完成)
-
多个 PDF / 多张图片可同时开跑,无需等前一个任务结束
2. 文档导入与选页
-
支持 PDF(PyMuPDF 150dpi 渲染)与 PNG / JPG / WebP / BMP 直接导入
-
缩略图网格逐页预览:复选框勾选/去勾选(透明度反馈)、全选 / 全不选 / 反选、删除未勾选页
-
勾选只做局部更新,滚动位置不丢;Ctrl + 滚轮整体缩放缩略图(6 档)
-
双击缩略图打开全屏看图器:等比适应屏幕、滚轮缩放(鼠标位置锚点)、按住左键拖拽看细节、ESC 退出
3. AI 识别(火山方舟 doubao 视觉模型)
-
提示词要求 AI 利用图中原始设计要求、文字标注、外文翻译全部信息交叉核对,文字与图像互证、多图互补
-
返回结构化 JSON:款号 + 三大类明细 + 每项识别证据(如“图1标注’主布:色丁’”),可疑判断一眼可辨
-
可配置:API Key、模型 ID、深度思考档位(fast / high)、图片质量(low 省token / high 小字更准)、图片压缩最长边(默认 1600px,LANCZOS + 无损 PNG,压缩环节零损失)
4. 结果核对与编辑
-
面料 / 辅料 / 工艺三组表格,每行 = 明细 + 证据说明(证据列悬停 tooltip 显示全文)
-
明细列是下拉框(选项 = 三大清单),支持输入清单外自定义值(如“配布一”“里布二”)
-
款号文本框:AI 识别自动填充,也可手动改填
-
一键导出 JSON
5. 飞书多维表格直传
-
按 PersonalBaseToken 模式配置(pt-token / appToken / tableID 均在设置里维护)
-
按行写入:款号 / 类别 / 明细 / 识别证据
-
识别到款号后自动查询历史:按「创建时间」分组统计并显示(如“飞书已有该款号 10 条记录,2 次上传:09-19 09:19(5条)、09-14 09:14(5条)”);无记录提示“暂未上传飞书,核对无误后请点击「上传飞书」”
-
只提示不判重——同一款号历史多次制作(工艺略有不同)属正常,清理旧记录由用户到多维表格手动处理
6. 界面可配置(settings.json)
-
面料 / 辅料 / 工艺三份清单用 chip 标签编辑器维护(点 x 删、回车或 + 加)
-
清单同时驱动:结果表下拉选项 + 默认提示词的固定清单段(AI 选择题选项随之变化)
-
全部配置持久化到
settings.json,改文件或改界面均可
应用场景
| 场景 | 用法 |
|---|---|
| 日常办单 | 跟单员收到新款工艺单 PDF 导入 识别 核对 上传飞书归档 |
| 归档/建库 | 识别结果直接入多维表格,供后续检索与统计(如按类别、按款号筛选) |
| 多任务处理 | 生产旺季多份工艺单并行识别,省等待时间 |
| 修订核对 | 同款号历史多次上传记录可见,工艺变更前后对比 |
| 小字标注单据 | 图片质量切 high + 深度思考 high,提升文字标注证据提取质量 |
适用角色:服装跟单、面辅料采购、技术工艺员、生产文员。
功能特色
- 证据链设计——每条识别结果附证据说明,AI 判断可溯源,人工核对时只看证据列即可快速判断对错
- 多任务 Tab 并行——多单互不干扰,Tab 状态图标(转圈/绿色)一眼看清哪些在跑、哪些完成
- 三处同步的全选/反选——数据、复选框、卡片样式三处同步更新,操作即时可见且不丢滚动位置
- 完整桌面级看图器——双击全屏、滚轮缩放锚点、左键拖拽,不逊系统看图工具
- 飞书闭环——识别 核对 上传 历史提示形成完整链路,且尊重“人工判重”的业务现实
- 配置即生效——清单、提示词、模型参数改完保存立即生效,无需重启
技术要点
-
架构:Python 3.12 + NiceGUI(Quasar/Vue 前端,native / browser 双模式启动)+ httpx 异步调用火山方舟 Ark Responses API(doubao 视觉模型)
-
PDF 渲染:PyMuPDF 150dpi 渲染页面为 PNG;提交大模型前 LANCZOS 等比缩至最长边 1600px + 无损 PNG(仅降分辨率,无压缩损失)
-
大图传输:预览大图走自建 HTTP 路由(base64 超 websocket 3MB 上限会静默丢弃——实测踩坑结论),带
Cache-Control: no-store防缓存 -
交互细节:缩略图只绑 dblclick(click 与 dblclick 不共存,弹窗遮罩会吃掉第二次点击);局部更新防滚动重置;QChip removable 事件回传做标签编辑器;Quasar dialog maximized 全屏 + 注入原生 JS 实现缩放拖拽看图器
-
飞书集成:PersonalBaseToken 直调 Base OpenAPI(search 带分页按款号过滤、batch_create 按行写入);分组统计基于表格「创建时间」字段(PersonalBaseToken 模式下记录顶层 created_time 为空——实测结论)
-
质量保障:ruff lint + mypy + pytest(27 用例);每轮 UI 改动“最小实例验证 冒烟启动 浏览器实测”三步验证法
-
工程化:uv 管理依赖、日志按天滚动(排查信息全进日志、界面只留人话)、
start_native.bat/start_browser.bat双启动方式
项目结构
fabric-analyzer/
src/fabric_analyzer/
main.py # 入口
ui.py # NiceGUI 工作台(多任务 Tab、选页、结果核对、上传)
core.py # 识别 / PDF渲染 / 图片压缩 / 飞书API
config.py # 配置与清单管理 / 默认提示词模板
dialogs.py # 原生文件对话框
logging_setup.py # 按天滚动日志
resources.py # 资源加载
tests/ # pytest 用例
settings.json # 用户配置(清单 / 飞书 / 模型)
.env # API Key
start_native.bat # 桌面窗口模式启动
start_browser.bat # 浏览器模式启动