首页 / 资讯中心 / 文章详情

提示词工程实战:从思维链到DALL·E调图与自定义GPT自动化

提示词工程实战:从思维链到DALL·E调图与自定义GPT自动化 ★ FEATURED ARTICLE
开年以来我一直在折腾提示词这套东西从最基础的“问一句答一句”到后来给ChatGPT设角色、给DALL·E排画面再到现在自己搭了几个自定义GPT跑日常流程中间踩的坑比写出来的教程多得多。这一篇是系列的第二部分第一篇聊了提示词的基本结构和一些通用原则这篇就直接上手讲我在创意、工作、自动化三个场景里怎么把提示词用到能“顶一个人用”的程度。先说清楚一件事这篇不是给你背公式的是给你拆方案的每个套路我都会把为什么这么做讲透你拿去改一改就能用。很多人卡在一个误区里觉得提示词就是“把需求说清楚”。真不是。提示词的背后是你对模型工作方式的理解——它怎么拆解你的指令、怎么在上下文里找线索、怎么在概率空间里选输出。理解了这个你才写得出稳定的提示词。这篇的内容分五块先说提示词的进阶技巧再用大量实战案例拆创意和工作场景然后专门讲DALL·E的图像提示词怎么调接着是自定义GPT的搭建思路最后把自动化落地讲透。适合谁看已经用过ChatGPT但总觉得“答非所问”的人想用AI做图但画出来总差口气的人以及想把手头重复活儿交给AI跑的人。1. 提示词工程进阶从“会问”到“会设计”1.1 思维链让模型把推理过程写出来答案质量翻倍先说最值钱的一个技巧思维链Chain-of-Thought简称CoT。它的核心做法特别简单就是引导模型把推理步骤一步步写出来再给结论。为什么有效因为模型在生成文本时是逐字预测的如果它先把“已知条件、中间推导、结论”完整写一遍每一步的预测都以更充分的上下文为基础最终结果就比直接蹦结论稳定得多。我举个例子。你直接问“一个项目预算还剩15000外包费用占60%而外包里人工占70%问我还有多少预算能花在非人工外包上”模型可能直接给个15000*0.46000之类的答案但你不确定它算得对不对。改成“请分步计算先算出外包费用再算出外包中的人工费用最后从总预算中依次扣除给出剩余可用的非人工部分。”它就会老老实实列算式。实际操作中我习惯在提示词末尾加一句固定话术“请给出思考过程然后输出最终答案。”就这么一句话在很多逻辑推理、数据分析类任务上准确率提升非常明显。注意这只对能支持长上下文的模型有效——思考过程会占用输出token如果你的API设置了max_tokens太小可能推理写到一半就断了。我一般把max_tokens从默认值往上调30%左右给思考留出空间。另一个变体是“先自问自答”。比如让模型写产品方案你先要求它“列出这个方案必须回答的五个关键问题然后对每个问题给出你的答案”。这本质上是在强制模型做问题拆解效果比我直接丢一个笼统需求好十倍。你与其问“写一份产品方案”不如问“写方案之前先确认目标用户、核心场景、竞品差异、成本结构、上线路径这五件事然后围绕结论展开”。这是把人类的项目管理思维翻译成了提示词语法。1.2 结构化输出不要自由发挥给我按模板填第二个进阶技巧是给模型规定输出的结构。这个我强调过很多次因为它能直接决定工作流能不能自动化。指令不要写“帮我整理会议要点”而是写死格式请整理会议记录输出以下结构 - 会议主题 - 关键结论最多3条 - 待办事项含负责人与截止时间 - 风险与阻塞这种做法有几个好处。第一输出可解析如果你在跑自动化流程可以用脚本直接切分这些固定标记不需要大模型帮你做二次抽取。第二模型填模板时的幻觉明显减少因为格式本身在暗示“每个字段都要有依据”。第三后续的人工阅读成本大幅降低你扫一眼就知道重点在哪。还有一个更硬核的玩法直接用JSON结构约束输出。我把prompt写成“请以JSON格式返回字段包括name, summary, risk_level, suggestions”然后用代码去解析。这对做自动化至关重要——你不需要在几百字的散文里找结论直接读response[summary]就行。注意要在提示词里给一个schema示例模型对“照着填”这事比“自由发挥”靠谱得多。1.3 Few-shot示范给案例比给规则更管用如果规则说不清楚那就给例子。这招在文案风格模仿、内容分类、信息抽取这些任务上特别神效。模型看三五个输入输出对就能抓住你想要的“感觉”比你在提示词里描述“要有幽默感、逻辑严密、语言精炼”有效得多。比如我要让AI帮我改写一段产品介绍我不描述风格我直接给两段“原文—改写后”的对照样本并且注明改写思路。模型会自己归纳出原来你是想要把功能语言转成用户收益语言把被动句式转成行动指令。给Few-shot的时候有讲究案例要覆盖边界情况不要三个例子都是同一类型案例的顺序一般从简单到复杂每个例子后面最好附一句简短说明告诉模型“注意这里改了什么”。我还常用一个“负例”技巧就是给一个反例并标注差在哪里。比如分类任务里给一条被错误分类的样本写明“这段文案虽然提到优惠但核心是品牌宣传应归为品牌类”。模型学会排除干扰项之后分类准确率会再上一个台阶。这套方法论本质上就是在给模型搭建一个微型的“判别标准库”。2. 创意场景实战从“挤牙膏”到“灵感不断”2.1 创意发散的两种模式乱枪打鸟和精准聚焦创意类任务最容易翻车因为“创意”这个东西没法标准化。但提示词可以分场景灵活切换。我平时会把创意生成拆成两种模式发散模式和聚焦模式。发散模式用于选题、起名、找角度。提示词框架是“请分享20个……方向不要评判不要自我设限覆盖不同的切入视角”。为什么要要20个因为模型在前十个答案里通常会给出最俗套、最大路货的选项要逼它往后扩展才能掏到稍微新颖的东西。你也可以加一个限制“其中5个必须是看起来不那么稳但值得试的方向”模型真的会给你一些反直觉的点子。聚焦模式则是在已经定了方向之后做的精修。比如已经选定“以失重状态比喻职场新人”这个主题那就需要提示词沿着一条线做深挖“围绕这个主题给我三种展开结构对比式、递进式、冲突颠覆式。每种结构配一个开头示例。”这时候绝不要写“给我一些灵感”这种模糊指令要写“在这个方向下换三种不同的起承转合方式”。2.2 写作与文案提示词要当编辑用别当打字员用很多人都让ChatGPT直接写文章写完发现空话连篇。我后来总结出一个组合套路先让AI列提纲我审再让AI按提纲逐段写我改最后让AI检查语气和节奏我定稿。这不是多跑几轮而已而是每一轮都应该换不同的提示词策略。列提纲阶段我的提示词模板是“基于主题X受众是Y目标是Z列出文章大纲。每个章节需要说明这个部分解决读者的什么问题预计篇幅多少是否可以有案例或数据支撑。”这个提示词把“内容规划”和“写作执行”分开了AI给出的提纲很干净你可以直接在上面做增删。逐段写的时候注意别一口气让它写完整个文章。要求它“一次只写一个章节的初稿控制在XX字结尾留一个过渡句”。这样写出来的段落结构完整不会全部飘着。写完初稿我会追加一条“请去掉所有‘总的来说’‘众所周知’式开头把被动句改成主动句删掉形容词堆砌。”相当于让AI做一次自我编辑。这套流程走下来最终文本的质量非常接近一个成熟写作者的初稿水平后面人工只需要微调。2.3 头脑风暴的进阶玩法反向提问与极端假设如果你想做一次真正的头脑风暴别问“有什么好点子”试试反向提示词。比如你要给一个工具类产品做推广创意与其问“怎么推广”不如问“这个产品最不适合哪些用户为什么这些原因反过来是不是一种新的定位”模型给出的“不适合人群”分析经常能反推出一个独特的切入角度。另一种是极端假设法。提示词写成“假设这个产品没有预算做任何投放、没有KOL可用、只有一段文字能在官网首页展示你只能写一段话这段话要怎么写”这种限制条件会把模型逼到策略的根上——去打磨核心主张而不是铺张浪费地罗列渠道。这招在广告文案、slogan创作里特别好使。记住一个原则限制不是枷锁限制是方向。3. DALL·E 图像提示词把脑袋里的画面“翻译”给模型3.1 图像提示词的五要素画什么、在哪、什么风格、怎么构图、什么气氛很多人在DALL·E上画图写的是“一个漂亮的风景”画出来的东西基本上没法看。问题出在提示词的颗粒度太粗。我总结了一套稳定的图像提示词结构就五个要素主体画面里最关键的对象表述要具体比如“一只戴着针织帽的柯基犬”而不是“一只狗”。环境场景在哪背景是什么。比如“雨后的街道霓虹灯倒映在积水里”就和“街道”有本质区别。风格艺术风格或媒介语言。比如“厚涂油画”“赛博朋克插画风格”“极简线条白描”风格词能显著改变成品的质感。构图视角、景别、主体位置。比如“特写”“低角度仰拍”“主体居左留白使用三分法构图”。气氛光线和色调。比如“黄昏暖金色逆光”“冷蓝调月光、薄雾”“高对比度戏剧性打光”。我通常会把这五项按顺序串成一个长句或几个短句比如一只戴着红色针织帽的柯基犬站在雨后石板路上背景是模糊的霓虹灯招牌赛博朋克插画风格低角度近景霓虹灯光在积水中的倒影暖冷色对比高细节画面有电影感这套结构在创意生成和配图类任务上成功率很高。核心原因是DALL·E对“具象名词场景描述风格限定”的组合最敏感你给它笼统的情绪词比如“孤独”“喜悦”它只能猜很容易跑偏。3.2 风格控制的细节参考风格不如说清媒介让AI出图最常见的坑是“风格飘忽”。同样是“赛博朋克”每个模型画出来的东西都不一样。想稳住风格与其用空泛的风格名词不如用具体的“媒介材质渲染方式”。比如“日式动画背景画”、“80年代复古海报网点印刷”、“三维渲染光滑塑料质感”这类描述会把模型锁定在一个更明确的视觉坐标系里。还有一个很技巧性的做法叠加“艺术史关键词”。比如在提示词里加“新艺术运动风格”“包豪斯极简”“浮世绘构图”模型对这些风格标签的语料覆盖非常充足风格输出会变得很稳定。这个手法适合做系列图就像你要做一组统一风格的配图保证每张图的风格关键词完全一致成图的气质就会连贯。3.3 迭代优化别重画先分析画面的偏差DALL·E最让我满意的特性是可以通过修改提示词做迭代。很多人画废了就重新生成其实更好的做法是盯着上一张图判断“哪里不对”把这个判断精确写成新的提示词后修正。比如画面主体位置不对你就加“主体居中构图平衡”背景太杂就写“背景简化纯色墙面”感觉不够有冲击力就写“加强透视纵深广角镜头效果”。每次只改一到两个变量别一次改得面目全非。搞不清楚到底是哪一项导致偏差时保留其他描述只替换一个要素测试就能定位到问题。这个方法跟调试代码时的二分排查一模一样。更进阶一点我会为图中的细节单独追加“负面排除词”虽然DALL·E没有真正意义上的negative prompt但你可以在句末追加“不要出现文字、不要出现多余手指、不要饱和度过高”它确实能减少常见翻车情况。实测下来对文字元素和复杂结构的控制有明显改善。4. 自定义 GPT把方法论固化成交互工具4.1 自定义GPT到底解决了什么问题自定义GPT不是简单改个名字或人设。它的核心价值在于把一套你已经跑通的提示词流程配置成固定可用的工具让团队里任何人、未来的你都不用重新摸索。举个例子我在某公司做项目周报总结时之前每次都要复制一大段提示词模板再把当周的原始记录贴进去。现在我把这套流程封装成一个周报GPT给它写死指令再上传几份标准格式示例作为参考文件后面只需要投喂原始素材它自己会按标准输出。自定义GPT的配置界面里最重要的是两个区块Instructions和Knowledge。Instructions就是你平时写的system prompt这里要想清楚“你要它固定扮演什么角色、每次做什么处理、输出格式是什么、边界在哪里”。Knowledge则是附加的知识文件可以传PDF、TXT、CSV、JSON模型会按需检索。注意它不会像数据库一样“全量学习”你的文件它只会在相关的时候调用相关片段所以文件本身要做好结构化和索引比如用小标题分章节用表格放关键数据。4.2 搭建一个“周报GPT”的完整流程我拆解一个我实际在用的配置你可以照着改。首先定目标和受众“这个GPT用于将零散的项目记录整理成周报受众是项目对接人不关心过程细节只看关键进展、结果数据和风险。”这段描述我会写进Instructions让模型自己记住判断标准。Instructions我通常分四段写第一段定义角色和能力范围第二段写输入处理流程比如“先提取输入中的条目和时间点判断类型再做归类”第三段写输出模板包括固定章节和字数要求第四段写“哪些事情不做”比如不编造未提及的数据、不把推测当事实问清楚再说。这种做法很关键因为自定义GPT会被同事或未来的自己反复使用边界不清楚就会“好心办坏事”。然后加Knowledge文件。我传一份“典型周报示例三则”一份“项目代号与当前状态映射表”再加一份“周报禁忌清单”比如“不要写模糊词不要隐藏坏消息”。有了这些参考模型的输出不用每次手动指导它会照着示例格式和你的偏好落地。4.3 用自定义GPT固化“提示词资产”复用比生成更重要搭建自定义GPT真正的价值点是你可以把自己的提示词经验资产化。每次调出来一套好用的Prompt不要让它躺在聊天记录里而是去建一个GPT把套路固化进去。比如我做“竞品分析”时调出了一套结构市场位置、功能对比、差异化打法、威胁点就直接建一个竞品分析GPT后面所有同类任务都走这个入口。随着建得多了你手里就有一套“提示词工具库”工作是叠加式的。有些场景不一定要给GPT配文件直接写一套极简Instructions就够了。核心判断标准是这个GPT是否承载了重复执行、需要多人复用、格式有固定模板这三个属性之一。如果只是临时聊个天没必要建GPT。另外注意自定义GPT之间还可以互相配合比如输出可以被另一个GPT当作输入这意味着你可以把复杂的处理链路拆成几个专精的小GPT串起来。5. 自动化落地提示词排队跑起来5.1 从聊天框到API提示词自动化的第一个台阶要说“自动化”第一步是把提示词从聊天界面搬到API调用里。直接调用模型接口时你自己控制请求内容、参数和结果处理这才能真正把AI嵌入到业务流里。很多人觉得API很复杂其实一个最基础的调用就是提交一个消息列表角色包括system、user、assistant三种。用一段Python示例说明import requests url https://api.example.com/v1/chat/completions headers {Authorization: Bearer YOUR_API_KEY} payload { model: gpt-4o, messages: [ {role: system, content: 你是运营助理负责把原始素材整理成三条微博文案每条不超过80字语气轻松但不轻浮。}, {role: user, content: 今天是版本发布日新功能是支持语音输入主要面向通勤场景。} ], temperature: 0.7, max_tokens: 500 } response requests.post(url, jsonpayload, headersheaders) result response.json()[choices][0][message][content] print(result)这段代码里最值得琢磨的是system消息和user消息的拆分。system消息是你设定的固定指令user消息是每次变化的输入数据。这种“固定指令动态输入”的结构就是所有自动化流程的基础模型。你在界面上配置好的自定义GPT本质上也可以被API以类似的方式调用只要在请求时带上对应的配置标识即可。5.2 把提示词模板化变量替换是自动化的关键直接在代码里写死提示词没问题但要想做到“输入数据自动变、提示词不用动”就需要做模板化。用普通字符串拼接就行比如把上面的user消息改成dynamic_content f今天是{product_name}发布日新功能是{feature_desc}主要面向{user_scene}。更好一点的做法是把提示词模板单独存成一个文件比如一个JSON文件里存system、user的模板配合占位符。这样运营的同学就能直接改JSON里的提示词文案完全不用碰代码。工具链上Pandas处理表格数据、requests调API、json规范输出这三个组件能覆盖我日常八成以上的自动化需求。我在某团队做过一个自动化摘要机器人的demo它定时接收渠道推送的链接列表每篇文章抓取正文后截断到合理长度拼接成批量请求并发给模型接口要求返回“核心观点行动建议”的JSON结构最后把所有输出汇总到一张总表。整个过程的核心逻辑其实就是“模板提示词批量调度结构化解析”没有太高深的东西但确实把每周几十篇文章的人工阅读压缩成了扫表确认。5.3 流程设计自动化的成败在提示词之外的边界处理运行中的提示词和手写提示词有个显著不同自动化流程里没有“人在中间纠偏”的环节所以必须花钱花心思处理边界。首先是输入边界——从外部拿来的文本可能超长需要在拼接请求之前做长度截断否则请求会报错或截掉关键内容。其次是输出边界——模型可能返回格式不正确的JSON必须写异常捕获和重试机制。我给每个自动化任务都附加一条固定规则“如果输出无法解析请返回错误码ERR_001并写下原因不要生成部分结果。”配合代码里的重试逻辑整体稳定性明显提升。还有一个经验自动化流程里别用高temperature值。人机对话时0.8的随机性能带来惊喜但自动化流程里我统一调成0.2到0.4宁可保守一点也要保证可预测性。5.4 与外部工具联动提示词只负责“理解”工具负责“行动”提示词最强的状态不是自己直接输出最终成果而是和外部工具配合。比如AI负责从邮件里抽取任务清单输出JSON然后由脚本自动写入待办系统AI负责生成SQL查询语句后续连接数据库执行而不是只给一段假数据AI负责把用户反馈归类然后路由到不同的工单队列。这种架构下提示词变成了一个强大的“语义理解模块”而不是全知全能的执行器。你在设计提示词时一定要明确这条边界模型只负责把模糊信息翻译成结构化结果一切带有确定性逻辑的操作交给代码。我见过很多失败的自动化项目就是把“让AI直出最终交付物”想得太容易结果模型产出不可控整体流程反而比人工更费劲。6. 常见问题与排查技巧实录6.1 高频翻车现场速查表我把自己和工作圈子里跑提示词时遇到过的问题整理了一张表按“现象 — 原因 — 解法”的格式记录。现象常见原因解决思路答非所问输出内容与指令无关指令里堆了太多目标模型丢失主任务拆成两个请求或者把主任务写进system加粗强调格式乱不按模板输出模板只给了描述没给示例在提示词里附一个空模板示例要求严格对照填写逻辑不严谨、胡说八道没有要求引用上下文或证据强制模型“只基于以上对话内容回答”并标明推断语言风格失控一会正式一会口语system消息和示意案例风格不一致统一所有示例与指令的风格基调长文本写一半就断max_tokens设置太小调大max_tokens或要求分章节生成图片元素多余或构图歪主体、构图描述不明确加“主体居中”“移除多余元素”等控制性描述批量任务中出现个别坏输出温度参数过高或者输入内容太杂降低temperature增加输入清洗与重试逻辑这张表并不是标准答案但对新手排查很有用。遇到异常输出时我的排查顺序是先看输入是否干净再看system指令有没有冲突最后检查输出参数和格式要求。大多数问题都不在模型“笨”而在提示词设计与调用方式。6.2 排查方法论定位问题是“提示词”还是“参数”有一次我在自动化流程里发现模型频繁把“金额单位”搞错明明输入是万元输出却写成了元。我一开始以为是提示词不够清楚花了很多时间加长描述效果甚微。后来才发现是我在上一步用正则抽取金额时没保留单位信息模型从文本里根本看不到“万”字。这个问题压根不在提示词层面。这个经历提醒我排查AI问题时要把“输入数据链路”“提示词逻辑”“参数配置”看作三个独立的层面逐个隔离测试。现在我做AI功能联调时会特意保存每一轮的原始输入、完整提示词、输出原文。哪一步出问题就直接回放不必重跑整个流程。而且必须记住模型输出本身就是一种“程序状态”调试这种状态时急躁是大忌改一个变量测一次往往比一次性改掉五个点更高效。实操中积累log的习惯能帮你省掉大量的重复沟通时间。6.3 稳定复现的三个细节一致性、边界、验证要让我这套方法在你那里也能复现有三个细节值得反复核对。一致性的意思是你的system指令、示例、约束条件要指向同一个标准不要互相打脸。你在system里写“语言简洁”示例里却全是长难句模型最后一定会跑偏。边界是指你要明说什么“不可以”。我见过最好的提示词往往有一半篇幅在说“不要做”因为模型更擅长接受否定约束而不是从你模糊的正面描述里推敲。最后是验证。别把第一次输出当最终输出哪怕感觉不错也可以追问一句“请检查以上回答有没有不符合事实逻辑或与指令冲突的地方”。这招非常有用等于用模型自己做了一遍质检能捞回来不少小错误。在自动化流程里给每次结果加一条“置信度自评”要求模型在输出末尾附上“我对以上内容的确定程度及不确定之处”会让你对整套系统的稳定性心里有数。我个人现在写任何一套新提示词的第一版都不会追求完美而是先用最朴素的描述跑通主流程再根据输出反向精修。这个习惯是从多次失败里逼出来的——你永远不知道模型对你脑海里的那个标准理解了多少只有看了它第一次的输出你才知道提示词里缺了什么没交代。提示词这个东西不是写给模型的文案是给你自己和模型之间搭的一座桥桥的坚固程度取决于你对两侧的了解有多深。希望这篇能把这座桥的跨度再给你拉远一点。
阅读完成 · 觉得有帮助?
咨询建站