ChatGPT提示工程入门 Prompt 03-迭代式提示词开发

迭代式提示词开发

吴恩达《ChatGPT Prompt Engineering for Developers》课程笔记 - 第3讲

核心理念

💡 关键洞察:没有完美的提示词只有不断优化的过程

提示词开发是一个迭代过程,需要:

  1. 尝试初版提示词
  2. 分析结果
  3. 明确问题
  4. 优化提示词
  5. 重复以上步骤

想法
实现提示词
实验结果
错误分析
改进方向

迭代开发流程

标准流程

python 复制代码
# 1. 明确任务
# 2. 编写初版提示词
# 3. 运行并评估
# 4. 根据结果改进
# 5. 重复步骤3-4

关键原则

  • 快速迭代:不要追求第一次就完美
  • 具体场景:针对特定应用场景优化
  • 数据驱动:基于实际输出进行改进
  • 批量测试:用多个案例验证

实战案例:产品描述生成

场景设定

为电商网站生成产品营销文案。

原始产品信息

python 复制代码
fact_sheet_chair = """
概述
- 属于美丽的中世纪灵感办公家具系列,包括文件柜、办公桌、书柜、会议桌等。
- 多种外壳颜色和底座饰面可选。
- 提供塑料前后靠背装饰(SWC-100)或10种面料和6种皮革的全面软包(SWC-110)。
- 底座饰面选项包括:不锈钢、哑光黑色、光泽白色或镀铬。
- 椅子可配备或不配备扶手。
- 适合家庭或商业环境。
- 符合合同使用资格。

结构
- 五轮塑料涂层铝底座。
- 气动椅子调节,方便升降。

尺寸
- 宽度 53厘米 | 20.87英寸
- 深度 51厘米 | 20.08英寸
- 高度 80厘米 | 31.50英寸
- 座椅高度 44厘米 | 17.32英寸
- 座椅深度 41厘米 | 16.14英寸

选项
- 软地板或硬地板脚轮选项。
- 两种座椅泡沫密度可选:中等(1.8磅/立方英尺)或高(2.8磅/立方英尺)
- 无扶手或8位置PU扶手

材料
外壳底座滑动件
- 铸铝涂层改性尼龙PA6/PA66。
- 外壳厚度:10毫米。
座椅
- HD36泡沫

原产国
- 意大利
"""

迭代1:初版提示词

代码
python 复制代码
prompt = f"""
你的任务是帮助营销团队基于技术说明书创建产品的营销描述。

根据三个反引号中提供的技术规格信息,编写产品描述。

技术规格: ```{fact_sheet_chair}```
"""

response = get_completion(prompt)
print(response)
输出
复制代码
介绍我们精美的中世纪风格办公椅,这是一款集功能性与优雅设计于一体的家具杰作。
该椅子属于我们广受欢迎的办公家具系列,该系列还包括文件柜、办公桌、书柜和会议桌。

这款办公椅提供多种定制选项,让您可以打造完美契合您空间的座椅。您可以选择多种
外壳颜色和底座饰面,包括不锈钢、哑光黑色、光泽白色或镀铬。椅子可配备塑料前后
靠背装饰,或选择10种面料和6种皮革的全面软包,以满足您的舒适度和风格偏好。

结构方面,这款椅子采用五轮塑料涂层铝底座,确保稳定性和移动便利性。气动调节功能
让您能够轻松调整座椅高度。椅子尺寸宽度53厘米,深度51厘米,高度80厘米,座椅高度
44厘米,座椅深度41厘米,为各种体型的用户提供舒适的支撑。

[... 更多内容 ...]

这款椅子在意大利制造,体现了卓越的工艺和对细节的关注。无论您是为家庭办公室还是
商业环境寻找座椅解决方案,这款中世纪风格办公椅都是完美的选择。
问题分析
  • 太长:营销人员希望简洁的描述
  • 细节过多:包含了所有技术规格
  • 缺少重点:没有突出卖点

