提示词工程实战:10个即用技巧与可复制模板
我在从事提示词工程工作已经有相当的年头了, 在这段日子里, 我积攒下了一个非常深刻的体会, 那就是: 网络上关于技巧的讲解类文章可以说是非常多的, 但是真正能够被直接提取出来就拿来运用, 并且在运用之后马上就能够看到清晰效果的案例却是少之又少的。许多教程它们通常会教你去背记一大堆所谓的咒语式的文本, 可是这些内容一旦遭遇了不同的应用场景, 就会立刻失灵而不管用另外还有一种情况是, 部分教程仅仅只提供了基础概念, 却不提供具体的使用模板, 这导致学习者在阅读完毕之后, 依然没有办法搞清楚在编写内容的第一行应该具体输入什么字符。所以在这次的内容里, 我把我自己平时用得最多的十个提示词技巧都整理出来了, 每一个技巧都附带着可以直接复制使用的模板, 这些模板覆盖了需求分析、内容生成、数据整理以及代码调试这些出现频率很高的场景, 无论是刚开始接触人工智能对话的新手用户, 还是已经在实际使用但总是觉得输出结果不太稳定的进阶用户, 都能从中受益。这篇文章里面的每一个技巧都是来自我自己实际执行过的案例, 其中有一些甚至是花费了巨大的代价和教训之后才总结出来的结论。我将直截了当地向你说明在操作步骤中哪些环节是容易发生错误的, 相关参数应该如何去进行调整, 以及具体的提示词应当怎样编写才能保证模型能够持续稳定地输出结果, 这里没有任何多余的转弯抹角的说法。1. 咱们先把问题搞清楚, 提示词工程这一事, 究竟是在调节个什么? 首先得看看第一点一, 为什么你自己的提示文字, 总是不能听从你的指挥。很多用户把提示词工程误解成一个事情, 他们以为就是把句子说得更漂亮一些。这些人觉得说话要客气一点, 描述要详细一点, 人工智能就会老老实实地干活。实际情况并不是这样的。我见过不少人花了半个小时, 去写一段看起来很漂亮的提示文本。但是他们发现模型给出的回答还是完全不对路。原因是很简单的。提示词根本不是什么修辞练习。它实际上是在给模型划定一个明确的信息范围边界。打个比方来说, 提示词工程这回事, 就好比是给新加入团队的实习生派发了一项具体的工作, 倘若仅仅是说出帮忙把那份资料做一个简单的整理, 那么对方的脑海里面大概率会产生疑惑, 完全不清楚究竟需要输出的是概括性的摘要还是结构化的表格亦或是脉络清晰的思维导图, 同时也拿不准哪些内容属于应当优先突出的关键信息, 反之如果发出指令的方式变成指定将那份资料的第三章的内容依照时间的先后顺序进行梳理并制作成对应的表格形式并且在操作的过程中只筛选出具有核心价值的数据部分最后再补充上相应的总结性论断, 那么执行者便能够非常快速地明白意图并开始着手去完成任务。模型也是这个样子, 它并不会去探测你的心思, 你提供给它的信息的细密程度会直接决定最后输出的质量水平。因此, 所谓提示词工程最为核心的操作行为, 实际上仅仅包含三项内容, 也就是说, 你要去明确最终的目标方向, 要对那些无关紧要的噪声信息进行压缩处理以剔除干扰, 还要设定好输出的具体格式要求。而在此之后所有出现的那些各种各样的技巧方法, 从根本本质上来讲, 全都是围绕这上面提到的这三件具体事情来开展强化工作的。1.关于上下文工程, 也就是提示词为什么会失效, 这里面有一个真正的原因。在最近的行业趋势里面, 有一种说法开始流行了起来, 这种说法认为上下文工程处于提示词工程的上位概念位置, 对于这一点我是持比较认可的态度的, 因为在实际操作的层面能够被发觉的情况是, 存在相当数量的提示词其编写质量方面并没有出现明显不足的问题, 然而尽管如此大语言模型的输出结果依然呈现出一种杂乱无章的状态, 通过深入分析可以发现这个问题的根源在于给定的上下文信息过长或者是内容过于繁杂混乱, 导致模型在处理时被大量的无关信息所吸引进而产生了严重的干扰效应。这是一个在很多地方都能看见的平常现象: 当你在对话框里面连续聊了好一阵子无关紧要的轻松话题, 随后突然给模型发出一个明确指令, 要求它依据此前所有的对话内容去撰写一封正式邮件的时候, 该模型很有可能会产生理解偏差把之前那些纯粹用于闲聊、并无实际任务意义的语句也一并当作需要执行操作的指令来处理。同样的情况也存在于另一种情形中, 例如你将一长篇的详细资料直接粘贴到输入区域, 但是并没有向模型明确指出哪几段内容属于至关重要的核心信息点, 导致模型在提取关键数据时失去了准确的方向感, 从而出现抓取错误信息的问题。在这种特定的情境下, 造成操作失败的根源并不是提示词的构建方式存在根本性错误, 而恰恰是因为操作人员提供给模型处理所使用的“上下文窗口”承载空间之中, 容纳了过多毫无用处的冗余信息和无效文本数据。所以, 大家真正需要做好的提示词工程工作, 第一步是要学会怎么去管理上下文环境。对于那些需要提供给AI的信息, 一定要给它给得足足的而对于那些不需要提供的信息, 则坚决不要再塞进去了。在必要的时候, 可以使用重启对话、压缩摘要以及重新标注重点等方式来清理一下上下文背景。这是所有技巧能否产生效果的一个基本前提, 这也正是我在这一次把模板设计成比较干净、短小并且具有结构化特征的主要原因所在。[]我先把10个技巧放在一张表里, 方便你对照自己的需求快速定位。每个技巧我都会在后面给出模板和详细讲解。编号与技巧名称, 所解决的问题, 以及适用的场景。角色设定输出方面的口吻以及所持有的立场, 存在着不够稳定的情况。写作服务, 咨询帮助, 还有模拟对话的场景。颗粒度拆解任务的规模过于庞大, 导致当前的模型无法准确地抓住核心要点。先做方案策划, 再把需求分析清楚, 最后去处理那些特别复杂的任务。示例驱动单凭用嘴去描述, 实在是没有办法把究竟想要什么这件事情给说清楚。完成格式方面的转换工作, 实现风格上的模仿效果, 以及对内容进行的重新编写与改写。格式约束输出的结构存在混乱之处, 所以很难被复用。进行表格的生成操作, 提供报告的输出服务, 完成数据的整理工作。分步思考那个一步到位给出的答案要么太过浅显, 要么就出现了错误。进行逻辑方面的推理, 处理那些相对复杂的计算任务, 以及排查和修正代码中出现的错误。负面提示将那些不被需要的东西给去掉。对内容进行审查核实, 过滤掉不合规格的文案, 并对整体的文风和格式施加限制。迭代追问第一版输出不够好对相关方案进行优化处理, 开展深度的分析工作, 同时对内容进行精细的修整。参数化模板同一套逻辑反复使用撰写每周报告, 发送电子邮件信息, 进行大量内容的批量生成操作。上下文压缩对话的长度实在太长了, 这会导致模型出现“失忆”的现象。可以对长篇幅的文章进行分析, 能够进行多轮的对话, 还能持续地回答问题。10逻辑校验输出里有隐性错误没发现进行数据分析这项工作, 同时要开展代码审查活动, 此外还要把事实核查的步骤落实到位。2.第二条内容是关于在产品启动运行之前, 需要建立的三个基准线数据。在使用这些技巧之前有三个前提条件需要你最好先进行满足, 如果不这样做的话, 那么就算模板再优秀也不会有效果, 也是白费力气。首先, 模型的选择需要跟任务的复杂程度保持匹配的状态。如果是做简单的问答工作, 使用轻量的模型是完全可行的。可是如果涉及到复杂的推理过程, 或者要分析很长的文本材料, 那么就应当去选用性能更加强大的主力模型。你试图让一个速度很快的轻量级模型去执行分步思考这种操作的话, 它很可能根本不具备进行多步推理的能力。我个人比较习惯的操作方式是, 对于简单的任务, 先去尝试使用轻量级的模型来应对, 但是一旦遇到了比较复杂的场景, 就马上进行切换, 选择适合的主力的模型来处理, 绝对不要自己去硬扛这种情况的发生。第二点, 要把任务的具体目标和成功的评判标准清晰地记在心中。虽然提示词表面上是为AI模型准备的, 但是使用者自身必须首先明确究竟什么样的输出结果才被视为合格达标。我非常频繁地向自己提出一个警示问题: 如果连我自己都无法确定最后的验收规格是什么样子, 那么指望模型能自动明白要求简直就是不可能实现的幻想。因此, 在真正开始编写并输入任何提示词之前的那一刻, 我通常会特意留出大约30秒的时间来进行快速的内心梳理与确认, 旨在彻底弄清楚当下这个步骤最终需要获取的具体成果形式是表现为一个数据结构化的表格呢, 还是一段连贯的文字阐述内容, 又或者是一份具备参考价值的决策指导建议方案。第三, 请留下优化的余地。你千万不要指望自己能够仅依靠一次性操作就撰写出堪称完美的提示词。在初始阶段, 你所编写的模板或许仅仅具备六十分的质量标准。这种情况是没有任何问题存在的。你应当依据系统所生成的反馈结果来进行持续的迭代工作, 并最终将其调整至九十分的状态。在我对自己所拥有的模板库执行维护工作的过程中, 我为每一个单独的模板都实施了至少三轮的修改行为。这一迭代过程实际上构成了提示词工程领域里最具核心吸引力的部分。3. 技巧1到3的部分是先把话说清楚, 然后再考虑去优化的事情。在3.1这一小节中, 第一个技巧是关于角色设定的部分, 也就是给模型提供一个具有明确倾向的“立场”。角色设定这个技巧最容易上手, 而且见效是最明显的。它背后的原理是让模型进入到某个特定的视角里面去, 从而影响到它的用词, 影响到它的语气, 还影响到它对信息的取舍情况。你让模型作为一个有十年经验的HR给人提建议, 和你让模型作为一个刚入职的HR助理给人提建议, 这两者之间输出的专业程度还有底气是完全不一样的。但是, 在设定角色的时候, 有一个非常容易出现的错误, 那就是角色描述得太宽泛了。如果你只说你是资深律师, 那么AI模型就只能够去猜测你心中想要的那种类风格的资深律师是什么样子的可是, 假如你能这样说, 你是一名专门负责处理劳动争议案件的资深律师, 并且你还非常擅长使用通俗易懂的语言来向别人解释法律条文的话, 那么最终得到的输出内容就会精准得多了。这个句子是这样的一个状况。你是一名[具体身份]擅长[具体能力]沟通风格[具体风格]。我在处理[具体场景]需要你帮我[具体任务]。要求输出内容[具体要求]。我实际测试过一个案例: 让它以美食博主的身份写一段火锅推荐文案, 效果很平淡改成指定角色为专写川渝美食的探店博主, 风格要接地气、爱用比喻、偶尔带点夸张, 这样写出来的文案立刻有了画面感。区别就在后者的角色信息足够具体, 模型有据可依。请注意, 角色设定不能与跟任务没有关联的内容掺杂在一块儿, 因为有一些人习惯于在进行角色设定的时候去编写一大堆的背景故事内容, 这种做法会导致模型表现得太过深入它所扮演的角色之中, 从而忽略了它实际上应当去完成的核心工作这一事实问题, 从本质上来说, 角色设定仅仅是为完成既定任务而存在的服务性手段并不是为了进行什么表演展示而设计的。3.第2个技巧叫做颗粒度拆解, 就是把非常大的任务进行切割, 把它切碎一些, 然后再去喂给相关人员。有相当多的人对“让AI去撰写方案, 它写出来的东西会显得特别空洞以及特别宽泛”这件事情表示不满, 究其根本原因在于任务的范围设定得太大了。当你指示模型去“编写一份市场推广方案”的时候, 它仅仅能够向你提供一个适用于任何情况的通用框架。然而如果将原本的任务细化拆解为“先针对目标用户展开分析, 接着列举出三个具体的推广渠道, 并且针对每一个渠道书写出具体的执行动作”, 那么最终生成的输出质量就会出现显著的提升现象。这个技巧其背后所依托的根本原理在于, 模型的注意力资源本身是有限的状态, 当面对的任务规模越大时, 模型能够分配给每一个具体细节内容的注意力比例就越少的情况发生, 因此通过拆解任务这种操作方式等于是在帮助用户去直接减轻模型的认知负担程度, 使得模型可以使用更多脑力来更好地处理关键性环节的。我常用的粒度拆解模板任务总目标[一句话说明最终要得到什么]请按以下步骤完成第一步[具体子任务1]输出格式[格式要求]第二步[具体子任务2]输出格式[格式要求]第三步[具体子任务3]输出格式[格式要求]最后基于以上步骤结果输出[最终交付物]。这里需要特别关注子任务彼此之间的逻辑先后关系, 打个比方来说就是在撰写行业分析报告的这个具体过程里面, 正确的做法应该是首先对行业的当前现状进行梳理, 紧接着再去分析市场竞争的格局情况, 在最后阶段才给出关于未来发展趋势的判断结论, 而不能够采取想到哪里就笔写到哪里的随意方式去操作, 因为整个步骤排列的先后顺序本质上就是你所提供给大语言模型进行思考所遵循的路径轨迹。我尝试过一个最为夸张的拆解方法, 那个方法是让模型帮我整理出一份关于竞品调研的内容, 这个过程把任务拆分成了七个子任务, 每一个步骤都进行单独的输出, 最终再进行汇总, 这样产生的效果比直接一次性询问它帮我做一个竞品调研要好得多, 呈现出非常清晰的条理感, 同时还便于在过程之中对每一个步骤进行检查, 看看这些步骤有没有偏离原本的方向。3.这里有一个非常实用的技巧这个第三个技巧的名称是示例驱动模式, 具体来说, 就是如果你能够给一个标准的参考答案, 这种做法的效果要好过说一百句空洞的描述。在有的情况下, 人们会觉得很难用言语把事情说清楚, 就是很难解释出内心渴望得到的东西究竟是什么样的。这个时候, 最管用、最有效的解决办法, 通常是给那个模型提供个示范样本, 让它照着你的榜样去模拟, 或者顺着你的意思继续往下写。打个比方来说, 要是你心里想要一种特殊的文字表达风格, 那么与其费力地向别人交代说要把内容写得鲜活一些、有趣一些, 倒不如干脆直接拿出一段你自己觉得够得上“生动”而且又挺“有趣”的现成文章范例交上去。示例驱动的原理其实就是所谓的“少样本学习”, 意思就是说, 模型能够依靠你所提供的那些示例去提炼出其中的规律和模式, 接着把这些规律应用到全新执行的任务当中, 这种做法相较于单纯用语言来描述要显得更为直观一些, 它格外适合那些带有较强主观色彩的场合, 比方说风格上的模仿、格式方面的转换以及语气的重新调整等等这样的任务。通过具体的例证来驱动那个已经存在的框架。我需要你完成[任务描述]。要求严格模仿示例的风格/结构/格式。示例输入[示例输入内容]示例输出[对应输出内容]这是我希望达到的效果现在请对以下内容执行同样的处理[待处理内容]在使用这个模板的时候, 我建议大家提供两个或者三个示例, 这些示例需要覆盖不同的情况, 不要只提供一个示例。因为如果只给一个示例, 可能会让模型产生误解, 让它以为你仅仅是在教导它如何处理那种单一的情况。如果你多提供一二个示例, 那么模型就能够提取出更加具有普遍性的规律。注意: 在这里所提到的范例里头, 那个被写出来的“输入”字样部分和对应的“输出”字样结果, 必须保持着一个非常严密的、一对一的配对关系。我曾经碰到过这样的情况, 也就是那些只会抛出最终的结果而不提供原始输入的场合, 这种情况下参与训练的模型根本就连搞不清楚这个范例究竟是从哪一个地方变出来的, 既然如此的话, 它也就完全没法照着去进行模仿学习了。所以说, 如果你想要拿出来的示例的质量能够变得更高一些的话, 那就能够让最后通过模型跑出来的内容更加接近于你自己心里边所期待的那个标准的样子, 因此每一次在使用这些个材料之前的时候, 是非常值得耗费上短短一会儿功夫去反复地修饰打磨它们的。4. 第4个技巧到第7个技巧, 是为了让输出变得更加的稳定, 并且让输出的质量变得更高一些。第4.1小节是关于第4个技巧的介绍, 第4个技巧被称为格式约束, 其核心思路是要使用模板来锁死输出内容的结构, 以防止出现混乱。这个本事特别适合那种需要一口气处理一大堆、并且结果要给程序去用的一种场景。好多好多人不注意那个格式限制, 人工智能输出的内容那叫一个各种各样, 每次都得自己动手去改, 效率低得让人发愁。实际上, 你完全可以在那个提示词里面, 把输出的结构给弄得死死的。格式约束的核心逻辑, 其实就是去明确地告知模型, 标题应当采用什么样式, 段落应该进行怎样的划分, 重点内容需要用何种方式加以标注, 同时明确哪些信息必须安置在文章的开端位置, 而另一些信息又必须放置在结尾。当你在撰写提示词的时候, 脑海中必须得构建出一张关于最终输出效果的目标蓝图, 比如说如果你打算生成一份工作周报, 那就必须要对内容进行硬性规定, 必须明确包含本周已经完成的事项、下阶段的工作计划、存在的风险与相关问题以及需要寻求帮助的资源这四大板块, 并且要限制每个板块所使用的文字数量仅仅为几句简短的话。模板请按照以下Markdown格式输出不要改动结构# [大标题]## 一、[模块名1]- 要点1[具体内容]- 要点2[具体内容]## 二、[模块名2]...在使用格式约束的时候, 我建议你先在空白地方把目标格式亲自写一遍, 哪怕这个格式只是类似于“标题接着分点最后总结”这样的简单结构。你把这个细节写得越清楚、越细致, 模型就越不容易随意发挥。我还遇到过另外一种情况, 就是模型输出的格式语法存在错误, 渲染出来的结果看起来乱七八糟。后来我在提示词里补充了“必须确保语法正确, 并且表格要整齐对齐”这样的要求, 这个问题就消失了。所以, 对于那些你非常关心的格式细节方面的内容, 请不要害怕啰嗦, 直接把它写在提示词里就可以了。4.2、技巧五: 分步思考, 采用“在回答之前先考虑几步”这种策略, 以此来换取更高的准确率。这个技巧对于数学题目、逻辑推理以及涉及多个条件的判断来说, 具有格外显著的效果。如果你直接向模型提出问题, 询问某一个特定方案的可行性如何, 该模型往往会出现偷懒的行为。它会直接抛出一个最终的结论, 而将中间关键的推理过程省略掉。这样一来, 你就无法清楚地得知这个结论是否具备足够的可靠性和可信度。但是, 当你要求它把任务拆解为三个步骤, 并督促其按照一步一步的方式去进行思考时, 所产生的输出结果在可信度方面以及在可校验性方面, 都会有巨大的提升幅度。模板请按以下步骤思考并在输出中保留每个步骤的结果第一步[罗列已知条件/约束]第二步[分析可选项/利弊]第三步[基于以上分析给出结论]注意每一步必须给出简明理由不要直接跳到最后结论。我平常的使用习惯是这样的, 遇到那种是不是、哪个会更好、是不是值得去做的这类需要做出判断的问题的话, 我就会非要加上一步步的思考和推理这个过程是不可缺少的, 这样做的好处非常明显, 一方面是让最后出来的答案显得更加靠谱和可靠, 另一方面也给我自己提供了一个非常便利的条件, 让我能够很方便地去检查那个模型的表现到底怎么样, 具体看一看它是不是在中间某一个步骤上计算出了问题, 或者是它在哪一个环节里面想错了方向, 把思路给带偏了。有一些模型在开启“思考”模式这个操作的时候, 其实已经内置了相似的机制, 但是, 若是通过手动的方方式让模型把它的思考步骤全部写出来, 那么对于用户来说呢, 这整个过程会更加地透明, 当然也更便于去定位可能出现的问题。如果模型的输出内容显得过于啰嗦或者冗长, 那么你可以在完成分步思考之后, 再加一句“每步限制在50字以内”这样的要求, 以此来平衡信息的深度与整体阅读的清晰度。4.第三, 要掌握的一项具体技巧叫做负面提示, 这招的意思就是直接告诉系统到底不应该干什么。给模型下达正面指令, 能让它明白该做什么, 不过在很多情形之下, 仅仅依靠正面指令是不够的。你所期望得到的输出, 与你所不希望见到的输出, 通常是由两方面的信息构成的。举个例子来讲, 如果你想要一篇观点比较鲜明的文章, 那么与此同时, 你是不希望看到那些说了如同没有说一样的废话的再比如, 如果你想要一份显得比较专业的方案, 那么你也是不希望看到那些带有浓厚人工智能味的排比句的。所谓负面提示, 其实际作用在于将这些要求模型必须避免执行的任务指令, 直接向模型进行明确说明。这一做法的核心价值主要体现为对模型的搜索范围实施有效的压缩与限定。由于模型在生成最终输出结果时, 本质上依赖于概率采样机制加以实现, 因此当用户方未向其提供关于禁止事项的必要约束条件时, 该模型极有可能在随机选取过程中, 错误地采用那些不符合用户预期且遭到排斥的表达方式来完成交付任务。负面提示模板生成内容时请严格遵守以下负面要求- 不要使用[某类词/某类句式]- 不要输出[某类内容]- 避免[某种风格]- 如无必要不要提及[某话题]举一个具体的例子来加以说明, 当使用者要求智能模型生成产品相关的文案内容时, 往往会在提示词中加入诸如“绝对不要使用‘遥遥领先’或者‘极致体验’亦或是‘赋能’这类比较空泛和模糊的用词”、“坚决禁止对形容词进行毫无意义的堆砌”、“全面停止感叹号的使用”等约束条件。经过这样的处理后, 最终产生的文案在直观感受上会显得更加干净利落并且清爽许多。需要明确指出的是, 将负面提示词与正面提示结合起来搭配着一起使用, 所达到的实际效果才能达到最理想的状态, 如果仅仅依赖其中某一侧的内容, 无论是只靠负面提示还是只靠正面提示, 整个流程都极容易出现偏差或是产生其他各类问题。4.第四项技巧被定义为迭代式追问模式, 这意味着最初生成的第一版内容仅仅构成了一个起始基础, 它绝对不应当被视为最终的完成品。有太多的使用者把人工智能对话看成是一次性的交易, 也就是轻轻敲一下回车键, 要是结果让他们不满意, 就直接放弃或者把整个提示词重新写过。其实想要得到高质量的输出内容, 往往是需要进行多轮次的迭代修改的。生成的第一个版本可能只能拿到六十分, 但是你在它的基础上继续追问诸如哪里不够深入、这个结论的依据是什么、能不能换个角度进行分析这样的问题, 它会慢慢地逼近达到九十分的水平。所谓的迭代追问这种行为, 并不等同于没有头脑的那种胡乱对话。它的真实含义, 乃是怀抱着非常清晰明确的修改趋向, 以此来去引导接下来的对话内容。我这里自己一直习惯使用的一整套追问的逻辑思路是:迭代追问的模板并没有固定的格式, 它的核心要点是, 在每一次追问的时候都只针对某一个问题进行提问, 因为如果一次性去追问多个问题的话, 模型就容易顾此失彼, 反而不如一个一个地进行提问, 从而逐步地去逼近你所满意的结果。5. 技巧八到十: 建立起一种叫做模板库的思考方式, 从而将那些提示词转化为可以被反复使用的资产。接下来要看5.1部分提到的技巧八, 即参数化模板, 它的核心逻辑在于使用统一的一套模板框架来应对和处理所有性质相似的任务。前面的七个技巧全都集中在怎么样才能写好一个具体的提示词上, 可是真正让提示词工程出现一种不断累加并且增值的效果的东西是把提示词弄成模板, 把指示弄成参数。这是什么意思呢?就是你写一套通用的框架, 把里面会变动的那些部分用一些符号或者空格来代替, 下一次你想换一批数据的时候只需要填入新的数值就行, 完全不需要再重新从第一笔字开始去写整个内容。比如我平常经常会用其中的一套周报模板, 那个模板里面把“本周完成”“下周计划”还有“风险”设置成了固定的结构, 然后把具体的“工作内容”当作是可变的参数来进行输入, 这样的话每个人在每周的时候只需复制这个现成的模板, 再把相关的工作内容参数给替换进去, 那么只需要花费几分钟的时间就可以生成出一份质量比较稳定的周报。参数化模板示例你是一名[岗位]的[角色]现在要写一份[周期]汇报。汇报对象[汇报对象]他/她最关心[关注点1]和[关注点2]。请按以下结构输出## 本期完成{{本期完成事项可多行填写}}## 下期计划{{下期计划事项}}## 风险与求助{{当前风险若无则写“暂无”}}使用参数模板, 关键所在是变量必须选取得非常精准。如果选择的变量太多了话, 那么整个模板就会变得极其复杂, 最终导致实际使用时反而出现不便的情况可是如果变量选择得太少的话, 该模板就失去了应有的通用性。在实际操作当中, 我通常会将变量的数量控制在三个到五个这个范围内。除此之外建议给变量名称添加大括号或者是双大括号作为标记以使其更加清晰明确。这样的话每当执行替换操作时都能做到一眼看穿其对应关系从而有效避免遗漏错误的发生。5.技巧九是上下文压缩, 意思是如果对话文本过长的时候, 需要给模型划重点。这是在多轮对话情境下面对的时非常实用的一个技巧。当你在和模型来回交谈了十好几轮之后, 以往那些对话的相关具体内容将会把上下文的整个可用空间完全填满。在此情况下, 模型或许会忘记在较早阶段所提起过的某些关键性资讯, 又或者可能被中途偏离轨道的话题给误导而带跑方向。面对这种状态时, 正确的做法并不是咬着牙硬撑着继续交流下去, 而是应当主动发起并执行一次所谓的“上下文压缩”操作。上下文压缩的构思在于从前面的交流互动当中提取出来那些真正具备关键价值的信息内容, 随后将这些信息输送给模型进行反馈, 同时迫使该模型对其他的绝大部分细节予以遗忘。在实际操作层面, 存在几种被广泛采纳的处理方式。第一种方式表现为直接创建出一个完全新的对话会话窗口, 然后把那个漫长历史对话所生成的摘要内容粘贴进去, 紧接着补充上用户接下来希望继续执行的指令任务。第二种方式则允许在同一整个对话流程内部完成操作, 具体做法是向系统发出明确的书面声明, 指示其忽略掉上述提到的除了部分重要事项以外的所有过往记录, 仅依据筛选后的要点如某些特定选项等来进行后续的解答工作。压缩模板我们刚才讨论了[话题A]你给出的核心结论是[结论B]关键数据/事实有[C]、[D]、[E]。请忽略之前所有讨论偏离的内容。现在基于以上要点继续完成[新任务]。这个技巧, 我几乎每天都会去使用它。在处理长文档的时候, 在进行行业调研的时候, 在多轮代码调试的时候, 倘若不进行上下文压缩操作, 那么模型在后半段的输出质量会出现肉眼看得见的下降情况, 甚至于会出现前后相互矛盾的现象。5.技巧十是逻辑校验, 这个做法是让模型自己去给自己找茬。关于提升输出可靠性的最后一个技巧, 这里进行解释。在数据、引用、逻辑推理这些方面, 模型有时候会做出一种叫做一本正经胡说八道的表现, 这种情况是存在的。当你让模型进行检查一遍的时候, 往往这个行为是无效的。其原因在于模型会重复之前的那个答案内容。更为有效的一种方式是让模型站在审查者这个角度上去看待问题。用挑剔的眼光去重新审视模型自己的输出内容。我平时用得很多的逻辑校验相关的提示词的列表如下。现在请你以“严格审查者”的身份重新检查你刚才的答案。请完成以下操作1. 列出答案中的全部事实性判断/数据引用的来源并标注哪些是“你已知的”哪些是“推测的”。2. 找出答案中逻辑不严谨、前后矛盾、可能被质疑的地方。3. 评估答案是否直接回应了原始问题如果没有指出偏差点。4. 基于以上审查输出一个“修订后版本”。这个技巧表面上看着有点复杂, 可是实际测试下来发现它特别管用。它可以强行让模型转换看待问题的角度, 也就是把角色从负责创造内容的生成者改变成负责挑毛病的审查者, 这样就能更轻易地发现那些被流利语言表达所掩盖的错误。通常我会在需要生成重要的分析论点, 或者进行代码核查以及数据汇总的时候使用这个方法这样做就像是给产生的结果添加了一层防护机制, 确保输出内容更加可靠。6. 关于模板库的搭建工作以及维护工作, 其目的是为了让那些宝贵的经验可以做到被沉淀下来, 并且可以被重复使用, 接下来讲的是第6点1个部分, 也就是关于模板库所具有的分层结构。有了前面那些技巧之后, 你就可以开始搭建自己的模板库了。关于具体的操作方式, 我的建议是, 千万不要把所有模板都堆叠在同一个文档里面, 因为那样会导致查找工作变得非常痛苦。你可以按照通用层、场景层以及项目层这三层的逻辑来进行管理。这种分层的好处在于, 当你修改底层模板时, 所有依赖它的场景模板, 都能够同步受益。另外, 项目层的模板, 还不会污染通用库的干净度。6.在2 每一次使用完成之后, 必须进行的反馈记录工作。模板库这个工作, 绝对不是把那个框架搭建好就算结束了, 最关键的地方在于要进行持续的迭代优化。我有一个习惯性的做法, 就是每一次使用完特定的那些模板之后, 都要花费两分钟的时间来进行记录。具体要记录的内容包括, 这次利用它所得到的输出质量究竟能够打多少分? 其中哪一个具体的环节出现了问题? 还有下一次应该通过什么样的方式来做出改进调整?可以通过创建一个简易的表格的方式, 来对迭代记录实施管理操作。模板的名称是什么样子的, 它一般用于什么场合, 输出的质量水平到底高不高, 具体存在哪些问题或者缺陷, 之后采取了什么样的优化措施进行了调整, 以及当前更新的版本号是多少这些内容都需要进行明确的标注和记录。这是周报模板版本号为3的文档。每星期五都会产生周报。85分在涉及风险以及问题的这个部分里, 所进行书写的内容表现得相当模糊和不具体。把那个表示风险等级信息的栏目给添加进去。V4每一次进行优化动作, 其实都是在完成一次又一次微小层面的版本升级。在经过几个月的持续积累之后, 你会惊讶地发现, 你自己手上所持有的模板资源, 其成熟度与实用性已经远远超过了网络上那些所谓的绝大多数通用性模板, 造成这一巨大差异的核心原因, 在于这些模板完全是依托于你个人的真实业务痛点与现实应用场景一步步模拟、测试并打磨出来的, 可以说它们是为你量身定制且经过真实环境洗礼的成果而非凭空捏造的产物。要注意的一点是, 在对待模板库这个事项上, 不应该抱着一种贪多求全的心态。那些被经常使用的模板, 实际上可能仅仅只有十几个或是二十个的样子, 把这一些内容用心去改进完善就已经是完全足够了的。比起去收集一百个那些只是被收藏却从未得到过使用的高冷模板, 不如选择把十个经常被用到的模板修改到能够熟练运用随心所欲的地步。7. 常见问题与排查技巧实录 7.1 为什么角色设定突然失效有读者跟我说过, 使用了角色设定模板的时候, 第一个话题的效果非常良好, 但是到了第二个话题就发生了改变, 于是效果就完全消失了。我去做了检查和分析, 最后发现, 大多数情况都是由于角色的具体描述和需要完成的任务内容之间没有形成对应关系所导致的。如果你让一个“资深律师”去写电商文案的话, 它自然就很难进入到一个更好的状态下, 因此角色必须和所执行的任务有很强的关联性, 不然的话那个角色设定就只能算是做了一个样子, 并没有真正发挥作用。此外, 如果你在同一个对话当中使用了很长时间的角色设定, 那么在对话的中后期阶段时候, 人工智能模型很有可能就会出现“出戏”的情况, 也就是重新回到默认的语气状态, 对于这种状况建议你需要再次强调一下角色的设定内容, 或者你可以直接选择开启一个新的对话窗口然后再粘贴一次该角色的说明文字, 千万不要觉得这样的做法是繁琐的或者是多余的, 因为对于人工智能模型而言是需要得到明确且强烈的强化信号的。7.第二, 为什么明明已经添加了具体的例子作为参考, 但是回答的结果依然是不正确的呢。因为示例和待处理的内容之间的差别实在太大了, 所以会导致示例驱动失效, 这是最常见的原因。当模型得到的是一个“简洁新闻标题”的示例时。如果要求它去仿写的是“悬疑小说章节标题”。那么它就提取不出有效的、可迁移的特征了。解决办法其实有两种。第一, 可以给更多的不同风格的示例, 以便缩小示例和目标之间的差距。第二, 可以降低任务难度。可以将复杂的任务拆分成好几步来逐步完成。还有一个容易被忽略的点, 示例的顺序会影响结果。我试过把相似度最高的示例放在最靠近待处理内容的位置, 模型模仿得更准确了。你也不妨多试几种排列方式, 最终选那个效果最好的。7.如果你发现输出的格式始终呈现出一种不稳定的状态, 那么你应该去处理这个状况。这种格式不够稳定的情况, 往往是因为给出的格式指导不是太清楚, 或者内容的复杂程度太高了, 最后就让模型在生成的后面部分有点失去控制。我们可以在提示词语里面多重复几次那些关键的格式要求, 举个例子来说, 就是要不断地强调“必须使用。如果格式仍然不稳定可能是内容本身超出了模型的格式感知能力。这时候可以用“先输出纯文本再让我告诉你转换成什么格式”的方式分两轮做。第一轮先生成内容第二轮再要求模型把内容填入指定格式成功率会高很多。### 7.4 上下文一长就“失忆”怎么破这和技巧九上下文压缩直接相关。失忆的根本原因是上下文窗口被无关信息占满模型找不到重点。除了做摘要压缩还有一个辅助手段在关键信息处使用高亮或分隔符比如把重要背景放在 提示里把任务指令用分隔符包围这样模型更容易识别哪些信息是“核心”。另外如果对话真的太长别犹豫直接开新对话。把需要继承的信息整理成一段通报式的摘要粘到新对话开头再继续干活。这比在旧对话里硬撑省心得多。## 写在最后提示词工程不是一个需要背很多公式的学科它更像一门需要不断打磨的手艺。我自己最大的感受是真正让你进步的不是某个惊艳的技巧而是每一次输出后的复盘和改进。现在每当我写完一条提示词都会习惯性地问自己一句如果得到一个不满意的结果我会从哪里开始调整这个问题让我从“碰运气”慢慢变成了“可控地迭代”。最后再分享一个小技巧把模板库放在你随手能打开的地方最好用云笔记或者项目文档管理工具。遇到一个场景先翻模板再微调参数而不是每次从零开始想提示词。时间久了你会发现你和AI之间的配合会越来越像一支默契的团队而不是每次都在跟一个“不太聪明的实习生”重新磨合。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →