提示工程中的10个设计模式

我们可以将提示词定义为向大型语言模型(Large Language Model,LLM)提供的一个查询或一组指令,这些指令随后使模型能够维持一定程度的自定义或增强,以改进其功能并影响其输出。我们可以通过提供细节、规则和指导来引出更有针对性的输出,从而使提示词更加具体。提示词越具体,输出就越精确,关于提示工程的更多信息可以参考《解读提示工程(Prompt Engineering)》以及《Agent 应用于提示工程》。

而设计模式可以理解为对常见问题的通用可重复解决方案。每个设计模式绝不是一个可以直接应用于问题的完整解决方案,而是一个可以用来更好地构建应用最佳实践的解决方案的模板或框架。设计模式在面向对象编程领域应用广泛,在本文中,老码农尝试总结了提示工程中的10个常见设计模式。

3f1c8c26826249bb576656027960dd62.jpeg

1. 人物角色模式

人物角色模式是一种通过向语言模型注入特定的人格或说话的语气来实现。通过定义不同的角色,我们能够控制生成文本的风格和方式,以适应各种不同的应用场景。以下是一些示例:

  • 客户支持:在客户支持领域,一个友好、耐心的角色可能更有效地与客户进行沟通,解决问题并提供帮助。例如,当客户提出问题时,语言模型可以以礼貌和亲切的语气回应,并提供清晰明了的解决方案,从而增强客户满意度。

  • 故事讲述:在虚构故事或创意写作中,不同的角色可能需要具有不同的语气和情感表达。例如,一个幽默风趣的角色可能会使用幽默感和夸张来讲述故事,而一个严肃的角色可能会使用严肃和沉稳的语调。

  • 教育内容:在教育领域,语言模型可以扮演各种不同的角色,以更好地适应不同学习者的需求和学习风格。例如,对于儿童教育内容,模型可以采用轻松、活泼的语气来吸引他们的注意力,而对于专业技术课程,模型可以采用更正式、严谨的语气来传递知识。

通过人物角色模式,语言模型能够以更加灵活、个性化的方式生成文本,从而提高与用户的互动体验,并在各种应用场景中发挥更大的作用。

2. 食谱模式

类似于烹饪食谱,食谱模式提供了一种逐步指导大模型生成文本的方法。这种模式对于需要详细和连续指令的任务非常有价值,例如教程、过程文档或制作装配指南。以下是部分示例:

  • 教程:想象一下,正在写一篇教程文章,向读者介绍如何学会某项技能,比如学习编程或学习绘画。通过食谱模式,你可以提供清晰的步骤和指导,使读者能够逐步理解和实践所学内容,从而更容易地掌握新技能。

  • 过程文档:在工业生产或科学实验中,经常需要编写详细的过程文档,以记录和共享操作步骤。利用食谱模式,你可以逐步描述每个操作步骤,确保读者能够准确地重现操作过程,从而提高工作效率并减少错误发生的可能性。

  • 制作装配指南:在制造业中,制作装配指南对于工厂工人来说至关重要。你可以为每个装配步骤提供详细的说明,包括所需工具、材料和操作步骤,以确保产品能够正确组装并符合质量标准。

通过这种模式,大模型可以提供连贯性和结构性的文本输出,使读者能够轻松理解和实践其中的指导,从而在各种应用场景中实现更高效的工作和学习。

3. 反向查询模式

在反向查询模式中,大模型被要求以一种特殊的方式工作:首先,它接收一个输出或响应作为启动条件,然后被要求生成最适合的查询或输入,以产生特定的输出。这种技术不仅仅可以用于问答场景,还可以应用于各种其他情境中。以下是一些示例:

  • 智能助手:假设你正在与智能助手对话,你问了一个问题,但是你想深入了解更多相关信息。在这种情况下,反向查询模式可以应用。你的智能助手可以根据你的问题生成一个响应,然后询问你是否想了解更多相关内容,从而引出更深入的查询。

  • 搜索引擎优化:在网页内容创作中,反向查询模式可以用于优化搜索引擎结果。假设你是一个网站管理员,希望你的网站在特定的搜索查询中排名更高。你可以使用反向查询模式来创建内容,以确保网站在搜索引擎中出现在相关的查询结果中。

  • 个性化推荐系统:在电子商务或内容推荐领域,反向查询模式可以用于个性化推荐系统。系统可以根据用户的行为和偏好生成一些输出,然后根据这些输出生成相应的查询,以提供更加个性化和精准的推荐。

