Skip to content

Prompt Engineering 提示词工程


一句话定义:Prompt Engineering 是设计和优化输入提示词的技术,目的是让大语言模型(LLM)产生更准确、更有用的输出。

简单说:你怎么问,AI 就怎么答。好的 Prompt 能把 GPT-3.5 用出 GPT-4 的效果。


对比不同 Prompt 技术的效果,理解为什么”怎么问”很重要。

🎯 Prompt 技术对比

直接提问,不给示例
📝 Prompt
将以下句子翻译成英文: "今天天气很好"
🤖 AI 输出
点击"运行"查看输出
💡 技巧对比:
  • Zero-shot: 简单直接,适合简单任务
  • Few-shot: 提供示例,提升准确性
  • CoT: 逐步推理,适合复杂逻辑
  • Role Playing: 专家视角,提升专业度
  • Structured: 格式化输出,便于程序处理

你的 PromptAI 的表现
”给我做点吃的”随便炒个蛋(低质量、随机)
“给我做一份西红柿炒蛋”标准出品
”做一份西红柿炒蛋,少盐、多汤汁、配米饭”精准满足需求
”你是米其林三星主厨,请用创意方式重新演绎西红柿炒蛋”高级定制

越具体、越有上下文的指令,输出越好。


// Prompt 就像 API 请求的参数设计
// ❌ 差的 API 设计
fetch('/api/do-something'); // 啥都没说,后端猜不到
// ✅ 好的 API 设计
fetch('/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
name: '张三',
role: 'admin',
format: 'json'
})
});
// Prompt 也是一样:
// - 明确任务(method)
// - 提供上下文(headers)
// - 给出具体参数(body)
// - 指定输出格式(format)

直接描述任务,不给示例。

【Prompt】
将以下英文翻译成中文:
"The quick brown fox jumps over the lazy dog."
【输出】
敏捷的棕色狐狸跳过了懒惰的狗。

适用场景:简单任务、模型能力足够时。


提供几个示例,让模型”学习”模式。

【Prompt】
将英文翻译成中文,保持口语化风格:
English: "What's up?"
中文: "最近咋样?"
English: "No worries!"
中文: "没事儿!"
English: "Let's grab a coffee."
中文:
【输出】
走,喝杯咖啡去。

技巧

  • 示例数量 2-5 个最佳
  • 示例要覆盖不同情况
  • 示例格式要一致

3. Chain-of-Thought (CoT) 思维链 ⭐⭐

Section titled “3. Chain-of-Thought (CoT) 思维链 ⭐⭐”

让模型”一步一步思考”,显著提升推理能力。

【Prompt】
小明有 5 个苹果,给了小红 2 个,小红又给了小明 3 个香蕉。
现在小明有几个水果?
【输出】
6 个 ❌(错误,没考虑清楚)

魔法咒语

  • “让我们一步一步思考”
  • “Let’s think step by step”
  • “请分步骤解决这个问题”

给 AI 设定角色/身份。

【Prompt】
你是一位有 20 年经验的 Node.js 架构师。
请审查以下代码,指出潜在的性能问题和安全隐患:
```javascript
app.get('/user/:id', async (req, res) => {
const user = await db.query(`SELECT * FROM users WHERE id = ${req.params.id}`);
res.json(user);
});

【输出】 作为资深 Node.js 架构师,我发现以下问题:

  1. SQL 注入漏洞(严重) 直接拼接参数进 SQL 语句,攻击者可以…

  2. 没有错误处理

**常用角色**:
- "你是 XX 领域专家"
- "你是一位耐心的老师,正在教初学者"
- "你是代码审查员,专注于安全问题"
---
### 5. 输出格式控制
明确告诉 AI 你想要什么格式。
```text
【Prompt】
分析以下文本的情感,输出 JSON 格式:
文本:"这家餐厅的菜太难吃了,再也不来了!"
要求输出格式:
{
"sentiment": "positive/negative/neutral",
"confidence": 0.0-1.0,
"keywords": ["关键词1", "关键词2"]
}
【输出】
{
"sentiment": "negative",
"confidence": 0.95,
"keywords": ["难吃", "再也不来"]
}

System Prompt 是对话开始时的”底层设定”,影响 AI 的整体行为。

# Role(角色)
你是一个专业的 [角色描述]。
# Background(背景)
[用户背景/场景描述]
# Goals(目标)
[主要任务目标]
# Constraints(约束)
- 约束 1
- 约束 2
# Output Format(输出格式)
[期望的输出格式说明]
# Examples(示例)
[可选:给出输入输出示例]
# Role
你是一个资深全栈开发工程师,精通 JavaScript、TypeScript、Node.js、React。
# Background
用户是有 2 年经验的前端开发者,正在学习后端。
# Goals
1. 回答编程问题
2. 审查和优化代码
3. 解释技术概念(用类比,避免术语堆砌)
# Constraints
- 回答要简洁,代码要有注释
- 如果问题不清楚,先确认需求
- 不要生成不安全的代码
# Output Format
- 先用 1-2 句话总结答案
- 然后给出代码示例
- 最后解释关键点


请用 [语言] 实现 [功能描述]。
要求:
- 使用 [框架/库]
- 代码要有注释
- 包含错误处理
- 给出使用示例
请审查以下代码,从以下角度分析:
1. 潜在 Bug
2. 性能问题
3. 安全隐患
4. 代码风格
[代码]
输出格式:
- 问题描述
- 严重程度(高/中/低)
- 改进建议
请用简单的语言解释 [概念]。
要求:
- 先给出一句话定义
- 然后用生活中的类比解释
- 最后给出一个代码示例
- 我的背景:[前端开发 / CS 学生 / 完全小白]
我遇到了以下错误:
错误信息:
[粘贴错误]
相关代码:
[粘贴代码]
我的环境:
- Node.js 版本:
- 操作系统:
请分析可能的原因并给出解决方案。

OpenAI Prompt Engineering Guide

官方最佳实践指南

访问

Prompt Engineering Guide

社区整理的完整教程

访问

Learn Prompting

交互式学习网站

访问