导语

随着智能化转型浪潮席卷各行各业,AI 大模型凭借出色的自然语言理解能力与人机交互优势,已在众多垂直场景中确立了不可替代的地位。以内容审核领域为例,相较于传统人工审核方式,AI 大模型展现出了显著的效率优势——借助精准构建的 Prompt,可在内容合规检测、自动化审核流程等多类项目与业务场景中充分释放潜力,大幅缩短处理周期,提升产出质量。 笔者系统学习了业内多位先行者关于 Prompt 的课程体系后,汇整成这份参考资料,供各位研习交流。本笔记将系统梳理 Prompt 的概念界定与撰写框架,深入剖析构建高质量 Prompt 的核心准则与实操方法,并从底层技术视角解读 Prompt 的运作机制,帮助读者更高效地驾驭大模型,创造真实的业务价值。

第一节:提示词 Prompt 定义及基本框架

一、什么是提示词 Prompt

大模型 Prompt 指在大语言模型应用中,用于"提示"模型唤起特定能力以解决实际问题的提问方式。早期它被称作"输入形式"或"输入模板",后来"prompt"(提示)这一叫法因契合大语言模型语境,能准确体现其在调用模型能力方面的关键作用,成为公认术语。

大模型的绝大多数核心能力都在预训练阶段奠定,Prompt 犹如一把开关,引导模型从预训练阶段积累的庞大知识体系中,有针对性地激活诸如深度文本理解、信息摘要、内容创作、逻辑演绎等能力,从而响应用户的实际诉求。它并不是将模型视为静态的知识仓库,而是以高效的方式调度模型能力,实现与人类运用智识应对复杂问题相似的效果,是 Prompt 工程的核心所在,对于充分发挥大语言模型价值具有重要意义。

二、撰写 Prompt 的基本框架

1. Prompt 包含的要素
要素 说明
指令 想要模型执行的特定任务或指令
上下文 包含外部信息或额外的上下文信息,引导语言模型更好地响应
输入数据 用户输入的内容或问题
输出指示 指定输出的类型或格式
2. Prompt 五大框架
2.1 RTF 框架

RTF(Role-Task-Format)框架是一套极为简洁且普适的 Prompt 提示框架,可广泛应用于各类大模型对话场景。

字母 含义 说明
R Role(角色) 指定大模型担当固定角色(专家、分析师、研究员、记者等)
T Task(任务) 告诉大模型需要为我们做的事情
F Format(格式) 大模型最终结果的返回格式(表格、json、英文等)

主要优点:

  • 简单、方便
  • 指定 Role 角色,可以让大模型在当前角色范围内回答知识,在特定领域中非常有效
  • 指定 Role 角色也能让工程上检索知识确定边界范围,配合元数据威力更强
  • 如果结合 RAG 知识内容检索,上下文回答的内容会让用户感觉更加顺畅
2.2 思考链模式

借助这一模式,可以循序渐进地强化大模型的推理表现,尤其适合处理以下类型的复杂任务:

  • 分析型或者逻辑推理型的任务
  • 决策
  • 解决问题(比如程序员根据错误日志找 Bug)

使用方式:只需要在提示末尾添加 “让我们逐步思考” 即可。

# 数据源(与指令区分)user_datasource = """XXX……"""prompt1 = """分析一下在在线教育平台场景下,'''{user_datasource}'''中用户有哪些诉求。用一句话概括。"""prompt2 = """分析一下在在线教育平台场景下,'''{user_datasource}'''中用户有哪些诉求。用一句话概括。让我们逐步思考。"""# 模型输出结果output1:在在线教育平台场景下,用户主要诉求为:课程视频无法播放、账号登录异常、课程内容与描述不符、请求退款等,寻求客服协助解决问题。output2:在在线教育平台场景下,用户主要诉求为:课程视频无法正常播放导致学习中断,以及因账号异常无法继续学习,用户希望平台能够尽快响应并解决上述问题。# 分析结果# output1 中的"课程内容与描述不符"并非用户的核心诉求,而 output2 显然更加精准
2.3 RISEN 框架
字母 含义 说明
R Role 大模型扮演的角色
I Instructions 指示命令,和 Task 差不多
S Steps 步骤
E End Goal 最终目标
N Narrowing (Constraints) 缩小范围(约束条件),可以是内容限定、字数限制等任意方面

