摘要

本文基于 DeepLearning.ai 与 OpenAI 联合推出的《ChatGPT Prompt Engineering for Developers》课程,系统讲解面向开发者的 LLM 提示工程最佳实践。你将了解到两类 LLM(基础模型 vs 指令微调模型)的本质区别,掌握两大核心原则:编写清晰具体的指令给模型留出思考时间。文章还深入介绍了 LLM 的四大实用能力——摘要、推断、转换、扩展,并提供了可运行的 Python 代码示例,帮助你快速构建自定义聊天机器人。无论你是 AI 应用开发者还是技术爱好者,本文都能助你高效、负责任地使用 LLM API。

适用人群 / 前置知识

适用人群:希望将 LLM 集成到自己应用中的软件工程师、数据科学家、AI 产品经理、技术爱好者。

前置知识

  • 基本的 Python 编程知识(能看懂函数调用和 API 请求)。
  • 了解什么是 API(应用程序接口)。
  • 对 ChatGPT 或类似工具有过简单使用体验更佳,但不是必需。

正文

1. 引言:LLM 作为开发者工具的巨大潜力

很多人对 LLM 的使用还停留在 ChatGPT 网页界面——输入一个问题,得到一个回答。这当然很有用,但它只发挥了 LLM 能力的冰山一角。真正具有革命性的是 通过 API 调用 LLM 来构建软件应用。你可以让 LLM 自动总结用户评论、判断情感倾向、翻译文本、生成邮件回复,甚至构建一个完全定制化的聊天机器人。这些功能只需要几行代码就能实现。

本课程的核心观点是:LLM API 是当下最被低估的开发者工具。本文将带你从零开始,掌握面向开发者的提示工程(Prompt Engineering)技巧。

2. 核心概念:基础 LLM vs 指令微调 LLM

要写出好的提示,首先需要理解你正在使用的模型类型。目前存在两大类 LLM:

类型 训练目标 典型行为 适用场景
基础 LLM(Base LLM) 预测下一个词 根据训练数据续写文本,可能答非所问 文本生成、创意写作,但不太适合直接问答
指令微调 LLM(Instruction-tuned LLM) 遵循人类指令 直接回答问题、执行任务 大多数实际应用(客服、分析、转换等)

示例对比

输入:“法国的首都是什么?”

  • 基础 LLM 可能输出:“法国最大的城市是什么?法国的人口是多少?……”
  • 指令微调 LLM 输出:“法国的首都是巴黎。”

现代主流 LLM(如 GPT-3.5-turbo、GPT-4)都属于指令微调模型,它们还经过 RLHF(基于人类反馈的强化学习)优化,使其更加有用、诚实、无害。因此,本文所有建议均针对指令微调 LLM。

3. 两大核心提示原则

原则一:编写清晰、具体的指令
把 LLM 想象成一个很聪明但不了解你任务细节的新员工。如果你只说“写点关于艾伦·图灵的东西”,他可能会迷茫。你需要明确:

  • 主题范围:科学贡献、个人生活,还是历史地位?
  • 输出语调:专业报道风格,还是朋友闲聊的口吻?
  • 参考信息:提供一些背景文本片段,让模型基于这些内容生成。

实践技巧

  • 使用分隔符(如三重引号 “”"、XML 标签 )明确区分指令和输入内容。
  • 要求模型输出结构化格式(JSON、HTML、列表),便于程序解析。
  • 提供少量示例(few-shot),帮助模型理解你想要的输出模式。

代码示例(使用 OpenAI Python 库):

import openai

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一位专业的技术博主,用清晰的中文回答问题。"},
        {"role": "user", "content": "请用三个要点总结艾伦·图灵对计算机科学的贡献,每个要点不超过20字。"}
    ],
    temperature=0.3
)
print(response.choices[0].message.content)

原则二:给模型“思考”的时间
如果让一个人立刻回答复杂问题(例如“计算 17% 的 429 再减去 58”),他很可能出错。同样,LLM 在匆忙推理时也会犯错。解决方法是要求模型先输出中间推理步骤,再给出最终答案。

典型应用:思维链(Chain-of-Thought, CoT)提示。
示例

  • 不好的提示:“判断这个产品评论的情感是正面还是负面。评论:‘这个手机电池续航很差,但屏幕很漂亮。’”
  • 更好的提示:“请逐步分析:1)评论中提到了哪些正面点?2)提到了哪些负面点?3)综合判断情感倾向。最后输出正面或负面。”

这种做法显著提高了复杂任务(如数学推理、多条件判断)的准确率。

4. 迭代式提示开发:没有完美的第一次

