提示工程是设计和优化AI模型输入提示的技术,目的是获得更好的输出结果。它包括: - 提示词设计 - 上下文管理 - 输出格式控制 - 任务分解 - 错误处理
python# 不好的例子 prompt = "写一个故事" # 好的例子 prompt = """ 请写一个短篇故事,要求: 1. 字数在500字以内 2. 主题是关于友情 3. 包含一个转折点 4. 有一个温暖的结局 """
python# 专家角色 prompt = """ 作为一个资深的Python开发者,请: 1. 审查以下代码 2. 指出潜在的问题 3. 提供优化建议 4. 给出改进后的代码 代码: {code} """ # 教学角色 prompt = """ 作为一个耐心的编程教师,请: 1. 解释以下概念:{concept} 2. 提供简单的例子 3. 设计一个练习题 4. 给出详细的解答步骤 """
pythonprompt = """ 请按照以下格式总结文章: 示例输入: {sample_text} 示例输出: 标题:xxx 主要观点: 1. xxx 2. xxx 关键词:xxx, xxx, xxx 现在请总结这篇文章: {actual_text} """
pythonprompt = """ 让我们一步步解决这个问题: 1. 首先,理解问题的关键点: {problem} 2. 分析可能的解决方案: - 方案A:... - 方案B:... - 方案C:... 3. 评估每个方案的优缺点: [请分析每个方案] 4. 选择最佳方案并说明原因: [请给出选择] 5. 详细的实施步骤: [请列出具体步骤] """
pythonprompt = """ 请以JSON格式回答以下问题: {question} 要求输出格式: { "answer": string, "confidence": number(0-1), "sources": array of strings, "reasoning": string } """
pythonprompt = """ 请生成一个Python函数,要求: 1. 时间复杂度不超过O(n) 2. 空间复杂度不超过O(1) 3. 必须处理边界情况 4. 包含详细的注释 5. 遵循PEP 8规范 函数需求: {requirement} """
python# 文章生成 article_prompt = """ 请生成一篇博客文章,要求: 1. 主题:{topic} 2. 风格:{style} 3. 字数:{word_count} 4. 目标读者:{audience} 5. 包含的关键词:{keywords} """ # 代码生成 code_prompt = """ 请生成{language}代码,实现: 1. 功能描述:{feature} 2. 输入参数:{inputs} 3. 返回值:{outputs} 4. 性能要求:{performance} 5. 其他约束:{constraints} """
pythonanalysis_prompt = """ 请分析以下数据集: {data} 分析要求: 1. 描述性统计 2. 关键趋势 3. 异常检测 4. 相关性分析 5. 建议行动 输出格式: 1. 统计摘要: - 均值: - 中位数: - 标准差: 2. 主要发现: - 趋势1: - 趋势2: 3. 异常数据: - 异常1: - 可能原因: 4. 相关性: - 强相关: - 弱相关: 5. 建议: 1) 2) 3) """
pythonconversation_prompt = """ 角色设定:你是一个专业的{role} 对话历史: {chat_history} 用户问题:{user_input} 回答要求: 1. 保持专业性 2. 语气友好 3. 回答准确 4. 适当提供建议 5. 必要时询问细节 回答格式: 1. 理解确认:[简单复述用户问题] 2. 专业回答:[详细解答] 3. 补充建议:[相关建议] 4. 后续询问:[必要的跟进问题] """
pythonfrom openai import OpenAI # 创意写作 - 高温度 creative_response = OpenAI().chat.completions.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], temperature=0.8 # 更有创意的输出 ) # 事实分析 - 低温度 factual_response = OpenAI().chat.completions.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], temperature=0.2 # 更确定性的输出 )
pythonclass PromptTemplate: def __init__(self, template, variables): self.template = template self.variables = variables def format(self, **kwargs): # 验证所有必需变量都已提供 missing = set(self.variables) - set(kwargs.keys()) if missing: raise ValueError(f"Missing variables: {missing}") # 格式化提示词 return self.template.format(**kwargs) # 使用示例 code_review_template = PromptTemplate( template=""" 作为代码审查者,请检查以下{language}代码: 代码: {code} 请关注: 1. 代码质量 2. 潜在问题 3. 性能优化 4. 最佳实践 """, variables=["language", "code"] )
明确约束
错误处理
异常处理
性能优化