如何让ChatGPT生成期望回复(高级版)
在高阶策略中,我们通常以开发工程师的视角使用ChatGPT。与普通用户不同的是,工程师角色的指令明显带有代码的痕迹。然而,不必担心,高阶指令的使用无需具备IT工程师的背景知识。本章节中所有工程师角色提供的指令都可以直接复制粘贴。作为非专业用户,你可以复制指令并修改其中的文本,以满足你的实际需求。当然了解一些基本的编程概念和术语可能对你更有帮助。
下面是对工程师角色给出的指令说明:
指令示例:
text = f"""
轻轻的我走了,正如我轻轻地来。
我轻轻地招手,作别西天的云彩。
"""
prompt = f"""
把用三个反引号括起来的文本翻译成法语。
{text}
"""
response = get_completion(prompt)
print(response)
ChatGPT的回复:
使用分隔符清晰地表示输入
你可以使用任何明显的标点符号来将特定的文本部分与其余部分分开,这样可以让模型清楚地知道这是一个独立的部分。这个标记可以是任何能够让模型确定边界的符号。使用分隔符是一种有用的技术,可以避免提示注入的问题。
分隔符可以是:“`,”””, <>,,<\tag>等
提示注入是指如果用户将某些输入添加到提示中,可能会向模型提供与您想要执行的操作相冲突的指令,从而使其遵循冲突的指令而不是执行您想要的操作。
为了防止提示注入,使用分隔符是一个不错的策略。它可以帮助模型区分提示的部分和用户输入的部分,从而确保模型执行您期望的操作。
指令示例:
text = f"""
你应该提供尽可能清晰、具体的指示,以表达你希望模型执行的任务。
这将引导模型朝向所需的输出,并降低收到无关或不正确响应的可能性。
不要将写清晰的提示与写简短的提示混淆。
在许多情况下,更长的提示可以为模型提供更多的清晰度和上下文信息,从而导致更详细和相关的输出。
"""
# 需要总结的文本内容
prompt = f"""
把用三个反引号括起来的文本总结成一句话。
```{text}```
"""
# 指令内容,使用 ``` 来分隔指令和待总结的内容
response = get_completion(prompt)
print(response)
ChatGPT示例:
用结构化的输出
生成一个结构化的输出,可以是 Json、HTML 等格式。这可以使模型的输出更容易被我们解析,例如,你可以在 Python 中将其读入字典或列表中。
在以下示例中,我们要求 GPT 生成三本书的标题、作者和类别,并要求 GPT 以 Json 的格式返回给我们,为便于解析,我们指定了 Json 的键。
指令示例:
Prompt=f"""
请生成包括书名、作者和类别的三本虚构书籍清单,
并以JSON格式提供,其中包含以下键:boo_id、title、author、genre。
"""
response = get_completion(prompt)
print(response)
ChatGPT示例:
要求模型检查是否满足条件
如果任务做出的假设不一定满足,我们可以告诉模型先检查这些假设,如果不满足,指示并停止执行。
你还可以考虑潜在的边缘情况以及模型应该如何处理它们,以避免意外的错误或结果。
在如下示例中,我们将分别给模型两段文本,分别是制作茶的步骤以及一段没有明确步骤的文本。
我们将要求模型判断其是否包含一系列指令,如果包含则按照给定格式重新编写指令,不包含则回答未提供步骤。
指令示例:
# 有步骤的文本
text_1 = f"""
泡一杯茶很容易。首先,需要把水烧开。
在等待期间,拿一个杯子并把茶包放进去。
一旦水足够热,就把它倒在茶包上。
等待一会儿,让茶叶浸泡。几分钟后,取出茶包。
如果你愿意,可以加一些糖或牛奶调味。
就这样,你可以享受一杯美味的茶了。
"""
prompt = f"""
您将获得由三个引号括起来的文本。
如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
第一步 - ...
第二步 - …
…
第N步 - …
如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
\"\"\"{text_1}\"\"\"
"""
response = get_completion(prompt)
print("Text 1 的总结:")
print(response)
ChatGPT示例:
指令示例:
# 无步骤的文本
text_2 = f"""
今天阳光明媚,鸟儿在歌唱。
这是一个去公园散步的美好日子。
鲜花盛开,树枝在微风中轻轻摇曳。
人们外出享受着这美好的天气,有些人在野餐,有些人在玩游戏或者在草地上放松。
这是一个完美的日子,可以在户外度过并欣赏大自然的美景。
"""
prompt = f"""
您将获得由三个引号括起来的文本。
如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
第一步 - ...
第二步 - …
…
第N步 - …
如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
\"\"\"{text_2}\"\"\"
"""
response = get_completion(prompt)
print("Text 2 的总结:")
print(response)
ChatGPT示例: