1、prompt理论
常见Prompt框架
一、CRISPE框架(全能型设计模板),适用场景:需要精准控制输出风格与内容的复杂任务(技术文档、创意写作、商业分析等);
[Capacity and Role] 你是一位拥有10年经验的机器学习架构师
[Insight] 当前团队正在开发实时视频分析系统,面临计算资源受限的挑战
[Statement] 请设计兼顾效率与精度的轻量化模型方案
[Personality] 采用严谨的学术论证风格,引用最新顶会论文
[Experiment] 给出3种不同计算预算下的方案比较(<10TOPS/10-50TOPS/>50TOPS)
核心要素:
Capacity:定义模型的知识边界
Role:设定回答者角色身份
Insight:注入领域洞察与背景
Statement:明确核心任务要求
Personality:控制语言风格特征
Experiment:指定验证与评估方式
二、BROKE框架(商业分析专用),适用场景:市场分析、战略规划、产品设计等商业决策场景。
[Background] 新能源汽车充电桩市场年增长率25%
[Role] 作为麦肯锡资深顾问
[Objective] 制定二三线城市扩张策略
[Key Entities] 政府补贴政策、地产商合作、用户充电习惯
[Expected Output] SWOT分析矩阵 + 实施路线图(2024-2026)
要素解析:
Background → 建立认知基线
Role → 确定专业视角
Objective → 聚焦核心目标
Key Entities → 划定分析维度
Expected Output → 规范输出形态
三、角色设定框架(领域专家模式),适用场景:需要深度专业知识的垂直领域咨询。
你作为[三甲医院心内科主任医师],需要:
1. 用[医患沟通话术]解释[房颤消融手术]的
- 治疗原理(比喻说明)
- 成功率数据(最新临床研究)
- 术后注意事项(分点列举)
2. 回应患者典型顾虑:
"手术风险有多大?复发了怎么办?"
3. 输出格式:
{原理说明:..., 数据支撑:..., 注意事项:..., 答疑:...}
变体形式:
学术评审模式:"作为ICLR领域主席,请从创新性、实验严谨性、写作质量三个维度评审这篇论文"
技术专家模式:"以AWS解决方案架构师身份,设计支持百万并发的Serverless架构"
四、结构化模板(技术文档专用),适用场景:代码生成、API文档撰写、技术方案设计;
关键组件:
需求说明 → 功能需求与非功能需求分离
输入示例 → 规范数据格式
约束条件 → 明确技术边界
输出要求 → 结构化交付物
五、思维链(CoT)框架;适用场景:复杂问题求解、数学推导、逻辑推理。
经典模板:
请分步解释如何计算两组实验数据的显著性差异:
1. 陈述适用的统计检验方法选择依据
2. 列出计算公式并说明各参数含义
3. 演示具体计算过程
4. 解释P值的实际意义
5. 给出可视化建议(含图表类型选择)
示例数据:
对照组 = [23,45,67,54,39]
实验组 = [56,72,68,81,64]
进阶技巧:
分步验证:在每步结尾添加"(请确认本步骤正确性)"
多路径探索:"如果采用参数检验与非参数检验,结果会有何不同?"
假设推演:"若样本量扩大10倍,对检验效力会产生什么影响?"
六、TAG任务分解框架;适用场景:项目管理、流程优化、多步骤操作指导。
[Task] 实现跨境电商站点的多语言支持
[Actions]
1. 前端国际化方案选型(i18next vs react-intl)
2. 后端API多语言处理架构设计
3. 持续集成中的翻译文件管理
[Goals]
- 支持50+语言实时切换
- 新增语言无需重新部署
- 翻译覆盖率监控>95%
要素关系:
Task → 战略目标
Actions → 战术路径
Goals → 验收标准
七、CARE案例教学框架;适用场景:教育培训、操作指导、故障排查
[Context] 用户报告"API返回500错误"
[Action] 作为运维工程师,请给出诊断流程:
1. 首要检查项及命令
2. 日志分析关键线索
3. 常见原因优先级排序
[Result] 形成标准化排查清单
[Example] 以K8s集群的Ingress配置错误为例演示
扩展应用:
故障模拟:"如果同时出现数据库连接池耗尽和缓存雪崩,应如何优先处理?"
预案训练:"设计API成功率骤降的应急演练方案"
二、Prompt设计的六大法则
法则1:结构化指令设计
# 低效Prompt
"写个函数计算平均数"
# 高效Prompt
"""
任务:编写Python函数实现浮点数列表的平均值计算
输入要求:
- 输入参数为numbers: List[float]
- 返回float类型结果
约束条件:
- 处理空列表返回0
- 时间复杂度O(n)
- 添加类型注解
示例输入:[1.5, 2.3, 4.0]
示例输出:2.6
"""
法则2:动态上下文控制
# 多轮对话管理
conversation = [
{"role": "user", "content": "推荐北京的历史景点"},
{"role": "assistant", "content": "1. 故宫 2. 颐和园..."},
{"role": "user", "content": "请用表格比较前两个景点的特色"}
]
法则3:温度参数的科学调校
# 创意写作(高温)
generate(text, temperature=0.9, top_p=0.9)
# 技术文档(低温)
generate(text, temperature=0.2, top_p=0.5)
法则4:安全防护机制
# 敏感内容过滤
safety_filters = {
"violence": 0.95,
"self_harm": 0.99,
"sexual": 0.85
}
法则5:元提示工程
# 模型角色设定
"""
你是一位有20年经验的机器学习专家,擅长用类比解释复杂概念。
请用不超过300字说明Transformer架构,要求:
- 使用日常物品作比喻
- 包含数学直觉解释
- 标注关键技术突破点
"""
法则6:迭代优化框架
# Prompt优化闭环
def optimize_prompt(initial_prompt):
for i in range(3):
response = generate(initial_prompt)
feedback = get_human_feedback(response)
initial_prompt += f"\n优化建议{i+1}: {feedback}"
return initial_prompt
2、prompt实战
1、导入所需环境。
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
2、配置好你自己的openai_key,默认都有,这里就不做赘述了。
_ = load_dotenv(find_dotenv("openai_key.env"))
client = OpenAI()
3、基于gpt-3.5-turbo进行内容生成
def get_completion(prompt, model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": prompt}]
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=0.8 # 必须加大随机性
)
return response.choices[0].message.content
输入你的prompt进行内容生成:
prompt = f"介绍一下图像去噪的流程"
response = get_completion(prompt)
print(response)
修改prompt,重新生成一下内容:
prompt = f"假设你现在是一名图像处理领域的专家,请介绍一下图像去噪的流程"
response = get_completion(prompt)
print(response)
但是也有一些问题,模型不能准确的生成答案,例如,后边文章我们尝试使用RAG来解决该问题~
基于RAG生成的结果如下:
感谢您阅读到最后!😊总结不易,希望多多支持~🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖~