返回作品列表

网友作品 #000211 · 提交于 2026/09/04

面辅料AI识别工作台:服装工艺单识别并归档飞书表格

★★★★★程序员水平AI 编程工具国内顶级模型python

作品作者

李伟坚-Excel催化剂&EasyShu作者程序员水平微信号liweijian08可加好友交流
开发工具
AI 编程工具
AI 模型
国内顶级模型
使用 Skill
python
提交你的作品

作品简介

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,提升文字标注证据提取质量

适用角色:服装跟单、面辅料采购、技术工艺员、生产文员。

功能特色

  1. 证据链设计——每条识别结果附证据说明,AI 判断可溯源,人工核对时只看证据列即可快速判断对错
  2. 多任务 Tab 并行——多单互不干扰,Tab 状态图标(转圈/绿色)一眼看清哪些在跑、哪些完成
  3. 三处同步的全选/反选——数据、复选框、卡片样式三处同步更新,操作即时可见且不丢滚动位置
  4. 完整桌面级看图器——双击全屏、滚轮缩放锚点、左键拖拽,不逊系统看图工具
  5. 飞书闭环——识别 核对 上传 历史提示形成完整链路,且尊重“人工判重”的业务现实
  6. 配置即生效——清单、提示词、模型参数改完保存立即生效,无需重启

技术要点

  • 架构: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    # 浏览器模式启动