dsh-data-cleaning-agent 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.en.md +20 -2
- package/README.md +18 -3
- package/docs/COMPATIBILITY.md +22 -0
- package/docs/RELEASE-0.8.0.md +60 -0
- package/docs/RELEASE-0.8.1.md +75 -0
- package/docs/UI-WORKFLOW-V2.md +2 -2
- package/docs/USER-GUIDE.md +29 -3
- package/lib/client.js +367 -37
- package/lib/image-intake.js +581 -0
- package/lib/index.js +1 -0
- package/lib/web.js +77 -0
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,40 @@
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.8.1] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- 图片企业名单识别切换为企查查智能文档解析:本地图片只通过官方 `qcc-document-mcp`
|
|
11
|
+
`parse_document(file_path)` 提交,并仅在异步处理中按返回的 `task_id` 查询 `get_parse_result`。
|
|
12
|
+
- 提示词向导不再要求先发送 OCR 专用说明;用户可一次完成图片、匹配规则、清洗动作和补全字段选择,
|
|
13
|
+
再向原生对话框回填一段完整、可读、可编辑的中文任务说明。
|
|
14
|
+
- 识别完成后名单直接进入同一 taskId 工作台人工核对,继续现有主体匹配、字段补全和导出流程。
|
|
15
|
+
|
|
16
|
+
### Security
|
|
17
|
+
- Host 仍以 0700 目录和 0600 文件临时保存图片,成功、失败、取消或 TTL 到期后删除;原图不进入
|
|
18
|
+
`storageDomain`、任务元数据、模型上下文或导出制品。
|
|
19
|
+
- 远端 `qcc-document` 只接受公网 `file_url`,不能读取本机临时图片;仅连接远端服务时明确 fail closed,
|
|
20
|
+
不自动上传图片、不暴露本地路径,也不回退到聊天模型视觉能力。
|
|
21
|
+
- 文档解析与后续企业补全均使用当前用户自己连接的企查查账号和额度;插件不读取、保存或分发凭据。
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- 文本模型(包括不支持图片的 DeepSeek 模型)不再收到原生图片附件,避免在执行清洗任务前被模型能力门拒绝。
|
|
25
|
+
- 统一解析企查查文档任务状态、Markdown 结果与认证失败,支持处理中轮询、超时和安全错误提示。
|
|
26
|
+
|
|
27
|
+
## [0.8.0] - 2026-09-05
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- 新增企业名单图片接入:数据清洗补全会话 Composer 可直接粘贴图片,提示词向导支持 PNG/JPEG/WebP 粘贴、拖入与选择。
|
|
31
|
+
- 图片使用 DSH 原生 draft attachment,向导显示 64px 缩略图、文件信息、移除操作和可点击放大的预览。
|
|
32
|
+
- Host 暂存完成后,回填识别说明前自动释放 Composer 图片附件,避免文本模型因不支持图片而拒绝执行。
|
|
33
|
+
- 新增 Agent-owned `data_cleaning_extract_image_companies` 高层工具与 `/data-cleaning/api/images/*` Host 指令/状态契约;运行时探测 `modlens_read_image` 并以 nested execution 识别企业名称和统一社会信用代码。
|
|
34
|
+
- 识别结果自动回传原四步向导供人工核对,然后进入既有 taskId 字段选择、主体匹配、QCC 补全和导出流程。
|
|
35
|
+
|
|
36
|
+
### Security
|
|
37
|
+
- 图片上限 8 MiB,按 PNG/JPEG/WebP 魔数验证;Host 临时目录为 0700、文件为 0600,成功、失败、取消或 TTL 到期后删除。
|
|
38
|
+
- 原图不进入 `storageDomain`、模型任务 KV 或导出制品;识别指令仅暴露随机 commandId,不包含 Host 文件路径。
|
|
39
|
+
- Provider 未安装时 fail closed;图片识别阶段不调用 QCC,后续匹配补全仍受客户自有 QCC 账号确认门保护。
|
|
40
|
+
|
|
7
41
|
## [0.7.0] - 2026-09-05
|
|
8
42
|
|
|
9
43
|
### Added
|
package/README.en.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> A data cleaning & completion agent plugin for DeepSeek Harness: local CSV/XLSX/JSON engine plus optional Qichacha (QCC) MCP enterprise-data enrichment. Initiated and maintained by the Qichacha (QCC) team.
|
|
4
4
|
>
|
|
5
|
-
> Current source version / 当前源码版本: **0.
|
|
5
|
+
> Current source version / 当前源码版本: **0.8.1** (stable release)
|
|
6
6
|
|
|
7
7
|
[](https://github.com/duhu2000/dsh-data-cleaning-agent/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/dsh-data-cleaning-agent)
|
|
@@ -49,6 +49,19 @@ task brief back to the native composer. Five workflow actions (upload, profile,
|
|
|
49
49
|
sit below the composer and open the five-step workbench (upload, rules, match, enrich, download)
|
|
50
50
|
on demand. Completed tasks expose four durable Host artifacts: result and exception-list CSV/XLSX.
|
|
51
51
|
|
|
52
|
+
Since 0.8.1, users can paste, drop, or select a PNG/JPEG/WebP image, finish match rules and enrichment
|
|
53
|
+
field selection, and write one complete editable task brief to the native composer; the separate OCR-only
|
|
54
|
+
turn has been removed. Before send, the client releases the native image attachment so text-only models can
|
|
55
|
+
still dispatch the Agent-owned high-level tool. That tool calls the official local `qcc-document-mcp`
|
|
56
|
+
`parse_document(file_path)` exactly once and polls `get_parse_result` with the returned `task_id` only while
|
|
57
|
+
processing, then returns company names/credit codes to the workbench for human review.
|
|
58
|
+
|
|
59
|
+
Local image parsing requires the official `qcc-document-mcp` stdio server to be configured in the MCP
|
|
60
|
+
connector. The remote `qcc-document` connector accepts public `file_url` values only and cannot read Host
|
|
61
|
+
temporary files. The local server uploads the explicitly submitted file to the QCC document parsing gateway.
|
|
62
|
+
Both use the current customer's own QCC account and quota. Without the local connector,
|
|
63
|
+
image intake fails closed with actionable guidance; text and spreadsheet paths remain available.
|
|
64
|
+
|
|
52
65
|
Without the `dsh` CLI, use the install script:
|
|
53
66
|
|
|
54
67
|
```bash
|
|
@@ -73,7 +86,8 @@ Or let an agent install it for you:
|
|
|
73
86
|
| Durable artifacts | Host workspace `.dsh-data-cleaning-artifacts/v1` | result/exception CSV+XLSX, checksum verification, restart-safe download |
|
|
74
87
|
| In-app entry | top "Data Cleaning & Completion" entry + five actions below the composer | dedicated business home in the center; opens the Mockup-aligned workbench on demand |
|
|
75
88
|
| Prompt builder | `conversation.input.overlay` | text / spreadsheet / image intake, cleaning and enrichment selection, editable native-composer draft |
|
|
76
|
-
|
|
|
89
|
+
| Image list intake | `data_cleaning_extract_image_companies` + web `/data-cleaning/api/images/*` | native thumbnail/lightbox, paste/drop, ephemeral Host image, Agent-owned provider recognition, human review; no QCC call during recognition |
|
|
90
|
+
| Tool cards | `tool.call.toolview` (clean/complete/profile/image-list) | render four tool result cards in-conversation with running/done/failed state |
|
|
77
91
|
| Task progress | workbench header jobs pill | polls `/data-cleaning/api/mvp/jobs`; shows queued / running tasks |
|
|
78
92
|
| Skill | `data-cleaning` | guides the model through the workflow |
|
|
79
93
|
| QCC Skill enrichment | `enterprise-enrichment` | 0.4.0: company panorama, ownership, governance, and historical registration |
|
|
@@ -119,6 +133,10 @@ See [the 0.5.2 release record](docs/RELEASE-0.5.2.md) for native DSH UI alignmen
|
|
|
119
133
|
See [the 0.5.3 release record](docs/RELEASE-0.5.3.md) for the business landing view and prompt builder.
|
|
120
134
|
See [the 0.7.0 release record](docs/RELEASE-0.7.0.md) for the first 40 and second 58
|
|
121
135
|
one-company-one-row fields, deduplicated QCC tool dispatch, and real two-company acceptance.
|
|
136
|
+
See [the 0.8.0 release record](docs/RELEASE-0.8.0.md) for image paste/drop, native previews,
|
|
137
|
+
Agent-owned OCR, and the human-review handoff.
|
|
138
|
+
See [the 0.8.1 release record](docs/RELEASE-0.8.1.md) for QCC intelligent document parsing
|
|
139
|
+
and the single editable task brief.
|
|
122
140
|
See [the 0.6.3 release record](docs/RELEASE-0.6.3.md) for multiline entity-list parsing,
|
|
123
141
|
editable execution summaries, and workbench/composer layout fixes.
|
|
124
142
|
See [the 0.6.2 release record](docs/RELEASE-0.6.2.md) for Chinese export headers,
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 在 DeepSeek Harness 中清洗、补全、画像企业名单数据的智能体插件:本地 CSV/XLSX/JSON 引擎 + 可选企查查(Qichacha/QCC)MCP 企业数据补全,由企查查(Qichacha/QCC)团队发起并维护。
|
|
4
4
|
>
|
|
5
|
-
> 当前源码版本 / Current source version: **0.
|
|
5
|
+
> 当前源码版本 / Current source version: **0.8.1**(正式版本)
|
|
6
6
|
|
|
7
7
|
[](https://github.com/duhu2000/dsh-data-cleaning-agent/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/dsh-data-cleaning-agent)
|
|
@@ -42,6 +42,18 @@ DSH 原生会话:首页标题、产品说明与工作流会替换通用探索
|
|
|
42
42
|
字段补全和任务历史五个入口位于输入框下方,右侧工作台承载“上传数据 → 规则确认 → 数据匹配 →
|
|
43
43
|
清洗补全 → 下载数据”五步闭环。完成后可下载结果与异常清单的 CSV/XLSX 四类 Host 耐久制品。
|
|
44
44
|
|
|
45
|
+
0.8.1 起,在数据清洗补全会话的原生输入框粘贴图片,或在「提示词生成」的图片页
|
|
46
|
+
拖入/选择 PNG、JPEG、WebP,会显示可点击放大的原生缩略图。用户可继续完成匹配规则、清洗项与补全字段,
|
|
47
|
+
最后一次性把完整、可编辑的任务说明回填到对话框;不再先发送一轮 OCR 专用指令。发送前 Client 释放
|
|
48
|
+
Composer 图片附件,因此不支持视觉输入的文本模型也能调度 Agent-owned 高层工具。高层工具通过官方
|
|
49
|
+
`qcc-document-mcp` 的 `parse_document(file_path)` 提交本地图片,仅在异步处理中以同一 `task_id`
|
|
50
|
+
调用 `get_parse_result`,再将企业名称/信用代码交回工作台人工核对。
|
|
51
|
+
|
|
52
|
+
本地图片解析需在 MCP 连接器中另行配置官方 `qcc-document-mcp`;市场中的远端 `qcc-document`
|
|
53
|
+
只支持公网 `file_url`,不能读取本机图片。两者使用当前客户自己的企查查账号与额度,本插件不读取、保存
|
|
54
|
+
或分发凭据。本地服务会把用户明确提交的图片上传到企查查文档解析网关;未连接本地服务时功能会
|
|
55
|
+
fail closed,并明确提示配置要求,文本与 Excel 流程不受影响。
|
|
56
|
+
|
|
45
57
|
没有 `dsh` CLI 时,也可以用安装脚本:
|
|
46
58
|
|
|
47
59
|
```bash
|
|
@@ -66,7 +78,8 @@ bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-data-cleaning-a
|
|
|
66
78
|
| 耐久制品 | Host 工作区 `.dsh-data-cleaning-artifacts/v1` | 结果/异常 CSV+XLSX,checksum 校验,跨 Host 重启下载 |
|
|
67
79
|
| 应用内入口 | 侧栏顶部「数据清洗补全」+ 输入框下方五能力按钮 | 中央业务首页与原生对话,右侧按需打开 Mockup 对齐工作台 |
|
|
68
80
|
| 提示词生成 | `conversation.input.overlay` | 文本 / Excel / 图片录入、清洗项与补全维度选择,生成后回填原生输入框供人工修改 |
|
|
69
|
-
|
|
|
81
|
+
| 图片名单 | `data_cleaning_extract_image_companies` + `qcc-document-mcp` | 原生缩略图/放大、粘贴/拖入;一次性完整任务说明;`parse_document` → 按需 `get_parse_result` → 人工核对 |
|
|
82
|
+
| 工具卡片 | `tool.call.toolview`(清洗/补全/画像/图片名单) | 对话内渲染四类工具结果卡,含运行/已完成/失败状态 |
|
|
70
83
|
| 任务进度 | 工作台头部任务 pill | 轮询 `/data-cleaning/api/mvp/jobs`,展示排队/运行中任务 |
|
|
71
84
|
| Skill | `data-cleaning` | 引导模型按工作流调度上述工具 |
|
|
72
85
|
| 企查查 Skill 补全 | `enterprise-enrichment` | 0.4.0:工商全景、股权穿透与历史工商 |
|
|
@@ -114,7 +127,9 @@ bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-data-cleaning-a
|
|
|
114
127
|
0.5.2 DSH 原生 UI 对齐范围、验收与回滚见 [docs/RELEASE-0.5.2.md](docs/RELEASE-0.5.2.md)。
|
|
115
128
|
0.5.3 业务首页、提示词生成和输入框下方流程栏见 [docs/RELEASE-0.5.3.md](docs/RELEASE-0.5.3.md)。
|
|
116
129
|
0.7.0 第一批 40 字段、第二批 58 字段、调用编排和真实两企业验收见
|
|
117
|
-
[docs/RELEASE-0.7.0.md](docs/RELEASE-0.7.0.md)。0.
|
|
130
|
+
[docs/RELEASE-0.7.0.md](docs/RELEASE-0.7.0.md)。0.8.0 图片粘贴、原生缩略图、Agent-owned OCR 和人工核对流程见
|
|
131
|
+
[docs/RELEASE-0.8.0.md](docs/RELEASE-0.8.0.md)。0.8.1 企查查智能文档解析与单次任务说明见
|
|
132
|
+
[docs/RELEASE-0.8.1.md](docs/RELEASE-0.8.1.md)。0.6.3 多行名单解析、可编辑执行说明与工作台遮挡修复见
|
|
118
133
|
[docs/RELEASE-0.6.3.md](docs/RELEASE-0.6.3.md)。0.6.2 中文导出表头、完整字段选择传递与画像字段补全见
|
|
119
134
|
[docs/RELEASE-0.6.2.md](docs/RELEASE-0.6.2.md)。0.6.1 Agent-owned QCC 工作台、会话隔离、恢复统计及真实闭环验收见
|
|
120
135
|
[docs/RELEASE-0.6.1.md](docs/RELEASE-0.6.1.md)。0.6.0 五步 taskId 工作流、耐久制品、
|
package/docs/COMPATIBILITY.md
CHANGED
|
@@ -38,6 +38,25 @@ MVP 路由、Phase-3 capabilities、estimate 与未确认 enrich 阻断均通过
|
|
|
38
38
|
后可按原 taskId 下载,XLSX 反向解析工作表为“清洗补全结果”。稳定发布判断仍以 rc.2 为主,
|
|
39
39
|
alpha.2 只作兼容探针。全程未触碰生产 43120,未调用 QCC。
|
|
40
40
|
|
|
41
|
+
0.8.0 图片名单接入在 DSH `0.1.1-rc.2` 验证了官方
|
|
42
|
+
`conversation.createDraftImages` / `releaseDraftImage(s)` 与
|
|
43
|
+
`conversation.input.shell(sessionId).addImages/removeImage` 能力。视觉识别 Provider 通过
|
|
44
|
+
`ctx.tools.get()` 运行时探测,已验证 `@liustack/modlens@3.25.2` 的
|
|
45
|
+
`modlens_read_image`;本包不将它声明为强依赖。如 Provider 不存在,Host 在写入临时图片前
|
|
46
|
+
返回 `DC_IMAGE_PROVIDER_UNAVAILABLE`,不降级为未验证 API。alpha.2 仅继续作 Host/Client 能力探针,
|
|
47
|
+
不承诺实验性附件 API 稳定。
|
|
48
|
+
|
|
49
|
+
图片完成 Host 暂存后,Client 会在回填识别指令前调用 `removeImage` 释放 Composer 附件;后续
|
|
50
|
+
Agent-owned 工具通过 `dci-*` 凭证读取 Host 临时副本。因此图片选择与预览沿用 DSH 原生 UI,实际识别轮仍是
|
|
51
|
+
文本模型可接受的纯文本工具调用。
|
|
52
|
+
|
|
53
|
+
0.8.1 将当前图片 Provider 收敛到企查查官方本地 stdio 服务 `qcc-document-mcp`。本地服务的
|
|
54
|
+
`parse_document` 接受 `file_path`,返回完成结果或 `task_id`;只有状态仍为处理中时才调用
|
|
55
|
+
`get_parse_result(task_id)`。市场远端 `qcc-document` 的 `parse_document` 只接受公网 `file_url`,
|
|
56
|
+
不能读取 Host 临时文件,因此只连接远端服务时返回
|
|
57
|
+
`DC_IMAGE_LOCAL_DOCUMENT_PROVIDER_REQUIRED`。该版本保留 0.8.0 的 DSH 原生附件 API 兼容层,
|
|
58
|
+
但不再依赖 Modlens,也不把图片交给当前聊天模型。
|
|
59
|
+
|
|
41
60
|
## 2. Node 运行时
|
|
42
61
|
|
|
43
62
|
- 本包 `engines.node` 声明 `>=20`。
|
|
@@ -57,6 +76,9 @@ alpha.2 只作兼容探针。全程未触碰生产 43120,未调用 QCC。
|
|
|
57
76
|
| web 路由 | `webServer.register({kind:'prefix', path, handler})` | 最长前缀匹配;前缀需以 `/` 结尾且匹配 `pathname.startsWith(prefix + '/')` |
|
|
58
77
|
| 同源守卫 | `isTrusted(req)` | `sec-fetch-site !== 'cross-site'` 且 origin 为 127.0.0.1/localhost |
|
|
59
78
|
| Agent-owned 动态工具调用 | `ctx.tools.register()` 高层工具 + `ctx.tools.get()` + 带 `parent/agent/rootCallId` 的 `ctx.tools.execute()` | rc.2 Code Mode 实测要求 nested execution;每次调用重新解析,不缓存动态 MCP 工具 |
|
|
79
|
+
| 原生图片附件 | `conversation.createDraftImages/releaseDraftImage(s)` + `input.shell().addImages/removeImage` | rc.2 已验证;Client 运行时探测,缺失时 fail closed |
|
|
80
|
+
| 本地图片文档解析 | `ctx.tools.get()` 探测 `qcc-document-mcp` 的 `parse_document/get_parse_result` + Agent-owned nested `ctx.tools.execute()` | 0.8.1 当前实现;要求 `parse_document` 支持 `file_path`,不是 npm 强依赖 |
|
|
81
|
+
| 远端图片文档解析 | `mcp__qcc-document__parse_document(file_url)` | 只支持公网 URL;不能用于 Host 本地临时图片,当前流程明确 fail closed |
|
|
60
82
|
|
|
61
83
|
## 4. 与企查查 MCP OAuth 插件的共存
|
|
62
84
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# dsh-data-cleaning-agent 0.8.0 发布记录
|
|
2
|
+
|
|
3
|
+
> 日期:2026-09-05
|
|
4
|
+
> 主题:图片企业名单粘贴、原生缩略图、Agent-owned OCR 与人工核对闭环
|
|
5
|
+
|
|
6
|
+
## 1. 产品结果
|
|
7
|
+
|
|
8
|
+
0.8.0 把早期“只把图片附加到对话”的兼容 Bridge 升级为完整可执行流程:
|
|
9
|
+
|
|
10
|
+
1. 用户在「数据清洗补全」会话原生 Composer 直接粘贴图片,或在提示词向导粘贴、拖入、选择图片。
|
|
11
|
+
2. DSH 原生 draft attachment 展示缩略图;向导另提供 64px 缩略图、移除和放大预览。
|
|
12
|
+
3. Host 临时保存原图并只向可编辑的对话说明回填随机 `dci-*` commandId;回填前释放 Composer 图片附件,使本轮成为文本模型也能接受的纯文本调用。
|
|
13
|
+
4. 用户发送说明后,Agent 只调用一次 `data_cleaning_extract_image_companies`。该高层工具以父执行 token/Session 调用已探测的图片文字 Provider。
|
|
14
|
+
5. Host 确定性抽取企业全称与 18 位统一社会信用代码,去重后回传向导。
|
|
15
|
+
6. 用户核对名单、选择匹配主键、清洗目标和补全字段,再进入原有 taskId 主体匹配与 QCC 补全闭环。
|
|
16
|
+
|
|
17
|
+
## 2. 已验证与建议的边界
|
|
18
|
+
|
|
19
|
+
### 已验证事实
|
|
20
|
+
|
|
21
|
+
- DSH `0.1.1-rc.2` 提供 `conversation.createDraftImages` / `releaseDraftImage(s)` 与 `conversation.input.shell(sessionId).addImages/removeImage`。
|
|
22
|
+
- 当前本机 DSH Profile 中 `@liustack/modlens@3.25.2` 注册 `modlens_read_image`,入参为本地 `path` 和可选 `prompt`,返回 OCR 文本/行。
|
|
23
|
+
- QCC `parse_document` 只接受公网 HTTP(S) 文档;当前未验证任何可安全上传本地图片的 QCC 工具,因此本版不硬编码 QCC 智能文档解析。
|
|
24
|
+
|
|
25
|
+
### 设计建议
|
|
26
|
+
|
|
27
|
+
- Modlens 作为可选 Provider,不是本 npm 包的直接依赖;运行时以 `ctx.tools.get('modlens_read_image')` 探测。
|
|
28
|
+
- 未来如 DSH 发布稳定的原生图片内容读取接口,可在 Provider 适配层新增实现,不改变 Web 指令和 taskId 契约。
|
|
29
|
+
|
|
30
|
+
## 3. 安全与费用
|
|
31
|
+
|
|
32
|
+
- 格式:PNG/JPEG/WebP;严格魔数验证;单张上限 8 MiB;单图最多输出 100 个主体标识。
|
|
33
|
+
- 临时目录 0700、文件 0600;识别成功、失败、用户移除或 15 分钟 TTL 到期后删除。
|
|
34
|
+
- 原图不进入 `storageDomain`、任务元数据或导出制品;对话中不显示 Host 文件路径。
|
|
35
|
+
- 图片识别不调用 QCC,所以不产生 QCC MCP 额度消耗。核对后的企业匹配/字段补全仍由当前用户使用自己连接的 QCC 账号。
|
|
36
|
+
|
|
37
|
+
## 4. 验收门
|
|
38
|
+
|
|
39
|
+
- `npm run check`:lint、中英文版本、市场素材、npm pack 白名单与全量自动化测试。
|
|
40
|
+
- 图片契约测试:魔数验证、OCR 两企业抽取/去重、Provider 输出兼容、Agent-owned nested execution、临时文件清理、Provider 缺失 fail closed。
|
|
41
|
+
- Web 契约测试:预检与暂存为零 QCC 调用,只有高层图片工具可调 Provider,状态轮询可取回两条名单。
|
|
42
|
+
- Client 契约测试:DSH 原生 attachment 增删、Composer 图片粘贴捕获、缩略图/放大、可读指令与四工具 toolview 注册。
|
|
43
|
+
|
|
44
|
+
## 5. 升级与回滚
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
dsh plugin --profile web add dsh-data-cleaning-agent@0.8.0
|
|
48
|
+
# 完全停止后重启
|
|
49
|
+
dsh web
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
回滚不需要迁移 Host 数据;0.8.0 未修改 `dc_workflows_v2` 或制品 schema:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
dsh plugin --profile web add dsh-data-cleaning-agent@0.7.0
|
|
56
|
+
# 完全停止后重启
|
|
57
|
+
dsh web
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
回滚前若有尚未发送的图片识别指令,关闭/重启 Host 即可清理临时图片;已有的清洗补全任务和导出制品不受影响。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# dsh-data-cleaning-agent 0.8.1 发布记录
|
|
2
|
+
|
|
3
|
+
> 日期:2026-09-05
|
|
4
|
+
> 主题:企查查智能文档解析图片名单与单次完整任务说明
|
|
5
|
+
|
|
6
|
+
## 1. 产品结果
|
|
7
|
+
|
|
8
|
+
0.8.1 修正图片名单入口的执行路径:
|
|
9
|
+
|
|
10
|
+
1. 用户在提示词向导粘贴、拖入或选择 PNG/JPEG/WebP 图片,继续选择匹配规则、清洗动作与补全字段。
|
|
11
|
+
2. 向导一次生成完整、可读、可编辑的中文任务说明,不再要求先发送 OCR 专用指令、识别后再发送第二轮任务。
|
|
12
|
+
3. 回填前 Client 释放 Composer 原生图片附件;DeepSeek 等不支持图片的文本模型只接收纯文本任务说明。
|
|
13
|
+
4. Agent 只调用一次 `data_cleaning_extract_image_companies` 高层工具;Host 以父执行上下文调用用户连接的企查查智能文档解析。
|
|
14
|
+
5. Host 通过本地 `qcc-document-mcp` 准确提交一次 `parse_document(file_path)`,仅在任务仍处理中时使用同一 `task_id` 查询 `get_parse_result`。
|
|
15
|
+
6. 识别出的企业名称和统一社会信用代码进入同一 taskId 工作台人工核对,再继续主体匹配、字段补全和 CSV/XLSX 导出。
|
|
16
|
+
|
|
17
|
+
## 2. 连接要求
|
|
18
|
+
|
|
19
|
+
本地图片必须使用官方 `qcc-document-mcp` stdio 服务:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"mcpServers": {
|
|
24
|
+
"qcc-document-mcp": {
|
|
25
|
+
"command": "npx",
|
|
26
|
+
"args": ["-y", "qcc-document-mcp"],
|
|
27
|
+
"env": {
|
|
28
|
+
"QCC_DOCUMENT_AUTHORIZATION": "Bearer YOUR_API_KEY"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- Key 由用户配置在自己的 DSH/MCP 环境中,不进入插件代码、日志或发布包。
|
|
36
|
+
- `qcc-document-mcp` 会读取本地文件并上传到企查查文档解析网关;用户只应提交有权处理且允许上传的数据。
|
|
37
|
+
- 远端市场连接 `qcc-document` 的 `parse_document` 只接受公网 `file_url`,不能读取 Host 本机路径。
|
|
38
|
+
- 只连接远端服务时,本插件返回 `DC_IMAGE_LOCAL_DOCUMENT_PROVIDER_REQUIRED`,不会自动上传图片、暴露本地路径或回退到聊天模型视觉能力。
|
|
39
|
+
- 文档解析额度或费用由当前用户自己的企查查账号承担;后续企业补全继续遵守现有 BYO QCC 确认门。
|
|
40
|
+
|
|
41
|
+
## 3. 安全边界
|
|
42
|
+
|
|
43
|
+
- 图片限制为 PNG/JPEG/WebP、8 MiB,使用魔数而非文件扩展名校验。
|
|
44
|
+
- Host 临时目录权限 0700、文件权限 0600;成功、失败、移除或 15 分钟 TTL 到期后删除。
|
|
45
|
+
- 原图不写入 `storageDomain`、工作流任务元数据、模型上下文或导出制品。
|
|
46
|
+
- Agent 只能取得随机 `dci-*` commandId,看不到 Host 文件路径;Web handler 不直接派发动态 MCP 工具。
|
|
47
|
+
- 文档解析失败、认证失效、协议异常与超时均安全收敛,不重试提交或扩大调用范围。
|
|
48
|
+
|
|
49
|
+
## 4. 验收范围
|
|
50
|
+
|
|
51
|
+
- `npm run check`:语法、版本一致性、市场素材、发布白名单与全量自动化测试。
|
|
52
|
+
- 图片契约:QCC Markdown 结果提取、一次提交、处理中轮询、两企业抽取、临时文件清理、认证/协议/超时错误。
|
|
53
|
+
- Provider 门:本地服务未配置和仅有远端 `qcc-document` 时分别 fail closed,并返回可操作说明。
|
|
54
|
+
- Client 契约:原生缩略图、一次完整任务说明、发送前释放附件、识别结果进入同一 taskId 工作台。
|
|
55
|
+
- Web 契约:能力预检报告当前用户 QCC 文档连接计费边界,高层工具保持 Agent-owned nested execution。
|
|
56
|
+
|
|
57
|
+
真实图片 QCC E2E 需要维护者在隔离 DSH Profile 中配置自己的 `qcc-document-mcp` Key;发布包不包含测试凭据或真实解析响应。
|
|
58
|
+
|
|
59
|
+
## 5. 升级与回滚
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
dsh plugin --profile web add dsh-data-cleaning-agent@0.8.1
|
|
63
|
+
# 完全停止后重启
|
|
64
|
+
dsh web
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
0.8.1 未修改 `dc_workflows_v2`、制品 schema 或已完成任务,可直接回滚:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
dsh plugin --profile web add dsh-data-cleaning-agent@0.8.0
|
|
71
|
+
# 完全停止后重启
|
|
72
|
+
dsh web
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
回滚会恢复 0.8.0 的 Modlens 两轮图片流程;文本、Excel、主体匹配、字段补全和历史制品不受影响。
|
package/docs/UI-WORKFLOW-V2.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
业务主流程与企查查专业版“数据清洗补全”一致,固定为五步:
|
|
10
10
|
|
|
11
|
-
1. **上传数据**:文本、CSV、XLSX、JSON
|
|
11
|
+
1. **上传数据**:文本、CSV、XLSX、JSON;0.8.1 支持 PNG/JPEG/WebP 企业名单图片,经 DSH 原生附件缩略图、Host 临时文件、企查查智能文档解析和人工核对后进入同一 taskId 流程。
|
|
12
12
|
2. **规则确认**:字段映射、清洗目标、匹配规则、补全字段选择。
|
|
13
13
|
3. **数据匹配**:以企业名称、统一社会信用代码或注册号作为主体锚点;精确、候选、已确认、未匹配、失败分流。
|
|
14
14
|
4. **清洗补全**:本地确定性清洗优先;需要 QCC 数据时,先估算调用,再由当前用户确认使用自己的 QCC 账号额度。
|
|
@@ -171,7 +171,7 @@ draft → uploaded → rules_confirmed → diagnosed(可选)
|
|
|
171
171
|
## 8. 当前实现与发布顺序
|
|
172
172
|
|
|
173
173
|
1. T3(完成):上传解析、字段映射、任务设置和规则确认接入 v2 taskId API。
|
|
174
|
-
2. T4(完成):提示词生成器四步向导接入 taskId
|
|
174
|
+
2. T4(完成):提示词生成器四步向导接入 taskId 工作流,支持文本/本地文件;0.8.1 支持图片粘贴/拖入、缩略图、企查查智能文档解析、名单回传和人工核对,并将图片识别与后续规则/字段要求合并为一次可编辑任务说明。
|
|
175
175
|
3. T5(完成):中央业务首页、五能力入口、右侧工作台、基础企业匹配/补全和任务历史统一到 taskId。
|
|
176
176
|
4. T6(完成):Host 耐久下载制品、XLSX 与异常清单、双基线、视觉回归、迁移与回滚。
|
|
177
177
|
5. T7(完成):候选人工核验、部分失败重试、匹配与补全状态闭环。
|
package/docs/USER-GUIDE.md
CHANGED
|
@@ -40,11 +40,37 @@ bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-data-cleaning-a
|
|
|
40
40
|
|
|
41
41
|
- **粘贴名单**:每行一个企业名称或统一社会信用代码;
|
|
42
42
|
- **上传 Excel**:支持 XLSX/XLS/CSV/JSON,识别企业名称/信用代码列并把完整数据载入右侧工作台;
|
|
43
|
-
-
|
|
43
|
+
- **上传图片**:支持 PNG/JPEG/WebP(单张不超过 8 MiB);可在向导中粘贴、拖入或选择,也可直接在数据清洗补全会话的原生输入框粘贴。输入框使用 DSH 原生图片附件,向导同时显示 64px 缩略图,点击可放大。
|
|
44
44
|
|
|
45
45
|
随后可选择名称规范、信用代码校验、去重、模糊候选复核等清洗动作,以及工商字段或已支持的维度组。
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
0.8.1 起,图片流程只需发送一次完整任务说明:
|
|
47
|
+
|
|
48
|
+
1. 选择图片后继续完成匹配规则、清洗动作与补全字段选择;最后一步生成一段包含图片识别要求和后续任务要求的可读中文说明,可在原生对话框中继续修改。
|
|
49
|
+
2. 回填前 Client 释放 Composer 图片附件,因此不支持视觉输入的聊天模型也不会收到图片;Agent 只调用一次 `data_cleaning_extract_image_companies` 高层工具。
|
|
50
|
+
3. Host 通过本地 `qcc-document-mcp` 准确调用一次 `parse_document(file_path)`;仅当任务仍在处理中时,才使用同一 `task_id` 查询 `get_parse_result`。
|
|
51
|
+
4. 识别到的企业名称/统一社会信用代码进入同一 taskId 工作台供人工核对,然后继续主体匹配、字段补全和导出。
|
|
52
|
+
|
|
53
|
+
本地图片解析需在 DSH 的 MCP 连接器中配置官方 `qcc-document-mcp`。示例(Key 仅保存在用户自己的环境中):
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"mcpServers": {
|
|
58
|
+
"qcc-document-mcp": {
|
|
59
|
+
"command": "npx",
|
|
60
|
+
"args": ["-y", "qcc-document-mcp"],
|
|
61
|
+
"env": {
|
|
62
|
+
"QCC_DOCUMENT_AUTHORIZATION": "Bearer YOUR_API_KEY"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
市场中的远端 `qcc-document` 只接受公网 `file_url`,不能读取 Host 本地临时文件;只连接远端服务时,
|
|
70
|
+
插件会 fail closed 并提示配置本地服务。图片仅作为 0600 权限的 Host 临时文件,成功、失败、取消或
|
|
71
|
+
15 分钟超时后删除,不进入任务 KV、模型上下文或导出制品。`qcc-document-mcp` 会读取该临时文件并
|
|
72
|
+
上传到企查查文档解析网关;用户应只提交有权处理且允许上传的数据。文档解析与后续企业补全均使用
|
|
73
|
+
当前用户自己连接的企查查账号和额度;本插件不读取或保存凭据。
|
|
48
74
|
|
|
49
75
|
模型在对话中调用 `data_clean_rows` / `data_complete_rows` / `data_profile` 时,
|
|
50
76
|
对话内会渲染对应的工具结果卡片(含运行中 / 已完成 / 失败状态);工作台头部用任务 pill
|