通过反向查询模式,大模型能够根据特定的输出生成相应的查询或输入,从而更好地满足用户的需求,并提高系统的性能和用户体验。

e97266d5219846145c09315f5bb3b8de.jpeg

4. 输出自动化模式

输出自动化模式是一种利用指示词来规范化大模型生成结构化或格式化输出的方式,以实现重复任务的自动化。举例来说,它可以用于以下情形:

  • 报告生成:在企业环境中,每天都需要生成销售报告。通过输出自动化模式,可以将销售数据输入到语言模型中,然后生成预定义格式的报告,省去了人工编写报告的时间和劳动。

  • 摘要生成:在学术研究中,需要从大量文献中提取信息并生成摘要。利用输出自动化模式,可以令大模型根据用户给定的关键词或主题自动生成文献摘要,极大地提高了处理大量文本的效率。

  • 响应生成:在客户服务领域,经常需要对客户的常见问题进行快速响应。通过输出自动化模式,可以根据问题的关键词或分类,让语言模型自动生成适当的响应,从而提高客户服务的效率和准确性。

  • 代码编写:对于开发人员来说,编写重复性代码是一种常见的任务。输出自动化模式可以被用来指示语言模型根据用户选择的首选编码语言自动生成代码段,从而加速开发过程并减少编码错误。

输出自动化模式特别是在涉及数据分析、内容生成和软件开发等领域中,它能够极大地提高工作效率和准确性。

5. 思维链模式

思维链(CoT)模式是一种指导大模型按照特定的推理或论证路径进行生成的技术。这种模式对于创作有说服力的文章、评论或者复杂的讨论非常有价值,因为逻辑流是构建其可信度和可理解性的关键要素。以下是一些示例:

  • 评论文章:在撰写评论文章时,必须确保论点的逻辑连贯性和严谨性。思维链模式可以指导语言模型按照辩论的逻辑结构生成论据、反驳和结论,从而使文章更具有说服力和逻辑性。

  • 科学论文:在科学领域,论文必须以科学推理为基础,确保实验结果和结论的可信度和可重复性。思维链模式可以帮助语言模型按照科学推理的逻辑链条,从问题陈述到实验设计再到结果分析,生成符合科学标准的论文。

  • 辩护词:在法律场景中,律师必须提供有力的辩护词以支持其客户。思维链模式可以引导语言模型按照法律逻辑生成辩护词,包括陈述事实、引用法律条文、提出论证和反驳对方观点,从而为案件提供强有力的辩护。

通过思维链模式,大模型可以按照逻辑思维的路径生成文本,使其更具有连贯性、说服力和可理解性,从而在各种领域中发挥重要作用。

6 图谱辅助模式

图谱辅助模式是一种利用已有知识来增强提示的方法,从而帮助大型语言模型生成更准确的输出结果。这种模式通过将知识图谱或领域专业知识与模型结合,以提供更多背景信息和上下文,从而改善模型的理解能力和输出质量。以下是部分示例:

  • 医学诊断:在医学领域,图谱辅助模式可以用于帮助语言模型更好地理解临床病例或医学报告。通过结合医学知识图谱和患者历史记录,模型可以生成更精准的诊断建议或治疗方案。

  • 智能客服:在客户服务领域,图谱辅助模式可以用于改善智能客服系统的响应质量。模型可以利用行业领域知识图谱,为客户提供更专业和准确的解决方案,从而提高客户满意度。

  • 法律咨询:在法律领域,图谱辅助模式可以帮助语言模型更好地理解法律文书或案件细节。通过整合法律知识图谱和案例法规,模型可以提供更精准的法律建议或法律分析,帮助律师和法律专业人士更好地处理案件。

