AI Agent开发大全第四课-提示语工程:从简单命令到AI对话的“魔法”公式

 

什么是提示语工程?一个让AI“听话”的秘密

如果你曾经尝试过用ChatGPT或者其他大语言模型完成任务,那么你一定遇到过这样的情况:明明你的问题是清晰的,但答案却离题万里;或者你认为自己提供的信息足够详尽,可结果还是不理想。问题出在哪?很多时候并不是因为AI不够聪明,而是因为你没有使用“提示语工程”。

提示语工程(Prompt Engineering),顾名思义,就是将人类的需求转化为能够被AI理解并正确执行的形式。这不仅仅是简单的提问或指令,而是一门艺术、一种策略——就像给一台机器设定参数,使其运行逻辑更加贴近我们的实际需求。

举个例子,假设你想让AI帮忙写一封感谢信。普通提示可能只是:“写一封感谢信。” 但经过提示语工程处理后,你可以这样表达:

“请帮我写一封诚恳的感谢信,对象是我的团队成员。在信中提到他们最近加班赶项目的努力,并肯定他们在团队合作中的表现。”

前者模糊且缺乏细节,AI只能生成一段通用的文字。后者则包含明确目标、具体场景以及情感倾向,最终生成的内容会更贴合你的要求。

传统提示语 vs. 现代提示语工程:一场对话方式的变革

回到我们熟悉的日常生活,其实每个人每天都在进行某种意义上的“提示”。比如对朋友说:“快点起床!” 或者对孩子说:“把作业做完再玩。” 这些都是最基础的人类交流形式——简洁、直接、无需过多修饰。

但在今天这个AI时代,仅靠这种传统的表达方式已经远远不够了。为什么呢?让我们先看看两者的区别:

1. 输入复杂度
  • 传统提示语:通常单一化,以短句为主。
    例如:“告诉我天气。”
    这类提示适合解决非常简单的问题,但对于复杂的任务往往效果有限。

  • 提示语工程:强调深度构造,需要更多的背景描述和上下文支撑。
    例如:“我计划明天去北京出差,请告诉我未来三天北京的天气预报,并建议是否需要带伞或外套。”

显然,后者的回答不仅包括天气信息,还会根据湿度和温度分析出行建议,实用性大幅提升。

2. 精确性与灵活性
  • 传统提示语:由于信息量少,容易造成歧义。
    例如:“列出五个菜的名字。”
    这句话可以指向任何类型的菜肴,比如家常菜、西餐、甜品等。

  • 提示语工程:重视定义边界,减少误解。
    例如:“列举五道经典的中式火锅菜品,并附上食材清单。”
    这里,“中式火锅”是一个关键限定词,既明确了范围也增加了专业性。

3. 结果可控性
  • 传统提示语:难以掌控质量,有时甚至连基本语法都可能出现问题。
    比如问:“解释一下量子力学。” AI可能给出连物理学家都不太满意的大段术语堆砌。

  • 提示语工程:通过结构化约束提升结果的稳定性和一致性。
    例如:“用通俗易懂的语言为初中生水平的小读者解释量子力学的基本原理,并配以生活化的比喻。”
    如此一来,即使是深奥的知识也能变得平易近人。

提示语工程的魅力所在:从“猜”到“准”

提示语工程之所以吸引人,在于它改变了人机交互的方式——不再是单向地“丢给AI一个问题”,而是双向互动式的精细化控制。下面再来看几个具体的对比案例,体会其中的变化。

案例1:写作助手
  • 传统提示语
    “写一篇关于旅游的文章。”
  • 提示语工程
    “写一篇500字的旅游攻略,主题是周末自驾游杭州西湖。内容需涵盖交通路线、住宿推荐以及周边景点,并使用幽默风趣的语言风格。”

是不是立刻感觉不一样了?前者泛泛而谈,后者则直击重点,让AI知道你在期待什么类型的作品。

案例2:数据分析
  • 传统提示语
    “整理数据。”
  • 提示语工程
    “整理以下销售额数据,并用柱状图表示每月的趋势。同时计算同比增长率,并标注最高值与最低值。”

