30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度这次我们来看一个关于提示词工程Prompt Engineering的系统性学习资源。这个项目标题指向的是由吴恩达Andrew Ng主讲的一套提示词工程教程号称是“2026首发B站最全”并附带课件代码。对于任何想要系统掌握如何与大语言模型LLM高效交互的开发者、产品经理或技术爱好者来说这无疑是一个极具吸引力的起点。提示词工程不再是简单的“问问题”而是构建可靠、高效AI应用的核心技能。这套教程的核心价值在于它提供了一条从入门到进阶的清晰路径。它不仅仅是理论讲解更侧重于实战通过附带的课件和代码让学习者能够亲手实践将抽象的原则转化为具体的、可运行的技能。无论你是想优化与ChatGPT的日常对话还是计划将OpenAI API、Qwen等大模型集成到自己的产品中或是构建基于LangChain、RAG的复杂应用扎实的提示词功底都是第一块基石。本文不会重复视频内容而是会基于这套教程所涵盖的知识体系结合最新的网络实践如OpenAI官方指南为你拆解提示词工程的核心要点、实战策略以及如何将其应用于真实项目。我们会重点关注如何写出清晰有效的指令Prompt如何设计复杂的提示流程以及如何通过编程方式API调用来稳定地获得高质量输出。如果你关心如何让大模型更听话、更精准地完成特定任务那么这篇文章值得你仔细阅读并动手尝试。1. 核心能力速览提示词工程学习路径在深入细节之前我们先通过一个表格快速了解通过系统学习提示词工程你将获得哪些核心能力。这有助于你判断投入时间学习是否值得。能力项说明与目标核心目标掌握与大语言模型LLM高效、精准沟通的方法论与技巧最大化模型输出质量与稳定性。知识体系从零样本Zero-Shot、少样本Few-Shot提示到思维链Chain-of-Thought、指令设计、输出格式控制等进阶技术。实战工具通常基于OpenAI API、ChatGPT界面进行练习技能可迁移至国内大模型如Qwen、文心一言及LangChain等开发框架。硬件门槛极低。学习过程主要依赖能访问大模型API的终端电脑/服务器和网络无需本地高性能GPU。本地测试可使用CPU或集成显卡。输出成果能够为特定任务如摘要、分类、代码生成、问答设计出高效的提示词模板Prompt Template并集成到自动化流程中。适合场景1. AI应用开发者集成OpenAI API、Azure OpenAI。2. 产品经理/运营设计AI功能交互逻辑。3. 研究人员/学生利用LLM进行数据分析、文献处理。4. 任何希望提升与大模型协作效率的个人。2. 适用场景与使用边界提示词工程是一项基础且通用的技能其应用场景几乎覆盖所有与大模型交互的领域。它非常适合解决以下问题内容生成与润色撰写文章、邮件、营销文案、创意故事并进行风格改写、扩写、缩写。信息提取与总结从长文档、会议记录、研究报告中提取关键信息、实体、观点并生成摘要。代码辅助根据自然语言描述生成、解释、调试或重构代码片段支持多种编程语言。复杂推理与规划通过思维链CoT等技术让模型解决数学问题、进行逻辑推理、制定项目计划或旅行 itinerary。构建智能体Agent为基于LangChain、AutoGPT等框架的智能体设计清晰的任务分解、工具调用和执行指令。构建RAG检索增强生成系统设计高质量的提示让模型能够更好地理解和利用检索到的外部知识来回答问题。需要明确的使用边界与注意事项非银弹提示词工程无法从根本上改变模型的知识截止日期、内在偏见或逻辑缺陷。它是在模型现有能力范围内进行“引导”和“激发”。结果不确定性即使是最优的提示词由于模型的随机性可通过temperature参数控制输出也可能有波动。生产环境需要设计重试、校验或人工审核流程。成本与延迟复杂的提示词如包含长上下文、多轮示例会消耗更多Token增加API调用成本和响应时间。安全与合规必须谨慎设计提示词避免诱导模型生成有害、偏见、侵权或泄露隐私的内容。对于企业应用需建立提示词审核机制。依赖模型能力提示词技巧的效果与所选模型的能力强相关。一些高级技巧如复杂的思维链在较小或能力较弱的模型上可能失效。3. 环境准备与前置条件开始实践提示词工程你不需要配置复杂的本地深度学习环境但需要准备好与LLM交互的“接口”。基础环境要求操作系统Windows 10/11, macOS, 或 Linux (如Ubuntu) 均可。无特殊要求。Python环境推荐这是进行API调用和自动化脚本开发最常用的语言。版本Python 3.8 或更高版本。包管理工具pip。网络环境能够稳定访问你所选用的大模型服务。例如使用OpenAI API需要相应的网络条件使用国内模型如通义千问Qwen、文心一言则需确保能访问其API端点。核心账户与密钥OpenAI API Key如果使用OpenAI模型访问 OpenAI平台 注册并创建API Key。重要妥善保管Key不要泄露在公开代码或分享中。建议通过环境变量读取。国内大模型API Key备选例如阿里云的通义千问、百度的文心一言、智谱AI的GLM等均提供类似的API服务需在其官方平台申请。代码编辑器或IDE如 VS Code, PyCharm, Jupyter Notebook 等用于编写和运行Python脚本。安装必要Python库打开终端命令行使用pip安装最基础的库# 安装OpenAI官方Python SDK (如果使用OpenAI) pip install openai # 安装requests库用于通用的HTTP API调用更通用 pip install requests # 可选安装python-dotenv用于管理环境变量 pip install python-dotenv4. 从理论到实践核心提示词模式详解让我们跳过泛泛而谈直接进入实战。下面将结合OpenAI官方的最佳实践和常见用例拆解几个最核心、最有效的提示词模式。每个模式都会配以“效果较差”和“效果更好”的对比示例以及可立即运行的Python代码。4.1 模式一指令与上下文分离目标清晰地区分你给模型的“任务指令”和需要处理的“输入内容”避免指令被内容淹没。# 效果较差 ❌指令和上下文混在一起模型可能混淆。 prompt_bad 将下面的文本总结为要点列表列出最重要的内容。Stripe公司提供了一系列API允许开发者将支付功能集成到他们的网站和移动应用中... # 效果更好 ✅使用分隔符如, \\\, ###明确隔离指令和上下文。 prompt_good 将下面的文本总结为要点列表列出最重要的内容。 文本 \\\ Stripe公司提供了一系列API允许开发者将支付功能集成到他们的网站和移动应用中。它支持多种支付方式并处理了合规性与安全性等复杂问题。 \\\ # Python调用示例 (使用openai库) import openai import os from dotenv import load_dotenv load_dotenv() # 从.env文件加载环境变量 openai.api_key os.getenv(OPENAI_API_KEY) # 你的API Key def get_completion(prompt, modelgpt-3.5-turbo): messages [{role: user, content: prompt}] response openai.ChatCompletion.create( modelmodel, messagesmessages, temperature0, # 确定性输出适合总结、提取任务 ) return response.choices[0].message[content] print(get_completion(prompt_good))预期输出模型会输出一个清晰的要点列表例如Stripe提供支付API。开发者可将其集成到网站和移动应用。支持多种支付方式。处理合规性与安全性。4.2 模式二提供具体、详细的指令目标模糊的指令得到随机的输出。明确的指令能得到可控、高质量的输出。# 效果较差 ❌指令过于宽泛。 prompt_bad 写一首关于人工智能的诗。 # 效果更好 ✅指定风格、主题焦点、长度和格式。 prompt_good 以诗人李白的风格写一首关于人工智能特别是大语言模型如何帮助科学研究的七言绝句。 诗的主题应聚焦于AI加速发现新药的过程。诗句需富有想象力和豪迈感。 # 调用函数同上 print(get_completion(prompt_good, modelgpt-4)) # 创造性任务可使用GPT-44.3 模式三通过示例阐明输出格式少样本学习目标当你需要模型输出特定结构如JSON、列表、特定标记时提供一两个例子比单纯描述更有效。# 效果较差 ❌只描述格式模型可能理解偏差。 prompt_bad 从用户评论中提取产品名称和用户情绪。情绪分为正面、负面、中性。 输出格式为产品产品名 情绪情绪 评论这款手机电池续航太差了但屏幕很棒。 # 效果更好 ✅提供清晰的示例Few-Shot。 prompt_good 你的任务是从用户评论中提取产品名称和用户情绪。情绪分为正面、负面、中性。 请按照以下示例的格式输出 评论这款笔记本电脑运行速度非常快我很满意。 输出产品笔记本电脑 情绪正面 评论快递包装破损耳机有划痕。 输出产品耳机 情绪负面 现在请处理新的评论 评论这款手机电池续航太差了但屏幕很棒。 输出 print(get_completion(prompt_good, temperature0))预期输出产品手机 情绪负面模型可能识别出主要负面点。此示例展示了如何通过少量样本“教会”模型你想要的输出格式。4.4 模式四结构化输出与代码生成引导目标对于代码生成或需要严格结构的数据使用“引导词”或明确的结构描述。# 代码生成使用“引导词”暗示开始 prompt_code 编写一个Python函数用于计算列表中的数字平均值。 函数应处理空列表的情况并返回0。 函数签名def calculate_average(numbers: list) - float: # 在提示末尾添加 \nimport 或 \ndef 可以引导模型开始写代码 response get_completion(prompt_code \ndef) print(response) # 结构化数据输出要求JSON prompt_json 从以下会议纪要中提取会议时间、主要议题和行动项。 以JSON格式输出包含以下键meeting_time, main_topics (数组), action_items (数组)。 会议纪要 2023年10月27日团队周会。 议题讨论Q4项目优先级评审UI设计稿。 决定张三负责在下周五前完成API接口文档李四需要在下周三提供新的设计原型。 print(get_completion(prompt_json, temperature0))5. 功能测试与效果验证框架学习了核心模式后如何系统性地测试和评估你的提示词效果你可以为自己建立一个简单的验证流程。5.1 测试用例设计针对你的目标任务设计一组具有代表性的输入Input和期望输出Expected Output。例如如果你在做一个情感分析器测试ID输入评论期望输出情绪测试目的TC-01“产品非常好用物超所值”正面基础正面识别TC-02“服务糟糕再也不会买了。”负面基础负面识别TC-03“昨天收到货还没用。”中性中性/无情感判断TC-04“屏幕很棒但电池一天都撑不住。”混合负面处理混合情感抓主要矛盾5.2 自动化测试脚本编写一个Python脚本批量运行测试用例并对比模型输出与期望输出。import openai import os from dotenv import load_dotenv load_dotenv() openai.api_key os.getenv(OPENAI_API_KEY) def analyze_sentiment(comment): prompt f 判断以下用户评论的情感倾向。只输出一个词正面、负面或中性。 评论{comment} 情感 response get_completion(prompt, temperature0) # 简单清理响应提取最后一个词 return response.strip().split()[-1] if response.strip() else 未知 # 测试用例 test_cases [ (产品非常好用物超所值, 正面), (服务糟糕再也不会买了。, 负面), (昨天收到货还没用。, 中性), (屏幕很棒但电池一天都撑不住。, 负面), ] print(开始提示词效果测试...) for i, (input_text, expected) in enumerate(test_cases): actual analyze_sentiment(input_text) status ✓ if actual expected else ✗ print(fTC-{i1:02d}: {status} | 输入: {input_text[:20]}... | 期望: {expected} | 实际: {actual})运行与判断执行脚本观察通过率。如果某个用例失败分析原因是提示词指令不明确还是测试用例本身有歧义然后迭代优化你的提示词。5.3 复杂任务测试思维链Chain-of-Thought对于推理问题强制模型“展示其思考过程”能大幅提升准确性。prompt_without_cot 客户买了10个苹果。他吃了2个又买了5个。他现在有多少个苹果 直接给出最终数字。 prompt_with_cot 客户买了10个苹果。他吃了2个又买了5个。他现在有多少个苹果 请一步步推理。 print(Without CoT:) print(get_completion(prompt_without_cot, temperature0)) print(\nWith CoT:) print(get_completion(prompt_with_cot, temperature0))预期效果不带CoT的提示可能直接输出“13”错误地将“吃了2个”理解为增加。带CoT的提示通常会输出“开始有10个。吃了2个剩余10-28个。又买了5个现在有8513个。等等吃了是减少所以是10-2513个不对吃了是减少所以是10-28然后8513。所以他现在有13个苹果。” 模型在推理过程中可能会自我纠正最终更可能得到正确答案“13”。这展示了CoT如何让模型的推理过程更透明、更可靠。6. 接口API与工程化集成当你的提示词经过测试并稳定后下一步就是将其集成到实际应用中。这涉及到通过API进行编程式调用。6.1 基础API调用封装将你的提示词逻辑封装成函数便于复用。import openai import json from typing import Dict, Any, Optional class PromptEngineer: def __init__(self, api_key: str, model: str gpt-3.5-turbo): openai.api_key api_key self.model model self.temperature 0 # 默认低随机性 def set_temperature(self, temp: float): 设置温度参数0为确定性高接近1创造性高 self.temperature max(0.0, min(2.0, temp)) def call_model(self, prompt: str, system_message: Optional[str] None) - str: 基础调用函数 messages [] if system_message: messages.append({role: system, content: system_message}) messages.append({role: user, content: prompt}) try: response openai.ChatCompletion.create( modelself.model, messagesmessages, temperatureself.temperature, max_tokens1000, # 控制响应长度 ) return response.choices[0].message[content] except Exception as e: return fAPI调用错误: {e} # 示例封装一个总结函数 def summarize_text(self, text: str, style: str bullet points) - str: 总结文本可指定风格如‘bullet points’, ‘paragraph’ prompt f 请将以下文本总结为{style}。 文本\\\{text}\\\ return self.call_model(prompt) # 使用示例 if __name__ __main__: engineer PromptEngineer(api_keyos.getenv(OPENAI_API_KEY)) sample_text OpenAI发布了新的GPT-4模型它在多项专业和学术基准上表现出人类水平的能力... summary engineer.summarize_text(sample_text) print(总结结果, summary)6.2 处理批量任务对于需要处理大量独立文本的任务如批量情感分析、摘要可以使用循环但要注意API速率限制和成本。def batch_process_comments(comments: list, prompt_template: str, delay_seconds: float 0.5): 批量处理评论列表。 prompt_template中应包含一个{comment}占位符。 import time results [] for i, comment in enumerate(comments): print(f处理第 {i1}/{len(comments)} 条...) prompt prompt_template.format(commentcomment) result engineer.call_model(prompt) results.append({comment: comment, result: result}) time.sleep(delay_seconds) # 简单限流避免触发API限制 return results # 定义提示词模板 sentiment_template 分析以下评论的情感是正面、负面还是中性。只输出一个词。 评论{comment} 情感 comments_to_analyze [ 物流速度很快包装完好。, 商品与描述不符颜色差很多。, 中规中矩没什么惊喜。 ] # batch_results batch_process_comments(comments_to_analyze, sentiment_template) # for r in batch_results: # print(f评论: {r[comment][:30]}... - 情感: {r[result]})6.3 构建提示词模板库在真实项目中将常用的提示词保存为模板文件如JSON或YAML实现逻辑与内容的分离。# prompts.json { sentiment_analysis: { system: 你是一个准确的情感分析助手。, user_template: 分析以下评论的情感是正面、负面还是中性。只输出一个词。\n评论{text}\n情感 }, text_summarization: { system: 你是一个专业的文本总结助手。, user_template: 用不超过3个要点总结以下文本的核心内容。\n文本\\\{text}\\\\n总结 }, code_explanation: { system: 你是一个资深的程序员擅长解释代码。, user_template: 解释以下{language}代码的功能和工作原理\n{language}\n{code}\n\n解释 } }# 加载和使用模板 import json class PromptTemplateManager: def __init__(self, template_path: str): with open(template_path, r, encodingutf-8) as f: self.templates json.load(f) def render(self, template_name: str, **kwargs) - Dict[str, str]: 渲染模板返回包含system和user消息的字典 if template_name not in self.templates: raise ValueError(f模板 {template_name} 不存在。) template self.templates[template_name] user_content template[user_template].format(**kwargs) return { system: template.get(system, ), user: user_content } # 使用 manager PromptTemplateManager(prompts.json) prompt_data manager.render(sentiment_analysis, text这款相机拍照效果太惊艳了) # 然后调用 call_model(prompt_data[user], system_messageprompt_data[system])7. 资源占用与性能观察提示词工程本身不涉及本地模型推理因此“资源占用”主要指API调用的成本、延迟和速率限制。Token消耗与成本计算方式输入提示词Prompt和模型输出Completion的总Token数。可以通过OpenAI的 Tokenizer工具 或tiktokenPython库估算。优化策略精简提示词移除冗余信息在少样本示例中使用有代表性但简洁的例子对于长上下文考虑先进行摘要或提取关键信息再送入模型。延迟Latency影响因素提示词长度、模型复杂度GPT-4比GPT-3.5慢、网络状况、API服务器负载。观察方法在代码中记录请求开始和结束时间。import time start_time time.time() response engineer.call_model(long_prompt) end_time time.time() print(fAPI调用耗时: {end_time - start_time:.2f}秒)速率限制Rate Limits问题免费或低阶API密钥有每分钟/每天的请求次数和Token数限制。排查如果收到429 Too Many Requests错误说明触限。解决方案实现请求队列和重试机制如指数退避升级API套餐对于批量任务增加请求间隔如time.sleep。输出稳定性控制参数temperature温度是核心。设为0默认使输出确定性最高适合事实提取、分类。增大温度如0.7-1.0会增加创造性适合写作、脑暴。观察对同一提示词多次调用temperature0时观察输出的变化范围是否在可接受区间内。8. 常见问题与排查方法在实践中你会遇到各种问题。下表列出了典型问题及其解决思路。问题现象可能原因排查方式解决方案API调用返回错误1. API Key无效或过期。2. 网络问题。3. 账户余额不足或免费额度用完。4. 请求参数格式错误。1. 检查Key是否正确设置。2. 使用curl或ping测试API端点连通性。3. 登录OpenAI平台查看用量和余额。4. 打印完整的请求和错误信息。1. 重新生成并安全存储API Key。2. 检查代理或防火墙设置。3. 充值或等待下个周期。4. 参照API文档修正参数。模型输出不符合预期1. 提示词指令模糊、有歧义。2. 未提供足够上下文或示例。3.temperature参数过高输出随机。4. 模型本身能力不足。1. 用更简单、明确的指令测试。2. 检查是否遗漏了关键信息。3. 将temperature设为0再测试。4. 尝试更强大的模型如从GPT-3.5切换到GPT-4。1. 应用“指令与上下文分离”、“具体化指令”原则重构提示词。2. 添加少量示例Few-Shot。3. 对于需要确定性的任务固定temperature0。4. 升级模型或将复杂任务拆解。处理长文本时输出截断或不完整1. 达到了模型的上下文窗口限制。2. 设置了过小的max_tokens参数。1. 计算输入文本的Token数。2. 检查响应是否包含finish_reason: length。1. 对于超长文本先进行分块处理再对每块总结或提取最后综合。2. 适当增加max_tokens值但要考虑成本。批量处理时速度慢或频繁报错1. 同步循环调用未处理速率限制。2. 网络不稳定。1. 查看错误信息是否为429。2. 监控程序运行日志。1. 实现带指数退避的重试逻辑。2. 在循环中增加time.sleep间隔。3. 考虑使用异步请求如aiohttp提升效率。输出格式无法被程序解析1. 模型未严格按照指定格式如JSON输出。2. 输出中包含额外解释文字。1. 打印原始输出检查格式。2. 在提示词中强调“只输出JSON不要有其他文字”。1. 在提示词中使用更严格的格式描述和示例。2. 在代码中增加后处理步骤用正则表达式提取所需部分。3. 使用OpenAI的JSON Mode如果模型支持。提示词在A模型有效在B模型无效不同模型对提示词的敏感度和遵循能力不同。在目标模型上重新测试你的提示词。针对不同的模型进行提示词适配和调优。没有“一招鲜”的提示词。9. 最佳实践与使用建议将提示词工程从实验推向生产需要遵循一些工程化最佳实践。版本控制你的提示词像管理代码一样管理提示词。使用Git来跟踪提示词模板.json/.yaml文件的变更便于回滚和协作。测试驱动开发TDD for Prompts建立完善的测试用例集如第5.1节所示。每次修改提示词后运行测试集以确保核心功能未退化并评估效果提升。实现监控与日志记录重要的API调用包括输入提示词可脱敏、输出结果、耗时、Token用量和费用。这有助于分析性能、排查问题和成本核算。设计降级与回退策略如果主要模型如GPT-4API调用失败或超时应有备用方案例如切换到更便宜/更快的模型如GPT-3.5-Turbo或返回一个友好的默认错误信息。安全与合规审查输入过滤对用户输入的提示词进行审查防止注入攻击Prompt Injection例如用户输入可能包含“忽略之前的指令...”这类恶意指令。输出过滤对模型的输出进行内容安全过滤防止生成有害、偏见或不合规的内容。隐私保护确保发送给API的提示词中不包含个人身份信息PII、商业秘密等敏感数据。必要时进行数据脱敏。持续迭代与优化提示词工程是一个迭代过程。定期收集真实用户的使用数据分析失败案例不断优化你的提示词库。关注OpenAI等厂商发布的最新提示词指南和最佳实践。掌握提示词工程本质上是掌握了与AI协作的一门新语言。从吴恩达的教程出发理解其核心原则然后通过大量的实践和迭代你将能构建出高效、可靠的AI应用。记住最好的提示词往往不是最复杂的而是最能让模型理解你意图的那一个。现在就从定义一个清晰的任务、准备一组测试用例、编写你的第一个结构化提示词开始吧。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度