迭代2:限制字数

改进策略

添加字数限制指令。

代码
python 复制代码
prompt = f"""
你的任务是帮助营销团队基于技术说明书创建产品的营销描述。

根据三个反引号中提供的技术规格信息,编写产品描述。

使用最多50个词。

技术规格: ```{fact_sheet_chair}```
"""

response = get_completion(prompt)
print(response)
print(f"\n字数: {len(response.split())}")
输出
复制代码
这款中世纪风格办公椅集优雅与功能于一体,提供多种颜色和饰面选择。
采用五轮铝底座和气动高度调节,适合家庭或办公使用。可选配扶手,
符合商业合同标准。意大利制造,品质保证。

字数: 47
改进效果
  • 长度合适:约50词
  • 更简洁:突出关键特点
  • ⚠️ 仍可优化:技术细节可以更聚焦

迭代3:调整关注点

改进策略

引导模型关注目标受众关心的信息。

代码
python 复制代码
prompt = f"""
你的任务是帮助营销团队基于技术说明书创建产品的营销描述。

根据三个反引号中提供的技术规格信息,编写产品描述。

该描述面向家具零售商,因此应侧重于技术性质,聚焦产品的材料构成。

使用最多50个词。

技术规格: ```{fact_sheet_chair}```
"""

response = get_completion(prompt)
print(response)
输出
复制代码
中世纪风格办公椅,采用铸铝涂层改性尼龙PA6/PA66外壳,壁厚10毫米。
五轮塑料涂层铝底座,HD36泡沫座椅。提供多种外壳颜色和底座饰面,
可选软包或塑料靠背。气动高度调节,意大利制造。
改进效果
  • 聚焦材料:突出技术规格
  • 专业性强:适合B2B受众
  • 简洁明确:关键信息清晰

迭代4:添加产品ID

改进策略

在描述末尾添加产品ID表格,方便查询。

代码
python 复制代码
prompt = f"""
你的任务是帮助营销团队基于技术说明书创建产品的营销描述。

根据三个反引号中提供的技术规格信息,编写产品描述。

该描述面向家具零售商,因此应侧重于技术性质,聚焦产品的材料构成。

在描述末尾,包含技术规格中提到的每个7位产品ID。

在描述后,添加一个表格,表格标题为"产品ID",包含产品ID。
表格应有两列,第一列包含产品ID的名称,第二列包含产品ID。

使用最多50个词。

技术规格: ```{fact_sheet_chair}```
"""

response = get_completion(prompt)
print(response)
输出
复制代码
中世纪风格办公椅,采用铸铝涂层改性尼龙PA6/PA66外壳(壁厚10毫米)和
HD36泡沫座椅。五轮塑料涂层铝底座,气动高度调节。提供多种颜色和饰面选择。
意大利制造,适合家庭或商业环境。

产品ID:
| 产品ID名称 | 产品ID |
|-----------|--------|
| 塑料靠背版本 | SWC-100 |
| 软包版本 | SWC-110 |

迭代5:优化为HTML格式

改进策略

输出HTML格式,便于网页展示。

代码
python 复制代码
prompt = f"""
你的任务是帮助营销团队基于技术说明书创建产品的营销描述。

根据三个反引号中提供的技术规格信息,编写产品描述。

该描述面向家具零售商,因此应侧重于技术性质,聚焦产品的材料构成。

在描述末尾,包含技术规格中提到的每个7位产品ID。

在描述后,添加一个表格,表格标题为"产品尺寸",包含产品的尺寸信息。
表格应有两列,第一列包含尺寸名称,第二列包含尺寸的厘米值。

将所有内容格式化为可在网页中使用的HTML。
将描述放在<div>元素中。

技术规格: ```{fact_sheet_chair}```
"""

response = get_completion(prompt)
print(response)
输出
html 复制代码
<div>
  <h2>中世纪风格办公椅 - 技术描述</h2>
  
  <p>
    这款精致的办公椅采用高品质材料制造,外壳使用铸铝涂层改性尼龙PA6/PA66,
    壁厚10毫米,确保耐用性。座椅采用HD36泡沫,提供出色的舒适度和支撑。
    五轮塑料涂层铝底座设计,配备气动调节功能,方便高度调整。
  </p>
  
  <p>
    <strong>产品ID:</strong>SWC-100(塑料靠背版本)、SWC-110(软包版本)
  </p>
  
  <h3>产品尺寸</h3>
  <table border="1">
    <tr>
      <th>尺寸名称</th>
      <th>厘米</th>
    </tr>
    <tr>
      <td>宽度</td>
      <td>53</td>
    </tr>
    <tr>
      <td>深度</td>
      <td>51</td>
    </tr>
    <tr>
      <td>高度</td>
      <td>80</td>
    </tr>
    <tr>
      <td>座椅高度</td>
      <td>44</td>
    </tr>
    <tr>
      <td>座椅深度</td>
      <td>41</td>
    </tr>
  </table>
</div>
可视化展示
python 复制代码
from IPython.display import display, HTML

display(HTML(response))

迭代优化的关键技巧

1. 明确约束条件

python 复制代码
# ❌ 模糊
"写一个简短的描述"

# ✅ 具体
"使用最多50个词"
"包含3-5个要点"
"长度在100-150字之间"

2. 指定目标受众

python 复制代码
# ❌ 通用
"写产品描述"

# ✅ 针对性
"面向家具零售商,侧重技术规格"
"面向终端消费者,强调使用体验"
"面向采购经理,突出性价比"

3. 定义输出格式

python 复制代码
# ❌ 未指定
"提供产品信息"

# ✅ 结构化
"以JSON格式输出"
"生成HTML表格"
"使用Markdown列表"

4. 提供具体指令

python 复制代码
# ❌ 抽象
"描述产品特点"

# ✅ 具体
"列出3个关键卖点"
"描述材料构成"
"包含产品尺寸表格"

批量测试与评估

测试多个案例

python 复制代码
# 产品列表
products = [
    fact_sheet_chair,
    fact_sheet_desk,
    fact_sheet_lamp
]

# 批量生成
def generate_descriptions(products, prompt_template):
    results = []
    for product in products:
        prompt = prompt_template.format(product=product)
        description = get_completion(prompt)
        results.append({
            'product': product[:50] + '...',
            'description': description
        })
    return results

# 评估结果
descriptions = generate_descriptions(products, prompt_template)
for i, result in enumerate(descriptions):
    print(f"\n产品 {i+1}:")
    print(result['description'])
    print("-" * 50)

评估维度

维度 评估标准 权重
准确性 信息是否正确 30%
相关性 是否符合需求 25%
完整性 关键信息是否齐全 20%
格式 是否符合要求 15%
可读性 是否易于理解 10%

自动化评估示例

python 复制代码
def evaluate_description(description, expected_keywords, max_words=50):
    """
    评估生成的描述质量
    """
    evaluation = {
        'word_count': len(description.split()),
        'length_ok': len(description.split()) <= max_words,
        'contains_keywords': sum(kw in description for kw in expected_keywords),
        'keyword_coverage': sum(kw in description for kw in expected_keywords) / len(expected_keywords)
    }
    return evaluation

# 测试
expected_keywords = ['中世纪', '办公椅', '铝底座', 'HD36泡沫', '意大利']
eval_result = evaluate_description(response, expected_keywords, max_words=50)
print(eval_result)

实战练习

练习1:电子产品描述

为以下手机生成营销文案:

