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 在不同模型上行为可能天差地别,要绑定版本测试。