适合场景:

  • 撰写具有特定约束的任务(例如博客文章)
  • 有明确指导方针的任务(例如商业计划)
2.4 RODES 框架
字母 含义
R Role(角色)
O Objective(目标)
D Details(详细的细节)
E Examples(示例)
S Sense Check(感官检查)
2.5 密度链模式

密度链模式是 Salesforce、麻省理工学院和哥伦比亚大学的研究人员推出的一种新提示,它使用递归来创建越来越好的输出,与普通提示生成的 GPT-4 摘要相比,生成的摘要更加密集且更适合人们理解。

适合场景:

  • 总结
  • 改进您最喜欢的提示
  • 通过递归生成可用的长格式内容

第二节:打造高效 Prompt 的两大核心原则

一、原则一:编写明确和具体的指令

策略 1:使用分隔符清晰界定输入部分

合理运用分隔符将待处理的特定文本与提示的其余内容明确区隔开来,可以有效规避提示词之间的干扰与冲突。常见分隔符包括:

  • 章节标题:通过不同层级的标题区分不同内容模块
  • 三重双引号""" ,在代码编写中常用于包裹较长的文本字符串
  • 三重单引号''' ,功能与三重双引号类似
  • 三重破折号---,在文本中起到明显的分隔作用
  • 角括号<> ,常被用于标记特定元素
  • XML 标签<tag></tag> ,利用结构化的标签形式区分不同内容

示例 1: 对产品描述进行总结

product_description = f"""这是一款全新的无线降噪耳机,支持主动降噪、通透模式切换,配备高保真音频驱动单元,单次充电可续航达30小时,并兼容多设备快速切换连接。"""prompt = f"""请总结以下产品描述:'''{product_description}'''"""

示例 2: 对用户评论进行情感分析

user_comment = f"""这款笔记本电脑的散热设计相当出色,长时间运行也几乎感觉不到明显发热,键盘手感舒适,唯独屏幕亮度在强光环境下稍显不足。"""prompt = f"""分析以下用户评论的情感倾向:'''{user_comment}'''"""
策略 2:要求结构化输出

指定模型按照特定的结构化格式(如 HTML 或 JSON)进行输出,能够显著提升后续数据处理的效率与便捷性。

示例 1: 要求模型以 JSON 格式输出

prompt = "请以json格式列出每个nodeType所体现的用户诉求、客服方案。每一个json-value不超过20个字"# 模型输出{"IVR": {    "用户诉求": "游戏账号相关问题求助",    "客服方案": "引导自助查询或转人工"  },"ASYNC": {    "用户诉求": "虚拟道具误购申诉",    "客服方案": "按规则审核或引导自助"  },"AI": {    "用户诉求": "充值未到账问题咨询",    "客服方案": "要求用户提供订单截图"  }}

示例 2: 以 HTML 格式输出书籍列表

prompt = "请以HTML格式列出三本你推荐的科幻小说及其作者。"# 模型输出<ul>    <li>《三体》 - 刘慈欣</li>    <li>《基地》 - 艾萨克·阿西莫夫</li>    <li>《银河帝国:机器人五部曲》 - 艾萨克·阿西莫夫</li></ul>
策略 3:要求模型检查条件是否满足

在处理含有前置条件的复杂任务时,应指引模型优先验证假设条件是否成立,若不满足则给出明确提示并终止后续操作。

expression = "5 + 3 - (-2)"prompt = f"""首先检查表达式 '{expression}' 中的所有数字是否都为正数。如果是,请计算该表达式的值;如果不是,请输出'表达式中存在非正数,无法计算'。"""# 模型输出# 表达式中存在非正数,无法计算
策略 4:Few-shot Prompting(少样本提示)

向模型提供若干已完成任务的典型示例,辅助模型更准确地把握任务要求和预期的输出样式。

prompt = """示例1:中文词汇:苹果翻译:apple造句:I like to eat apples.示例2:中文词汇:学校翻译:school造句:I go to school every day.中文词汇:图书馆翻译:造句:"""# 模型输出# 翻译:library# 造句:I often read books in the library.

二、原则二:给予模型充足的思考时间

策略 1:明确完成任务所需的步骤

向模型清晰传达执行任务时需要遵循的具体步骤,使模型能够有序地展开推理与运算。

poem = "横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中。"prompt = f"""请按照"诗歌主题 - 主要意象 - 表达情感"的格式分析这首诗:{poem}"""# 模型输出# 哲理感悟 - 庐山 - 对客观认知局限的深刻反思
策略 2:引导模型在得出结论前充分思考方案

在要求模型作出最终判断之前,明确指示其先进行多角度的深入推演与权衡分析。

prompt = "在回答如何提升团队项目交付质量之前,请先思考至少三个方面的关键因素,然后综合这些因素给出全面的改进建议。"# 模型输出# 首先,从流程规范方面,可建立标准化的代码审查机制、完善测试覆盖率要求,确保每个环节有据可查;# 其次,从人员协作角度,加强跨职能团队沟通,定期开展技术分享与复盘会议;# 再者,从工具赋能来看,引入自动化 CI/CD 流水线,降低人工操作失误率,提升发布效率。# 综合以上三方面,提升项目交付质量可以从规范研发流程、强化团队协作以及优化工程工具链等维度协同推进。

三、模型的局限性与应对策略

模型"幻觉"

尽管模型在训练阶段已消化了海量数据,但它依然无法对所有信息做到完整记忆,也很难精确感知自身知识的边界所在。正因如此,当遇到较为生僻或小众的议题时,模型有可能输出表面上逻辑自洽、实则有悖事实的内容,这一现象即通常所说的**“幻觉”**。

解决幻觉的策略

可要求模型在作出回答之前,先行从所提供的参考文本中检索出相关依据,再以这些依据为基础构建回答内容。这一做法能保证输出结果有据可查,同时具备良好的可追溯性。

text = """1969年,美国阿波罗11号完成了人类首次载人登月任务,这是航天史上的里程碑事件,标志着美国在太空竞赛中取得决定性胜利。宇航员尼尔·阿姆斯特朗率先踏上月球表面,留下了那句举世闻名的话,成为人类探索宇宙精神的永恒注脚。"""prompt = f"""请从上述文本中找出相关信息,回答阿波罗11号任务的历史意义是什么?"""# 模型输出# 阿波罗11号完成了人类首次载人登月任务,是航天史上的里程碑事件,标志着美国在太空竞赛中取得决定性胜利。

第三节:Prompt 技术剖析与应用

一、零样本提示(Zero-Shot Prompting)

模型在没有特定任务示例的情况下直接处理任务。其核心原理在于,模型经过大规模语料预训练与指令微调后,已内化了跨领域的通用知识和对各类任务的基本理解能力。

prompt = "判断此文本的情感倾向为积极、消极或中性:这部电影情节紧凑,特效惊人。情感:"# 模型输出:积极

局限:对于复杂任务,由于缺乏具体示例引导,效果可能受限。

二、少样本提示(Few-Shot Prompting)

当零样本提示的表现未能达到预期时,可通过向模型注入少量具有代表性的任务示例,帮助模型从中归纳任务的规律与输出模式。

prompt = """"whatpu"是坦桑尼亚的一种小型毛茸茸的动物。一个使用 whatpu 这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。"farduddle"是指快速跳上跳下。一个使用 farduddle 这个词的句子的例子是:"""# 模型会根据前面的示例学习并生成新的句子

三、思维链提示(Chain-of-Thought Prompting)

在 Prompt 中呈现完整的逐步推导过程,引导模型学会拆解问题、逐层分析直至得出结论。该方法可与少样本提示配合使用,在算术运算、常识推理等需要多步推导的任务中效果尤为显著。

prompt = """Roger 有 5 个网球,他又买了 2 罐网球,每罐有 3 个球,他现在共有多少球?Roger 一开始有 5 个球。2 罐网球,每罐 3 个,共 6 个球。5 + 6 = 11。答案是 11。"""

四、自我一致性(Self-Consistency)

向模型提供多组少样本推理示例,使模型通过对多条不同推理路径所得结果进行比对,最终选取最高频一致的答案,从而提升算术推理与常识问答任务的可靠程度。

prompt = """Q:林中有 15 棵树。林业工人今天将在林中种树。完成后,将有 21 棵树。林业工人今天种了多少棵树?A:我们从 15 棵树开始。后来我们有 21 棵树。差异必须是他们种树的数量。因此,他们必须种了 21 - 15 = 6 棵树。答案是 6。...(更多示例)Q:当我 6 岁时,我的妹妹是我的一半年龄。现在我 70 岁了,我的妹妹多大?A:"""

五、生成知识提示(Generated Knowledge Prompting)

先驱动模型输出与任务密切相关的背景知识,再将这些知识融入后续推理过程以得出精准结论,能够切实提升常识类推理任务的答题质量。

prompt = """输入:高尔夫球的一部分是试图获得比其他人更高的得分。知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括 18 个洞。每个杆计为一分,总杆数用于确定比赛的获胜者。解释和答案:"""# 模型输出:不是,高尔夫球的目标是以最少杆数完成比赛,而非追求更高得分。

六、链式提示(Prompt Chaining)

把一个复杂的综合性任务分解为若干相互衔接的子任务,依次为每个子任务构建 Prompt 并将前一步的输出作为后一步的输入,实现对复杂任务的结构化、有序处理。

# 第一个提示:提取相关引文prompt1 = """你是一个很有帮助的助手。你的任务是根据文档回答问题。第一步是从文档中提取与问题相关的引文,由####分隔。请使用<quotes></quotes>输出引文列表。如果没有找到相关引文,请回应"未找到相关引文!"。#### {{文档}} ####"""# 第二个提示:根据引文和文档生成回答prompt2 = """根据从文档中提取的相关引文(由<quotes></quotes>分隔)和原始文档(由####分隔),请构建对问题的回答。请确保答案准确、语气友好且有帮助。#### {{文档}} #### <quotes>{quotes_list}</quotes>"""

七、思维树(Tree of Thoughts, ToT)

通过维护一棵思维树,让模型在解决问题时能够生成和评估中间思维步骤,并结合搜索算法进行系统性探索,帮助模型应对复杂的探索性任务。

prompt = """输入: 4 9 10 134 + 9 = 13 (left 10 13 13)10 - 4 = 6 (left 6 9 13)13 - 6 = 7  13 - 9 = 44 + 6 = 10 (left 7 9)  4 * 6 = 24 (left 4 6)评估是否能得到 24: sure"""

八、检索增强生成(RAG)

将信息检索与文本生成相结合,通过检索相关文档为模型提供额外的知识支持,有效缓解模型的"幻觉"问题。在自然问题、事实验证等基准测试中表现卓越。

question = "谁是首次登上月球的人?"documents = retrieve_documents(question)prompt = "根据以下文档回答问题:" + str(documents) + " 问题是:" + questionanswer = generate_answer(prompt)

九、自动推理并使用工具(ART)

使模型能够自动生成包含推理步骤的程序,并在需要时调用外部工具。在 BigBench 和 MMLU 基准测试中,ART 在多种任务上表现突出,显著超越少样本提示和自动 CoT 等方法。

prompt = """计算将 48 份报告平均分配给 6 个小组,每组几份,再加上 5 是多少?请生成解决这个问题的程序步骤。"""# 模型生成程序步骤:result = (48 / 6) + 5

