docs: 修正文档与代码对齐问题
- 附件分类说明.md 第4节:澄清程序输出为完整记录(含 zong_pai_hao/status/has_attachment),types 仅为分类结果字段, 示例只截取 types 展示格式差异,消除"只输出 types"误导。 - README.md:项目结构由错误的 src/ 子目录布局改为实际根目录平铺 (并补入已弃用的 attachment_classifier.py 旧 Excel 版); 修正 src/prompts.py 为 prompts.py 的引用。
This commit is contained in:
@@ -59,7 +59,7 @@ python main.py --id 26B742 --mode fine --enable-other
|
||||
- **fine**:在同一个 `types` 字段里直接给出"大类:细分类目",例如
|
||||
"配件:针型阀""资料:说明书"
|
||||
|
||||
两种模式对应的提示词都定义在 `src/prompts.py` 中,修改分类边界或细分类目
|
||||
两种模式对应的提示词都定义在 `prompts.py` 中,修改分类边界或细分类目
|
||||
枚举,只需要改这一个文件。
|
||||
|
||||
### 分类体系(已与业务方确认边界)
|
||||
@@ -187,14 +187,14 @@ JSON 的括号、引号、转义更容易被模型写错。约定 LLM 只输出"
|
||||
|
||||
```
|
||||
├── config.yaml # 配置文件
|
||||
├── main.py # 命令行入口
|
||||
├── main.py # 命令行入口(直接 import 同目录各模块)
|
||||
├── requirements.txt
|
||||
└── src/
|
||||
├── config_loader.py # YAML 配置读取与校验
|
||||
├── db.py # SQL Server 查询 (pyodbc)
|
||||
├── prompts.py # 提示词与细分类目枚举(唯一需要改分类边界时编辑的文件)
|
||||
├── llm_client.py # LLM 调用 (OpenAI 兼容接口)
|
||||
├── parser.py # LLM 输出格式校验与清洗 → 结构化数据
|
||||
├── order_logger.py # 每个总排号一份的完整对话日志
|
||||
└── classifier.py # 编排:查库 -> 调LLM -> 校验解析 -> 记日志 -> 组装结果
|
||||
├── classifier.py # 编排:查库 -> 调LLM -> 校验解析 -> 记日志 -> 组装结果
|
||||
└── attachment_classifier.py # 历史版本(旧 Excel 版,已弃用,保留仅供参考)
|
||||
```
|
||||
|
||||
129
docs/附件分类说明.md
Normal file
129
docs/附件分类说明.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# 附件分类说明
|
||||
|
||||
> 布莱迪压力表订单附件识别工具 —— 分类体系参考文档。
|
||||
> 本文档只讲"能分成哪些类";怎么部署、怎么跑程序见 README.md。
|
||||
|
||||
## 总览
|
||||
|
||||
分类分两级:**粗分(大类)** 定位到"是资料/配件/耗材/其他里的哪一种";**精分(细分类目)** 在粗分基础上进一步给出具体是哪一项。
|
||||
|
||||
| 大类 | 细分类目数 | 是否默认启用 |
|
||||
|---|---|---|
|
||||
| 资料 | 12 | 是(固定,不可关闭) |
|
||||
| 配件 | 25 | 是(固定,不可关闭) |
|
||||
| 耗材 | 1 | 是(固定,不可关闭) |
|
||||
| 其他 | 1(固定值"其他") | 否,需手动开启 |
|
||||
|
||||
三大类任何时候都生效;"其他"是可选兜底类目,默认关闭,开启方式见文末第五节。
|
||||
|
||||
---
|
||||
|
||||
## 一、先排除:这些都不算附件
|
||||
|
||||
**产品本体**(压力表自身规格,永远不算附件、不参与判断):
|
||||
表壳直径/材质、精度等级、防护等级(IP)、过压保护(这里指内置功能规格,注意和下文"过压保护器"这个实物配件区分开)、弹性元件材质、接头材质/螺纹、安装方式、表盘材质/刻度/颜色、量程、充油、玻璃、指针、调零装置、结构代号(如513/531)、卡盘尺寸、打标/示值/红线标识要求。
|
||||
|
||||
**工艺处理**(不算配件):缓冲钉、阻尼钉、阻尼帽。
|
||||
|
||||
**标识件**(不算配件):位号牌、铭牌、标牌、号牌。
|
||||
|
||||
**物流包装指令**(不算资料):装箱单、送货单、贴箱单、发货章、包装/箱体标注。
|
||||
|
||||
**合格证**(单独强调,整体排除):既不算资料,也不算任何附件类型。无论参数文本里出没出现"合格证"这个说法,一律忽略——不影响"是否携带附件"的判断,也不会出现在精分结果里。
|
||||
|
||||
> 补充:资料类精分里有一项叫"检验合格证书综合"(见下文第9项),这和上面被整体排除的"合格证"是两个不同的类目标签,互不冲突——文本里出现"合格证"三个字本身,按上面的规则忽略;"检验合格证书综合"作为独立的资料类细分类目正常参与判断,不受这条排除规则影响。
|
||||
|
||||
---
|
||||
|
||||
## 二、粗分:三大类 + 一个可选类
|
||||
|
||||
### 1. 资料类 —— 交付给客户的技术文件
|
||||
检测报告、检验报告、出厂报告、材质证明/材质单/材质报告、说明书(使用/安装/维护)、标定证书/校验证书、制造记录/检验记录、图纸、营业执照、原产地证明、型式检验报告等。
|
||||
|
||||
### 2. 配件类 —— 随货交付的独立实物零件(不含垫片)
|
||||
阀类(针型阀/球阀/截止阀/旋塞阀/角阀/阀组)、冷凝类(冷凝管/冷凝圈/冷凝弯)、表弯管/缓冲弯、虹吸管、过压保护器、散热器/散热片、焊接接头/短节/短管、法兰隔膜、隔离器、铅封、转换接头、卡箍/抱箍、紧固件(螺栓/螺母)、活接头、接线盒、电缆/插头、变送器等。凡随表一起出货的独立零件都算。
|
||||
|
||||
### 3. 耗材/密封件类 —— 垫片
|
||||
垫片(四氟垫片、紫铜垫片、缠绕垫、密封圈、O型圈等各种材质),单独成类,不算在配件里——一张订单只要一片垫片,和要一整套阀组,不该算同等权重的"携带配件"。
|
||||
|
||||
### 4. 其他类 —— 兜底选项,默认关闭
|
||||
确认订单确实随货交付了某个附件,但资料/配件/耗材下所有具体细分类目(包括各大类里已有的"其他XX"兜底项,如"其他交工文件""检验合格证书综合")都覆盖不了时,才归入这里。是最后手段:能归到前三类具体细分的必须归到那里,不能图省事往"其他"里塞。
|
||||
|
||||
---
|
||||
|
||||
## 三、精分:完整细分类目清单
|
||||
|
||||
### 资料类(12项)
|
||||
1. 出厂检测检验报告
|
||||
2. 材质证明类
|
||||
3. 说明书
|
||||
4. 检验记录过程性
|
||||
5. 图纸类
|
||||
6. 标定校验证书
|
||||
7. 质量证明书
|
||||
8. 原产地证明
|
||||
9. 检验合格证书综合
|
||||
10. 其他交工文件
|
||||
11. 营业执照
|
||||
12. 型式检验报告
|
||||
|
||||
### 配件类(25项)
|
||||
1. 针型阀
|
||||
2. 球阀
|
||||
3. 截止阀
|
||||
4. 旋塞阀
|
||||
5. 角阀
|
||||
6. 阀组
|
||||
7. 冷凝圈
|
||||
8. 冷凝管
|
||||
9. 冷凝弯
|
||||
10. 虹吸管
|
||||
11. 表弯管
|
||||
12. 缓冲管缓冲弯
|
||||
13. 法兰隔膜
|
||||
14. 隔离器
|
||||
15. 过压保护器
|
||||
16. 散热器散热片
|
||||
17. 铅封
|
||||
18. 转换接头
|
||||
19. 焊接接头短节短管
|
||||
20. 卡箍抱箍
|
||||
21. 紧固件
|
||||
22. 活接头
|
||||
23. 接线盒
|
||||
24. 电缆插头
|
||||
25. 变送器
|
||||
|
||||
### 耗材类(1项)
|
||||
1. 垫片
|
||||
|
||||
### 其他类(1项,仅开启后生效)
|
||||
1. 其他(固定值,模型不允许编造具体名称)
|
||||
|
||||
---
|
||||
|
||||
## 四、和实际输出的对应关系
|
||||
|
||||
分类结果集中在 `types` 字段(完整输出记录还包含 `zong_pai_hao` / `status` / `has_attachment`,详见 README 的「输出格式」一节);以下示例只截取 `types` 字段,用来展示两种模式下的格式差异:
|
||||
|
||||
**coarse 模式**——只到大类这一级:
|
||||
```json
|
||||
{"types": ["资料", "配件"]}
|
||||
```
|
||||
|
||||
**fine 模式**——精确到细分类目,格式固定为"大类:细分":
|
||||
```json
|
||||
{"types": ["资料:出厂检测检验报告", "配件:针型阀", "耗材:垫片"]}
|
||||
```
|
||||
|
||||
开启"其他"后,会以 `"其他"`(coarse 模式)或 `"其他:其他"`(fine 模式)的形式,混在同一个 `types` 列表里输出,不单独开字段、不需要额外解析逻辑。
|
||||
|
||||
---
|
||||
|
||||
## 五、"其他"类目怎么开
|
||||
|
||||
默认关闭,二选一即可开启:
|
||||
- `config.yaml` 里设置 `business.enable_other_category: true`
|
||||
- 运行时加命令行参数 `--enable-other`
|
||||
|
||||
两者是"或"的关系:只要有一处开了就生效;命令行参数只能把关闭状态调成开启,不能把配置文件里已经开启的状态强制关掉。
|
||||
Reference in New Issue
Block a user