同样一份数据,如果缺少提示语工程的加持,结果可能是乱七八糟的数字罗列,但如果有了详细指示,就变成了专业级别的报告。

案例3:代码开发
  • 传统提示语
    “写个程序。”
  • 提示语工程
    “用Python编写一个函数,用于统计文本文件中每个单词出现的频率。返回结果应按频率降序排列,同时忽略大小写差异。”

前者让人无从下手,后者则成为了明确的技术需求文档。

提示语工程的实践技巧:如何快速上手?

既然提示语工程这么强大,那我们该如何学习和应用呢?下面分享几点实用建议:

  1. 明确目标
    第一步永远是弄清楚自己想得到什么。只有目标清晰,才能指导后续的具体操作。

  2. 分层拆解
    将复杂任务拆分成小块,逐步细化要求。例如,写一本书可以从大纲开始,再到章节细化,最后才是具体内容创作。

  3. 善用格式
    JSON、Markdown等工具可以帮助更好地组织提示内容,避免遗漏重要细节。

  4. 不断迭代
    别指望一次成功!提示语工程是个反复试错的过程,多修改几次总会找到最优方案。

提示语工程中的函数式应用

有了上面的基础后我们来看什么叫提示语工程中的函数式应用。这是在吴恩达以及一些外面教程中不曾被提及到的一个应用,原因在于:真正的生产级应用中的填示语是带函数和变量的。

这和AI中的Functional Call还不一样。

  • ai的functional call是指call的是一个LLM(大模型)可访问的API函数;
  • 而提示语中的函数是指把提示语和代码、变量相结合构成真正AI原生应用的一种AI规则,AI原生应用是否够“AI"很大一部分依赖于你的AI函数设计得好不好;

要知道在AI原生应用中一切传统开发和设计模式都黯然失色了,更不要提什么规则引擎、工作流、参数配置这些远古的手法了。

就拿上文中的一个例子我们来了解什么是AI提示语工程中的函数来说明

不用函数的AI提示语写法

{"你的角色": "你是一名中国的食品营养分析专家同,你总是以中文形式输出""要求你做的事": "根据我的输入的食品请你以百分比格式给出它的蛋白质含量、盐含量、卡路里含量""你的输出格式始终以我给你的标准json数据格式{"saltness": "xxx%","protein": "xxx%","calorie": "xxx%"}来返回"我当前输入的食品": "8个菜肉大馄饨"
}

真正的提示语工程写法

{"你的角色": "你是一名中国的食品营养分析专家同,你总是以中文形式输出""要求你做的事": "根据我的输入的食品请你以百分比格式给出它的蛋白质含量、盐含量、卡路里含量""你的输出格式始终以我给你的标准json数据格式<%returnTemplate%>返还给我。"我当前输入的食品": "8个菜肉大馄饨"
}

此时我们把:<%returnTemplate%>作为变量,存于外部系统如:mongo、redis、mysql里。

在使用时我们把以下的内容从存储里取出来

{"saltness": "xxx%","protein": "xxx%","calorie": "xxx%"
}

然后

inputPrompt=inputPrompt.replace("<%returnTemplate%>", templateTextFromMongodb);

此时我们得到的这个最终的在replace后的inputPrompt就是一个完整的提示语。

这种做法的好处在于:

  1. 完全解耦了提示语与业务;
  2. 格式甚至可以动态化配置在外部而不要改代码;
  3. 把复杂、嵌套的提示语彻底解耦便于管理维护;

AI未来的钥匙掌握在谁手里?

提示语工程不仅仅是一种技术手段,更是未来人机协作的核心能力之一。正如古人所言,“工欲善其事,必先利其器”。学会打磨提示语,就如同握住了一把通往无限可能性的金钥匙。

当你熟练掌握了提示语工程之后,你会发现,无论面对多么棘手的任务,只需轻轻一点,那个看似遥不可及的答案就会浮现在屏幕上等待着你。而这一切的背后,不过是几行精心设计的字符罢了。

课后作业

今天这课为了巩固知识点布署了一道课后作业。

用提示语工程去写一篇1,000字左右的科技类博客:往龙卷风里扔一颗多核弹能消除龙卷风吗?

写完后大家可以这么去验证自己的文章,我也是用这种方式来验证自己用AI写出的作文质量的就是把这篇文章发到知乎或者是今日头条一些杂文类网站,看看你的点击率能否破万!

我告诉大家,完全可以得只要你的提示语工程写得足够好,变量设置的足够合理,另外记得先用一个带有markdown格式的编辑器写完校对完并且避免任何错别字(会让AI引起误解)后扔给AI,然后去看看AI的输出吧。

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

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

相关文章

系统架构设计知识体系总结

1.技术选型 1.什么是技术选型&#xff1f; 技术选型是指评估和选择在项目或系统开发中使用的最合适的技术和工具的过程。这涉及考虑基于其能力、特性、与项目需求的兼容性、可扩展性、性能、维护和其他因素的各种可用选项。技术选型的目标是确定与项目目标相符合、能够有效解…

基于3DMax与Vray引擎的轻量级室内场景渲染实践

欢迎踏入3DMAX室内渲染的沉浸式学习之旅!在这个精心设计的实战教程中,我们将携手揭开3DMAX与Vray这对黄金搭档在打造现实室内场景时的核心奥秘。无论您是渴望入门的3D新手,还是追求极致效果的专业设计师,这里都将为您呈现从场景蓝图构建到光影魔法施加的完整技术图谱。我们…

逻辑卷,vdo,(阿里加速器)

一、逻辑卷 10 20 30 1.逻辑卷的2个特点 &#xff08;1&#xff09;逻辑卷可以将多个分区或者磁盘整合成一个更大的逻辑磁盘&#xff0c;然后可以从逻辑磁盘上划分出分区&#xff08;逻辑磁盘的大小等于整合的物理磁盘大小之和。&#xff09; &#xff08;2&#xff09;能…

检索增强生成(2)本地PDF 本地嵌入模型

from langchain_community.document_loaders import PyPDFLoader from pathlib import Pathdef load_local_pdf(file_path):if not Path(file_path).exists():raise FileNotFoundError(f"文件 {file_path} 不存在&#xff01;")loader PyPDFLoader(file_path)try:do…

安全守护:反光衣检测技术的革新之路

视觉分析助力船上工人反光衣检测 在现代工业生产与作业环境中&#xff0c;安全始终是首要考虑的因素。对于水上作业&#xff0c;如船舶维护、海上施工等场景&#xff0c;工人穿戴反光衣是预防事故、提高可见性的重要措施。然而&#xff0c;传统的人工检查方式不仅效率低下&…

【Scrapy】Scrapy教程8——处理子链接

通过前面几篇文章,已经了解了如何去爬取网页内容并存储到数据库,但是目前只是存储了一个页面的内容,现在想要获取每篇文章链接内的文章内容,我们来看看怎么获取。 生成新请求 首先我们肯定要先拿到链接,所以第一步都获取文章标题和链接肯定少不了,然后再爬取获取到到子…

Centos6配置yum源

Centos6配置yum源 为Centos6配置CentOS Vault源—防止yum源过期为Centos6配置epel源为Centos6配置ELRepo源---已ELRepo被官方清空Centos6安装dockerdocker配置国内镜像加速 为Centos6配置CentOS Vault源—防止yum源过期 参考&#xff1a;https://mirrors.ustc.edu.cn/help/cen…

“智改数转”新风口,物联网如何重构制造业竞争力?

一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接&#xff0c;江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划&#xff08;2025&#xff0d;2027年&#xff09;》&#xff0c;提出到2027年&#xff0c;全省制造业企业设备更新、工艺…

制作Oracle11g Docker 镜像

基于Linux系统&#xff0c;宿主主机要设置如下环境变量&#xff0c;oracle为64位版本 dockerfile中需要的数据库安装包可从csdn下载内找到 #!/bin/bash # 在宿主机上运行以设置Oracle所需的内核参数 # 这些命令需要root权限cat > /etc/sysctl.d/99-oracle.conf << EO…

从GTC2025首次量子日看英伟达量子AI融合算力网络前景与趋势

