一 第一编 · 第一章 · · 约 4 分钟读完

Prompt

模型读到的全部输入 —— 指令、上下文、示例、约束的总和。

输入层 基础 文本

一定义

Prompt 是模型在一次调用中读到的全部输入文本。它不只是"你问的那个问题",还包括系统指令、上下文、示例、约束条件 —— 一切会被拼在一起发给模型的内容。

二为什么重要

Prompt 是人和模型之间唯一可控的接口。模型权重是冻结的、训练数据是历史的,只有 prompt 是当下、可改、可调试的。同一个模型,prompt 写得不一样,产出能差一个数量级。

三典型结构

一个成熟的 prompt 大致包含这几块:

# role
你是一名高级客服。

# context
- 用户:张三
- 历史:上一轮问过退款政策
- 产品:某品牌耳机

# task
判断用户意图,从工具列表中选一个,输出 JSON。

# examples
user: "我想退掉昨天买的耳机"
assistant: {"intent": "refund", "tool": "create_refund", ...}

# constraints
- 不知道就说"不确定"
- 不要编造订单号

四最小可跑的例子

import openai

prompt = """
你是一个翻译。把下面的话译成英文。
只输出译文,不要解释。

原文:今天天气很好。
"""

resp = openai.ChatCompletion.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": prompt}]
)
print(resp.choices[0].message.content)
# The weather is nice today.

五常见误区

  • 把 prompt 当作文本 —— 它其实是源码,应该有版本、能 diff、能 review。
  • 堆砌示例 —— 3 个高质量示例 > 20 个低质量示例。
  • 忽略负向约束 —— "不要做 X" 比 "做 Y" 往往更省 token。
  • prompt 与模型版本强耦合 —— 同一段 prompt 在不同模型上行为可能天差地别,要绑定版本测试。