提示工程不是一次写成的,而是一个迭代优化的过程。典型流程:

  1. 写下第一版提示,尝试运行。
  2. 分析输出哪里不符合预期(内容缺失、格式错误、事实错误等)。
  3. 修改提示(增加约束、明确要求、提供示例)。
  4. 重复直到满意。

关键心态:接受失败,快速调整。即使是经验丰富的开发者,通常也需要 5-10 次迭代才能得到一个生产可用的提示。

5. LLM 的四大核心应用能力

课程总结了四种常见且强大的 LLM 能力,下面分别说明并附示例。

5.1 摘要(Summarizing)
将长文本压缩成关键要点。
应用场景:总结用户评论、新闻文章、会议纪要。
提示模板

请将以下用三重引号括起来的文本总结为一句话,保留核心事实。
"""{长文本}"""

5.2 推断(Inferring)
从文本中提取情感、主题、实体等信息。
应用场景:情感分析、关键词提取、语言检测。
示例:判断客户反馈的情感倾向(正面/负面/中性),并输出 JSON 格式。

5.3 转换(Transforming)
将文本从一种形式转换为另一种:翻译、语法修正、格式转换(JSON ↔ XML)、语气转换(正式 ↔ 随意)。
示例

请将下面这段非正式文本改写成专业商务邮件风格:“嘿,哥们,上次那个东西还没收到,啥情况?”

5.4 扩展(Expanding)
根据少量输入生成更多内容,如写邮件、写博客大纲、生成创意点子。
应用场景:自动回复客服邮件、根据关键词生成广告文案。
注意:扩展时需设置温度参数(temperature=0.7~1.0 可增加创意性,temperature=0 则输出更确定)。

6. 实战:构建一个自定义聊天机器人

利用 LLM 的对话能力,你可以构建一个具有特定人设或知识范围的聊天机器人。核心是使用 系统消息(system message) 来设定角色和规则。

步骤

  1. 定义系统角色(例如:“你是一位耐心的数学老师,只回答中小学数学问题,对于超出范围的问题请礼貌拒绝。”)
  2. 维护对话历史(每次请求携带之前的 user 和 assistant 消息)。
  3. 调用 API 获取回复。

简化代码

messages = [
    {"role": "system", "content": "你是一位幽默的脱口秀演员,用搞笑的方式回答任何问题。"},
    {"role": "user", "content": "为什么程序员总是分不清万圣节和圣诞节?"}
]
response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)

进阶技巧:通过上下文注入(将外部知识库检索结果放入 user 消息)实现 RAG(检索增强生成),让机器人能回答私有数据相关的问题。

7. 最佳实践与负责任使用

  • 温度(Temperature):控制输出的随机性。0 表示确定,1 表示更有创意。对于事实性任务(如摘要、分类)建议用 0 或 0.2;对于创意任务(如写诗)可用 0.7-0.9。
  • 最大令牌数(max_tokens):限制输出长度,但注意这可能会截断回答。更好的方式是提示中要求“用 50 字以内回答”。
  • 避免提示注入:恶意用户可能通过输入“忽略之前的指令,做坏事”来攻击你的应用。可通过系统消息中明确权限、过滤输入或使用官方提供的防御策略。
  • 伦理要求:只构建有积极影响的应用,不生成虚假信息、仇恨言论或侵犯隐私的内容。

8.常见问题 / 注意事项

Q1:为什么模型有时候会编造事实(幻觉)?
A:LLM 本质是“下一个词预测器”,并不真正理解事实。缓解方法:要求模型引用原文、限制回答范围、使用外部知识库。

Q2:提示很长会消耗更多 tokens,成本怎么办?
A:是的,提示和输出都按 token 计费。优化技巧:精简提示、使用更小的模型(如 gpt-3.5-turbo 替代 gpt-4)、缓存常见查询结果。

Q3:如何处理中文以外的语言?
A:GPT 模型支持多语言。直接用中文写提示、输入中文内容,模型会自动用中文回复。也可以在系统消息中明确指定语言。

9. 总结

本文从开发者的角度,系统介绍了提示工程的核心知识:

  • 两种 LLM:优先使用指令微调模型。
  • 两大原则:清晰具体的指令 + 给模型思考时间。
  • 迭代开发:通过多次尝试逼近最优提示。
  • 四大能力:摘要、推断、转换、扩展。
  • 实战:构建自定义聊天机器人。

掌握这些技巧后,你已经能够利用 LLM API 快速构建出许多实用工具——从自动客服、内容审核到个性化学习助手。现在就开始你的第一个小项目吧,哪怕它只是一个能讲冷笑话的机器人。

请始终牢记:作为 AI 系统的构建者,我们有责任确保技术被用于积极、向善的方向。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