十、自动提示工程师(APE)

利用大型语言模型自动生成指令候选项,再依据评估分数选择最佳指令,提升提示生成的效率与效果。

article = "这里是一篇技术博客文章的内容"candidates = generate_candidates(article)prompt = select_best_instruction(candidates) + " " + article# 模型根据最终的 prompt 生成文章总结

十一、Active-Prompt

先查询模型生成多个答案,计算不确定度后挑选最不确定的问题由人类注释示例,再用新示例推断其他问题,从而优化模型对不同任务的适应性。

prompt = "对以下文本进行分类:这是一篇关于量子计算研究进展的学术报告。"answers = query_model(prompt, num_answers=5)   # 生成 5 个答案uncertainty = calculate_uncertainty(answers)if uncertainty > threshold:  # 不确定度超过阈值    new_prompt = update_prompt_with_annotated_example(prompt)    final_answer = query_model(new_prompt)else:    final_answer = select_most_consistent_answer(answers)

十二、方向性刺激提示(Directional Stimulus Prompting)

通过训练策略 LM 生成引导提示,增强对模型生成结果的掌控力,提升文本摘要等任务的质量。

article = "这里是一份产品需求文档的内容"prompt = "请根据文档内容生成一个引导提示,重点关注文档中的核心功能需求和验收标准。"# 策略 LM 生成引导提示,例如:"重点提取文档中的功能模块、用户故事以及关键交付物"# 然后将引导提示用于后续的文本摘要任务

