简介:这份PDF文档聚焦ChatGPT提示词(Prompt)的系统讲解,面向K12教育场景以及人工智能、深度学习、自然语言处理爱好者,帮助读者理解并运用指令设计来获取高质量AI回复。文档从Prompt是什么切入,介绍其在智能客服、教育交互、智能助手中的典型应用,继而重点拆解特定指令、指令模板、代理模式、示例模式四种核心构造策略:既可以用关键词直接提问,也能通过STAR等结构化模板约束输出;既能以“act as”让ChatGPT扮演角色,也能借助示例文本生成风格统一的新内容。文中还配有角色扮演清单与具体对话案例,便于教学和自学实践。资源为1个PDF文件,大小约1.57MB,内容精炼、层次清晰,适合希望系统提升ChatGPT使用效率的初学者、教师及AI应用开发者。当前已有1286人学习下载,可作为日常交互和课堂演示的便捷参考资料。
1. ChatGPT指令集不是玄学:一份PDF能帮你把对话质量稳定下来
同样一个问题,有人让模型输出两百字的可用结果,有人只得到一段空话,差距往往不在模型,在输入。ChatGPT指令集与角色扮演这类PDF,说到底是把散装提示词整理成可复用模板的起点:系统规则、角色背景、任务要求、输出格式,都被压成一页可抄的文本。我最早接触这类资料时也幻想复制粘贴就能起飞,实际用了才发现,PDF里的指令只是半成品,真正值钱的是后面的整理和重写。下面就把这份资源拆开看:先搞懂它怎么组织,再按角色扮演场景自己重写一套,接着配参数、躲开常见翻车点,最后把它迭代成自己的Prompt库。适合已经在用ChatGPT但输出总不稳定的人,想玩角色扮演却不知道怎么写人设的人,以及手里攒了一堆模板却不知道怎么管的人。
2. 先看懂指令集的结构:系统提示词、角色卡与场景模板的分类逻辑
拿到这类PDF后的第一个动作不要是复制粘贴,而是先做结构分析。市面上的ChatGPT指令集资源看起来是密密麻麻的文本,内部其实有规律:有的段落是给模型定身份的,有的是专门服务角色扮演的,有的只是某个写作任务的临时模板。如果分不清这三类,后面所有整理工作都会乱,这也是很多人觉得“指令集没用”的真正原因。
2.1 这类PDF里最常见的三类指令:系统提示词、角色卡、单轮/多轮指令
最常见的角色扮演类PDF里,指令可以分成三类。第一类是系统提示词,它定义模型在一整段对话中的身份和全局行为,典型开头是“你是一个……”。第二类是角色卡,专门为某一场角色扮演服务,通常比系统提示词更具体,会写清楚人物背景、说话风格、目标,典型开头是“现在你扮演……”。第三类是任务指令,解决一次性问题,比如“把这段文字改得更口语化”或“用表格总结下面的内容”。
这三类放的位置完全不同。系统提示词应该放在一次对话的最前面,角色卡紧接着系统提示词,任务指令则跟在具体消息后面。但PDF很少帮你标注清楚,需要自己判断。我的判断标准很简单:全局有效还是局部有效。全局的、从头到尾都要执行的,归系统提示词;只管某个角色场景的,归角色卡;说一次就失效的,归任务指令。
| 指令类型 | 在对话中的位置 | 作用 | 典型开头 | 典型用途 |
|---|---|---|---|---|
| 系统提示词 | 对话最前 | 定义身份与全局规则 | “你是一个……”“你的任务是……在每轮中……” | 翻译、润色、稳定输出格式 |
| 角色卡 | 系统提示词之后 | 定义角色人设与演法 | “现在你扮演……背景是……” | 角色扮演、陪练、创意对话 |
| 单轮任务指令 | 任意消息位置 | 完成一次具体任务 | “请用三句话总结……” | 摘要、改写、打分、分类 |
| 多轮对话脚本 | 角色卡内嵌 | 控制多轮交互节奏 | “每轮先说出当前场景,再回话” | 游戏引导、故事推进 |
为什么要把它们拆开?模型对长上下文的处理有上限,如果角色卡长期驻留在对话里,会挤压指令的执行空间;反过来,系统提示词写得太长,角色卡的细节又容易被稀释。拆开之后,你才能决定哪些内容该长期放在上下文中,哪些用完就丢。这对调参也很关键:角色卡通常需要更高的随机性,系统提示词则更偏向稳定。
2.2 指令参数不是摆设:temperature、top_p、max_tokens怎么跟指令搭配
指令集PDF只能给你文本,但实际对话效果有一半由参数决定。同一个角色卡,temperature设在0.7时像真人对话,调到1.5之后说话就开始跳脱;同一个写作指令,max_tokens给太少,输出只有骨架没有血肉。参数不跟指令匹配,再好的模板也白搭。
temperature控制随机性,简单理解就是越低越保守、越高越发散。翻译、代码、格式严格的输出,我一般落在0.1到0.3;角色扮演建议0.7到0.9,既能保留对话的自然起伏,又不会偏到离谱;创意写作、头脑风暴可以放到1.0以上。top_p是另一种采样方式,很多API官方建议不要同时把两者拉得过低,固定其中一个就行。max_tokens决定输出长度,但要注意上下文总长:角色卡本身就占掉几百个token,如果历史消息再堆几千字,输出空间会被挤压。
| 任务类型 | 推荐temperature | 推荐top_p | max_tokens建议 | 说明 |
|---|---|---|---|---|
| 翻译 | 0.1–0.3 | 0.5 | 按源文长度1.5倍 | 稳妥优先,避免意译过头 |
| 代码生成 | 0.2 | 0.6 | 按函数规模 | 稳定性优先级最高 |
| 角色扮演 | 0.7–0.9 | 0.9 | 300–800 | 保留口语自然度 |
| 写作润色 | 0.5–0.7 | 0.8 | 400–1000 | 保留风格但不失控 |
| 数据分析 | 0.2–0.4 | 0.7 | 200–500 | 输出表格时要少废话 |
遇到输出太死板,先调高temperature,而不是重写指令;遇到输出跑偏,先调低temperature,观察两三轮,再决定是否改角色卡。这两步顺序不能反。改指令的成本比改参数高,而且改完还要重新验证。
2.3 把PDF拆成“指令卡”的整理流程:从文本到复用模板
我拿到这类PDF后不会整页收藏,而是把它拆成一张张“指令卡”。每张卡只保存一个可复用指令,带上场景标签、参数、测试样例。这样PDF从一本“书”变成了一堆零件,随时能拼进新项目。
整理的流程一般是五步。第一步通读并标记:把PDF里看起来能用的段落高亮,判断它是系统提示词、角色卡还是任务指令。第二步压缩表达:删掉语气词、例子和解释性文字,一条系统提示词尽量控制在500字内。第三步提炼变量:把具体角色名、任务对象替换成占位符,比如用{角色}代替“护士长”,用{主题}代替“毕业论文”。第四步补充参数:给每条卡写上建议的temperature和max_tokens。第五步建测试样例:写一行输入样例和期望输出,之后每次改动都用它验证。
指令卡字段也建议固定下来。名称、类型、生效轮次、正文、参数、测试样例,这六项缺一不可。生效轮次尤其容易被忽略:有些指令只在第一轮有效,有些要在每轮都跟着,写清楚才不会误用。
在压缩表达这一步最容易翻车。删太多会丢约束,删太少又等于没拆。我的经验是先保留所有行为约束,再删解释性文字。例如“你是一个拥有多年翻译经验,能够精准传达原文情感的专家”可以压缩为“你是资深翻译”,但“不要直译,要结合上下文调整语序”属于行为约束,必须保留。删完之后看一遍,如果一条卡缩成不到原文一半,基本合格。
3. 把“角色扮演”从PDF搬到对话框:一套可复用的构建方法
角色扮演是ChatGPT指令集里最吸引人的部分,但也是翻车率最高的部分。很多人以为“你扮演一个某某”就够了,实际上模型会把这句话当成一个临时设定,跑不了几轮就丢。真正能稳定跨过多轮对话的,是一套包含结构、规则和记忆管理的完整方案。
3.1 角色扮演指令的结构:角色设定、目标、规则、开场、禁止项
一个能支撑十轮以上对话的角色卡,至少包含五块:角色设定、目标、规则、开场、禁止项。缺了目标,模型不知道这段对话往哪走;缺了规则,说话风格时好时坏;缺了禁止项,它很快就会跳出角色。设计时可以这样做:
你是{角色名}。 背景:{人物背景,两三句话,包含性格、场合、与用户的关系} 目标:在这段对话中完成{目标}。 规则:
- 用{语气}说话,一句话不超过{长度}。
- 每次回应前先描述当前场景,再说话。
- 不要主动推进剧情,等待用户选择。 开场:{角色在场景下的第一句话} 禁止:不要承认自己是AI;不要说教;不要替用户做决定;不要使用{词表}。
这段模板看起来简单,每一行都在解决一个具体问题。“每次回应前先描述当前场景”是防止多轮对话失去方向,“不要主动推进剧情”是避免模型抢戏,“不要承认自己是AI”是压住模型的本能。最后一项尤其容易被忽略,因为模型默认是“乐于助人的AI”,如果不明确禁止,它会在某轮突然跳出角色开始建议你。
角色设定写得越具体,模型发挥越稳。同样是图书馆管理员,“你是深夜图书馆的管理员,见过很多迷宫般的书架”比“你是图书馆管理员”更有抓手。具体名词会激活模型联想,但注意不要堆太多,三到五句背景就够,太多反而稀释重点。
3.2 构建一个实用角色卡的七步法
七步法是我自己常用的流程,从零开始搭一个角色卡大概十分钟,测试还要十分钟。第一步定角色:选一个模型知识覆盖比较广的身份,避免太冷门,否则模型发挥不稳定。第二步写背景:三到五句话,交代性格、场合、和用户的关系。第三步定目标:明确这段对话要达成什么,比如“陪用户练习面试”“带用户探索一个地下城”。第四步写规则:四到六条行为规则,全部用肯定句或否定句写清楚。第五步设计开场:让角色先开口说第一句,这句话决定整场对话的基调。第六步定禁止项:把最容易犯的四个错误写进去。第七步跑测试:连续对话十轮,观察人设是否松动、目标是否推进。
测试这一步最容易被跳过,但它才是真正的核心。我会建一个固定测试输入,比如“我从没见过你,你是谁?”作为第一轮,然后连续追问五轮,看角色是否失忆、崩坏、或突然说教。如果前三轮就崩,先加禁止项;如果十轮后开始重复,优先检查是不是历史太长。
3.3 角色扮演中指令集PDF常搭配的“记忆管理”技巧
角色扮演超过一定轮数后,模型会逐渐遗忘开头的人设定。这不是Bug,而是上下文窗口的特性:角色卡被越来越多轮的历史消息挤到边缘。常见做法是加“记忆摘要”:每五到十轮,让模型用三句话总结当前故事状态、角色心情和用户透露的关键信息,然后把摘要留在对话里,或复制进下一次对话的开头。
操作起来并不复杂。跑完第十轮后,发一条独立指令:“请用三句话总结到目前为止的角色状态、对话进展和我透露过的关键信息。”把这段摘要粘贴到新的对话开头,再接上角色卡,就能续上原来的剧情。很多PDF指令集会在进阶部分讲类似思路,核心都是让角色卡换一种轻量形态留存在上下文里。
记忆摘要要注意时机,不要每轮都总结。总结太频繁会打断角色扮演的节奏,也浪费token。我一般设定一个节点:当发现角色开始重复上一轮的句子,或者说话风格走样,就先手动重启对话。与其硬撑二十轮,不如分段演出,每段用摘要衔接,质量稳定得多。
4. 指令集的正确打开方式:从场景分类到参数预设
PDF里的指令再多,也不可能同时在一次对话里生效。把指令按场景分类、给每类配上参数预设,是让指令集从“资料”变成“工具”的关键一步。很多人把指令集当作字典查,用的时候才翻,那样每次都是重新调试,永远不稳定。
4.1 按场景给指令分类:写作、翻译、分析、角色扮演、日常任务
我习惯把指令分成五大类:写作、翻译、分析、角色扮演、日常任务。每类的目标不同,参数预设也不同。写作类要保留文风,temperature不宜太低;翻译类求准确,token要留足;分析类要结构清晰,禁止闲聊;角色扮演要热度适中;日常任务则要分步输出,别让模型自由发挥。
| 场景 | 典型指令 | 推荐temperature | 典型输出格式 | 说明 |
|---|---|---|---|---|
| 写作润色 | “让这段文字更有画面感,保留原意” | 0.5–0.7 | 改写后文本+改动说明 | 不要整段推翻原意 |
| 翻译 | “翻译成中文,专业术语附原文” | 0.1–0.3 | 双语对照 | 先给译文,再给术语表 |
| 数据分析 | “从这份表里找异常,给出原因假设” | 0.2–0.4 | 表格+结论 | 避免空泛的“总体来看” |
| 角色扮演 | 使用角色卡模板 | 0.7–0.9 | 每轮先场景后回应 | 人设优先于信息量 |
| 日常任务 | “帮我列购物清单,按超市动线排序” | 0.7 | 分步列表 | 允许补充合理细节 |
分类的意义不只是整理,而是让你在动手前就决定参数。比如翻译如果默认temperature在0.7,输出会时常出现“意译过头”的情况;分析类如果拉得太高,模型会开始编造因果关系。把这些预设固化下来,每次直接用就好。
4.2 一个“指令工作台”的搭建:文件目录或环境变量方案
我用文件夹管理指令卡,而不是继续堆PDF。每个目录对应一个场景,每条指令一个Markdown文件,文件顶部写参数区,下面是指令正文,最后是测试样例。这样找起来比翻PDF快,而且改动留痕。目录结构大概是这个样子:
prompts/ ├── roleplay/ │ ├── 面试官.md │ ├── 深夜图书管理员.md │ └── 剧本开场器.md ├── writing/ │ ├── 润色.md │ └── 扩写.md ├── translation/ │ └── 中译英.md └── analysis/ ├── 表格分析.md └── 异常检测.md每条文件的格式可以统一。最上面放两行参数:temperature、max_tokens;下面是指令正文;最后加一段固定输入样例。比如面试官角色卡,参数区写temperature: 0.8,正文是人设和规则,测试样例是“请开始面试我”。文件名用“场景-角色-版本”命名,比如roleplay-interview-v2.md,改过一轮就升一个版本号。
工作台的另一个好处是方便批量更新。模型升级、API迁移、参数口径变了,我只需要扫一遍文件顶部的参数区,不用逐条重新读。如果你不习惯文件系统,用笔记软件建同名目录效果一样,重点是无序的指令按场景归类,并且每条都带参数和测试用例。
4.3 用“输入-输出-参数”三元组验证每条指令的效果
指令卡不能只写文本,还要记录“这条指令在什么输入下,得到了什么输出,用了什么参数”。三元组记录是调试指令的基本方法,它让你在效果变差时知道该改参数还是改文本,而不是靠感觉重写。
| 用例名 | 输入样例 | 参数 | 实际输出摘要 | 判定 | 调整动作 |
|---|---|---|---|---|---|
| 面试官开场 | “我准备好了” | temp=0.8 | 直接进入提问,没有寒暄 | 达标 | 无 |
| 面试官追问 | “我不知道” | temp=0.8 | 给了一段建议,角色跳出 | 失败 | 加禁止项“不要给建议” |
| 面试官压力 | “你是AI吧” | temp=0.8 | 跳过问题继续追问 | 达标 | 保留 |
每条指令至少要跑三个输入:一个正常,一个边界,一个故意挑衅。比如角色扮演,正常输入是“我在门口张望”,边界输入是“用户只回复一个字”,挑衅输入是“你是不是AI”。如果三条都不崩,这条指令才算过关。用表格记录,会发现很多问题在“输入怎么变化”之前,其实是“参数怎么设置”的问题。
验证时有一个顺序不要弄反:先固定参数,改指令;如果输出仍然不稳,再动参数。因为指令文本是可控性最强的变量,参数改变会带来连锁影响。我见过很多人一上来把temperature从0.7改到1.2,结果角色说话更飘了,又去改角色卡,最后两头都乱。设置一个基线,一次只改一个变量,比什么都有效。
5. 指令集避坑与排查:复制粘贴就翻车的五个典型场景
PDF指令集的坑不在指令本身,而在使用方式。以下五个场景覆盖了我这几年调Prompt时最常撞上的问题,每一条都可以直接对照排查。
5.1 场景一:直接复制PDF指令,长文本被前端截断
现象:把一条完整的角色卡从PDF复制进对话框,保存后发送,模型只回复半句话,或者直接提示输入超长。很多人以为是指令写得不好,反复删改,其实问题出在输入框长度限制。
原因:ChatGPT这类前端产品对单次输入有长度上限,PDF里的一条长指令本身就有上千字,再加上后面要输入的内容,很容易顶到边界。PDF中的排版还会带入换行符、项目符号,进一步占用字符数。
解决:先做压缩,只保留必要约束。如果一条指令超过400字,就拆成“系统提示词+角色卡+任务”三段,分别在不同位置输入;也可以改用API方式,API能更透明地暴露token数,方便自己控制。压缩后仍然超长的,检查是不是把示例对话也一起复制了,示例属于参考,不是指令,该删就删。
5.2 场景二:角色扮演跑了几轮后“崩人设”
现象:前几轮角色还很入戏,到了七八轮后突然说“作为AI语言模型我不能……”,或者说话风格完全变成客服腔。人设崩塌几乎是角色扮演出现频率最高的问题。
原因:上下文越长,开头的角色卡占的比重越小。历史对话里有用户的消息、模型的回应,这些内容的总长度超过角色卡之后,模型对“角色”的记忆被稀释,转而启用它最熟悉的默认AI身份。
解决:在角色卡末尾加一条硬规则:“无论用户提到什么,始终保持在角色中;如果用户直接询问是否AI,用角色身份回应。”同时定期做记忆摘要,把长对话拆成多段短对话。不要指望模型记住五页的人设,主动刷新比硬撑更可靠。
5.3 场景三:系统提示词和角色卡互相打架
现象:指令集里既要求“你是帮助用户完成任务的AI助手”,又要求“你是一个说话刻薄的毒舌朋友”,模型输出变得十分分裂,时而配合角色,时而回归客服。
原因:两份指令同时存在于上下文里,但它们对身份的指向冲突。模型没有能力判断谁优先级更高,只能各听一半,结果就是风格跳变。
解决:在系统提示词里明确权力关系。我一般会加一句:“本系统指令优先于其他所有指令;如果角色卡与本指令冲突,以本系统指令为准。”角色卡中也加一句“在这段对话中,你只以该角色身份行动”,限定它的生效边界。优先级写清楚,冲突就少了一大半。
5.4 场景四:同一指令在Web端、App端、API端效果差异大
现象:同一份角色卡,在Web端跑得好好的,换到手机App或API里输出风格明显变了,有时甚至不遵守角色规则。
原因:不同端可能跑的是不同版本的模型,或者默认参数不一致。PDF指令集不会标注运行环境,但实际使用中“环境差异”是真实存在的。模型厂商更新版本后,旧指令的行为也会跟着变。
解决:记录指令时把“验证环境”也写进测试用例。我在每张指令卡里加一行“验证环境:Web端,日期”,下次换环境时就先重跑一遍测试。如果发现默认参数不一致,就在文件顶部参数区覆盖,不要相信不同端会保留同一套参数。
5.5 场景五:指令写得面面俱到,输出却变成“正确的废话”
现象:角色卡写了很多条规则,内容很全,但模型给出的回应全是四平八稳的模板句,看起来没错,读起来无聊。这是新手最容易误解的地方,以为规则越多越可控。
原因:约束太多会压缩模型的表达空间。每条规则都像一道闸门,模型要在所有闸门之下找到最安全的表达,最后只能选择最常见的措辞,看起来就是“正确的废话”。
解决:规则控制在五条以内,能用一句话打包的不要逐条列。保留一两条开放式要求,比如“可以适当给出意外反应”“偶尔可以不按常理出牌”。同时把temperature从0.4提到0.7,给表达留出随机性。记住指令集的目的是引导模型,不是捆住模型。
6. 进阶:从“抄指令”到“养指令集”:迭代维护与验证习惯
我现在用这类PDF的方式,是“借骨架,养自己的指令”。每次从外部资料里看到一条好指令,先原样放进工作台,但它只是v0,必须过一遍最小测试:固定输入、记录输出、判定是否达标。达标就标成v1,不达标就改,改完标成v2。版本号不是仪式感,是为了知道哪一次修改起了作用。
另一个养成习惯是回归测试。模型更新、换API、调整参数,都可能导致旧指令悄悄退化。我每个季度会挑几条核心指令,用同一个输入跑一遍,跟上次的输出对比。如果变差,先查参数,再查指令,最后才怀疑是模型本身变了。这个过程跟调代码的回归测试是一个思路,越早发现退化,越省时间。
我还会给每张指令卡写“失效特征”。比如角色扮演卡,如果第八轮开始出现“我们能否换个话题”,就是人设松动的信号;翻译卡,如果出现“根据上下文可以推断”,就是意译过多的信号。把这些特征写进指令卡,以后不用读完整输出,只看几个标志词就知道要不要重启或改参数。
这些习惯坚持下来,PDF就不再是收藏夹里吃灰的文件,而是你Prompt库的地基。回头整理自己的指令集时你会发现,能稳定复现的质量,比任何花哨模板都可靠。希望帮到你。
本文还有配套的精品资源,点击获取