通过图谱辅助模式,大模型可以利用丰富的知识资源来增强其输出的准确性和可靠性,从而在各种应用场景中发挥更大的作用。

4e37219932fdebba34718f03091864a6.jpeg

7. 事实检查模式

为了降低产生错误或误导信息的风险,事实检查模式促使大型语言模型根据可靠的外部来源或数据库验证其输出。这种模式鼓励大模型提供支持性证据来证明其答案的可信性,从而促进准确的结果。以下是一些示例:

  • 新闻报道:在新闻领域,事实检查模式可以帮助语言模型验证新闻事件的准确性。模型可以引用可信的新闻机构或官方消息来源,以支持其报道的事实,从而减少虚假信息的传播。

  • 学术论文:在学术写作中,事实检查模式可以确保语言模型引用了经过同行评审的研究或权威性数据,以支持其论述。这有助于确保论文的准确性和可信度。

  • 医学咨询:在医疗领域,事实检查模式可以帮助语言模型核实医学信息的准确性。模型可以引用权威的医学期刊或医学数据库,以支持其提供的医学建议或解释,从而降低误导性信息的风险。

通过事实检查模式,大模型可以提供更加可靠和准确的输出,从而增强其在各种应用场景中的可信度和实用性。

8. 反射模式

反射模式鼓励大模型以批判性的视角评估其生成的文本。这种模式促使大模型审视其输出中存在的潜在偏见或不确定性。以下是一些示例:

  • 社交媒体评论:在社交媒体上,语言模型可能被用于生成评论或回复。在反射模式下,模型应当反思其生成的评论是否存在歧视性言论或误导性信息,并尽可能避免这些问题。

  • 新闻报道:在新闻报道中,语言模型可能被用于撰写文章或提供评论。在反射模式下,模型应当审视其生成的内容是否准确、客观,并且是否有可能受到外部因素的影响。

  • 教育资料:在教育领域,语言模型可能被用于生成教育资料或解答问题。在反射模式下,模型应当考虑其生成的内容是否有益于学习,是否存在错误或者主观偏见,并且是否需要进一步的核查或修正。

通过反射模式,大模型可以更加自觉地评估其输出,避免不当的言论或误导性信息,并且提供更加负责任和可信的回答。

9.问题精炼模式

问题精炼模式是一种迭代方法,其中根据语言模型的反馈不断优化输入的查询或提示。通过分析模型对不同提示的响应,开发人员可以微调查询,从而提高模型的性能。以下是一些示例:

  • 搜索引擎优化:假设你是一个网站管理员,你想通过搜索引擎优化来提高你的网站在搜索结果中的排名。你可以使用问题精炼模式来不断优化你的搜索查询,根据语言模型的反馈调整关键词、语句结构等,以提高你的网站在搜索引擎中的可见性。

  • 语音助手:在语音助手应用中,用户可能会提出各种问题或指令。通过问题精炼模式,开发人员可以分析语言模型对不同查询的响应,然后调整用户界面或系统设置,以改善语音助手的准确性和响应速度。

  • 自然语言处理应用:在自然语言处理应用中,例如聊天机器人或智能客服系统,问题精炼模式可以用来不断优化模型的响应。开发人员可以通过分析模型对用户不同问题的回答,然后对模型进行微调,使其更加智能和适应性更强。

通过问题精炼模式,开发人员可以与语言模型进行交互,不断改进模型的性能和效果,从而提供更好的用户体验和更准确的结果。

68b6d5e0eb43db2db10959c52a04c7bd.jpeg

10.部分拒绝模式