十三、PAL(程序辅助语言模型)

让模型生成程序来解决问题,借助编程运行时提升解决复杂问题的能力,尤其适用于数学计算等精确推理任务。

question = "今天是 2024 年 6 月 15 日,项目启动于 180 天前,项目启动日期是多少?"prompt = """import datetimefrom dateutil.relativedelta import relativedelta# Q: 2015 年在 36 小时后到来。从今天起一周后的日期是多少(格式为 MM/DD/YYYY)?today = datetime(2015, 1, 1) - relativedelta(hours=36)one_week_from_today = today + relativedelta(weeks=1)one_week_from_today.strftime('%m/%d/%Y')# Q: 今天是 2024 年 6 月 15 日,项目启动于 180 天前,项目启动日期是多少?"""# 模型生成:# today = datetime(2024, 6, 15)# born = today - relativedelta(days=180)# born.strftime('%m/%d/%Y')

十四、ReAct 框架

使模型交错生成推理轨迹和操作,提升答案的可靠性与可解释性。在知识密集型和决策任务中表现良好,通过与外部环境交互获取信息来辅助推理。

question = "除苹果遥控器外,哪些设备可控制其设计交互的程序?"prompt = """问题:除苹果遥控器外,哪些设备可控制其设计交互的程序?思考 1:我需要搜索苹果遥控器相关程序及可替代控制设备。操作 1:搜索 [苹果遥控器 可替代控制设备]观察 1:搜索结果为……思考 2:根据搜索结果,分析哪些设备符合要求。操作 2:筛选 [符合要求的设备]观察 2:筛选结果为……思考 3:整理最终答案。操作 3:整理 [最终答案]"""

十五、自我反思(Reflexion)

包含参与者、评估者和自我反思三个模型,旨在帮助模型从错误中学习并提升性能。如代码出现语法错误,自我反思模型会提示可能的错误原因及修正方向。

code = "这里是一段初始代码"result = actor(code)           # 参与者模型生成代码和动作score = evaluator(result)      # 评估者模型评价输出reflection = reflexion(score, result)  # 自我反思模型生成改进建议# 将改进建议应用到下一次的代码生成中,实现自我学习和提升

附录

一、术语表

术语 说明
Prompt 在大语言模型应用中,用于"提示"模型唤起特定能力的提问方式,是 Prompt 工程的核心
RTF 框架 Role-Task-Format 框架,通过指定角色、任务和格式规范大模型输出,简单通用
思考链模式 在提示末尾添加"让我们逐步思考",引导大模型逐步分析复杂任务,改善推理能力
RISEN 框架 包含角色、指示命令、步骤、最终目标和约束条件,适合特定约束或明确指导方针的任务
RODES 框架 涵盖角色、目标、详细细节、示例和感官检查的提示框架
密度链模式 利用递归创建更好输出的提示,生成的摘要更密集且适合理解,适用于总结等任务
少样本提示 为模型提供少量任务示例,帮助其学习任务模式和规律
零样本提示 模型在无特定任务示例下,依靠自身预训练知识直接处理任务
思维链提示 为模型展示详细推理过程,提升其在复杂推理任务中的表现
自我一致性 通过多个推理示例,让模型筛选最一致答案,增强推理可靠性
生成知识提示 先让模型生成相关知识,再整合知识得出准确答案
链式提示 将复杂任务拆分为多个子任务,逐步生成提示并传递结果
思维树(ToT) 通过维护思维树,让模型生成和评估中间思维步骤,应对复杂探索性任务
RAG 将信息检索与文本生成结合,检索相关文档为模型提供知识支持,缓解"幻觉"问题
ART 使模型自动生成包含推理步骤的程序,并在需要时调用外部工具
APE 利用大型语言模型生成指令候选项,依据评估分数选择最佳指令
Active-Prompt 查询模型生成多个答案,计算不确定度后挑选最不确定问题由人类注释,优化模型适应性
方向性刺激提示 训练策略 LM 生成引导提示,增强对模型生成结果的掌控力
PAL 让模型生成程序来解决问题,借助编程运行时提升解决复杂问题的能力
ReAct 框架 使模型交错生成推理轨迹和操作,提升答案的可靠性与可解释性
自我反思(Reflexion) 包含参与者、评估者和自我反思三个模型,帮助模型从错误中学习并提升性能