GTC2025 Quantum Day 最新内容全部汇总: 技术名称描述合作伙伴/开发者应用场景/目标量子模拟器优化方案NVIDIA与IonQ、D-Wave合作,针对量子模拟器进行性能优化,提升量子计算任务效率。IonQ、D-Wave量子算法开发、复杂系统模拟混合量子-经典计算架构结合量子计算与经典GPU加速…

UE4学习笔记 FPS游戏制作12 添加第二把枪,制作枪的父类,动态生成物体,切换武器

我们添加一个发射器类型的枪 我们目前有了一个Rifle的枪械蓝图&#xff0c;我们在添加Launcher时&#xff0c;需要为他们添加一个父类&#xff0c;将公共方法放到父类里&#xff0c;方法体由子类实现 添加父类 方法1 新建一个Gun的蓝图&#xff0c;Gun继承Actor&#xff0c;…

【原创首发】开源基于AT32 SIP/VOIP电话

前言 本次为了反馈各位粉丝的关注&#xff0c;特此分享 AT32_VOIP 工程&#xff0c;此功能其实跟我之前发过的《STM32F429的VOIP功能》是一样的&#xff0c;只是用了AT32F437。 其实那个工程是一个比较Demo中的Demo&#xff0c;很多功能和硬件依赖性太大了。后面项目中发现AT…

通俗易懂搞懂@RequestParam 和 @RequestBody

&#x1f4cc; 博主简介: &#x1f4bb; 努力学习的 23 级科班生一枚 &#x1f680;&#x1f3e0; 博主主页 &#xff1a; &#x1f4ce; 灰阳阳&#x1f4da; 往期回顾 &#xff1a;Session和Cookie我不允许你不懂&#x1f4ac; 每日一言&#xff1a; 「流水不争先&#xff0c…

dubbo版本与分组

Dubbo服务中&#xff0c;接口并不能唯一确定一个服务&#xff0c;只有 接口分组版本号 的三元组才能唯一确定一个服务。 当同一个接口针对不同的业务场景、不同的使用需求或者不同的功能模块等场景&#xff0c;可使用服务分组来区分不同的实现方式。同时&#xff0c;这些不同实…

RAG现有技术方案

RAG现有技术方案 一、现有技术方案的核心问题 检索质量不足 挑战:传统RAG系统依赖单轮检索,难以应对智能电网的海量异构数据(如传感器读数、控制参数),导致检索结果相关性低、覆盖不全。案例:BM25稀疏检索在处理长文本或专业术语时,易遗漏语义关联;BGE等稠密检索模型对…

redis MISCONF Redis is configured to save RDB snapshots报错解决

直接上解决方案 修改redis配置文件 stop-writes-on-bgsave-error no 重启redis

个人学习编程(3-22) leetcode刷题

连续子数组&#xff1a;&#xff08;难&#xff09; 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 需要理解的知识&a…

希尔排序

希尔排序是一种改进的插入排序算法&#xff0c;它通过将原始数据分成多个子序列来改善插入排序的性能&#xff0c;每个子序列的元素间隔为 d&#xff08;增量&#xff09;。随着算法的进行&#xff0c;d 逐渐减小&#xff0c;最终减为 1&#xff0c;此时整个序列就被排序好了。…

JavaScript基础-DOM事件流

在Web开发过程中&#xff0c;理解和掌握DOM事件流是实现高效交互的关键。DOM事件流描述了当一个事件发生时&#xff0c;它在文档树中的传播路径。了解事件流的概念有助于我们更精确地控制事件处理逻辑&#xff0c;避免不必要的行为&#xff0c;并提升用户体验。本文将深入探讨D…

C语言基础知识07---预编译模块化

目录 预编译指令 1.1 编译流程 1.2 文件包含 1.3 条件编译 1.4 宏定义 1.5 无参宏 1.6 typedef和无参宏的区别 1.7 有参宏 1.8 函数与有参宏的区别 1.9 取消宏定义 #undef 1.10 符合使用 模块化操作 1.1 H文件&#xff1a;固定模版 1.2 C文件&#xff1a;源文件-…