向 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 生成,不保证正确,仅作参考