二、常见问题解答

Q1:如何选择合适的 Prompt 框架?

根据任务类型和需求选择:

  • 简单对话场景 → RTF 框架
  • 复杂分析任务 → 思考链模式RISEN 框架
  • 对输出格式有严格要求 → 关注 RTF/RISEN 框架中的格式或约束条件设定
  • 进行总结类任务 → 密度链模式

Q2:为什么模型会出现"幻觉"现象?

模型虽经大量数据训练,但无法完美记住所有知识,也难以精准把握知识边界,面对复杂或生疏主题时,就可能编造看似合理但错误的内容。

Q3:如何利用少样本提示提升模型性能?

提供与任务相关、格式规范的成功示例,示例要涵盖任务的关键要素和模式,让模型学习示例中的规律和逻辑,尤其适用于复杂任务或对输出格式有特定要求的情况。

Q4:链式提示在实际应用中有哪些优势?

将复杂任务拆解为子任务,使模型处理过程更清晰、有序,逐步深入解决问题,提高了任务处理的准确性与可靠性,避免模型在处理复杂问题时因任务过于复杂而出现混乱或错误。

最近两年大模型发展很迅速,在理论研究方面得到很大的拓展,基础模型的能力也取得重大突破,大模型现在正在积极探索落地的方向,如果与各行各业结合起来是未来落地的一个重大研究方向

大模型应用工程师年包50w+属于中等水平,如果想要入门大模型,那现在正是最佳时机

2025年Agent的元年,2026年将会百花齐放,相应的应用将覆盖文本,视频,语音,图像等全模态

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

在这里插入图片描述

给大家推荐一个大模型应用学习路线

这个学习路线的具体内容如下:

第一节:提示词工程

提示词是用于与AI模型沟通交流的,这一部分主要介绍基本概念和相应的实践,高级的提示词工程来实现模型最佳效果,以现实案例为基础进行案例讲解,在企业中除了微调之外,最喜欢的就是用提示词工程技术来实现模型性能的提升

img

第二节:检索增强生成(RAG)

可能大家经常会看见RAG这个名词,这个就是将向量数据库与大模型结合的技术,通过外部知识来增强改进提升大模型的回答结果,这一部分主要介绍RAG架构与组件,从零开始搭建RAG系统,生成部署RAG,性能优化等

img

第三节:微调

预训练之后的模型想要在具体任务上进行适配,那就需要通过微调来提升模型的性能,能满足定制化的需求,这一部分主要介绍微调的基础,模型适配技术,最佳实践的案例,以及资源优化等内容

img

第四节:模型部署

想要把预训练或者微调之后的模型应用于生产实践,那就需要部署,模型部署分为云端部署和本地部署,部署的过程中需要考虑硬件支持,服务器性能,以及对性能进行优化,使用过程中的监控维护等

img

第五节:人工智能系统和项目

这一部分主要介绍自主人工智能系统,包括代理框架,决策框架,多智能体系统,以及实际应用,然后通过实践项目应用前面学习到的知识,包括端到端的实现,行业相关情景等

img

学完上面的大模型应用技术,就可以去做一些开源的项目,大模型领域现在非常注重项目的落地,后续可以学习一些Agent框架等内容

上面的资料做了一些整理,有需要的同学可以下方添加二维码获取(仅供学习使用)

在这里插入图片描述

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务

更多推荐