Prompt 工程最佳实践:ChatGPT 版
AndroidRain
共 1528字,需浏览 4分钟
·
2023-06-22 13:56
注意:”{text input here}” 是实际文本/内容的占位符
1. 使用最新版本的模型
使用最新版本的模型,往往可以获得更好的结果。
2. 使用 ### 或 """ 分隔指令和上下文
Bad ❌
将下面的文本总结为要点列表。
Better ✅
将下面的文本总结为要点列表。
文本: """
这里是文本内容
"""
3. 在背景、结果、长度、格式、风格等方面描述的尽可能具体和详细
Bad ❌
写一首关于 OpenAI 的诗
Better ✅
以{某位著名诗人}的风格,写一首关于OpenAI的鼓舞人心的短诗,重点关注最近推出的DALL-E产品(DALL-E是一个文本到图像的机器学习模型)
4. 通过例子说明所需的输出格式
Bad ❌
从下面的文本中提取出提到的实体。提取以下四种类型的实体:公司名称,人名,具体的主题和主旨。
文本:{文本}
Better ✅
提取下面文本中提到的重要实体。首先提取所有的公司名称,然后提取所有的人名,接着提取符合内容的特定主题,最后提取概括性的主题。
期望的格式:
公司名称:<逗号分隔的公司名称列表>
人名:-||-
特定主题:-||-
一般主题:-||-
文本:{文本}
在上述例子中,使用”-||-“作为一个占位符,表示这些部分需要根据实际的文本内容来提取并填充。
5. 先从 zero-shot 开始,然后尝试 few-shot,如果这两者效果都不好,就试试微调
Zero-shot 零样本
从下面的文本中提取关键词。
文本:{文本}
关键词:
Few-Shot 少样本,即提供示例
从下面的相应文本中提取关键词。
文本1:Stripe提供了API,网页开发者可以用来在他们的网站和移动应用中集成支付处理。
关键词1:Stripe,支付处理,API,网页开发者,网站,移动应用
文本2:OpenAI已经训练了前沿的语言模型,这些模型在理解和生成文本方面非常出色。我们的API提供了访问这些模型的途径,可以用来解决几乎所有涉及语言处理的任务。
关键词2:OpenAI,语言模型,文本处理,API。
文本3:{文本}
关键词3:
6. 减少不精确的描述
Bad ❌
这个产品的描述应该相当简短,只有几句话,不要太多。
Better ✅
用一个包含3到5句的段落来描述这个产品。
7. 不要只说不应该做什么,而要说应该做什么
Bad ❌
以下是代理人和客户之间的对话。不要询问用户名或密码。不要重复。
客户:我无法登录我的账户。
代理人:
Better ✅
以下是代理人和客户之间的对话。代理人将尝试诊断问题并提出解决方案,同时避免提出任何与个人身份信息(PII)相关的问题。代理人不会询问像用户名或密码这样的个人身份信息,而是将用户引导至帮助文章 www.samplewebsite.com/help/faq
客户:我无法登录我的账户。
代理人:
8. 特定代码生成:使用”引导词“将模型推向一个特定的模式
Bad ❌
# 编写一个简单的Python函数,该函数要求如下
# 1.输入一个以英里为单位的数
# 2. 它将英里数转换为公里数
Better ✅
# 编写一个简单的Python函数,该函数要求如下
# 1. 输入一个以英里为单位的数
# 2. 它将英里数转换为公里数
import
import
引导词告诉模型写 Python 代码时应该以什么内容为开始。类似的,如果你要写 SQL 语句,可以选择 SELECT
为引导词。
OpenAI API 调用参数介绍
model:要调用的 AI 模型,表现越好的模型价格越贵、延迟越高;
temperature:温度,此参数值越高,生成的内容越随机;
max_tokens:内容的最大长度;
stop:终止符,碰到此类字符则终止生成内容;
logit_bias:设置指定字符出现的概率,可以避免在最终内容中生成指定字符。
评论