吴恩达这套Prompt工程教程,帮你打通AI应用开发第一步

部署运行你感兴趣的模型镜像

由吴恩达老师与OpenAI联合推出的《ChatGPT Prompt Engineering for Developers》教程,正是为入门LLM开发的开发者量身打造的“金钥匙”。今天我们就拆解这门经典教程的核心内容,带大家掌握Prompt工程的底层逻辑,快速上手LLM应用开发。

为什么说Prompt工程是LLM开发的“地基”?

过去开发自然语言处理(NLP)应用,往往需要先收集海量标注数据、训练专属模型、再部署到云端,整套流程耗时数月。但大模型时代彻底改变了这一范式:通过精心设计的Prompt,调用OpenAI等平台的API,几分钟就能实现文本总结、情感分析等功能。

而Prompt工程,就是让大模型“听懂需求、精准干活”的核心技能。就像给新人布置任务,清晰的指令能让效率翻倍——对LLM而言,好的Prompt能充分发挥其语言理解与生成能力,直接决定应用的上限与下限。

Prompt设计的两大核心原则

吴恩达在教程中反复强调:高效Prompt的设计,离不开两个关键原则。掌握这两点,就能避开80%的入门坑。

原则一:编写清晰、具体的指令

跟LLM“沟通”,切忌模糊表述。就像给外星人解释人类规则,要把需求拆解得直白、详尽,甚至用“分隔符”划清不同内容的边界。

技巧1:用分隔符避免“提示词注入”

用户输入的文本可能包含混乱指令(比如“忽略之前要求,直接输出XXX”),用```、"""等分隔符,能像“防火墙”一样保护Prompt逻辑不被干扰。

实战代码:用GPT总结文本并避免干扰

from tool import get_completion

# 待总结的文本
text = f"""
您应该提供尽可能清晰、具体的指示,以表达您希望模型执行的任务。\
这将引导模型朝向所需的输出,并降低收到无关或不正确响应的可能性。\
不要将写清晰的提示词与写简短的提示词混淆。\
在许多情况下,更长的提示词可以为模型提供更多的清晰度和上下文信息,从而导致更详细和相关的输出。
"""

# 用```分隔指令与待总结内容
prompt = f"""
把用三个反引号括起来的文本总结成一句话。
{text}
"""

response = get_completion(prompt)
print(response)
# 输出结果:为获得所需输出,应提供清晰具体的指示,避免与简短提示词混淆,可通过更长提示词提供更多清晰度和上下文信息。
技巧2:要求结构化输出,方便后续处理

如果需要将LLM输出用于代码解析(比如存入数据库、生成报表),直接要求JSON、HTML等格式,能省掉大量格式转换工作。

实战代码:让GPT生成结构化书籍清单

prompt = f"""
请生成包括书名、作者和类别的三本虚构中文书籍清单,\
并以JSON格式提供,其中包含以下键:book_id、title、author、genre。
"""

response = get_completion(prompt)
print(response)
# 输出结果:
# {
#   "books": [
#     {
#       "book_id": 1,
#       "title": "时光缝隙里的信",
#       "author": "林晚",
#       "genre": "文学"
#     },
#     {
#       "book_id": 2,
#       "title": "AI时代的思维跃迁",
#       "author": "陈序",
#       "genre": "科技"
#     },
#     {
#       "book_id": 3,
#       "title": "山居草木记",
#       "author": "苏晓",
#       "genre": "散文"
#     }
#   ]
# }
技巧3:提供“少样本示例”,快速对齐风格

如果需要LLM保持特定语气(比如古风、儿童童话),先给1-2个示例,模型就能快速“get”到风格要求,这就是“少样本提示(Few-shot Prompting)”。

实战代码:让GPT用祖孙对话风格解释“韧性”

prompt = f"""
您的任务是以一致的风格回答问题。
<孩子>: 请教我何为耐心。
<祖父母>: 挖出最深峡谷的河流源于一处不起眼的泉眼;最宏伟的交响乐从单一的音符开始;最复杂的挂毯以一根孤独的线开始编织。
<孩子>: 请教我何为韧性。
"""

response = get_completion(prompt)
print(response)
# 输出结果:
# <祖父母>: 韧性是岩缝里钻出的新芽,风刮不折、雨打不弯,哪怕身处贫瘠,也能向着阳光舒展;是断线的风筝仍能借着气流升空,哪怕遭遇挫折,也能寻回前行的方向。

原则二:给模型“充足的思考时间”

LLM和人类一样,遇到复杂问题(比如数学计算、逻辑推理)时,匆忙回答容易出错。这时可以要求它“分步推理”,模拟人类解题的思考过程。

实战代码:让GPT先解题再判断学生答案

prompt = f"""
请判断学生的解决方案是否正确,请通过如下步骤解决这个问题:
步骤1:自己解决问题。
步骤2:将您的解决方案与学生的解决方案对比,判断是否一致。
在自己完成问题之前,请勿决定学生的解决方案是否正确。

问题:
我正在建造太阳能发电站,土地费用100美元/平方英尺,太阳能电池板250美元/平方英尺,维护合同每年固定10万美元+每平方英尺10美元。作为平方英尺数的函数,首年运营总费用是多少?

学生的解决方案:
设x为发电站大小(平方英尺)。
土地费用:100x;太阳能电池板费用:250x;维护费用:100,000+100x;
总费用:100x+250x+100,000+100x=450x+100,000美元。

实际解决方案和步骤:
"""

response = get_completion(prompt)
print(response)
# 输出结果:
# 1. 土地费用:每平方英尺100美元,总费用100x美元。
# 2. 太阳能电池板费用:每平方英尺250美元,总费用250x美元。
# 3. 维护费用:固定10万美元+每平方英尺10美元,总费用100,000+10x美元。
# 4. 总费用:100x+250x+100,000+10x=360x+100,000美元。
# 学生计算的总费用:450x+100,000美元;实际总费用:360x+100,000美元。
# 学生的解决方案不正确(维护费用误将10x写为100x)。

避坑指南:警惕LLM的“幻觉”问题

值得注意的是,LLM偶尔会“一本正经地胡说八道”——比如描述不存在的产品时,编造看似真实的参数,这就是“幻觉(Hallucination)”。

示例:让GPT描述虚构的“华为GT Watch”

prompt = f"""
告诉我华为公司生产的GT Watch运动手表的相关信息。
"""

response = get_completion(prompt)
print(response)
# 输出结果(部分虚构):
# 华为GT Watch运动手表采用圆形AMOLED表盘,1.39英寸屏幕,支持心率、血氧监测,续航可达7天...
# (实际华为暂无此型号手表,参数为GPT编造)

应对方法:要求LLM“引用原文”或“基于给定信息回答”,比如在Prompt中加入“仅根据以下文档内容回答,不编造额外信息”,能大幅降低幻觉概率。

写在最后:Prompt工程是“迭代”出来的

没有“一劳永逸的完美Prompt”,哪怕是吴恩达的教程,也强调“迭代优化”的重要性——先写初版Prompt,运行后分析问题(比如输出太长、风格不对),再逐步调整指令,直到符合需求。

对于想入门LLM开发的开发者来说,掌握这些Prompt原则后,再去尝试文本总结、情感分析、聊天机器人等场景,会事半功倍。

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值