Prompt 的作用与本质
Prompt(提示词)是调用大语言模型能力的主要交互方式。在对话过程中,它指导AI 模型产生特定的输出。理解 Prompt 的本质,有助于我们更高效地利用 AI 工具。
基于 Prompt 的作用,核心动作在于「指导」。这与传统编程不同:编程的动作是「编排」逻辑,要求使用者具备严密的逻辑性即可入门;而 Prompt 工程不仅要求有逻辑性,更要求使用者具备抽象问题的能力。换句话说:如果不能通过本质去思考问题,那又如何简洁高效地「指导」模型使用什么能力呢?
为什么简单的指令不够?
大模型本身并不包含人类生活中的常识、公理等约定俗成的信息。对于大模型而言,所有的返回内容都是它对海量数据学习后,形成的词联概率的组装结果。这意味着,如果缺乏明确的约束和协议,模型的输出具有随机性和不可控性。
案例对比:天气预报查询
假设需求是:输出广州市未来 10 天的天气预报,并展示每天应对天气的准备工作。
1. 未入门的 Prompt 写法 许多初学者会直接把需求原封不动地说给 AI 听,甚至加上一些假定前缀。
假如你是一个资深气象专家,请告诉我广州市未来 10 天的天气预报,并展示每天应对天气的准备工作。
这种写法的缺陷在于:
- 缺乏对数据来源的明确指示。
- 没有规定输出的格式(表格、列表还是段落)。
- 变量定义模糊(如'准备工作'的具体维度)。
2. 结构化协议 Prompt 写法 为了控制输出,我们需要拟定一套完整的协议,告诉大模型:上下文是什么,目标数据有什么特性,按照什么样的方式生成,返回什么结构的内容。
# 角色设定
你是一位资深的气象数据分析专家。
# 任务目标
获取并分析广州市未来 10 天的天气预报数据,并提供针对性的生活建议。
# 上下文
用户需要知道广州市未来 10 天的详细天气情况,以便安排出行和生活。
# 数据特性
请从在线气象网站中获取最新的天气数据,确保数据的时效性。
# 变量定义
[Date]:日期时间,格式为 YYYY-MM-DD,例如 2024-05-28
[MaxTemp]:最高气温,单位为摄氏度,例如 28
[MinTemp]:最低气温,单位为摄氏度,例如 28
[Wet]:空气湿度,单位为%,例如 60
[RainProb]:降雨概率,单位为%,例如 30
[WindLevl]:风力等级,单位为级,例如 2
[WindDirt]:风力方向,单位为向,例如 东北向
[Warning]:天气提醒,根据气温、湿度、降雨概率维度给出合理提醒
# 返回格式
请遍历每一天的气候数据,严格按照如下 Markdown 表格格式返回,不要输出不相关的内容。
| 日期 | 最高气温 | 最低气温 | 空气湿度 | 降雨概率 | 风力等级 | 风力方向 | 天气提醒 |
| ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
| [Date] | [MaxTemp] | [MinTemp] | [Wet] | [RainProb] | [WindLevl] | [WindDirt] | [Warning] |
通过引入结构化协议,大模型的返回内容更具可控性,同时也更容易被程序解析或人工阅读。
编写高质量 Prompt 的核心框架
要编写专业的 Prompt,建议遵循以下通用框架(类似 CO-STAR 或 BROKE 原则的变体):
- 角色 (Role):明确 AI 的身份,激活特定领域的知识库。
- 背景 (Context):提供任务发生的背景信息,减少歧义。
- 任务 (Task):清晰描述需要完成的具体工作。
- 约束 (Constraint):列出必须遵守的限制条件(如字数、语气、禁止事项)。
- 格式 (Format):指定输出的结构(JSON、Markdown、CSV 等)。
- 示例 (Example):提供 Few-Shot(少样本)示例,让模型模仿风格。
进阶技巧:思维链与迭代优化
1. 思维链 (Chain of Thought)
对于复杂问题,要求模型展示推理过程可以显著提高准确率。
- 方法:在 Prompt 中加入'请一步步思考'或'先分析问题,再给出结论'。


