向 AI 模型传达意图的指令语言,决定输出质量的核心输入。
核心概念 Link to heading
Prompt 是与大语言模型交互的输入文本,包含任务描述、上下文和约束条件。其质量直接影响模型输出的准确性和可用性。
关键要素:
| 要素 | 作用 | 示例 |
|---|---|---|
| 角色设定 | 锚定模型的专业视角 | “你是一个资深 Go 工程师” |
| 任务描述 | 明确要做什么 | “分析以下代码的性能问题” |
| 上下文 | 提供必要背景信息 | 代码片段、业务场景 |
| 约束条件 | 限制输出格式和范围 | “只输出 JSON,不要解释” |
| 示例 | Few-shot 示范期望输出 | 输入输出对 |
核心原理:模型基于 Prompt 在训练分布中找到最匹配的模式,生成概率最高的续写文本。
graph LR
A[用户意图] --> B[Prompt 编码]
B --> C[LLM 推理]
C --> D[输出文本]
D --> E{验证}
E -->|不满足| F[迭代 Prompt]
F --> B
E -->|满足| G[最终结果]
Prompt 结构模板 Link to heading
一个高质量的 Prompt 遵循以下结构:
你是一个 [角色]。
任务:[清晰描述要做什么]
背景:[必要的上下文信息]
约束:
- [格式要求]
- [长度限制]
- [禁止事项]
示例:
输入:[输入示例]
输出:[期望输出示例]
请开始:
实际使用 Link to heading
场景一:代码生成 Link to heading
你是一个资深 Python 工程师。
任务:编写一个异步 HTTP 客户端,支持重试和超时。
约束:
- 使用 aiohttp 库
- 指数退避重试,最多 3 次
- 超时时间可配置,默认 10 秒
- 只输出代码,不解释
场景二:Few-shot 学习 Link to heading
当任务复杂或输出格式严格时,提供示例:
任务:将自然语言转换为 JSON 格式的查询条件。
示例:
输入:"查找年龄大于 25 且所在城市是北京的用户"
输出:{"field": "users", "filters": [{"field": "age", "op": "gt", "value": 25}, {"field": "city", "op": "eq", "value": "北京"}]}
输入:"查找订单金额超过 100 的上海用户"
输出:{"field": "orders", "filters": [{"field": "amount", "op": "gt", "value": 100}, {"field": "user_city", "op": "eq", "value": "上海"}]}
输入:"找出注册时间在 2024 年之后的活跃用户"
输出:
迭代优化策略 Link to heading
Prompt 很少一次完美,建议迭代:
graph TD
A[编写初始 Prompt] --> B[模型输出]
B --> C{输出质量}
C -->|模糊| D[增加约束和示例]
C -->|错误| E[补充上下文]
C -->|格式不对| F[明确格式要求]
C -->|正确| G[完成]
D --> A
E --> A
F --> A
常见迭代记录:
- 输出太长 → 添加 “不超过 200 字”
- 格式混乱 → 指定 “输出 JSON Schema”
- 理解偏差 → 补充领域术语定义
官方链接 Link to heading
[1] https://platform.openai.com/docs/guides/prompt-engineering
[2] https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview
[3] https://www.promptingguide.ai/
Signature Link to heading
本文由 AI 生成,不保证正确,仅作参考