前言
上一篇已经用OpenAI实现了简单的问答,细心的你可能发现了,我们在问大模型问题的时候,有时候回答得确实不尽人意,也可能根本就跟问题不相关,就是“一本正经的胡说八道”。针对这种情况,我们就需要给到它更多的提示,让它理解我们需要的是什么,所以就需要引入一个新的概念:提示工程。
提示工程的生态
1、什么是提示词
所谓的提示词其实指的就是提供给模型的一个文本片段,用于指导模型生成特定的输出或回答。提示词的目的是为模型提供一个任务的上下文,以便模型能够更准确地理解用户的意图,并生成相关的回应。
2、什么是提示工程(Prompt Engineering)
所谓的提示工程也可以被称为「指令工程」,
提示工程的核心思想是,通过精心设计的提示,可以显著提高模型的性能和输出质量。
- 貌似简单,但其实意义非凡。(提问的智慧)
- Prompt 是 AGI 时代的「编程语言」
- 提示工程师是 AGI 时代的「程序员」
如果要学好提示工程,那么其实就是要知道如何对咱们的Prompt进行调优,与大模型进行更好的交互。
3、如何正确理解Engineering工程化
4、Prompt的典型构成要素
举个例子:
「输出一个九九乘法口诀表」
「请使用python语言 只能利用for循环不能使用其他的语法 输出一个九九乘法口诀表并写好相应的注释」
大家可以使用以上两个Propmt实例,分别体验一下gpt给我们的回答。
如果说想要设置一个高质量的prompt
简而言之:
具体、丰富、少歧义
延伸: 对于咱们生活中的短句 聊天记录 都不是好的Prompt 而国外在进行信息同步时 多采用邮箱的形式 格式统一是比较好的Propmt
对于一个高质量的Propmt 我们应该具有以下要素:
- 指令:想要模型执行的特定任务或指令。
- 上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。
- 输入数据:用户输入的内容或问题。
- 输出指示:指定输出的类型或格式。
注意点: 并不是说我们构建一个Propmpt一定需要这四个要素!
5、设置Prompt的通用技巧
1)、具体性
2)、示例和格式
3)、避免不精确
4)、做还是不做?
"""1、具体性"""
prompt = '请使用python语言 只能利用for循环不能使用其他的语法 输出一个九九乘法口诀表并写好相应的注释'
def get_completion(prompt, model="gpt-4o-mini"):
messages = [{
"role": "user", "content": prompt}]
response = client.chat.completions.create(
model=model,
messages=messages,
temperature =