本文基于对吴恩达老师的课程学习笔记,将描述如何通过不断迭代优化我们的提示词,最终得到更加符合我们预期的输出。
本文将继续以mac为例使用Python接入ChatGPT的api对提示词进行一步步描述,去不断的优化、迭代我们的提示词,从而得到更好的输出。
正如课程中吴恩达老师所说,我们的第一个关键词是否有效这并不重要,重要的是通过优化、迭代找到符合我们的提示词的这个过程,这也是这一章节课程中吴恩达老师提到的迭代提示开发的理念。
实际的开发过程中我们很难一开始就提出非常符合我们预期的提示词,这个时候需要不断的迭代进行开发以及优化。迭代、优化的过程其实就是遵循三点然后根据我们的实际应用场景不断的修正。
- 首先我们要清晰我们具体的目标。
- 分析为什么结果没有给出期望的输出。
- 完善想法和提示词。
下面就是通过迭代提示在实际开发中的一些示例,我们可以看到输出正在因为我们的优化而逐渐变得符合我们的预期想法。
# 描述
# 这里我们描述了一下产品规格,后面的示例中将共用这一段文本,并不会进行任何修改。
text = f"""
概述
-一个由中世纪办公家具组成的美丽家庭的一部分,
包括文件柜、书桌、书柜、会议桌等等。
-外壳颜色和基础完成的几个选项。
-可提供塑料背面和正面装潢(SWC-100)
或全内饰(SWC-110),有10种面料和6种皮革选择。
-基础抛光选项有:不锈钢,哑光黑色,
光泽白色或铬色。
-椅子有扶手也有无扶手。
-适合家庭或商业环境。
-符合合同使用条件。
建设
- 5轮塑料涂层铝基。
-气动椅子调整,便于升降动作。
维度
-宽53厘米| 20.87”
-深度51厘米| 20.08”
-高度80厘米| 31.50”
-座椅高度44厘米| 17.32”
-座椅深度41厘米| 16.14”
选项
-软或硬地板脚轮选项。
-两种座椅泡沫密度选择:
中(1.8 lb/ft3)或高(2.8 lb/ft3)
无扶手或8位PU扶手
材料
贝壳式滑翔机
-铸铝改性尼龙PA6/PA66涂层。
-外壳厚度:10mm。
座位
- HD36泡沫
原产国
——意大利
"""
下面我们开始通过不断的去迭代提示此让模型为我们输出更加符合我们预期的结果。
# 示例
prompt = f"""
你的任务是帮助营销团队创建一个在零售网站上的
描述一个基于产品情况说明书。
根据这些信息编写
产品描述在技术规格书中以
三重引号分割符分割。
用英文输出.
技术规格:``` {text}
"""
#输出结果:
隆重推出我们精美的家庭办公家具系列,其中包括一系列中世纪风格的家具,包括文件柜、办公桌、书柜和会议桌。该系列
有多种外壳颜色和底面饰面,可选择塑料前后装饰 (SWC-100) 或全内部装饰 (SWC-110),有 10 种织物和 6 种皮革
可供选择。底座抛光选项包括不锈钢、哑光黑色、亮白色或镀铬。椅子带扶手和不带扶手,适用于家庭和商业环境,满足合
同使用条件。
建造:
- 5 轮塑料涂层铝制底座。
- 气动座椅调节,方便上下移动。
维度:
- 宽 53 厘米 | 20.87”
- 深度 51 厘米 | 20.08”
- 身高 80cm | 31.50”
- 座高 44 厘米 | 17.32”
- 座深 41 厘米 | 16.14”
选项:
- 软或硬地板脚轮。
- 两个座椅泡沫密度选项:中等(1.8 磅/立方英尺)或高(2.8 磅/立方英尺)。
- 无扶手或 8 位 PU 扶手。
材料:
壳形滑翔机:
- 铸铝改性尼龙PA6/PA66涂层。
- 外壳厚度:10 毫米。
座位:
- HD36 泡沫。
原产地:
- 意大利。
可以看到根据我们的要求模型为我们详细输出了产品的描述以及规格,但是我们可能需要更加精简的产品描述。这个时候我们可以在prompt中添加使用最多50个单词,这个时候我们会得到下面的输出。
# 输出结果:
这款家具系列包括文件柜、书桌、书柜、会议桌等,适合家庭或商业环境。可选外壳颜色和基础完成,提供塑料背面和正
面装潢或全内饰,有10种面料和6种皮革选择。基础抛光选项有不锈钢、哑光黑色、光泽白色或铬色。椅子有扶手和无扶手
两种选择,座椅泡沫密度可选中或高,座椅高度44厘米,座椅深度41厘米。可选软或硬地板脚轮。贝壳式滑翔机采用铸铝
改性尼龙PA6/PA66涂层,外壳厚度10mm,座位采用HD36泡沫。原产国为意大利。
我们看到通过加入了对于字数的限制,模型对于输出做出了精简以及总结,给到我们的输出也更加符合我们的预期,我们得到了一个更好的简洁的产品描述,当然我们也可以要求模型用3句话来总结,下面因为我们面向的是家具零售商,我们期望能够描述更多技术细节和材料,那么我们进一步在prompt中加入“该描述适用于家具零售商,所以应该是技术性质和重点制造产品的材料。”,我们进一步的描述了我们的需求,这个时候我们会得到下面的输出。
# 输出结果:
介绍我们漂亮的中世纪办公家具系列,包括文件柜、书桌、书柜和会议桌。提供各种外壳颜色和底面饰面,可选择塑料前后
装饰 (SWC-100) 或全内饰(SWC-110) 有 10 种织物和 6 种皮革选择。底座有抛光不锈钢、哑光黑色、亮白色或镀铬。
椅子有扶手或无扶手,适用于家庭和商业环境,满足合同使用要求。采用 5 轮涂塑铝制底座和气动座椅调节装置,方便改
变高度。尺寸:W53cm x D51cm x H80cm,座高 44cm,座深 41cm。可选择软或硬地板脚轮和两种座椅泡沫密度:中
等(1.8 lb/ft3) 或高 (2.8 lb/ft3),带或不带 8 位 PU 扶手。材料包括由铸铝改性尼龙 PA6/PA66 涂层制成的
外壳滑翔机,厚度为 10mm 和 HD36 泡沫座椅。制造在意大利。
我们可以看到通过对提示词不断的迭代和我们预期的输出越来越接近,这个时候我们还可以加入“在描述的末尾,包括每 7 个字符技术规范中的产品 ID。”,这样末尾也会输出我们的产品ID。
示例的最后我们贴上最终的prompt再加上一段提示,让模型为我们生成一段直接可视的html,这便是我们一次简单迭代的过程。从最开始的prompt一步步的迭代优化变成更加符合我们预期的输出。
# 一步步迭代最终的prompt
prompt = f"""
你的任务是帮助营销团队创建一个在零售网站上的
描述一个基于产品情况说明书。
根据这些信息编写
产品描述在技术规格书中以
三重引号分割符分割。
该描述适用于家具零售商,
所以应该是技术性质和重点
制造产品的材料。
在描述的末尾,包括每 7 个字符
技术规范中的产品 ID。
在描述之后,包括一个表格,给出
产品的尺寸。该表应该有两列。
在第一列中包括维度的名称。
在第二列中仅包含以英寸为单位的测量值。
为表格命名为“产品尺寸”。
将所有内容格式化为可在网站中使用的 HTML。
将说明放在 <div> 元素中。
使用最多50个单词.
技术规格:``` {text}
"""
#输出结果:
<div>
<h2>产品情况说明书</h2>
<p>该产品是一款中世纪办公家具系列的一部分,包括文件柜、书桌、书柜、会议桌等等。外壳颜色和基础完成有多个选项。可提供塑料背面和正面装潢(SWC-100)或全内饰(SWC-110),有10种面料和6种皮革选择。基础抛光选项有:不锈钢,哑光黑色,光泽白色或铬色。椅子有扶手也有无扶手。适合家庭或商业环境。符合合同使用条件。</p>
<p>建设方面,该产品采用5轮塑料涂层铝基,气动椅子调整,便于升降动作。</p>
<p>贝壳式滑翔机采用铸铝改性尼龙PA6/PA66涂层,外壳厚度为10mm。座位采用HD36泡沫。</p>
<p>该产品的尺寸如下:</p>
<table>
...
</table>
<p>该产品还有以下选项:</p>
<ul>
...
</ul>
<p>该产品的产品 ID 为 SWC-100110。</p>
</div>
接下来就一起来看一下这个网页的效果吧,我们将代码直接运行可以看到下面的一个网页效果。
这一小章节的笔记到这里了,我们通过不断迭代、优化prompt,看到模型为我们提供了越来越贴合我们需求的输出,下一章节 Summarizing(总结)。