有时,人工智能模型在面对复杂的查询时可能会回答“我不知道”或拒绝生成输出。为了更有效地处理这种情况,引入了“断路拒绝模式”。这种模式的目标是训练模型在面对困难或无法准确回答的情况下,能够提供有用的答复或部分答案,而不是直接拒绝。以下是一些示例:

  • 聊天机器人:当用户向聊天机器人提出一个超出其知识范围的问题时,传统的做法可能是简单地回答“我不知道”。然而,通过断路拒绝模式,聊天机器人可以尝试根据已有的信息或上下文提供相关的信息或建议,即使是部分答案也能为用户提供一些帮助。

  • 搜索引擎:当搜索引擎无法找到与用户查询完全匹配的结果时,通常会显示一条消息,说明未找到结果。然而,采用本模式,搜索引擎可以尝试根据用户查询的意图提供相关的内容,即使没有完整的答案,也能提供一些相关信息或指导。

  • 语音助手:在语音助手应用中,当用户提出一个超出语音助手知识范围的问题时,语音助手可以采用断路拒绝模式,尝试提供有用的提示或建议,以帮助用户更好地理解或解决问题,而不是简单地回答“我不知道”。

通过该模式,人工智能模型可以更加灵活和智能地处理复杂的情况,提高其适应性和用户体验。

没有结束

提示工程的设计模式是一种强大的工具,能够更好地发挥大模型的能力。本文介绍的这些模式可以帮助提高给定大模型的整体质量。通过利用这些模式,我们可以定制特定用例的输出,识别和纠正错误,并优化提示以获得更准确和更富有见地的响应。随着人工智能技术的不断发展和新模式的涌现,提示工程仍可能是创造更可靠和更智能的人工智能会话系统的关键因素之一。

【关联阅读】


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组合数(费马小定理, 快速幂)

给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(1097)的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一组 a 和 b。 输出格式 共 n 行,每行输出一个询问的解。 数据范围 1≤n≤10000, 1≤…

iOS代码加固与保护方法详解 - 提升iOS应用安全性的关键步骤

憧憬blog主页 在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验&#xff0…

基于大模型的态势认知智能体

源自:指挥控制与仿真 作者:孙怡峰, 廖树范, 吴疆 李福林 “人工智能技术与咨询” 发布 摘要 针对战场态势信息众多、变化趋势认知困难的问题,提出基于大模型的态势认知智能体框架和智能态势认知推演方法。从认知概念出发,结合智能体的抽象性、具…

大厂高频面试题复习JAVA学习笔记-JUC多线程及高并发(上)

目录 0 JUC基础概念 wait/sleep的区别 并发与并行的区别 线程的六个状态 JUC结构 ​编辑 1 请谈谈你对volatile的理解 JMM(java内存模型) 可见性 不保证原子性 有序性​编辑 指令重排 哪些地方用到volatile: 双端检查机制DLC …

MySQL-6.表的高级查询(多表查询、子查询、表复制、合并查询、表外连接)

6.1 多表查询 基于两个或以上表的查询,默认从表1取出一行,与表2的每一行组合,返回的记录数为表1表2,默认返回的结果为笛卡尔集,需写出正确的WHERE条件进行筛选。 多表查询的条件不能少于表的个数-1,否则会…

LeetCode刷题之105. 从前序与中序遍历序列构造二叉树

文章目录 1.题目描述2. 分析2.1 前序遍历2.1.1 什么是前序遍历?2.1.2 前序遍历有什么特点? 2.2 中序遍历2.2.1 什么是中序遍历2.2.2 中序遍历有什么特点? 2.3 后序遍历2.3.1 什么是后序遍历?2.3.2 特点 2.4 总结 3. 解法 1.题目描…

漏洞挖掘 | 两个src案例分享

案例一 - 存储型XSS 文前废话:某天正在刷着**社区的帖子,突然间评论区的一条评论引起了我的注意,类似于下面这样 其中字体是蓝色的&#xff0c;这种评论在html标签中代码格式是<a>这是文字</a>这样的链接个格式。 同时评论区XSS漏洞的高发区,想着可能会有操作点 …

每日一题|字符迁移【算法赛】|字符数组+前缀和+差分

每日一题|字符迁移【算法赛】 字符迁移 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 字符迁移 注意&#xff1a; 预习知识&#xf…

【InternLM 实战营第二期笔记】使用茴香豆搭建你的RAG智能助理

RAG RAG是什么 RAG&#xff08;Retrieval Augmented Generation&#xff09;技术&#xff0c;通过检索与用户输入相关的信息片段&#xff0c;并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺乏透明、可追…

C++STL(list类)

文章目录 1.list类的介绍2.list的基本用法2.1 基本用法2.2 迭代器失效2.3 reverse(逆置)2.3 sort(排序)2.4 unique(去重)2.5 splice(转移) 3.list的底层(模拟实现)3.1 list的3.2 修改链表问题3.3 完整代码 1.list类的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列…

vue快速入门(十)v-bind动态属性绑定

注释很详细&#xff0c;直接上代码 上一篇 新增内容 图片切换逻辑动态绑定的完整写法与简写方法 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice…

【SpringBoot整合系列】SpringBoot整合FastDFS(二)

目录 SpringBoot整合FastDFSJava客户端/依赖常用api接口解释1.uploadFile参数返回值 2.uploadSlaveFile参数返回值 3.getMetadata参数返回值 4.overwriteMetadata参数&#xff1a;返回值&#xff1a;无 5.mergeMetadata参数&#xff1a;返回值&#xff1a;无 6.queryFileInfo参…

Shoplazza闪耀Shoptalk 2024,新零售创新解决方案引领行业新篇章!

在近期举办的全球零售业瞩目盛事——Shoptalk 2024大会上,全球*的零售技术平台-店匠科技(Shoplazza)以其*的创新实力与前瞻的技术理念,成功吸引了与会者的广泛关注。此次盛会于3月17日至20日在拉斯维加斯曼德勒湾隆重举行,汇聚了逾万名行业精英。在这场零售业的盛大聚会上,Shop…

Unity开发一个FPS游戏之三

在前面的两篇博客中&#xff0c;我已实现了一个FPS游戏的大部分功能&#xff0c;包括了第一人称的主角运动控制&#xff0c;武器射击以及敌人的智能行为。这里我将继续完善这个游戏&#xff0c;包括以下几个方面&#xff1a; 增加一个真实的游戏场景&#xff0c;模拟一个废弃的…

谷粒商城实战(011 业务-检索服务)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第173p-第p194的内容 介绍 这些过滤条件都可以写在must里&#xff0c;但是filter不参与评分&#xff0c;速度会快一些&#xff0c;所以一些分类等…

AssetBundle打包

AssetBundle技术的概念 Unity的AssetBundle是一个资源压缩包&#xff0c;包含模型、贴图、预制体、声音甚至整个场景&#xff0c;可以在游戏运行时被加载。   AssetBundle自身保存着相互的依赖关系&#xff0c;压缩包可以使用LZMA和LZ4压缩算法&#xff0c;减少包大小&#x…

【学习】移动端App性能测试流程有哪些

移动端App性能测试是保证App性能表现的重要环节之一。随着移动设备的普及和移动互联网的发展&#xff0c;移动端App的性能测试变得越来越重要&#xff0c;通过科学合理的性能测试可以发现并解决潜在的性能问题优化App运行效果提高用户体验。性能测试旨在评估App在各种场景下的性…

基于视频监管与AI智能识别技术的水利河道综合治理解决方案

一、方案介绍 TSINGSEE青犀视频水利河道综合治理解决方案是依托视频AI智能分析技术&#xff0c;利用水质/水文等传感器、高清摄像机、水利球、无人机、无人船等感知设备实时采集数据&#xff0c;并与视频能力进行联动&#xff0c;达到智能预警的目的。 TSINGSEE青犀方案以信息…

Spring Cloud微服务入门(三)

服务注册与发现的概念 服务之间相互访问&#xff1a; 例如&#xff1a;用户中心与内容中心之间相互调用。 问题&#xff1a; 服务调用需要知道对方的服务地址&#xff0c;地址写在哪里&#xff1f; 如果服务是多个实例部署&#xff0c;该调用哪一个&#xff1f; 如果服务是多…

Jetpack Compose -> 状态机制的背后秘密

前言 上一章我们讲解了 Jetpack Compose 的无状态、状态提升、单向数据流 本章我们讲解下状态机制的背后秘密 List 前面我们讲过&#xff0c;通过 by mustableStateOf() 就可以被 Compose 自动订阅了&#xff1b;我们前面是通过 String 类型进行的自动订阅&#xff0c;那么换成…