从理论到实践,掌握Zero-shot/Few-shot Prompt设计精髓。


prompt_template = """ [指令] # 明确任务目标 [上下文] # 提供背景信息 [示例] # Few-shot演示 (可选) [约束] # 输出格式限制 """


from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "将以下文本分类为积极/消极: 这个产品彻底改变了我的工作效率"}
]
)
print(response.choices[0].message.content)
# 输出: 积极multi_task_prompt = """
执行以下任务:
1. 情感分析: "终于放假了,太开心了!"
2. 关键词提取: "人工智能正在改变医疗诊断方式"
3. 语言检测: "Hello, how are you today?"
"""
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=[{"role": "user", "content": multi_task_prompt}]
)输出:
1. 情感: 积极 2. 关键词: 人工智能, 医疗诊断 3. 语言: 英语

few_shot_prompt = """ 你是一位专业电影评论家,请根据示例风格撰写评论: 示例1: 电影: 《盗梦空间》 评论: 诺兰用颠覆性的叙事结构,构建了层层嵌套的梦境世界,逻辑严谨又充满想象力。 示例2: 电影: 《阿凡达》 评论: 卡梅隆打造的潘多拉星球视觉盛宴,3D效果开创历史先河,但剧情略显老套。 现在请评论: 电影: 《奥本海默》 评论: """
def build_few_shot_prompt(examples, new_query):
prompt = "请根据示例回答问题:\n\n"
for i, (q, a) in enumerate(examples.items(), 1):
prompt += f"示例{i}: Q: {q}\nA: {a}\n\n"
prompt += f"新问题: Q: {new_query}\nA:"
return prompt
examples = {
"水的沸点是多少?": "标准大气压下是100摄氏度",
"光速是多少?": "真空中约为299,792,458米/秒"
}
prompt = build_few_shot_prompt(examples, "月球引力是地球的多少倍?")
cot_prompt = """ Q: 餐厅有23个苹果,用了20个做派,又买了6个,现在有多少苹果? A: 首先,初始苹果数:23个 然后,用掉20个:23 - 20 = 3个 接着,买入6个:3 + 6 = 9个 所以最终有9个苹果。 Q: 书架上有45本书,周一借出12本,周三还回5本,周五借出8本,还剩多少本? A: """
program_cot = """ Q: 计算(15*3 + 7)/4的值 A: 用Python代码逐步计算: ```python step1 = 15 * 3 # 45 step2 = step1 + 7 # 52 result = step2 / 4 # 13.0
所以结果是13.0
Q: (18^2 - 12*5)/3 的值是多少?
A:
"""
--- ### 六、工业级Prompt设计技巧 #### 1. 格式控制技术 ```python format_prompt = """ 生成3条关于人工智能的微博: 要求: 1. 每条不超过140字符 2. 包含话题标签 3. 格式: [标题]: [内容] #[话题] 示例: AI改变生活: 智能家居让生活更便捷 #人工智能应用 输出: """
constraint_prompt = """ 写一首关于春天的诗: 要求: - 不要提到"花"字 - 避免使用"温暖"一词 - 包含"风"的意象 错误示例: 春天的花朵绽放 (包含花) 温暖的风吹过 (包含温暖) 正确输出: """
def customer_service(query, history=None):
system_prompt = """
你是一名专业客服,请根据要求处理用户咨询:
1. 订单查询:提供订单号获取状态
2. 退货流程:说明退货步骤
3. 投诉处理:记录投诉内容
"""
few_shot_examples = [
{"role": "user", "content": "我的订单没收到"},
{"role": "assistant", "content": "请提供订单号,我将为您查询"}
]
messages = [
{"role": "system", "content": system_prompt},
*few_shot_examples,
{"role": "user", "content": query}
]
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=messages,
temperature=0.3 # 降低随机性
)
return response.choices[0].message.content
# 使用示例
print(customer_service("订单12345状态如何?"))
# 输出: 订单12345已发货,预计明天送达def evaluate_prompt(prompt, test_cases):
scores = []
for question, expected in test_cases:
response = get_response(prompt + question)
scores.append(1 if response == expected else 0)
return sum(scores) / len(scores)
# 测试用例
test_cases = [
("2+2=?", "4"),
("10-5=?", "5"),
("3*4=?", "12")
]
prompt_v1 = "回答数学问题: "
prompt_v2 = "逐步计算并给出最终答案: "
print(f"Prompt v1 准确率: {evaluate_prompt(prompt_v1, test_cases):.0%}")
print(f"Prompt v2 准确率: {evaluate_prompt(prompt_v2, test_cases):.0%}")prompt_registry = {
"v1": "直接回答问题",
"v2": "分步骤推理后回答问题",
"v3": "用Python验证后给出答案"
}
def get_optimized_prompt(task_type):
# 根据任务类型选择最佳prompt
prompt_strategy = {
"math": "v3",
"translation": "v1",
"reasoning": "v2"
}
return prompt_registry[prompt_strategy[task_type]]

from autoprompt import AutoPromptOptimizer optimizer = AutoPromptOptimizer( task="文本分类", metric="准确率" ) optimized_prompt = optimizer.search(initial_prompt)
multimodal_prompt = {
"text": "描述图片内容",
"image": "https://example.com/image.jpg"
}self_correct_prompt = """ 请解决问题并自我验证: 问题: 36的平方根是多少? 步骤: 1. 计算: √36 = 6 2. 验证: 6*6=36 → 正确 最终答案: 6 """
实战总结:
Prompt设计黄金法则:
清晰指令 > 优质示例 > 格式约束 > 背景信息
技术选型指南:

性能基准:
Zero-shot准确率: 60-75% Few-shot准确率: 80-90% CoT准确率: 92-98%

更多AI大模型应用开发学习视频内容和资料,尽在聚客AI学院。