提示工程 (Prompt Engineering) 指南
提示工程是设计输入(提示)以从 AI 模型获得最佳输出的艺术和科学。对于 Gemini 这样的大型语言模型,良好的提示可以显著提高回答的准确性、相关性和质量。
核心原则
清晰明确 (Be Clear and Specific): 避免模棱两可。告诉模型通过什么角色、以什么格式、完成什么具体任务。
- 差: "给我写个东西。"
- 好: "作为一名资深营销专家,请为一款新的有机咖啡豆撰写一篇 200 字的产品发布会 Instagram 帖子。"
提供上下文 (Provide Context): 给模型足够的信息背景。
- 示例: "基于以下会议记录,生成一份待办事项列表..."
使用示例 (Few-Shot Prompting): 提供一两个输入-输出对的示例,让模型学习模式。
- 示例:
任务:将情感分类为正面或负面。 输入:这家餐厅太棒了! -> 输出:正面 输入:服务很慢。 -> 输出:负面 输入:食物还可以,但价格太贵。 -> 输出:
- 示例:
思维链 (Chain of Thought): 鼓励模型“一步步思考”,特别是在处理复杂逻辑或数学问题时。
- 技巧: 在提示末尾加上 "Let's think step by step" (让我们一步步思考)。
结构化提示框架
一个优秀的提示通常包含以下要素:
- 角色 (Persona): 你是谁? (例如:你是一位 Python 专家)
- 任务 (Task): 你要做什么? (例如:编写一个脚本来解析 CSV)
- 约束 (Constraints): 有什么限制? (例如:代码必须高效,不使用第三方库)
- 格式 (Format): 输出应该是什么样? (例如:Markdown 格式,包含代码注释)
Gemini 特有的提示技巧
- 利用多模态: 不要只用文本。如果可以,上传图片或视频作为上下文,Gemini 的多模态理解能力非常强。
- 系统指令 (System Instructions): 在 API 调用中使用
system_instruction参数来设定模型的全局行为和基调,这比在每次用户提示中重复指令更有效。
python
model = genai.GenerativeModel(
'gemini-1.5-flash',
system_instruction="你是一位乐于助人的小学数学老师。请用简单易懂的语言解释概念。"
)