python 复制代码
phone_specs = """
型号: TechPhone X1
处理器: 8核2.8GHz
内存: 8GB RAM
存储: 256GB
屏幕: 6.5英寸OLED,120Hz刷新率
相机: 后置三摄(50MP主摄+12MP超广角+5MP微距)
电池: 5000mAh,支持65W快充
操作系统: Android 13
颜色: 星空黑、极光蓝、月光银
重量: 198克
价格: ¥2999
"""

# 要求:
# 1. 面向年轻消费者
# 2. 强调拍照和游戏性能
# 3. 最多80词
# 4. 突出性价比

练习2:迭代优化流程

选择任意产品,完成完整的迭代优化流程:

  1. V1: 基础描述
  2. V2: 添加字数限制
  3. V3: 调整目标受众
  4. V4: 优化格式
  5. V5: 添加结构化信息

记录每次迭代的改进点和效果。

练习3:A/B测试

为同一产品生成两个不同风格的描述:

  • 版本A: 专业技术风格
  • 版本B: 情感故事风格

比较并分析哪个版本更适合你的目标受众。

最佳实践总结

✅ DO(推荐做法)

  1. 快速开始 - 不要追求完美的初版
  2. 小步迭代 - 每次只改进一个方面
  3. 数据驱动 - 基于实际输出优化
  4. 批量测试 - 用多个案例验证
  5. 记录过程 - 保存每次迭代的提示词和结果
  6. 具体约束 - 使用明确的数字和要求
  7. 格式规范 - 清晰定义输出格式

❌ DON'T(避免做法)

  1. 过度优化 - 过分追求完美
  2. 忽略测试 - 只测试单个案例
  3. 模糊指令 - 使用含糊不清的要求
  4. 频繁大改 - 一次修改多个方面
  5. 缺少记录 - 不记录迭代历史
  6. 忽视受众 - 不考虑目标用户

迭代检查清单

使用以下清单评估你的提示词:

  • 任务描述是否清晰?
  • 是否指定了目标受众?
  • 是否有明确的长度限制?
  • 是否定义了输出格式?
  • 是否包含具体示例(如需要)?
  • 是否测试了多个案例?
  • 结果是否满足业务需求?

核心要点

  1. 迭代是常态 - 很少有提示词第一次就完美
  2. 过程优于结果 - 建立系统化的优化流程
  3. 测试很重要 - 多案例验证确保通用性
  4. 记录是关键 - 保存迭代历史便于回溯
  5. 具体胜于模糊 - 明确的约束产生更好的结果

下一步学习

在下一讲中,我们将学习文本摘要技术,探索如何高效提取关键信息。


上一讲 : 提示词编写指南-两大核心原则
下一讲 : 文本摘要-高效提取信息

相关推荐
盼小辉丶1 小时前
PyTorch实战(29)——使用TorchServe部署PyTorch模型
人工智能·pytorch·深度学习·模型部署
郝学胜-神的一滴1 小时前
在Vibe Coding时代,学习设计模式与软件架构
人工智能·学习·设计模式·架构·软件工程
AI英德西牛仔1 小时前
AI输出无乱码
人工智能
艾醒(AiXing-w)1 小时前
技术速递——通义千问 3.5 深度横评:纸面超越 GPT‑5.2,实测差距在哪?
人工智能·python·语言模型
xiangzhihong81 小时前
Gemini 3.1 Pro血洗Claude与GPT,12项基准测试第一!
人工智能
爱跑步的程序员~2 小时前
Spring AI会话记忆使用与底层实现
人工智能·spring
ppppppatrick2 小时前
【深度学习基础篇】线性回归代码解析
人工智能·深度学习·线性回归
肾透侧视攻城狮2 小时前
《工业级实战:TensorFlow房价预测模型开发、优化与问题排查指南》
人工智能·深度学习·tensorfl波士顿房价预测·调整网络结构·使用k折交叉验证·添加正则化防止过拟合·tensorflow之回归问题
王解2 小时前
第四篇:万能接口 —— 插件系统设计与实现
人工智能·nanobot