什么事提示词工程
提示工程(Prompt Engineering)返回结果的工程技术。是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果 好的Prompt需要不断调优。 说清楚自己到底想要什么,要具体 不要让机器去猜测太多,为了不让机器去猜测,我们就需要告诉细节,事半功倍。提示工程有一些技巧,灵活掌握
提示词的构成
指示(Instruction):描述要让它做什么? 上下文(Context):给出与任务目关的背景信息 例子(Examples):给出一些例让模型知道怎么回复 输入(Input):任务的输入信息 输出(Output Format):输出的格式,想要什么形式的输出?
定义提示词
编程角度案例
instruction = "根据下面的上下文回答问题,保持答案简单且准确"
context = "xxx是一个起源于新泽西的医药公司"
query = "OKT3最初是从什么来源提取的"
任务描述 信息 问题
Prompt = f"{instruction} ### 上下文:{context} ###问题:{query}"
python
import os
from openai import OpenAI
api_key = os.getenv("DASHSCOPE_API_KEY")
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
def call_qwen(prompt, model):
response = client.chat.completions.create(
model=model,
messages=[
{"role":"user", "content":prompt}
],
temperature=0.7 # 温度,值越大,大模型回答的可能性越多,一般学术类的会设置为0,防止发散
)
return response.choices[0].message.content
案例1 简单的prompt
instruction = "根据下面的上下文回答问题,保持答案简短且准确,如果不确定答案请回答‘不知道’"
context = """
Teplizuma起源于一个位于新泽西的药品公司,名为0rtho Pharmaceutical。\
在那里,科学家们生成了一种早期版本的抗体,被称为0KT3。最初这种分子是从小鼠中提取的,\
能够结合到T细胞的表面,并限制它们的细胞杀伤潜力。在1986年,它被批准用于帮助预防肾脏移植后的\
器官排斥,成为首个被允许用于人类的治疗性抗体。
"""
query = "0KT3最初是从什么来源提取的?"
prompt = f"""
{instruction}
### 上下文:
{context}
### 问题:
{query}
"""
print(prompt)
根据下面的上下文回答问题,保持答案简短且准确,如果不确定答案请回答‘不知道’
### 上下文
Teplizuma起源于一个位于新泽西的药品公司,名为0rtho Pharmaceutical。在那里,科学家们生成了一种早期版本的抗体,被称为0KT3。最初这种分子是从小鼠中提取的,能够结合到T细胞的表面,并限制它们的细胞杀伤潜力。在1986年,它被批准用于帮助预防肾脏移植后的器官排斥,成为首个被允许用于人类的治疗性抗体。
### 问题:
0KT3最初是从什么来源提取的?
# 案例2 有要求的任务描述,要注意 {"[问题]":"[答案]"} 和 {"问题":"答案"} 大模型给出的格式也不一样
instruction = """
根据下面的上下文回答问题,保持答案简短且准确,如果不确定答案请回答‘不知道’
以JSON格式输出:
{"[问题]":"[答案]"}
"""
context = """
Teplizuma起源于一个位于新泽西的药品公司,名为0rtho Pharmaceutical。\
在那里,科学家们生成了一种早期版本的抗体,被称为0KT3。最初这种分子是从小鼠中提取的,\
能够结合到T细胞的表面,并限制它们的细胞杀伤潜力。在1986年,它被批准用于帮助预防肾脏移植后的\
器官排斥,成为首个被允许用于人类的治疗性抗体。
"""
query = "0KT3最初是从什么来源提取的?"
prompt = f"""
{instruction}
### 上下文:
{context}
### 问题:
{query}
"""
# 大模型输出: {"0KT3最初是从什么来源提取的?":"小鼠"}
response = call_qwen(prompt, "qwen-plus")
print(response)
样本学习
One-shot learning: 只给一个example
Few-shot learning: 多个examples, Few-shot主要用于基于少量示例,让模型参考示例回答
简单来说就是"用示例定义任务,在模型的预训练知识的基础上,提升模型回答的对齐精度(比如参考示例的格式)
Zero-shot learning: 不给任何example ,Zero-shot思想用于基于已训练的能力,不提供任何示例仅通过语言去描述任务的要求、目标和约束,让模型直接生成结果。
# 案例2 有要求的任务描述,要注意 {"[问题]":"[答案]"} 和 {"问题":"答案"} 大模型给出的格式也不一样
instruction = """
根据下面的上下文回答问题,保持答案简短且准确,如果不确定答案请回答‘不知道’
以JSON格式输出:
{"[问题]":"[答案]"}
"""
example = """
{"你是谁?":"qwen-plus"}
"""
context = """
Teplizuma起源于一个位于新泽西的药品公司,名为0rtho Pharmaceutical。\
在那里,科学家们生成了一种早期版本的抗体,被称为0KT3。最初这种分子是从小鼠中提取的,\
能够结合到T细胞的表面,并限制它们的细胞杀伤潜力。在1986年,它被批准用于帮助预防肾脏移植后的\
器官排斥,成为首个被允许用于人类的治疗性抗体。
"""
query = "0KT3最初是从什么来源提取的?"
prompt = f"""
{instruction}
### 示例:
{example}
### 上下文:
{context}
### 问题:
{query}
"""
案例
短视频prompt
你是热门短视频脚本撰写的专家。你的想法很多,掌握各种网络流行梗,拥有短视频平台时尚、服饰、食品、美妆等领域的相关知识储备;
能把这些专业背景知识融合到对应的短视频脚本创作需求中来;
根据用户输入的主题创作需求,进行短视频脚本创作,输出格式为:
一、拍摄要求:
1、演员:xxxx(演员数量、演员性别和演员主配角)
2、背景:xxxx(拍摄背景要求)
3、服装:xxxx(演员拍摄服装要求)
二:分镜脚本
以markdown的格式输出如下的分镜脚本:
时间|对话 |画面|备注镜头
00:00-00:xxxxx
其中“对话”请按角色,依次列出“角色:对话内容”,对话都列在“对话”这一列。。“画面”这部分侧重说明对场景切换摄影师拍摄角度、演员的站位要求,演员走动要求,演员表演要求,动作特写要求等等
小红书爆款文案prompt
案例1:
你是小红书爆款写作专家,请你用以下步骤来进行创作,内容的主题为: 饲养2岁泰迪的烦恼。首先产出5个标题(含适当的emoji表情),其次产出1个正文(每一个段落含有适当的emoji表情,文未有合适的tag标签)
案例2:
在小红书正文方面,你会以下技能:
1.写作风格
2.写作开篇方法
3. 文本结构
4.互动引导方法
5.一些小技巧
6.爆炸词
7.从你生成的稿子中,抽取3-6个seo关键词,生成#标签并放在文章最后
8.文章的每句话都尽量口语化、简短
9.在每段话的开头使用表情符号,在每段话的结尾使用表情符号,在每段话的中间插入表情符
罗
三、结合我给你输入的信息,以及你掌握的标题和正文的技巧,产出内容。请按照如下格式输出内容,只需要格式描述的部分,如果产生其他内容则不输出:-.标题
[标题1到标题51
[换行]
二.正文
[文
标签:[标签]