promptfigure 0.2.0 → 0.3.0
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/README.md +29 -15
- package/adapters/claude-code/install.mjs +7 -6
- package/adapters/claude-code/promptfigure-api/SKILL.md +274 -0
- package/adapters/claude-code/promptfigure-api/references/api-contract.md +319 -0
- package/adapters/claude-code/promptfigure-api/references/document-workflow.md +231 -0
- package/adapters/claude-code/promptfigure-api/references/figure-upgrade-workflow.md +199 -0
- package/adapters/claude-code/promptfigure-api/references/proactive-upgrade.md +120 -0
- package/adapters/claude-code/promptfigure-api/references/prompt-cookbook.md +223 -0
- package/adapters/claude-code/promptfigure-api/references/prompt-review-workflow.md +265 -0
- package/adapters/claude-code/promptfigure-api/references/setup-guide.md +151 -0
- package/adapters/claude-code/promptfigure-api/references/troubleshooting.md +204 -0
- package/adapters/codex/promptfigure/.codex-plugin/plugin.json +2 -2
- package/adapters/codex/promptfigure/skills/promptfigure-api/SKILL.md +274 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/api-contract.md +319 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/document-workflow.md +231 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/figure-upgrade-workflow.md +199 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/proactive-upgrade.md +120 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/prompt-cookbook.md +223 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/prompt-review-workflow.md +265 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/setup-guide.md +151 -0
- package/adapters/codex/promptfigure/skills/promptfigure-api/references/troubleshooting.md +204 -0
- package/bin/pf.mjs +37 -0
- package/package.json +2 -2
- package/scripts/build-adapters.mjs +31 -18
- package/skill/promptfigure-api/SKILL.md +274 -0
- package/skill/promptfigure-api/references/api-contract.md +319 -0
- package/skill/promptfigure-api/references/document-workflow.md +231 -0
- package/skill/promptfigure-api/references/figure-upgrade-workflow.md +199 -0
- package/skill/promptfigure-api/references/proactive-upgrade.md +120 -0
- package/skill/promptfigure-api/references/prompt-cookbook.md +223 -0
- package/skill/promptfigure-api/references/prompt-review-workflow.md +265 -0
- package/skill/promptfigure-api/references/setup-guide.md +151 -0
- package/skill/promptfigure-api/references/troubleshooting.md +204 -0
- /package/adapters/claude-code/{SKILL.md → promptfigure-local/SKILL.md} +0 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# 图表升级与整文批处理工作流
|
|
2
|
+
|
|
3
|
+
> 场景:用户扔来一篇论文 + 一堆已有图(多半是 MATLAB/Python/Origin 出的),要求「把图都变高级,再加几张流程图/机制图」。本文件覆盖:**① 需求分型 ② 澄清协议 ③ 两种执行模式 ④ 代码图数据溯源 ⑤ 追溯台账**。插图位定位与上下文提取见 `document-workflow.md`;PDF/WPS 格式、主动插图建议、参考论文风格库见 `proactive-upgrade.md`;**单张图的意图确认与提示词审核协议(出图前免费环节)见 `prompt-review-workflow.md`**。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 0. 需求分型:先看图里的数字是不是真的
|
|
8
|
+
|
|
9
|
+
两类需求走两条完全不同的路,分错的代价是**数字造假**:
|
|
10
|
+
|
|
11
|
+
| 需求 | 判据 | 路线 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| **A1. 结果图美化**(曲线/柱状/热图/箱线…) | 图上带**精确数值**(刻度、柱高、数据点) | 🔴 **绝不走 AI 生图**。数据溯源 + 本地重绘(§3)——AI 画图模型必画错数字,坐标必须是真数据 |
|
|
14
|
+
| **A2. 示意图升级**(用户已画的结构/流程/机制图,嫌丑) | 图上只有方块、箭头、标签,无数值 | AI 升级:结构照搬 + 视觉升级指令(§4.2),可选参考图 |
|
|
15
|
+
| **A3. 结构组合**(多张小图合并成一张大图) | 多张 A1 或 A2 要拼版 | A1 部分本地 matplotlib subplot 拼版;A2 部分合并成一个多 panel prompt(§4.1) |
|
|
16
|
+
| **B. 代码画不出的图**(流程图/机制图/神经网络图/算法示意) | 用户只能嘴上说 | promptFigure API(§4),本技能的主场 |
|
|
17
|
+
|
|
18
|
+
**一句话分流:数字支撑 → 本地画;结构故事 → API 画;一张图里混着两者 → 拆开,各走各的,最后拼版。**
|
|
19
|
+
|
|
20
|
+
> 🔴 **「把终稿变成可编辑矢量/PPT 版」不属于以上任何一类**——那不是 matplotlib 的活,也不是出图 API 的活。走 `SKILL.md` **阶段 5**:终稿交付后先问用户要不要,比赛/数模默认不做(速度优先),时间充裕才由**宿主 AI 用本地的矢量工具/代码照着重绘**(禁止描摹,必须每个元素可编辑)。§3 的 matplotlib 只负责 A1 数据图的真数据重绘(防数字造假),不碰任何矢量转换。
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. 澄清协议:整文任务开工前的一轮集中反问
|
|
25
|
+
|
|
26
|
+
SKILL.md 的「零反问」铁律**约束的是对 API 的出图过程**——出图时不许停下来问参数。但整文级批量任务(用户甩来一篇文章)在**开工前允许且应该有且只有一轮集中澄清**。这一轮的作用就是替 API 把意图收敛好:用户的 Agent 澄清得越准,发给 API 的请求就越正常。
|
|
27
|
+
|
|
28
|
+
**必问 4 项**(一轮问完,之后不再问):
|
|
29
|
+
|
|
30
|
+
| # | 问题 | 为什么必须问 | 用户没答时的推定默认 |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| 1 | **使用场景**:期刊投稿 / 组会 PPT / 基金标书 / 海报? | 决定信息密度、字号、比例、档位——期刊图求克制精确,PPT 图求大字号强对比 | 期刊投稿(最保守) |
|
|
33
|
+
| 2 | **目标模式**:单图精修还是整文批处理? | 决定执行流程(§2) | 整文批处理 |
|
|
34
|
+
| 3 | **原始材料**:已有图的生成代码 / 数据文件(.xlsx/.csv/.mat)在不在? | A1 类图没有原始数据就只能放弃或降级处理(§3) | 不存在 → 该图按 A2 处理或明确告知做不了 |
|
|
35
|
+
| 4 | **定稿档位**:草稿满意后用 premium 2K 定稿? | premium $0.15/张,批量任务先确认预算 | 草稿 standard,定稿 premium |
|
|
36
|
+
|
|
37
|
+
**单图任务不需要这轮澄清**——上下文足够就推断,信息不足用占位符(这是 SKILL.md 零反问的适用域)。
|
|
38
|
+
|
|
39
|
+
### Agent 自检:还缺什么(发给 API 前的最后闸门)
|
|
40
|
+
|
|
41
|
+
每张图提交前,Agent 对自己过一遍这个清单——**缺的要么向用户澄清(仅限第 1 轮),要么推断补全,绝不含糊提交**:
|
|
42
|
+
|
|
43
|
+
- [ ] 图种定了吗?(管线/机制/对比/框架/图形摘要,对照 `document-workflow.md` §1.5)
|
|
44
|
+
- [ ] 实体清单齐全吗?**专有名词原样搬运**了吗?(拼写不改)
|
|
45
|
+
- [ ] 关系结构(谁指向谁、分几组、哪条是 skip/反馈)写进 prompt 了吗?
|
|
46
|
+
- [ ] 这张图是不是 A1 真数据图?(是 → 停,走 §3,不调 API)
|
|
47
|
+
- [ ] ratio 和档位按场景定了吗?
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. 两种执行模式
|
|
52
|
+
|
|
53
|
+
### 2.1 单图精修模式(图少、要求高)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
意图收敛(§1 自检清单)→ standard 出 2~3 版草稿(prompt 各有侧重:
|
|
57
|
+
一版忠实原结构、一版重构布局、一版换视觉方案)
|
|
58
|
+
→ 看图自审 + 用户挑 → 定稿方向微调 prompt → premium 2K 定稿
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- 草稿的价值在**探索构图**,不在画质——全用 standard,别烧 premium 试错
|
|
62
|
+
- 定稿不是重新写 prompt:拿选中草稿的服务端润色结果(`result.prompt` 或页面对应的最终提示词)**微调**后升档,保证草稿→定稿一致
|
|
63
|
+
|
|
64
|
+
### 2.2 整文批处理模式(用户甩来一整篇)
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
① 全文扫描:已有图逐张分型(§0),插图位定位(document-workflow.md §1)
|
|
68
|
+
② 出 figure plan 清单给用户看:
|
|
69
|
+
| 位置 | 现有图 | 分型 | 处置动作(本地重绘/AI升级/新增/不动) |
|
|
70
|
+
③ 集中澄清一轮(§1 必问 4 项)——合并进清单汇报里问
|
|
71
|
+
④ 全部走 standard 草稿(新增图 + AI 升级图),A1 图并行做数据溯源
|
|
72
|
+
⑤ 汇总:每张草稿 + 一句改动说明 → 用户确认/打回
|
|
73
|
+
⑥ 满意后逐张 premium 2K 定稿,插回文档,写台账(§5)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
- **默认先出全部草稿**再定稿——批处理改的多,先全稿确认能避免「第 3 张改了方向、前 2 张白定稿」的返工
|
|
77
|
+
- 每张草稿都过视觉自查(乱码/拼写/结构与原文对不上 → 改 prompt 重出,别把垃圾递给用户)
|
|
78
|
+
- 批量调用遵守 RPM 限制(免费 5/min,会员更高),串行 + 退避,别并发轰炸
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 3. 代码图数据溯源(A1 类的唯一正路)
|
|
83
|
+
|
|
84
|
+
> 本节 = **A1 数据图专用**(曲线/柱状/热图等带真数值的图)。用 matplotlib 的唯一理由是「坐标必须是真数据」;它不是通用美化手段,更不是矢量转换手段——「照终稿做可编辑矢量版」见 `SKILL.md` 阶段 5。
|
|
85
|
+
|
|
86
|
+
**为什么必须溯源**:结果图上的文字往往很小,视觉模型抄轴刻度、抄数据点**必然出错**;靠 OCR 抄数出来的图是假的。唯一可靠路径是找到原始数据,用真数据重绘。
|
|
87
|
+
|
|
88
|
+
### 步骤
|
|
89
|
+
|
|
90
|
+
1. **读图取线索**:轴标签、图例文字、caption 里的变量名/指标名(这些是下一 步的 grep 关键词)
|
|
91
|
+
2. **找生成代码**:在用户工程里搜图例字符串/函数名:
|
|
92
|
+
```bash
|
|
93
|
+
grep -rn "图例文字\|legend_label\|xlabel('Loss')" --include="*.m" --include="*.py" --include="*.ipynb" .
|
|
94
|
+
```
|
|
95
|
+
MATLAB 从 `.m` 脚本看 `plot()/bar()/scatter()` 的数据来源变量;Python 看 `plt.plot(x, y)` 的 x/y 从哪个文件读的
|
|
96
|
+
3. **顺藤摸到数据文件**:`.xlsx` / `.csv` / `.mat` / `.txt`,确认列名与图例一一对应
|
|
97
|
+
4. **本地重绘美化**(pandas/matplotlib):
|
|
98
|
+
- 语义化多色配色:每条曲线/每组柱子按含义定色(对照组冷色、实验组暖色、强调指标用高饱和强调色),不要默认 MATLAB 蓝
|
|
99
|
+
- 色相 ≤4 + 强调色 1~2,白底,去掉无用图表垃圾(多余边框、3D 效果、双 y 轴滥用)
|
|
100
|
+
- 字号按场景:期刊正文图 ≥8pt 成图尺寸,PPT 图 ≥18pt
|
|
101
|
+
- 导出:期刊 300dpi+ PNG/TIFF 或 PDF/SVG 矢量;PPT 用高分辨率 PNG
|
|
102
|
+
5. **逐位核对**:重绘图的每个数据点与原图/原始数据核对,数值不许有任何出入
|
|
103
|
+
6. **找不到代码或数据** → 回到 §1 必问第 3 项,向用户要。**要不到就明确告知这张图做不了 A1 升级**,可以降级为「构图示意版」(明说数字是示意),绝不 silently 假装是原数据
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 4. B 类图与 A2 升级:给 API 的 prompt 构造
|
|
108
|
+
|
|
109
|
+
上下文提取总纲见 `document-workflow.md` §2(必给 3 项:图种/实体/关系结构)。本节只讲升级场景的增量。
|
|
110
|
+
|
|
111
|
+
### 4.1 结构组合(多组合一)
|
|
112
|
+
|
|
113
|
+
把 N 张小图的信息合并成一个多 panel prompt:
|
|
114
|
+
|
|
115
|
+
- **panel 清单**:每个 panel 一句「画什么 + 实体 + 内部结构」
|
|
116
|
+
- **布局声明**:几行几列、panel 编号(A/B/C)、公共图例放哪、箭头怎么跨 panel 连接
|
|
117
|
+
- 实体名仍**原样搬运**;ratio 选 `16:9`(横向组合)或按 panel 数定
|
|
118
|
+
- 实例:`"组合图,2 行 3 列六个 panel。Panel A:…;Panel B:…;panel 之间用带箭头的灰色连接线表示数据流,整体共享一个图例。"`
|
|
119
|
+
|
|
120
|
+
### 4.2 视觉升级(A2:已有示意图嫌丑)
|
|
121
|
+
|
|
122
|
+
prompt = **结构照搬** + **升级方向**,两部分都要:
|
|
123
|
+
|
|
124
|
+
- 结构照搬:原图有哪些模块、怎么连、分几组——拓扑一个都不许变(变结构=篡改用户的学术内容)
|
|
125
|
+
- 升级方向写具体:「扁平矢量风、白底深灰描边、模块按语义配色(输入=浅蓝、核心模块=橙红强调、输出=浅绿)、模块内配简洁图标、等宽圆角」——不要只写「变好看」
|
|
126
|
+
- **参考图**:有原图截图可传 `refDataUrl`(base64 ≤8MB)或 `refUrl`(公网直链)。⚠️ 参考图通道(上游 /images/edits)2026-09-07 起有 503 故障记录——批量任务开始前先用 1 张 standard 试水,失败就纯文字描述结构(prompt 写清楚就够,本管线本就擅长从文字重建结构)
|
|
127
|
+
- 🔴 **文字密集图(架构图/管线图,模块里带公式与小字注释)standard 档基本不可用**:2026-09-09 CVPR 论文实测,standard 出的架构图标题拼写错("Uncertanity")+ 多处小字乱码,直接不可交付。这类图草稿也别用 standard 省钱——乱码草稿没有参考价值,直接 premium;或把模块内小字删到只剩模块名再出 standard 草稿
|
|
128
|
+
|
|
129
|
+
### 4.3 结合论文(A2/B 共用)
|
|
130
|
+
|
|
131
|
+
从插图位前后 2-3 段提取实体与关系,不要让用户复述——详见 `document-workflow.md` §2.0/§2.1。批处理时这一步在 ② 阶段一次性做完,存进 figure plan。
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 5. 追溯台账:figure-ledger.json
|
|
136
|
+
|
|
137
|
+
用户问「哪一次生图做了什么、想退回哪一版」——在**工程根目录**维护一个 JSON 台账,只追加、不覆盖、随工程进 git。本地文件即可,不需要服务端建表:轻量、随项目走、git 天然版本化。
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"project": "osti-rsr-paper",
|
|
142
|
+
"created": "2026-09-09",
|
|
143
|
+
"entries": [
|
|
144
|
+
{
|
|
145
|
+
"id": "fig3",
|
|
146
|
+
"ts": "2026-09-09T21:40:00+08:00",
|
|
147
|
+
"scene": "journal",
|
|
148
|
+
"source": {
|
|
149
|
+
"file": "sections/methods.tex",
|
|
150
|
+
"locator": "L142-156 (\\ref{fig:pipeline})",
|
|
151
|
+
"quote": "编码器提取特征后经跨尺度融合模块送入解码器"
|
|
152
|
+
},
|
|
153
|
+
"action": "new", // new | upgrade | combine | restyle
|
|
154
|
+
"prompt": "提交给 API 的原始意图",
|
|
155
|
+
"prompt_final": "服务端润色后的最终提示词(result.prompt)",
|
|
156
|
+
"tier": "standard", // 草稿 standard / 定稿 premium
|
|
157
|
+
"asset": "figures/drafts/fig3-v1.png",
|
|
158
|
+
"status": "draft", // draft | final | superseded
|
|
159
|
+
"note": "构图偏挤,v2 把 skip 连接移到 panel 下沿"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "fig3",
|
|
163
|
+
"ts": "2026-09-09T22:10:00+08:00",
|
|
164
|
+
"prompt_final": "…(v2 微调后)",
|
|
165
|
+
"tier": "premium",
|
|
166
|
+
"asset": "figures/fig3.png",
|
|
167
|
+
"status": "final",
|
|
168
|
+
"note": "v1 定稿打回后重出"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
规则:
|
|
175
|
+
|
|
176
|
+
- 同一图 id 的每次生成(草稿、打回、定稿)都是**新 entry**,旧 entry 状态改 `superseded`——历史永远可回溯
|
|
177
|
+
- `source.locator` 写到能一键跳回的粒度(文件 + 行号/段落号)
|
|
178
|
+
- `prompt_final` 必须存:它是「草稿→定稿」一致性的锚点,也是用户日后手动微调的起点
|
|
179
|
+
- 每轮批处理结束,把台账路径 + entry 摘要报给用户
|
|
180
|
+
|
|
181
|
+
**两类 entry 模板要区分**(`action` 字段决定):
|
|
182
|
+
|
|
183
|
+
- **AI 生成**(`action`: new/upgrade/combine):有 `prompt` / `prompt_final` / `tier`。⚠️ `/api/v1/generate` 的响应**不含润色后的 prompt**(`prompt_final` 只有网页异步流程 `/api/gen-result` 才返回)——纯 API 用户在 entry 里存 `prompt`(自己提交的意图)+ `crafted: true/false` 即可,`prompt_final` 字段留空并注明 `via: "api"`;走 §2.1 网页异步流程的才填 `prompt_final`
|
|
184
|
+
- **数据图重绘**(`action`: restyle):不写 prompt 字段,改写 `data_source`(生成脚本路径或数据文件路径)+ `verification`(核对项数与结果,如 "27 checks, 0 mismatch")+ `style`(配色/字号要点)。真数据图没有 prompt,别硬套 AI 模板
|
|
185
|
+
|
|
186
|
+
### 402 余额场景处置(批处理必读)
|
|
187
|
+
|
|
188
|
+
迭代重试会连续扣费——**开工前先查余额**(控制台 `#account-balance`,API 的 `balance` 字段滞后不可信),预估「张数 × 单价 + 至少 2 次重试余量」。跑到一半 402 时:不扣费、任务中断,如实告知用户余额耗尽、请用户充值后继续——**已完成的图不回滚**,台账里记清中断位置,续跑从断点开始。
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 6. 完整流程清单(整文批处理)
|
|
193
|
+
|
|
194
|
+
1. 扫描全文 → 已有图分型(§0)+ 插图位定位(`document-workflow.md` §1)
|
|
195
|
+
2. figure plan 清单 + 集中澄清一轮(§1 必问 4 项)→ 用户确认处置方案
|
|
196
|
+
3. A1 图:数据溯源 + 本地重绘(§3);A2/B 图:构造 prompt(§4)
|
|
197
|
+
4. 全部 standard 草稿 → 视觉自查 → 汇总给用户
|
|
198
|
+
5. 用户确认 → 逐张 premium 2K 定稿 → 插回文档(`document-workflow.md` §3)
|
|
199
|
+
6. 写台账(§5)→ 汇报:位置 → 图文件 → 版本 → 台账路径,提示图号/交叉引用需最终复核
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# 主动升级工作流:PDF/WPS 文稿 · 主动插图建议 · 参考论文风格库
|
|
2
|
+
|
|
3
|
+
> 场景:用户不是 LaTeX 用户——给的是 **PDF / WPS / Word**;而且常常说不出哪里该插图,只说「帮我弄得更高级」。本文件覆盖:**① PDF/WPS 格式对策 ② 主动插图建议 ③ 从原始数据到成图的四步管线 ④ 参考论文风格库**。图分型与执行模式见 `figure-upgrade-workflow.md`,LaTeX/docx 插回见 `document-workflow.md`。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 0. PDF / WPS / Word:格式现实与对策
|
|
8
|
+
|
|
9
|
+
**关键认知:PDF 是最终渲染产物,插不回去。** 所有「在 PDF 里换图/插图」的想法都不成立,只有三条正路:
|
|
10
|
+
|
|
11
|
+
| 输入格式 | 能做什么 | 对策 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| **.docx**(Word/WPS 另存的) | 完整读写 | 走 `document-workflow.md` 的 docx 路径(python-docx) |
|
|
14
|
+
| **.wps 老格式** | python-docx 读不了 | 让用户在 WPS 里**另存为 .docx**;或 LibreOffice `soffice --convert-to docx` 转换后处理 |
|
|
15
|
+
| **PDF** | 只读解析 | ① 解析取内容与已有图 ② **图文件 + 改动清单交付**(用户插回自己的源文档)③ 需要时生成一份 docx 副本供直接采用 |
|
|
16
|
+
|
|
17
|
+
### PDF 解析(pymupdf/fitz)
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
import fitz
|
|
21
|
+
doc = fitz.open("paper.pdf")
|
|
22
|
+
for pno, page in enumerate(doc):
|
|
23
|
+
text = page.get_text() # 逐页文本(定位章节/caption)
|
|
24
|
+
for img in page.get_images(full=True): # 已有位图插图
|
|
25
|
+
xref = img[0]
|
|
26
|
+
pix = fitz.Pixmap(doc, xref)
|
|
27
|
+
pix.save(f"extracted/p{pno}_img{xref}.png")
|
|
28
|
+
# 矢量图/整页截图:page.get_pixmap(clip=rect, dpi=200)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- **找已有图**:`page.get_text()` 里检索 `Figure N` / `图 N` 的 caption 行,与同页图像配对
|
|
32
|
+
- **找插图位**:caption 缺号、正文 `如图 N` 引用悬空、章节启发式(同 `document-workflow.md` §1)照样适用——只是动作从「插回」变成「写进建议清单」
|
|
33
|
+
- 提取出的已有图 → 按 `figure-upgrade-workflow.md` §0 分型(真数据图 → 数据溯源;示意图 → AI 升级)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 1. 主动插图建议(用户不知道哪里能插图)
|
|
38
|
+
|
|
39
|
+
用户给不出占位符不等于没有插图位。扫描全文后,**主动产出一份「插入建议清单」**(位置 / 图种 / 理由 / 预期作用),让用户勾选后再画——建议可以大胆,画之前必须过目。
|
|
40
|
+
|
|
41
|
+
**数学建模论文(MCM/国内赛)惯用插图位**(O 奖版式经验):
|
|
42
|
+
|
|
43
|
+
| 位置 | 建议图 | 说明 |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| 引言/问题重述之后 | **全文逻辑关系图 / 技术路线图** | 介绍后续各部分的承接逻辑,评委 30 秒看懂全文结构——O 奖标配,性价比最高的一张 |
|
|
46
|
+
| 建模假设章 | 模型机制示意图 | 把抽象假设画成可视结构 |
|
|
47
|
+
| 每个模型小节 | 该模型的流程/结构示意 | 一模型一图 |
|
|
48
|
+
| 灵敏度/结果分析 | 数据图**本地画**;对比关系示意才走 API | 真数字铁律不变 |
|
|
49
|
+
| 全文收尾 | 优缺点对比 / 方法对比示意 | 概念对比类 |
|
|
50
|
+
|
|
51
|
+
**其他文体**:偏文科/综述类段落适合**事例示意图、场景示意、分类关系图**(实体多、关系定性、无数值——正符合 `document-workflow.md` §1.5 的正当理由)。判定仍按那条口诀:三个实体手拉手 → 画;数字支撑 → 本地画;都没占 → 不画。
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 2. 四步管线:从原始数据到高级 AI 图
|
|
56
|
+
|
|
57
|
+
用户说「帮我弄高级」时,按这四步走,每步的产出喂给下一步:
|
|
58
|
+
|
|
59
|
+
### ① 原始数据分析
|
|
60
|
+
|
|
61
|
+
Agent 直接分析用户给的数据文件(pandas:描述统计、分布、分组差异、相关性、时序趋势)。产出:**这份数据里有什么值得画的结构**——不是替用户看数字,是找出「哪组对比/哪个趋势承载论文论点」。
|
|
62
|
+
|
|
63
|
+
### ② 图像需求推演
|
|
64
|
+
|
|
65
|
+
结合 ① 的发现 + 论文章节意图(这一节想论证什么),推断:哪里需要什么图、什么形式。分流按铁律:**数据承载 → 本地 matplotlib(§ figure-upgrade-workflow §3);结构故事 → API**。输出物 = 建议清单(§1 格式)+ 每张图的分型。
|
|
66
|
+
|
|
67
|
+
### ③ 提示词生成与绘图
|
|
68
|
+
|
|
69
|
+
生成提示词按 `prompt-review-workflow.md` 的 golden skeleton 写,并走 8 项审核(或双 Agent 互审)后才调 API。
|
|
70
|
+
|
|
71
|
+
逐张走 `figure-upgrade-workflow.md` §1 自检清单(图种/实体原样搬运/关系结构/ratio/档位)→ `/api/v1/generate`。批处理全程 standard 草稿,模式按 §2(单图精修 / 整文批处理)。
|
|
72
|
+
|
|
73
|
+
### ④ 迭代优化循环(出图不算完)
|
|
74
|
+
|
|
75
|
+
每张草稿出图后,Agent **必须打开图对照三方检查**,这是「激发对方 Agent 不断检查优化」的落点:
|
|
76
|
+
|
|
77
|
+
- **对论文原文**:实体拼写、模块数、结构方向有没有画歪(乱码/漏实体 = 重出)
|
|
78
|
+
- **对数据**:本地重绘图逐位核对(`figure-upgrade-workflow.md` §3 第 5 步)
|
|
79
|
+
- **对之前的图**:全文配色语言、视觉风格是否一致——同一篇论文的图应像同一个人画的
|
|
80
|
+
- 不合格 → 改 prompt 重出;合格 → 进台账、等用户确认后升档定稿
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 3. 参考论文风格库:让「高级」有个对照物
|
|
85
|
+
|
|
86
|
+
用户说「想要高级」是模糊词,最好的解释物是好看的真实范例。约定目录:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
refs/
|
|
90
|
+
papers/ # 整本 PDF(顶会/顶刊/优秀毕设)
|
|
91
|
+
figures/ # 单图 PNG(论文里的好看插图)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 获取途径
|
|
95
|
+
|
|
96
|
+
1. **Agent 自动找**:GitHub(awesome-list、论文官方 repo、ml-visuals 类开源可视化项目)、arXiv 顶会论文 PDF——按用户研究主题搜同类
|
|
97
|
+
2. **用户手动下载**:学校账号拉 SCI/顶刊——Agent 列出想要的关键词/期刊清单让用户去下
|
|
98
|
+
|
|
99
|
+
### 解析与使用
|
|
100
|
+
|
|
101
|
+
- 整本 PDF → pymupdf 提取图 + caption(§0 方法);单图直接看
|
|
102
|
+
- Agent **看图归纳风格特征**:配色方案(几个色相、怎么强调)、布局(panel 结构、图例位置)、图标风格、标注密度、字体气质 → 拆到特征级
|
|
103
|
+
- 风格特征转成 prompt 里的**视觉描述文本**("多色语义化 pastel、白底深灰描边、模块圆角+简洁图标"),而不是"参考图 X 的样子"
|
|
104
|
+
|
|
105
|
+
### 🔴 合规红线
|
|
106
|
+
|
|
107
|
+
- 参考论文的图**只准提炼风格特征,禁止复刻**——照着别人已发表论文的图重绘内容并拿去展示/投稿,是学术与版权双重事故
|
|
108
|
+
- `refDataUrl`/`refUrl` 参考图通道**只传用户自有或已授权的图**;别人的图一律走文字特征描述(通道本身 2026-09-07 起也有 503 故障记录,用前 1 张 standard 试水)
|
|
109
|
+
- 风格可以学,内容必须原创
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 4. 完整流程清单(PDF 整文主动升级)
|
|
114
|
+
|
|
115
|
+
1. 格式判定:docx 直读 / wps 转换 / PDF 解析(§0)——文本 + 已有图 + 章节结构一次取全
|
|
116
|
+
2. 已有图分型(figure-upgrade-workflow §0)+ 数据分析(§2①)→ 图像需求推演(§2②)
|
|
117
|
+
3. 产出两份清单给用户:**插入建议清单**(§1)+ **已有图处置清单**(重绘/升级/不动)→ 用户勾选
|
|
118
|
+
4. 参考风格:refs/ 有料就先归纳特征写进每个 prompt(§3),没料按语义多色默认规范
|
|
119
|
+
5. 全部 standard 草稿 → 三方检查迭代(§2④)→ 汇总给用户
|
|
120
|
+
6. 确认后 premium 2K 定稿 → **图文件 + 改动清单 + figure-ledger 台账**交付(PDF 用户自行插回源文档;docx 用户可代插)
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# prompt 构造手册
|
|
2
|
+
|
|
3
|
+
## 先分清两种模式
|
|
4
|
+
|
|
5
|
+
| | 默认模式(产品形态) | 降级模式 `polish:false`(紧急绕过) |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| 服务端 | LLM 编排 → 净化 → 审查 → 出图 | **跳过润色**,你的 prompt 直接进图模型 |
|
|
8
|
+
| 你要写 | **大白话 + 意图说清楚** | **完整英文专业提示词** |
|
|
9
|
+
| 难度 | 低 | 高 |
|
|
10
|
+
|
|
11
|
+
⚠️ **默认模式才是产品的正常形态。** 降级模式仅在上游文本限频期默认管线连续失败时作为紧急绕过,平时不要用。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# 默认模式(正常形态)
|
|
16
|
+
|
|
17
|
+
服务端会把你的大白话扩写成专业提示词。**你的职责是把用户意图一次性说清楚,不是替服务端写长提示词。**
|
|
18
|
+
|
|
19
|
+
## 三要素,缺一项就补一项
|
|
20
|
+
|
|
21
|
+
| 要素 | 说明 | 反例 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| **图种** | flow / mechanism / pipeline / comparison / roadmap / graphical abstract | 「画个图」 |
|
|
24
|
+
| **实体** | 组名、模型名、基因名、数值、实验条件——**这是最重要的** | 「两种方法的效果」 |
|
|
25
|
+
| **结构** | 几个 panel、流向、是否要图例 | 完全不提布局 |
|
|
26
|
+
|
|
27
|
+
**实体齐全度直接决定出图信息密度**。服务端能扩写句式,但扩写不出你没告诉它的实体。
|
|
28
|
+
|
|
29
|
+
## 「一次性说清楚」的写法
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
✅ "对比 ResTiNet 和 CNN baseline 在 OCT 影像分类上的表现。
|
|
33
|
+
左图:数据流从输入经 4 个残差块到分类头。
|
|
34
|
+
右图:柱状图,准确率 94.2% vs 88.7%,推理时间 12ms vs 31ms。"
|
|
35
|
+
|
|
36
|
+
❌ "画个深度学习对比图" ← 无实体无结构,服务端无从扩写
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
注意:
|
|
40
|
+
- **中英文都可以**——服务端负责润色,中文也可以(但 technical 名词保持原文大小写:`GPX4`、`ResTiNet`、`p < 0.001`、µm 等)
|
|
41
|
+
- **数值要真实**:没有的数据留占位符或干脆不写。**编造的数值会被原样印到图上**
|
|
42
|
+
- 一句话到三句话通常够,不必堆砌
|
|
43
|
+
|
|
44
|
+
## 草稿 = 低文字密度构造法(2026-09-25 实测定规)
|
|
45
|
+
|
|
46
|
+
standard 草稿的乱码率随**卡面文字量**上升(实测:说明性小字整行乱码
|
|
47
|
+
"discards background patches"→"disnark"、标题 "Technical Roadmap"→"Cattlreet Tbgleftste";
|
|
48
|
+
实体名短标签几乎不出错)。草稿阶段构造 prompt 按三条:
|
|
49
|
+
|
|
50
|
+
**① 卡面文字只留实体名。** 除实体名标签(+最多 2-3 个 ≤2 词的超短标签)外,一切说明性小字
|
|
51
|
+
——阶段职能句、百分比、参数、长标题——全部**不写**,改写成 show 画法句让图模型画出来:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
❌ "Stage 2 Coarse Filter discards background patches (85%)"
|
|
55
|
+
✅ "Stage 2 Coarse Filter, show a funnel icon filtering grey patches and keeping a few highlighted ones"
|
|
56
|
+
|
|
57
|
+
❌ "Stage 4 Fine Grader (6-layer transformer encoder) assigns per-patch defect scores"
|
|
58
|
+
✅ "Stage 4 Fine Grader, show a stack of thin transformer layers glowing over one highlighted patch"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**② 风格基线块句句带上**(润色层不会替你补,缺一句图模型就自由发挥一句):
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
flat vector, pure white background, thin dark-gray outlines,
|
|
65
|
+
no shadows no gradients no 3D,
|
|
66
|
+
muted semantic palette (2-4 pastel hues + 1 accent color),
|
|
67
|
+
clean sans-serif English labels, generous whitespace
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
每个颜色对应一个角色(数据=浅蓝、核心=橙红强调、输出=浅绿…),**禁止单一色相约束**(见下文配色节)。
|
|
71
|
+
|
|
72
|
+
**③ 说明性文字留到 premium 再加回。** 草稿定下构图/母题/配色后,premium 定稿
|
|
73
|
+
复用同一 prompt(只改 model/size),此时才把职能小字补回——premium 的 gpt-image
|
|
74
|
+
文字渲染显著更强,且补回的文字必须逐字写对。
|
|
75
|
+
|
|
76
|
+
一句话:**草稿管"长什么样",premium 管"字写得对不对"。**
|
|
77
|
+
|
|
78
|
+
## 常见图种的意图描述要点
|
|
79
|
+
|
|
80
|
+
- **技术路线图**:几个阶段、从左到右、每阶段的关键动作
|
|
81
|
+
- **机制/信号通路**:谁激活谁、谁抑制谁、最终结果;如有亚细胞定位一并说明
|
|
82
|
+
- **实验管线**:原始输入 → 各处理步骤 → 输出;每步的方法名
|
|
83
|
+
- **对比图**:比什么对象、在什么指标上、用什么图表类型(柱状/折线/箱线)
|
|
84
|
+
- **图形摘要**:核心结论一句话 + 支撑它的 2–3 个要素
|
|
85
|
+
|
|
86
|
+
组合式多 panel 写法见线上:https://promptfigure.top/docs/zh-CN/figure-structure
|
|
87
|
+
(多 panel 图记得把 `ratio` 设成 `16:9`)
|
|
88
|
+
|
|
89
|
+
## 参考图怎么用
|
|
90
|
+
|
|
91
|
+
有参考图时**必须拆到特征级**——不要只写「参考这个风格」,那样必返工。逐项对照:
|
|
92
|
+
|
|
93
|
+
方向(横/竖)· panel 数量 · 图表类型 · 图标风格 · 数据标注密度 · 配色分布
|
|
94
|
+
|
|
95
|
+
把这些特征写进意图描述,参考图作为补充。
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{ "prompt": "...", "refUrl": "https://...直链.png" }
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
⚠️ **当前参考图端点可用性**:上游 `/images/edits` 自 2026-09-07 起持续 503。`refUrl`/`refDataUrl` 经常被忽略(`refIgnored: true`,**当次照常出图并计费**)。看到这种情况,**暂时改用纯文字精确描述**更好。(2026-09-25 复测:premium 2K + refDataUrl ≈0.54MB 一次通过、未标 `refIgnored`,通道可能已恢复——但每次批量任务开始前仍按上文用 1 张 standard 试水,以 `refIgnored` 信号为准。)
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
# 降级模式(`polish:false`,紧急绕过)
|
|
106
|
+
|
|
107
|
+
服务端不润色,你的 prompt **原样**进图模型。此时必须自己写完整英文专业提示词。
|
|
108
|
+
|
|
109
|
+
## 关键差异
|
|
110
|
+
|
|
111
|
+
- ❌ prompt 必须**英文**(中文会被当噪声处理)
|
|
112
|
+
- ❌ **没有服务端修正**:写错就错
|
|
113
|
+
- ✅ 要把"图种 + 结构 + 风格 + 标签"全部写死
|
|
114
|
+
- ⚠️ 图模型英文文字渲染差,关键标签必须**逐字写对**
|
|
115
|
+
|
|
116
|
+
## 降级模式模板
|
|
117
|
+
|
|
118
|
+
### 技术路线图
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
A horizontal 4-stage technical roadmap for <主题>, left to right:
|
|
122
|
+
Stage 1 <名>, Stage 2 <名>, Stage 3 <名>, Stage 4 <名>.
|
|
123
|
+
Each stage is a rounded rectangle with a short label and 2-3 sub-bullets.
|
|
124
|
+
Arrows connect consecutive stages. Flat vector style, white background,
|
|
125
|
+
thin dark-gray outlines, every stage in a distinct pastel color.
|
|
126
|
+
All labels in English, spelled correctly.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 机制 / 信号通路
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
A 2D flat conceptual diagram of <机制名>. <实体A> activates <实体B>,
|
|
133
|
+
which inhibits <实体C>, leading to <结果>. Include: membrane boundary,
|
|
134
|
+
receptor icon, arrow cascade with clear direction, and a labeled legend.
|
|
135
|
+
No 3D, no gradients, no photorealism. White background, thin outlines.
|
|
136
|
+
English text labels only, correct spelling (e.g. exactly "GPX4").
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
⚠️ 必须显式写 "2D flat"——不写容易出立体渲染。
|
|
140
|
+
⚠️ 拼写逐字检查:这条模式下写错就是在图上印刷错误。
|
|
141
|
+
|
|
142
|
+
### 实验管线
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
An experimental pipeline diagram, top to bottom: raw data acquisition →
|
|
146
|
+
preprocessing (<步骤>) → feature extraction (<方法>) → model training →
|
|
147
|
+
evaluation (accuracy <数值>%, F1 <数值>). Each stage is a full-width
|
|
148
|
+
block with an icon and one-line caption in English. Flat vector, white
|
|
149
|
+
background, consistent stroke width, distinct pastel color per stage.
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 对比图
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
A two-panel comparison of <方法A> vs <方法B> on <任务>.
|
|
156
|
+
Left panel: <图表类型> showing <指标1> <数值A> vs <数值B>.
|
|
157
|
+
Right panel: <图表类型> showing <指标2> <数值A> vs <数值B>.
|
|
158
|
+
Both panels share the same vertical scale. Include axis labels with
|
|
159
|
+
units. Clean scientific style, white background, panels labeled (a)(b).
|
|
160
|
+
Axis labels in English: "Accuracy (%)", "Time (ms)".
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 图形摘要
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
A single-panel graphical abstract summarizing <论文主题>.
|
|
167
|
+
Center: <核心对象>. Left inflow: <输入/数据源>. Right outcome: <结论/指标>.
|
|
168
|
+
All labels in English. Generous whitespace, high visual hierarchy,
|
|
169
|
+
white background, professional journal style.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 配色(两种模式都适用)
|
|
173
|
+
|
|
174
|
+
🚫 **禁止**约束单一色相。事故写法:
|
|
175
|
+
|
|
176
|
+
- ❌ `"muted steel-blue fills"`
|
|
177
|
+
- ❌ `"restrained navy/gray/teal palette"`
|
|
178
|
+
- ❌ `"monochrome professional style"`
|
|
179
|
+
|
|
180
|
+
图模型忠实执行 → 全图一个色系。
|
|
181
|
+
|
|
182
|
+
✅ **语义化多色**:每个颜色对应一个角色。
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
coral-red for task labels, pastel green for model blocks,
|
|
186
|
+
warm amber for training/evaluation blocks, sky blue for metric chips,
|
|
187
|
+
pale pink for data blocks. White background, dark-gray outlines.
|
|
188
|
+
Every color has a meaning — different roles get different hues.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
5–7 个语义色通常刚好。**例外**:纯数据图表(柱状/折线)反而克制,≤4 色相 + 1–2 强调色。
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 降级模式专属:英文标签渲染
|
|
196
|
+
|
|
197
|
+
实测(2026-09-09)polish:false 直出时图模型会画出 "Mcıuacy" 这类乱码:
|
|
198
|
+
|
|
199
|
+
1. 关键标签在 prompt 里**逐字写好**,别写模糊描述让它猜
|
|
200
|
+
2. 结尾加一句 `"All on-figure text labels in English, spelled correctly"`
|
|
201
|
+
3. 重要场合用 `premium`(gpt-image 文字渲染显著优于 standard 的 Agnes)
|
|
202
|
+
4. 出现乱码就换写法重试
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 发送前 Checklist
|
|
207
|
+
|
|
208
|
+
**默认模式**
|
|
209
|
+
- [ ] 图种说清楚了
|
|
210
|
+
- [ ] 实体写全(组名/模型名/数值/条件)
|
|
211
|
+
- [ ] 结构说了(panel 数/流向/图例)
|
|
212
|
+
- [ ] 数值真实(没有的用占位符,绝不反问)
|
|
213
|
+
- [ ] 草稿按低文字密度构造(卡面只留实体名,说明性内容转 show 画法句 + 风格基线块)
|
|
214
|
+
- [ ] 多 panel 配了 `ratio: "16:9"`
|
|
215
|
+
- [ ] `model` 选对(正式交付 = premium)
|
|
216
|
+
|
|
217
|
+
**降级模式(额外)**
|
|
218
|
+
- [ ] `"polish": false` 已设
|
|
219
|
+
- [ ] 英文
|
|
220
|
+
- [ ] 关键英文标签逐字写对
|
|
221
|
+
- [ ] 150–300 词,>400 词会信息超载
|
|
222
|
+
- [ ] 机制图标了 "2D flat"
|
|
223
|
+
- [ ] 没有约束单一色相
|