整理自多方资料,涵盖 Prompt 基础概念、结构化框架和常用技巧。
1. Prompt 的定义
Prompt(提示词)是给 AI 模型的指令,指令的明确性和详细性决定了模型的输出效果。
核心原则:指定角色、明确任务、控制输出格式。
2. 大模型的局限性
编写 Prompt 时需要了解当前大模型的固有局限:
- 时效性差:模型知识截止于训练数据日期,无法获取最新信息(可通过联网搜索插件、RAG 等方式缓解)
- 上下文长度有限:超长文本可能丢失信息,建议分段处理、表达清晰
- 幻觉问题:模型可能生成看似合理但事实错误的内容(概率性生成的本质)
- 无法精确控制字数:要求生成 1000 字可能输出 800-1200 字
- 长期规划能力不足:在遇到意外错误时难以动态调整计划
3. 结构化框架
基础框架(角色-任务-格式)
一个有效的 Prompt 应包含:
- 角色(Role):让模型扮演特定角色(如"资深后端工程师")
- 任务(Task):明确要完成的具体任务
- 格式(Format):指定输出格式(Markdown、JSON、表格等)
角色:你是一位资深的 Python 后端工程师
任务:请审查以下代码的安全性问题,找出潜在的 SQL 注入和 XSS 漏洞
格式:以表格形式输出,列包括:问题位置、风险等级、修复建议
进阶框架
| 框架 | 要素 | 适用场景 |
|---|---|---|
| CRISPE | 能力(Capacity)、角色(Role)、洞察(Insight)、陈述(Statement)、个性(Personality)、实验(Experiment) | 复杂角色扮演 |
| RACE | 角色(Role)、行动(Action)、上下文(Context)、期望(Expect) | 通用任务描述 |
| COAST | 背景(Context)、目标(Objective)、行动(Action)、场景(Scenario)、任务(Task) | 多步骤任务 |
| TRACE | 任务(Task)、请求(Request)、操作(Action)、上下文(Context)、示例(Example) | 需要示例的任务 |
| LangGPT | 使用 Markdown 结构定义:角色、限制、能力、工作流等 | 高级结构化 Prompt |
4. 常用技巧
Few-shot Prompting(少样本提示)
在 Prompt 中给出几个输入-输出示例,帮助模型理解任务模式:
将以下英文翻译为中文,保持技术术语准确:
示例1:
输入:The kernel launch configuration specifies grid and block dimensions.
输出:内核启动配置指定了网格和线程块的维度。
示例2:
输入:Cache coherence ensures consistency across multiple processors.
输出:缓存一致性确保多个处理器之间的一致性。
请翻译:
输入:The attention mechanism allows the model to focus on relevant parts of the input.
Chain-of-Thought(思维链提示)
引导模型逐步推理,而非直接给出答案:
请逐步分析以下问题:
1. 首先确定问题的类型
2. 列出相关的公式或原理
3. 逐步推导
4. 给出最终答案
其他技巧
- 约束输出:明确字数、格式、语言等限制条件
- 提供上下文:给出背景信息,减少歧义
- 迭代优化:根据初次输出调整 Prompt,逐步改进
- 负面指令:明确告诉模型不要做什么(如"不要编造数据")
5. 推荐学习资源
- OpenAI Prompt Engineering Guide — OpenAI 官方 Prompt 编写指南
- Anthropic Prompt Engineering Guide — Anthropic 的 Prompt 最佳实践
- LangGPT — 结构化 Prompt 开源框架