AI 与大模型入门
提示词基础:怎样让 AI 的回答更可靠(附模板)
入门 15 分钟 适合: 初学者 / 开发者
本课要点
- ▸好提示 = 目标 + 背景 + 输出格式 + 约束。把模型当成一个聪明但完全不了解你情况的新同事。
- ▸少样本示例(few-shot):在提示里给 2–5 个“输入 → 输出”的例子,比长篇描述更能让模型照着做。
- ▸让模型先列出步骤再给答案(思维链),在数学和多步推理题上效果明显;多次采样取多数(自洽性)还能再提高。
- ▸需要程序读取结果时,用平台的结构化输出(JSON Schema)功能,并且在代码里再校验一次。
- ▸提示词解决不了“模型不知道的事”:需要最新或私有资料时改用检索(RAG),需要精确计算或操作时改用工具。
一句话回答
提示词(prompt) 就是你交给大模型的全部输入:指令、资料、例子和格式要求。大模型只能根据你给的上下文去预测下一个 token(见 大模型是什么),所以提示写得越清楚,回答越可靠。OpenAI、Anthropic、Google 的官方指南给出的建议高度一致:说清楚、给例子、给结构、给检验标准。
第一步:指令、角色与上下文
把模型想象成一个聪明但对你的情况一无所知的新同事(Anthropic 的指南也用了这个比喻)。一个完整的提示通常包含四块:
| 部分 | 写什么 | 例子 |
|---|---|---|
| 目标 | 要完成什么、给谁看 | “为新入职的客服写一份退款流程说明” |
| 背景 | 模型不可能知道的信息 | 公司政策原文、产品名称、已有的模板 |
| 格式 | 输出长什么样 | “5 个步骤的编号列表,每步不超过 30 字” |
| 约束 | 不能做什么、遇到不确定怎么办 | “政策里没写的情况,回答‘需转人工’,不要猜” |
几个实用技巧:
- 把指令和资料分开。用标题、三引号或 XML 标签(如
<政策>…</政策>)把要处理的材料包起来,模型更不容易把资料里的句子当成指令。 - 长资料放前面、问题放最后。Anthropic 的文档建议,处理长文档时把文档放在提示开头、把问题放在末尾。
- 角色可以加,但不能只靠角色。“你是一名资深财务分析师”能调整语气和深度,但真正决定质量的仍是具体任务和资料。
- 系统提示(system prompt) 放长期不变的规则,用户消息放每次的具体任务。
第二步:少样本示例(few-shot)
与其用一大段话描述你想要的风格,不如直接给 2–5 个例子。GPT-3 的论文显示,模型只看提示里的几个例子,就能完成它没专门训练过的任务,这被称为“上下文学习”(in-context learning)(Brown 等,2020)。
把用户反馈分类为:功能建议 / 故障 / 表扬。
反馈:导出按钮点了没反应 → 故障
反馈:希望能按日期筛选 → 功能建议
反馈:客服小王很耐心,谢谢! → 表扬
反馈:手机端登录后一直白屏 →
要点:例子要覆盖不同情况(包括边界情况),格式要和你期望的输出完全一致;例子之间别太相似,否则模型会只学到表面的套路。
第三步:让模型分步思考
对数学、逻辑或多步骤的问题,让模型先写出推理步骤再给答案,准确率会明显提高。这就是思维链提示(Chain-of-Thought,Wei 等,2022)。研究还发现,只加一句“让我们一步一步地思考”也有效果(Kojima 等,2022)。更进一步,可以让模型独立解几遍,取出现最多的答案,这叫自洽性(Self-Consistency,Wang 等,2022)。
注意两点:
- 推理模型(会先“思考”再回答的模型)已经在内部做这件事。OpenAI 的指南说,推理模型像“资深同事”,给出高层目标就能自己补全细节;普通 GPT 模型则更需要精确的指令。
- 写出来的推理过程不保证就是正确的,最终答案仍需核对。
第四步:结构化输出(JSON)
如果结果要交给程序处理,就让模型输出 JSON 这类固定格式。
- 优先用平台功能:OpenAI 的 Structured Outputs 等功能可以让输出严格符合你提供的 JSON Schema(OpenAI 文档)。
- 没有该功能时:在提示里写出字段名、类型和一个完整示例,并说明“只输出 JSON,不要多余文字”。
- 始终在代码里校验:解析失败或字段缺失时,重试或报错,不要直接用。
{"category": "故障", "product_area": "登录", "urgency": "高", "summary": "手机端登录后白屏"}
第五步:像写代码一样迭代提示
一个提示很少一次就写对。可靠的做法是:
- 准备 5–20 个真实测试问题(包括难例和边界情况),并写下“什么算好回答”;
- 每改一次提示,就用同一组问题跑一遍,对比结果;
- 把复杂任务拆成几步(先提取、再分析、最后写作),每一步一个提示,比一个超长提示更好控制。
系统地评估模型输出,见 如何评估大模型。
什么时候提示词不够用
提示词只能调动模型已有的能力,补不上它不知道的东西:
| 问题 | 更合适的做法 |
|---|---|
| 需要最新信息或公司内部资料 | 检索增强生成 RAG,或开启联网搜索、上传文件 |
| 需要精确计算、查数据库、调用系统 | 工具调用与 MCP、代码解释器 |
| 需要多步执行并根据结果调整 | AI Agent |
| 同一类任务量大、风格要求高且稳定 | 微调(fine-tuning) |
另外,处理来自网页、邮件、文档等外部内容时,里面可能藏着“忽略之前的指令”之类的文字,这就是 提示注入,不能只靠提示词防住。
动手试试
- 选一个你每周都要做的重复任务,按“目标 + 背景 + 格式 + 约束”写成模板,用 5 个真实案例测试,改三版并记录每版的问题。
- 跟着 Anthropic 的 交互式提示工程教程 做练习。
- 对照 OpenAI 提示指南、Gemini 提示策略 和 Prompt Engineering Guide,看看不同厂商的建议有哪些共同点。
常见问题
提示词越长越好吗?
不是。要的是“信息完整”,不是字数多。无关的背景会分散注意力;把关键要求放在清楚的位置,并用标题或 XML/Markdown 标签分隔指令和资料。
给 AI 设定角色(“你是一名资深律师”)有用吗?
有一定作用,能帮助模型选对语气和专业深度,Anthropic 的指南就建议用系统提示给模型设定角色。但角色代替不了具体的任务说明和资料。
推理模型还需要写“一步一步想”吗?
通常不需要。OpenAI 的指南指出,推理模型在只给高层指引时效果更好;对普通聊天模型,要求分步思考仍然有用。
同一个提示为什么每次回答不一样?
生成时有采样随机性。需要稳定结果时,调低 temperature、给出示例和固定格式,并用一组测试问题检查每次改动。