简介:《AI艺术与ChatGPT提示工程指南》围绕提示工程与AI艺术创作展开,面向对ChatGPT对话式提示和Midjourney等绘图工具感兴趣的初学者及进阶读者,帮助其从零理解提示的构成与设计逻辑。全书从提示工程基础讲起,依次讨论负提示与零提示、ReAct提示、Midjourney等工具的AI艺术提示设计、迭代式提示细化,以及语言与意象在提示中的作用,并附Leonardo应用案例与示例提示,兼顾方法框架与实操参考。资源包为1个PDF文件,约2.31MB,体积轻便,便于在电脑或移动端随时查阅。目前已有69人学习,适合希望系统梳理提示工程知识、提升AI艺术出图与对话质量的读者按章节研读和查阅。
1. 同一句提示跑十次出十个结果,问题多半不在模型
有人把「赛博朋克城市,超好看」丢进 Midjourney,十次出十张风格不一的图,于是判断模型不稳定。拆开看,这句提示里主体只有一个模糊名词,没有风格锚点、没有镜头语言、没有负向约束,模型每次都在合法解空间里随机采样。这份《AI艺术与ChatGPT提示工程指南》讲的就是把「碰运气」变成可重复流程:提示工程的三层骨架、零提示与负提示的边界、ReAct 任务链、Midjourney 与 Leonardo 的出图参数,以及 ChatGPT 多轮对话里的迭代式细化。适合已经能用工具出图、但结果不可控的人,也适合要把提示交给团队复用的从业者。下面按「骨架—任务链—出图参数—排查—验收」的顺序拆。
2. 提示的三层骨架:主体、修饰符、固化剂怎么分工
原书第一章把提示拆成几个可命名的部件:主体(subject)、修饰符(modifier)、固化剂(solidifier),再加上变体提示和负提示。这个拆法看着朴素,落地时非常管用,因为它把「写一句好提示」变成了「填几个槽位」。我一般会先把一句自然语言提示按这三层切开,再决定哪一层需要动、哪一层必须锁死。切开之后你会发现,大部分翻车都发生在修饰符互相打架,而不是主体写错。
2.1 主体提示:把「想要什么」压缩成一个可检索的名词短语
主体是提示里承担核心语义的那部分,可以是人、地点、物体,也可以是一个动作场景。原书强调定义主体时要同时想清楚两件事:你要达到什么目标,以及看结果的人会怎么理解它。这两句话翻译成操作就是:主体必须能被模型映射到训练数据里存在的视觉或语义概念,不能是一个只有你自己懂的抽象词。
我习惯用一个「三问压缩法」处理主体。第一问,这个东西的最小可识别名词是什么;第二问,它处于什么状态或环境;第三问,哪些限定词是必须保留、删掉就变味的。比如「一个很酷的机器人」经过三问会变成「a rusted industrial robot with exposed hydraulic joints, standing in a flooded factory」,主体从形容词堆砌变成了可渲染的实体加环境。
# subject_slots.py # 主体拆成三个槽位,避免把状态和环境混进名词里 SUBJECT = { "entity": "a rusted industrial robot", # 最小可识别名词 "state": "exposed hydraulic joints, one arm missing", # 状态限定 "context": "standing in a flooded factory", # 环境限定 } def build_subject(slots): # 用逗号连接,顺序固定为实体→状态→环境 return ", ".join(v for v in slots.values() if v) print(build_subject(SUBJECT)) # 输出:a rusted industrial robot, exposed hydraulic joints, one arm missing, standing in a flooded factory这段代码的价值不在拼字符串,而在强制你把「实体」和「状态」分开。实体槽位负责让模型认出画什么,状态槽位负责控制差异,环境槽位负责构图背景。参数上,entity尽量控制在 5 个词以内,超过之后模型对前置词的注意力会被稀释;state一次只写一到两个特征,写三个以上容易出现肢体错乱;context决定画面纵深,室内场景建议带上材质或光源线索。
主体写完之后要做一次「可检索性检查」:把主体短语单独丢进搜索引擎或图库,如果能搜到大量同类图,说明模型大概率认识;如果搜出来全是无关内容,说明这个词是你自造的,需要换成更通用的说法。这个动作花不了一分钟,但能省掉后面反复抽卡的时间。
2.2 修饰符提示:用形容词和限定词收窄输出空间
修饰符是加在主体上的额外词或短语,作用是提供上下文、清晰度和特异性。原书举的例子很典型:把「全球变暖」改成「全球变暖的原因和解决方案」,输出就从泛泛而谈变成了两面分析。修饰符的本质是给模型一个更窄的采样区间,而不是给它更多形容词。
落到 AI 艺术出图上,我通常把修饰符分成四个槽位:风格、媒介材质、光照色彩、镜头构图。每个槽位只放一个主取值,最多加一个补充取值。四个槽位全填满,提示长度大约在 25 到 40 个词之间,这个区间对 Midjourney 和 Leonardo 都比较友好。
| 槽位 | 作用 | 示例取值 | 常见错误 |
|---|---|---|---|
| 风格 | 定整体调性 | cinematic concept art、editorial illustration | 同时写三种风格,互相稀释 |
| 媒介材质 | 定表面质感 | oil on canvas、35mm film scan、brushed aluminum | 和风格槽位语义重复 |
| 光照色彩 | 定氛围 | cold dawn light、warm 2700K lamp light | 光源方向前后矛盾 |
| 镜头构图 | 定视角与景别 | wide shot、macro、low angle | 与主体尺度冲突,比如微距拍建筑 |
修饰符最容易翻车的地方是「堆」。有人觉得多写几个风格词总有一个能命中,实际结果是模型把几种风格平均成一个四不像。我的血泪经验是:风格槽位只留一个主词,想试第二种风格就另开一条变体提示,不要在同一个提示里做风格融合。真要融合,也要写成「A 为主,B 只影响材质」这种带主次的表述。
# modifier_slots.py # 四个修饰符槽位,每个槽位一个主值加一个可选补充值 MODIFIERS = { "style": ["cinematic concept art", "muted color palette"], "medium": ["35mm film scan", "visible grain"], "light": ["cold dawn light", "volumetric fog"], "camera": ["wide shot", "shallow depth of field"], } def flatten_modifiers(mods): # 按槽位顺序展开,保证每次拼装语序一致 result = [] for slot in ("style", "medium", "light", "camera"): result.extend(mods.get(slot, [])) return ", ".join(result) print(flatten_modifiers(MODIFIERS))flatten_modifiers里把槽位顺序写死,是为了让提示可复现。Midjourney 和多数文生图工具对前置词更敏感,风格放在最前面、镜头放在最后,出来的画面稳定性明显好于随机顺序。参数上,每个槽位列表长度建议不超过 2,总修饰符数量控制在 8 个以内;超过 10 个之后,新增的词基本是在互相抢权重,画质不会提升,构图反而更容易散。
2.3 固化剂与变体:让输出稳定在可复用模板上
固化剂是原书里容易被忽略的一节,它指的是提示末尾那组用来「锚住」质量的词,比如 high detail、consistent composition、neutral color grading。这些词单独看很虚,但它们在提示结构里承担的是收尾和稳定作用,相当于给模型的输出画一条底线。我一般把固化剂控制在 3 到 5 个词,放在提示最后,不参与风格竞争。
变体提示则是在主体和固化剂不变的前提下,只替换一个修饰符槽位。这样每次只动一个变量,你才能判断到底是哪个词导致了画面变化。很多人做迭代式细化时一次改三四个词,最后出图变好了也不知道是谁的功劳,变差了也找不到原因,这就是典型的黑匣子式调参。
# 提示模板库的目录结构,按主体分目录,按版本存文件 prompts/ ├── lighthouse/ │ ├── v01_subject.txt # 只写主体 │ ├── v02_modifiers.txt # 加修饰符 │ ├── v03_solidifier.txt # 加固化剂 │ └── runs.csv # 每次跑图的参数与人工评分 └── robot_factory/ ├── v01_subject.txt └── runs.csv目录结构看着简单,但它解决的是「提示写完就丢」的问题。每个主体一个目录,版本号递增,runs.csv记录种子、参数和评分。下次要复现某张图,直接按版本号找文件,不用翻聊天记录。参数命名上,v01到v03对应骨架搭建的三个阶段,后面做变体就从v03a、v03b分支,不要覆盖原文件。
固化剂还有一个用法是跨工具迁移。Midjourney 和 Leonardo 的语法不同,但「高质量、构图完整、色彩克制」这组语义是通用的。我会把这组词单独存一个solidifier.txt,换工具时只改参数和负向词,固化剂直接复用。这样同一套审美底线能在不同工具之间保持一致,不至于换个平台就完全变味。
3. 从零提示到 ReAct:把单轮指令升级成任务链
零提示、负提示、ReAct 是原书里跨度最大的三节,分别对应「不给例子」「给反向约束」「给多步推理结构」。这三样不是越高级越好,而是各有适用边界。用错场景的代价很直接:零提示处理格式任务会得到一堆自由发挥,负提示堆太多会挤占正向语义,ReAct 用在单步问答上纯属浪费 token。
3.1 零提示的适用边界与触发条件
零提示就是不给示例、不给拆解,直接把任务丢给模型。它适合三类场景:开放式头脑风暴、通用文案改写、格式要求宽松的问答。比如「给这个产品写五条卖点」,零提示往往比给一堆示例更自然,因为示例会限制模型的表达多样性。
但零提示有两个明确的失效边界。第一是格式严格的任务,比如要求输出固定字段的 JSON、固定列数的表格,零提示下模型会自由增减字段。第二是专业术语密集的任务,模型不知道你所在团队的缩写含义,零提示会按大众语料去猜。这两个边界不需要复杂方案,加一条格式约束或一个字段说明就能解决。
# zero_prompt_guard.py # 零提示加一条最小格式约束,避免输出自由发挥 PROMPT = """任务:为这款便携投影仪写三条卖点。 约束: 1. 每条不超过 20 个字。 2. 必须包含一个具体参数,没有参数就写“参数待补”。 3. 只输出三条,不要解释。 """ print(PROMPT)这段模板的关键在第三条「只输出三条,不要解释」。零提示翻车最多的情况不是内容差,而是模型附赠一段「希望以上对你有帮助」。加一句硬约束,输出立刻干净。参数上,约束条数控制在 3 条以内,超过之后模型会开始丢约束;每条约束只写一个要求,不要把「不超过 20 字且包含参数且语气活泼」塞进同一条。
零提示还有一个隐性成本:结果不可回归。同一句提示今天跑和下周跑,输出可能完全不同。所以我在需要复现的任务里不用纯零提示,至少加一条固化约束或一个输出模板。这个习惯是从一次对客演示翻车之后养成的,当时现场重跑同一句提示,输出风格完全变了,场面很尴尬。
3.2 负提示:写「不要什么」比写「要什么」更难
负提示在两个场景里最有用:文生图里排除不想要的元素,对话模型里排除不想要的表达方式。Midjourney 用--no参数接负向词,Stable Diffusion 系工具用单独的 Negative Prompt 输入框,Leonardo 也是分栏填写。语法不同,但逻辑一样:负向词是在采样时降低对应概念的权重,不是硬性禁止。
负向词我一般分四类管理,每类只留最必要的两三个。文字水印类(text、watermark、signature)几乎每次都要带;解剖错误类(extra fingers、deformed hands)在人像和手部特写时带;风格污染类(oversaturated、cluttered background)在需要干净画面时带;构图干扰类(cropped head、out of frame)在全身构图时带。
| 负向类别 | 典型词 | 适用场景 | 不建议 |
|---|---|---|---|
| 文字水印 | text、watermark、logo | 所有出图任务 | 一次写十几个同义词 |
| 解剖错误 | extra fingers、deformed hands | 人像、手部特写 | 全身远景也堆手部词 |
| 风格污染 | oversaturated、noisy background | 需要干净背景 | 与正向风格词冲突 |
| 构图干扰 | cropped、out of frame | 全身、建筑全景 | 微距场景使用 |
负提示最常见的误用是「越多越安全」。Midjourney 的--no后面跟的词同样占用解析预算,堆二十个负向词,正向提示的权重会被明显稀释,画面变得保守、灰、没有重点。我的做法是负向词总数不超过 6 个,而且每次只加当前批次真正出问题的词,不加「预防性」的词。
注意:负提示不是所有工具都等效。Midjourney 的
--no对具体物体有效,对抽象风格词效果有限;Stable Diffusion 的 Negative Prompt 权重更强,写多了容易把画面压死。换工具时负向词要重新测,不能直接照搬。
3.3 ReAct 提示的四段式结构与一个可抄的模板
ReAct 的核心是「推理 + 行动」交替:模型先写一段思考说明下一步为什么这么做,再选择一个动作去执行,拿到观察结果后继续下一轮。它适合需要多步检索、多工具调用、或者需要展示中间过程的任务,比如资料汇总、故障排查、多条件筛选。单步问答用 ReAct 只会让输出变长,不会变准。
我把 ReAct 提示固定成四段:角色与目标、可用动作清单、思考-行动-观察循环规则、终止条件。四段缺一不可,缺动作清单模型会自己编工具,缺终止条件模型会无限循环,缺循环规则模型会一次性把答案写完、不走中间步骤。
# react_prompt.py REACT_TEMPLATE = """你是一个{role}。 目标:{goal} 可用动作(每次只能选一个): {actions} 执行规则: 1. 每轮先输出“思考:”说明下一步理由,不超过两句话。 2. 再输出“动作:”加动作名和参数。 3. 收到“观察:”后进入下一轮,最多{n}轮。 4. 信息足够时输出“结论:”并停止,不要再调用动作。 终止条件:{stop_condition} """ prompt = REACT_TEMPLATE.format( role="设备故障排查助手", goal="根据现象定位故障模块,给出可执行的检查顺序", actions="\n".join([ "- check_power:检查供电与指示灯状态", "- read_log:读取最近 50 条错误日志", "- test_module:对指定模块做单点测试", ]), n=6, stop_condition="定位到具体模块,或连续两轮观察无新增信息", ) print(prompt)这个模板里,actions用列表展开而不是写成一整段,是为了让模型把每个动作当成独立可选对象,减少「自己发明工具」的概率。n=6是轮数上限,实测超过 6 轮之后模型容易开始重复已执行的动作;stop_condition必须写成可判断的条件,不能写「找到答案为止」这种模糊表述。
ReAct 最容易踩的坑是把「思考」写成长篇解释。规则里限定「不超过两句话」很关键,思考一长,模型会把本该放在动作里的信息提前说完,后面就不执行动作了。另一个坑是动作参数没定义清楚,比如test_module不说测哪个模块,模型会传一个不存在的参数名。动作清单里每个动作后面跟一句参数说明,能省掉大半解析错误。
4. Midjourney 与 Leonardo:AI 艺术提示的参数化写法
AI 艺术提示和对话提示最大的区别是:它不只靠词,还靠参数。同一句描述,画幅、风格化强度、随机度、种子不同,出来的图差一个量级。原书用 Midjourney 和 Leonardo 两个工具做示例,这两个工具的提示结构刚好代表两种流派:Midjourney 是「一行流 + 尾缀参数」,Leonardo 是「分栏表单 + 独立负向框」。把两种结构都摸一遍,换到别的工具也能快速映射。
4.1 Midjourney 提示的语序与权重槽位
Midjourney 的提示是一行文本,参数用--接在末尾。语序上,越靠前的词权重越高,所以主体必须放在最前面,风格、光照、镜头依次往后,参数永远放最后。很多人把--ar 16:9写在开头,结果参数被当成普通文本解析,画幅根本没生效。
# mj_builder.py def mj_prompt(subject, scene, style, light, params): # 语序固定:主体 → 场景 → 风格 → 光照 → 参数 body = ", ".join([subject, scene, style, light]) return f"{body} {params}" prompt = mj_prompt( subject="a lone astronaut", scene="standing in a flooded library, floating books", style="analog film photography, muted teal palette", light="soft window light from the left", params="--ar 3:2 --stylize 250 --chaos 10 --no text, watermark --seed 8842", ) print(prompt)参数说明直接决定复现能力。--ar 3:2定画幅,横向场景别用竖幅;--stylize 250是风格化强度,数值越高画面越「好看」但越偏离提示,做概念图我一般放在 100 到 300 之间;--chaos 10控制多样性,做变体探索时调到 20 到 40,做定稿复现时压到 0 到 10;--no后面跟负向词;--seed是复现的关键,同一个种子加同一句提示,输出才基本可控。
--seed这个参数值得单独说。它不是「锁定画面」,而是锁定噪声起点,提示改了一个词,画面还是会变。所以复现实验的正确做法是:种子固定、提示固定、参数固定,一次只改一个变量。我见过有人改了提示又换种子,然后说「这个方法不稳定」,其实是两个变量同时在动。
4.2 Leonardo 的提示面板与风格参考
Leonardo 的结构更像表单,Prompt 和 Negative Prompt 分栏,下面还有模型、引导强度、步数、种子、参考图强度。它的好处是负向词和正向词互不干扰,坏处是参数之间会互相影响,调一个要回头看另一个。
| 参数 | 作用 | 常用区间 | 调高后的表现 |
|---|---|---|---|
| Guidance Scale | 提示贴合度 | 7 到 12 | 更贴提示,但画面僵硬 |
| Steps | 采样步数 | 20 到 40 | 细节增加,边际收益递减 |
| Seed | 噪声起点 | 任意整数 | 用于复现,不改变语义 |
| Image Guidance | 参考图影响 | 0.3 到 0.7 | 更接近参考图,原创性下降 |
Guidance Scale 是最容易调过头的参数。低于 7 画面自由发挥,高于 15 会出现色彩断层和构图僵化。我一般从 9 开始试,画面不够贴提示就加到 11,画面太死板就降到 8。Steps 超过 40 之后提升非常有限,除非做印刷级大图,否则没必要拉到 60 以上。
Leonardo 的 Negative Prompt 框比 Midjourney 的--no更「重」,同样数量的负向词,在 Leonardo 里对画面的压制更明显。所以从 Midjourney 迁移过来时,负向词数量要减半,先留文字水印和构图干扰两类,跑一批看效果再决定加不加。
4.3 语言与意象:把抽象词换成可渲染的视觉名词
原书有一节专讲提示里的语言和意象,核心观点很直接:模型不认识「高级感」,只认识能对应到像素的模式。你写「未来感」,模型只能猜;你写「brushed aluminum panels with embedded LED strips」,模型就有东西可画。这个替换动作是 AI 艺术提示里性价比最高的一步。
| 抽象表达 | 可渲染替换 | 替换理由 |
|---|---|---|
| 未来感 | brushed aluminum, embedded LED strips, matte black casing | 材质和光源可直接生成 |
| 温馨 | warm 2700K lamp light, linen texture, soft shadows | 色温和材质有明确指向 |
| 高级 | low saturation, large negative space, single light source | 用构图和色彩描述替代评价 |
| 自然 | overcast daylight, moss-covered stone, shallow stream | 环境元素具体可辨 |
| 动感 | motion blur on limbs, low angle, diagonal composition | 用摄影语言表达速度 |
替换的时候注意一点:不要把所有抽象词一次换完。一次换一个槽位,跑三到五张,确认这个替换确实带来了你想要的变化,再换下一个。一次全换,画面变好看了你也不知道是哪个词起的作用,下次想复用都找不到依据。
还有一个常被忽略的细节是语言本身。同一句提示用英文写和用中文写,在 Midjourney 上的效果通常不一样,因为它的训练语料里英文描述占比更高。非英文母语者写英文提示时容易堆形容词,反而丢掉了具体的名词。我的做法是先用中文把画面拆成「物体、材质、光源、视角」四列,再逐列翻译成英文名词短语,最后按语序拼起来。这个流程比直接憋一句英文长句稳定得多。
5. 迭代式细化的排查清单:五类翻车与对应改法
迭代式细化不是「多跑几次」,而是每轮只改一个变量、记录结果、判断改动是否有效。原书把这一步放在中后段是有道理的:前面骨架没搭好,迭代就是在垃圾堆里挑垃圾。下面五类问题是我在实际出图和对话任务里遇到频率最高的,每条按「现象—原因—解决」拆开写,方便直接对照排查。
5.1 现象:同一提示每次出图差异大,没法选
原因通常有三个:种子没固定、--chaos或随机度参数偏高、提示本身太短导致模型自由补全。先看参数,再看提示长度。Midjourney 里没写--seed就是每次随机,Leonardo 里种子留空同理。提示少于 15 个词时,模型的可发挥空间太大,画面主体都可能漂移。
解决顺序是:先固定种子跑三次,确认差异是否收敛;如果还漂,把--chaos降到 10 以下;最后检查提示,给主体补一个状态限定和一个环境限定。三步走完还漂,说明提示里有互相冲突的修饰符,回到第 2 章做槽位拆分。
5.2 现象:负提示写了,但画面里还是有文字和水印
原因分工具看。Midjourney 的--no text对大面积文字有效,对小字水印效果有限;负向词如果和正向词语义重叠,会被正向权重压过去;还有一种情况是负向词写在了参数区之外,被当成普通描述解析了。
解决办法是先确认语法位置,--no必须在所有参数区里、提示正文之后;然后把负向词精简到最必要的三个,去掉同义词堆叠;最后提高正向提示里「干净背景」类固化剂的权重,用正向描述挤压文字出现的空间。纯靠负向词堵,不如正向词引导。
5.3 现象:出图糊、构图散、主体不突出
原因多半是修饰符冲突或镜头槽位缺失。风格写两个、光照写三个方向、镜头又写广角又写微距,模型只能取平均,结果就是什么都有一点、什么都不突出。另一个常见原因是主体槽位里塞了太多状态,模型分不清哪个是重点。
解决方法是做减法:风格只留一个,光照只留一个主光源,镜头只留一个景别。主体状态从三个减到一个,跑一批看主体是否立住,再逐个加回。构图散的时候优先补wide shot或medium shot这类景别词,比加「high quality」有用得多。
5.4 现象:ChatGPT 多轮对话后越聊越跑偏
原因是上下文累积把早期约束冲淡了。对话到第五六轮,模型对第一条消息里的格式要求、语气要求已经不再敏感,开始按最近几轮的内容自由发挥。另一种情况是你自己在后续消息里引入了新约束,和早期约束矛盾,模型选了新的那个。
解决办法有两个:每三到五轮做一次约束复述,把核心要求用一两句话重贴一遍;或者开新会话,把已确认的结论压缩成一段摘要带过去。我一般用后者,因为长会话里的无效信息太多,摘要反而更干净。摘要里只保留任务目标、已确认结论、未解决问题三项,其他全丢。
5.5 现象:提示从 Midjourney 迁到 Leonardo 就失效
原因是两个工具的语法和权重逻辑不同。Midjourney 的参数是尾缀,Leonardo 是表单分栏;Midjourney 的--no权重偏弱,Leonardo 的负向框权重偏强;同一组修饰符在两个工具里的解析顺序也不一样。
解决办法是维护两层提示:中性层写主体、修饰符、固化剂,不带任何工具语法;适配层按工具加参数和负向词。迁移时只改适配层,中性层不动。这样一套审美描述可以在多个工具之间复用,换平台只需要重测参数区间,不用重写整句提示。
6. 对话式提示工程与验收:把提示当资产管起来
ChatGPT 这类对话模型的提示工程,和文生图最大的区别是它有「记忆」——多轮对话里,前面说过的约束会持续影响后面。这既是优势也是负担。优势是你可以逐步补充细节,不用一次写完整;负担是约束会漂移,聊到后面模型已经不记得第一条要求了。原书把对话式提示单独成章,讲的其实就是怎么在多轮里保持约束不丢。
我的做法是把每轮对话当成一次小版本发布。开始前先写一段「任务卡」,包含目标、输出格式、禁止事项三行;每轮结束后检查输出是否还符合任务卡;偏离了就贴回任务卡重述,不偏离就继续。任务卡本身也会迭代,但每次改动都记版本号。
# prompt_regression.py # 每次调整提示后跑一遍回归,记录版本、参数、评分和问题 import csv, datetime def log_run(version, prompt, params, score, note): with open("prompt_runs.csv", "a", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow([ datetime.date.today(), version, prompt, params, score, note ]) # 示例:v03 加了一条“只输出三条”的约束,人工评分 4,备注发现新问题 log_run( version="v03", prompt="为便携投影仪写三条卖点,每条不超过20字", params="temperature=0.7, max_tokens=200", score=4, note="第三条偏长,下版把字数约束提前", )这个脚本不复杂,价值在score和note两列。评分用 1 到 5 分,5 分是可直接交付,3 分是能看但要改,1 分是跑偏。备注只写具体问题,不写「感觉不太好」这种没法行动的话。跑上二十条之后,你回看 CSV 就能发现哪类改动真正提升了分数,哪类改动只是心理安慰。
版本管理上,我遵循一条规则:提示改动必须能回答「改哪个槽位、预期改善什么、怎么判断有效」。答不上来就不改。这条规则是从一次连续改七版、结果越改越差的经历里总结出来的,当时没有记录,最后连最初那版长什么样都找不回来了,只能从头重写。
验收环节我一般看三个指标:格式合规率、人工评分均值、复现一致性。格式合规率是输出符合任务卡的比例,低于 90% 就回去加约束;人工评分均值低于 3.5 就回到骨架层检查主体和修饰符;复现一致性是同提示同参数跑三次的差异度,差异大就检查种子和随机参数。三个指标都过线,这版提示才进模板库。
从那以后我每次改提示都强制走一遍「任务卡—单变量改动—CSV 记录—三项验收」,哪怕只改一个词也记一笔。这套流程看着笨,但它让我不用靠记忆去复原三个月前那张图是怎么出来的。希望帮到你。
本文还有配套的精品资源,点击获取