Skip to content

About

工艺智能助理 · 让制造现场的调参经验不再落地即蒸发 | 贵客松 2026 赛道二(企业命题·先进制造)参赛作品 | Demo: https://qiangwall.cn/tiaoji

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

工艺智能助理 · Craft Copilot

第一届多彩贵州 · 贵客松 AI 应用场景共创大赛 · 赛道二(企业命题 · 先进制造) 线上 Demo:https://qiangwall.cn/tiaoji

制造现场每天都在产生调参经验,但这些经验落地即蒸发。 这套系统让产线自己把每一次调整记下来,在下一次要动手的那一刻自动摆到眼前。


它解决的问题

小微制造厂调一台设备,靠的是老师傅的手感。真正的麻烦不是"老师傅不在"—— 小厂里他通常在——而是:

  1. 同一个问题在同一台机上反复出现,每次都从零试一遍。 上次动了哪个参数、动了多少、 几小时后回归的,没人记。老师傅自己记得的也只是"大概修一下砂轮"这句结论,不是过程。
  2. 经验里最贵的那部分是失败,而失败从来不会被记录。 进给连降两档结果椭圆度没降、 反而带出圆度超差返工;精磨段提进给直接报废十几件——没人会主动把自己搞砸的事写进知识库, 可下一个人最需要知道的恰恰是这个。

所以我们做的不是知识库,是动作的留痕:师傅本来就要在手机上点一下「采纳 / 改数 / 驳回」, 那一下就是记录。系统记的不是他的知识,是他的动作。

两个"不是"

  • 不是"AI 帮你算出更好的参数"。 真问题不是没人知道最优参数,是知道的人的知识留不下来。 这套系统的主张是:AI 不比老师傅懂工艺,只是记性好、在对的时刻开口。
  • 不是"让老师傅去录知识库"。 那是这类项目最常见的死法——真正掌握核心知识的老技术员 对录入这件事最抵触。所以整套设计里没有任何一步需要他额外配合。

给事实,不给主意

AI 回答里出现的每个数字都带来源(R0612 这样的记录号、产线号、规则编号)。 事实需要出处,建议需要辩护——我们只做前者。


系统构成

四块,一个页面里切换:

模块 干什么 代码
产线看板 各产线瓶颈节拍、各工序等效节拍、瓶颈工序高亮 src/components/dashboard-view.tsx
调试经验库 参数调整记录的录入与浏览,超工艺卡范围当场标红 src/components/debug-view.tsx
系统管理 设备类型 / 型号 / 产线的增删改,工厂自己维护,不依赖开发 src/components/admin-view.tsx
AI 调机参谋 右下角浮窗,自由提问,检索三类数据后回答 src/components/ai-assistant-widget.tsx

AI 那块是怎么工作的

不是把问题直接丢给大模型,是先在自己的数据里检索,再把检索结果作为上下文交给模型:

flowchart LR
    Q[用户提问] --> S[剥掉界面上下文前缀]
    S --> R1[产线瓶颈节拍表]
    S --> R2[规则层匹配]
    S --> R3[调试记录检索]
    S --> R4[节拍数据检索]
    R1 & R2 & R3 & R4 --> C[拼装上下文]
    C --> L{LLM 通道}
    L -->|可用| A[带出处的回答]
    L -->|断网/无 key| F[预置问答兜底]
Loading

四路检索各管一件事,都在 src/app/api/ai/chat/route.ts:

  • computeLineBottlenecks() —— 产线级 ≠ 设备级。问"这条线整体多快"要的是瓶颈节拍 =最慢那道工序的等效节拍,不是列每台设备。 并联组等效节拍 = 1 ÷ Σ(1/各台节拍),不是"单台 ÷ 台数"—— 两台节拍不同时后者会算错,且瓶颈会错误地指到单台上。
  • searchRules() —— 规则层,老师傅的通用手感("椭圆度超差先怀疑砂轮钝化"这类)。
  • searchDebugLogs() —— 历史调试记录,含失败案例,按关键词打分取前 6 条。
  • searchCycleData() —— 节拍数据。没点名具体产线就当全局问题查所有线, 点名了才收窄(早期版本反过来做,导致用户在看板上选中过任何产线后,AI 就被锁死在那条线上)。

断网也能演:没配 key 或接口挂了会落到预置问答,界面照常。车间网络不稳是常态, 这条降级链是按"现场一定会断一次"设计的。


数据模型

三类数据源,prisma/schema.prisma:

表 是什么
Channel / EquipmentType / Equipment / Model 产线拓扑:哪条线、哪道工序、几台设备、并联关系、做什么型号
EquipmentParam 工艺卡:每个可调参数的当前值与上下限——录入超范围当场标红就靠它
CycleRecord 节拍记录,按 产线 × 设备 × 型号 × 年月
DebugLog 调试记录:动了什么参数、节拍怎么变、质量结果、成功还是失败
Rule 规则层:现象 → 判断 → 动作

跑起来

npm install
cp .env.example .env      # 不填 key 也能跑,AI 走预置问答
npx prisma db push        # 建库(默认 SQLite,落在 db/custom.db)
npm run seed              # 导入 upload/ 下的演示数据
npm run dev               # http://localhost:3000

upload/ 里三份 JSON 是演示样例数据(一条虚构的微型轴承磨加工→装配产线), 改完重跑 npm run seed 即可同步,不用动代码。

AI 要真回答的话,.env 里填任意 OpenAI 兼容通道:

LLM_BASE_URL=https://api.openai.com
LLM_API_KEY=sk-...
LLM_MODEL=claude-opus-4-8

换一个厂要改什么

引擎不认"轴承",只认五样输入:

  1. 工序与节拍(产线拓扑)
  2. 可调参数与工艺卡上下限
  3. 质量指标与公差带
  4. 经验规则(现象 → 判断 → 动作)
  5. 历史案例

这五样都在数据里,不在代码里。换成注塑线(保压压力 / 模温 / 冷却时间,指标缩水率+件重) 是同一套引擎——规则指到的参数这台机没有就跳过;一条规则都匹配不上时不硬套,空手交回人工。


不解决什么

写在这儿,不等被问:

  • 该不该调,是人拍的,系统只负责"要调的时候把该看的摆出来"。
  • 新型号首件无历史 → 系统明说不知道,不编。
  • 设备异响、机械故障 → 不是参数问题,不归它管。
  • 调完连续两次仍超警戒 → 升级人工,不再给建议。

关于这个仓库

这是参赛作品的开源版:前端、接口、检索编排、数据模型、演示数据全在这儿, git clone 下来能跑起来看到完整效果。

不在本仓的:生产部署与运维配置、接入真实工厂后的经验库数据、以及赛后继续做的商业化模块。

团队

分工
李骁翰(Evan) 系统实现、部署
张文讯 工艺与现场口径(三年机加工现场)、需求定义
郑轶凡 视觉、路演

License

AGPL-3.0。版权归作者所有,商业授权另议—— 要把它用在自己厂里或做二次商业化,联系我们谈授权,别自己闭源改一版。

About

工艺智能助理 · 让制造现场的调参经验不再落地即蒸发 | 贵客松 2026 赛道二(企业命题·先进制造)参赛作品 | Demo: https://qiangwall.cn/tiaoji

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages