ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

ChatGPT中文提示词模板库:角色约束输出格式三件套与实战指南

ChatGPT中文提示词模板库:角色约束输出格式三件套与实战指南

简介:这份《ChatGPT中文调教指南》面向希望系统掌握提示词技巧的中文用户,无论是初次接触大模型的职场人,还是想提升日常效率的内容创作者、开发者与研究者,都能从中找到可直接套用的实战范例。资源以单个PDF文档形式打包,压缩包约694KB,内容围绕中文环境下的对话调教展开,涵盖学术论文写作、创意小说、商业文案、翻译润色、数据分析、技术文档、简历求职信、SEO优化、社交媒体运营等丰富场景,并给出充当Linux终端、英语翻译改进者、面试官、文字冒险游戏等角色扮演式提示模板,帮助读者理解如何通过精准指令让模型输出所需结果。目前已有700余人学习下载,适合作为提示词入门与进阶的参考手册,便于对照模仿、快速迁移到自身工作流中。

1. 一份把 ChatGPT 当“可编程工具”用的中文提示词合集

很多人第一次用 ChatGPT 写东西,都是直接甩一句“帮我写篇论文”或者“给我翻译一下”,然后对着那坨四平八稳、毫无个性的输出发呆。问题不在模型,在于你没给它“角色”和“约束”。这份《ChatGPT 中文调教指南》本质上就是一本提示词模板库,它把“充当 Linux 终端”“担任面试官”“作为专业 DBA”“充当花哨的标题生成器”这类场景化的指令整理成了可以直接抄的素材。它解决的不是“ChatGPT 能干什么”这种科普问题,而是“我到底该怎么开口,才能让它输出我要的格式和内容”。适合谁?适合每天要写文案、做翻译、调 SQL、设计接口文档,但又不想每次都从零构思提示词的从业者。你把它当成一个“提示词范文库”来用,比当成教程读效率高得多。

2. 提示词模板的底层逻辑:角色、约束、输出格式三件套

2.1 为什么“充当 XX”比“帮我做 XX”有效

语言模型在预训练阶段见过大量“角色扮演”的文本,当你明确说“我想让你充当一名 Android 开发工程师面试官”,模型会激活与“面试官”这个身份相关的语言模式:提问方式、追问节奏、对候选人的评估口吻。而“帮我面试一个人”这种指令太模糊,模型只能给你一段泛泛的面试建议,而不是真的开始面试。

这份指南里几乎每一条模板都遵循同一个结构:先定义角色,再给出行为约束,最后指定输出格式。比如“充当 Linux 终端”那条,角色是终端,约束是“只在一个唯一的代码块内回复终端输出,不要写解释”,输出格式是代码块。这三者缺一不可。你只给角色不给约束,模型会忍不住加一句“好的,以下是命令输出”;你只给约束不给角色,模型不知道用什么语气和知识范围来回应。

我一般会把这三件套理解成“给模型画一个框”:角色决定它从哪个知识库里取素材,约束决定它不能做什么,输出格式决定你拿到的东西能不能直接进下游流程。很多新手觉得提示词是玄学,其实拆开看就是这三样东西的排列组合。

2.2 从“写小说”到“充当 SQL 终端”:模板的分类与复用

指南里的模板大致可以分成四类,每类的复用方式不一样:

类别代表模板复用方式
创作生成类写小说、充当诗人、花哨标题生成器替换主题词和风格描述
角色模拟类面试官、心理医生、脱口秀演员替换角色身份和对话开场白
工具模拟类Linux 终端、SQL 终端、正则生成器直接使用,只改输入数据
专业顾问类产品经理、IT 架构师、DBA替换业务背景和具体需求

工具模拟类最省事,因为约束已经写死了,你只需要把命令或查询语句换掉。创作生成类最需要调,因为“写一本拥有出人意料结局的推理小说”这种指令,模型每次给你的东西质量波动很大,你得在模板基础上追加“不要出现尸体”“结局不要用梦境解释”这类负向约束。

专业顾问类最容易被误用。很多人直接复制“担任产品经理”那段,然后说“帮我写个 PRD”,结果模型输出的 PRD 章节齐全但内容空洞。原因是模板里虽然规定了章节标题,但没给业务上下文。我一般会在模板后面补一段:“背景是做一个面向中小企业的库存管理 SaaS,核心用户是仓库管理员,他们最痛的是盘点时找不到货。”有了这段,模型输出的用户故事和 KPI 才不是套话。

2.3 把模板改造成可复用的提示词片段

直接复制粘贴模板只能解决一次性需求。如果你每天都要用“充当英语翻译和改进者”这个角色,每次都复制那一大段话很累。我的做法是把模板拆成变量,存成一个文本片段,用的时候只改变量。

比如翻译类模板可以拆成:

角色:英语翻译、拼写校对和修辞改进者 约束: - 识别输入语言,翻译成英语 - 将简单词汇替换为优美高雅的表达 - 仅回答更正和改进的部分,不写解释 输出格式:纯文本,无 Markdown 输入:{{待翻译句子}}

这样你每次只需要填{{待翻译句子}}。如果你用支持自定义指令的工具,可以把这段存成快捷指令,输入/translate 今天天气不错就直接触发。

再比如“充当表格生成器”那条,模板里写死了“回复我十二生肖表”。你可以把它改成通用表格生成器:

角色:表格生成器 约束: - 只回复 Markdown 表格 - 不附带任何解释 - 表格行数由我指定 输出格式:Markdown 表格 输入:{{表名}},{{行数}}

这样你就能用它生成任何表格,而不是只能生成十二生肖表。改模板的关键是:把具体例子替换成变量占位符,把“首先,回复我 XX”这种一次性指令删掉。

3. 高频场景实战:翻译、SQL、面试官与内容创作

3.1 翻译与润色:从“英翻中”到“英英词典”

指南里翻译相关的模板有三条:充当英语翻译和改进者、充当英翻中、充当英英词典。这三条对应三种不同的翻译需求,很多人混着用,结果拿到的输出不符合预期。

“充当英语翻译和改进者”适合你写了一段英文但不确定是否地道,想让模型帮你改得更优雅。它的约束是“仅回答更正和改进的部分”,所以你不会拿到一整段重新翻译的文本,而是拿到修改点。比如你输入 “how are you ?”,它可能回复 “How are you?” 并指出首字母大写和空格问题。

“充当英翻中”适合把英文内容翻译成中文,约束是“不要带翻译腔,要自然流畅地道”。这条模板的关键在于“不要带翻译腔”这个负向约束。如果你不加这句,模型很容易输出“你好吗?”这种虽然正确但生硬的翻译。加上之后,它可能会输出“最近怎么样?”更符合中文口语习惯。

“充当英英词典”适合查单词,输出格式是“中文翻译 + 英文释义 + 一个例句”。这条模板的约束是“检查所有信息是否准确,保持简洁”。我实测下来,它对常用词的解释比较可靠,但遇到专业术语或俚语时,英文释义部分偶尔会编。所以我会追加一句:“如果不确定释义,请标注‘不确定’而不是猜测。”

这三条模板可以组合使用。我一般的工作流是:先用英英词典查生词,再用英翻中处理段落,最后用翻译和改进者润色自己写的英文邮件。三步走下来,比单独用任何一个模板效果都好。

3.2 SQL 与数据库:让模型扮演专业 DBA

“作为专业 DBA”这条模板在指南里给了一个具体的表结构:

CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

然后需求是“根据用户的名字查询用户的 id”。这条模板的价值在于它展示了如何把表结构和需求一起喂给模型。很多人只给需求不给表结构,模型只能给你一个泛泛的SELECT id FROM user WHERE name = 'xxx',但不知道你的表名、字段名、字符集。给了表结构之后,模型能生成完全可执行的 SQL,还能根据索引情况给优化建议。

我一般会把这条模板扩展成多轮对话。第一轮给表结构和简单查询,第二轮追加“如果 name 字段没有索引,查询 100 万行数据时怎么优化”,第三轮再问“如果我要按名字模糊搜索,怎么写 SQL 和索引”。这样模型会沿着同一个数据库上下文深入,而不是每次重新开始。

注意一点:模型生成的 SQL 语法正确,但不一定符合你数据库的版本特性。比如它可能给你SELECT TOP 10 * FROM Products,这是 SQL Server 的语法,MySQL 里要用LIMIT 10。所以拿到 SQL 后,先在你的测试库跑一遍,别直接上生产。

3.3 面试官与模拟对话:用约束控制交互节奏

“担任面试官”这条模板的约束写得很细:“不要一次写出所有的问题”“只对我进行采访”“问我问题,等待我的回答”“不要写解释”。这几条约束的目的是把模型从“问答机器”变成“对话参与者”。

如果你不加“不要一次写出所有问题”,模型会一口气列 10 个面试题,然后你只能一个个回答,失去了模拟面试的交互感。加上之后,它会问一个问题,等你回答,再根据你的回答追问。这才是面试的真实节奏。

我一般会在这条模板后面追加:“如果我的回答过于简短,请追问细节;如果我的回答有明显错误,请指出并继续下一个问题。”这样模型不只是走流程,还会根据你的表现调整难度。

类似的交互类模板还有“文字冒险游戏”“下五子棋”“扮演脱口秀喜剧演员”。这类模板的共同点是:它们都要求模型维护一个状态(棋盘、故事进度、对话历史),并且根据你的输入更新状态。用这类模板时,最好在每轮对话开头提醒模型“当前棋盘状态是 XX”或“故事进展到 XX”,否则模型可能会忘记之前的上下文。

3.4 内容创作与 SEO:模板的边界在哪里

指南里内容创作相关的模板最多:写小说、写新闻稿、写广告文案、写旅游文案、写医疗文案、写儿童读物。这些模板的写法大同小异,都是“角色 + 主题 + 风格要求”。但实际用下来,不同领域的输出质量差异很大。

小说和故事类模板效果最好,因为模型在预训练时见过大量叙事文本,你给一个“出人意料结局的推理小说”的指令,它能编出一个结构完整的故事。但医疗文案和金融分析类模板就要小心,模型可能会生成看似专业但实际不准确的内容。比如“充当 AI 辅助医生”那条,它给的诊断建议不能作为医疗依据。

我一般会把内容创作类模板分成“创意型”和“事实型”。创意型(小说、诗歌、广告语)可以放心用,输出不满意就重新生成。事实型(医疗、法律、金融)只能用来做初稿或思路整理,所有事实性内容必须人工核实。

SEO 类模板有个隐藏坑:模型不知道你的目标关键词搜索量和竞争度。你让它“优化 SEO”,它只能给你一些通用建议,比如“在标题中包含关键词”“使用 H2 标签”。真正有效的 SEO 优化需要结合关键词工具和竞品分析,模型只能帮你写 meta description 和文章结构。

4. 避坑与排查:模板用不对的五个典型翻车现场

4.1 模型不按格式输出,代码块里混入解释

现象:你用了“充当 Linux 终端”模板,要求“只在一个唯一的代码块内回复终端输出”,但模型还是在代码块外面加了“好的,以下是输出:”或者代码块里面混入了# 这是命令输出这样的注释。

原因:模型在训练时见过大量“代码块 + 解释”的文本,它的默认行为就是加解释。你的约束虽然写了“不要写解释”,但模型可能认为“好的”不算解释。

解决:把约束写得更绝对。不要写“不要写解释”,写“你的回复必须且只能包含一个代码块,代码块之外不允许有任何字符,包括空格和换行”。另外可以在输入末尾加一句“如果你理解了,请只回复‘已就绪’,不要回复其他内容”。这样模型会用“已就绪”确认,而不是直接开始输出。

4.2 角色扮演中途“出戏”,模型开始用第三人称

现象:你让模型“扮演唐三藏”,前几轮对话它还用“贫僧”自称,聊了五六轮之后突然变成“唐三藏可能会说……”或者“作为 AI,我不能……”

原因:模型的上下文窗口有限,对话轮次多了之后,早期的角色设定被稀释了。另外,如果用户输入的内容触发了模型的安全对齐机制,它会主动跳出角色。

解决:每 3 到 5 轮对话后,在输入末尾追加一句“请继续保持唐三藏的角色,用‘贫僧’自称,不要跳出角色”。如果模型已经出戏,重新发一条“你现在的角色是唐三藏,请用唐三藏的语气重新回答上一个问题”。

4.3 翻译模板输出“翻译腔”严重

现象:用了“充当英翻中”模板,要求“不要带翻译腔”,但输出还是“这是一个好主意,我认为我们应该去做它”这种英文语序的中文。

原因:模型在翻译时,会优先保证语义准确,然后才考虑流畅度。如果你的输入句子结构复杂,它可能先直译再润色,润色不彻底就留下了翻译腔。

解决:在模板里加一个“两步走”约束:“第一步,直译并标注出不符合中文习惯的部分;第二步,只输出润色后的中文,不要输出直译部分。”这样模型会先识别问题再修改,比直接要求“不要翻译腔”更有效。

4.4 SQL 模板生成的语句在目标数据库跑不通

现象:模型生成了SELECT TOP 10 * FROM Products ORDER BY Id DESC,但你的数据库是 MySQL,不支持TOP。

原因:模型在训练时见过各种数据库的 SQL 方言,它默认可能偏向 SQL Server 或 PostgreSQL。你的模板里没有指定数据库类型。

解决:在模板开头加一句“我的数据库是 MySQL 8.0,请使用 MySQL 语法”。如果已经生成了错误语句,把报错信息贴回去,让模型修正。我一般会在模板里写死“使用 LIMIT 而不是 TOP,使用 NOW() 而不是 GETDATE()”。

4.5 表格生成器输出的表格列数不对

现象:你要求“生成一个 5 列的表格”,模型输出了 6 列或者 4 列。

原因:模型对“列”的理解可能和你不一致。比如你说“5 列”,它可能把序号列也算进去,或者把表头不算进去。

解决:在模板里明确定义列名和列顺序。不要只说“5 列”,要说“表格包含以下列:姓名、年龄、城市、职业、邮箱,按这个顺序排列,不要添加序号列”。这样模型没有发挥空间,输出就稳定了。

5. 进阶技巧:把模板串成工作流,用变量和校验兜底

单条模板只能解决单点问题。真正提效的做法是把多条模板串成一个工作流。比如你要写一篇技术博客,可以这样串:

第一步,用“充当花哨的标题生成器”生成 5 个候选标题。第二步,用“充当 SEO 优化师”从 5 个标题里选一个关键词覆盖最好的。第三步,用“充当技术文档撰写者”写大纲。第四步,用“充当英语翻译和改进者”润色每一段。第五步,用“充当表格生成器”把参数整理成表格。

这个流程里,每一步的输出都是下一步的输入。我一般会把每一步的提示词存成单独的文本片段,用的时候按顺序调用。如果你用 API,可以把这些片段写成 system prompt,然后用代码把上一步的输出拼到下一步的 user prompt 里。

# 伪代码:串行调用多个提示词模板 templates = { "title": "你是一个花哨的标题生成器,根据关键词生成 5 个标题:{keywords}", "outline": "你是一个技术文档撰写者,根据标题写大纲:{title}", "polish": "你是一个英语翻译和改进者,润色以下段落:{paragraph}" } def workflow(keywords): titles = call_llm(templates["title"].format(keywords=keywords)) best_title = titles.split("\n")[0] # 简化处理,实际可以用模型选 outline = call_llm(templates["outline"].format(title=best_title)) polished = call_llm(templates["polish"].format(paragraph=outline)) return polished

这段代码的关键是call_llm函数,它负责把模板和变量拼成完整的提示词,发给模型,拿回结果。参数说明:templates字典存模板,format方法填变量,workflow函数按顺序调用。实际使用时,你需要在每一步加校验,比如标题生成后检查是否有 5 个,大纲生成后检查是否有三级标题。

校验这一步很多人省掉,结果模型某一步输出格式不对,后面全乱。我一般会在每一步后面加一个“格式检查”提示词:“请检查以下内容是否符合 XX 格式,如果不符合,请修正后重新输出。”这样即使模型某一步跑偏,也能自动拉回来。

还有一个技巧是“反向提示”。当你不知道怎么写约束时,先让模型生成一版,然后问它“你刚才的输出有哪些地方可能不符合我的要求?”模型会自己列出问题,你再把这些问题的反面写成约束。比如它说“我可能加了不必要的解释”,你就加一条“不要加任何解释”。这比你自己想约束快得多。

从那以后我每次用新模板,都先跑一轮“生成 + 自检 + 修正”,确认输出稳定了再存成快捷指令。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进