1. 引言
生成式 AI 的快速发展,使我们与模型交互的方式变得尤为重要。提示词工程(Prompt Engineering)是一门关于如何精准引导大模型行为的技术。从最初的简单对话指令,到如今的多模态控制、结构化输出、风格控制,提示词已成为连接人类意图与模型能力的桥梁。
2. 通用提示技巧与文本生成
提示词工程的核心是编写高质量的输入,引导模型给出稳定、可控、结构化的输出。
2.1 明确任务目标
模糊提示示例:
写一段关于狗的文章。
优化后:
你是一位宠物科普作家,请写一段面向10岁儿童的短文,介绍拉布拉多犬的性格特点,控制在100字以内。
2.2 使用角色设定(Persona Prompting)
反例:
请解释一下财报的含义。
优化提示:
你是一位有10年经验的财务分析师,请根据以下财报摘要,列出三点潜在的投资风险。
2.3 明确格式与输出结构
普通提示:
远程办公的优缺点有哪些?
结构化提示:
请用 markdown 格式列出远程办公的优缺点,每个点不少于15字。
markdown
### 优点
- 提高工作灵活性
- 节省通勤时间和交通成本
### 缺点
- 团队协作受限
- 工作与生活界限模糊
2.4 思维链(Chain-of-Thought)推理
例子:
小明的妈妈有三个孩子:小红、小蓝,还有一个是谁?请一步步推理。
输出:
- 小明的妈妈 ------ 小明是孩子。
- 另外两个孩子是小红、小蓝。
- 第三个孩子是:小明。
2.5 控制语气与风格
示例:
请以幽默诙谐的语气,用第一人称写一篇关于"我不想开会"的理由,限 80 字。
3. 多模态生成提示技巧:图像与代码
提示词工程不仅用于文本生成,也广泛用于图像、代码、音频等内容的生成,需更细致地控制风格、结构和语义。
3.1 图像生成:风格、元素、构图
模糊提示:
画一只鸟。
优化提示:
用水彩风格画一只站在盛开的樱花树枝上的翠鸟,背景为模糊的日本庭院,画面明亮柔和。
3.2 控制细节和布局
提示:
生成一张插画,画面左下角是穿汉服的少女,右上角是飞舞的彩蝶,中间有溪流穿过。风格偏写意,背景淡化。
3.3 指定艺术风格与工具标签
提示:
使用 Midjourney 风格关键词:"cyberpunk cityscape at night, glowing neon signs, rainy streets, 4K, ultra-detailed, --v 5 --ar 16:9"
3.4 多图拼接与分镜描述
提示:
设计一个四格图像,展示"少年成长为剑士"的过程,每格分别是:练剑、修行、战斗、胜利归来。画风为国漫写实风。
3.5 图像结合文本注释(如DALL·E 3)
提示:
画一个"正在讲故事的机器人老师",要求能自动生成图中讲台文字:"未来由你书写"。
3.6 代码生成:语言、规范、异常处理
不良提示:
帮我写个爬虫。
优化提示:
使用 Python 编写一个爬虫,抓取知乎热榜的标题,并以 JSON 格式保存。请添加注释并考虑异常处理。
3.7 样式化与模块封装
提示示例:
请使用 TypeScript 写一个 Vue 3 组件,实现输入框带字数统计功能,要求使用 Composition API,代码结构清晰,添加类型注解。
3.8 多语言对照生成
提示示例:
请将以下 Python 函数改写为 JavaScript 版本,并保持功能一致,输出两个版本的代码进行对比。
3.9 测试生成与边界验证
提示示例:
给下面的 Java 方法补充 JUnit 测试用例,覆盖正常输入与非法参数两种情况。
3.10 禁止解释、只输出代码
提示示例:
你是一位资深 JavaScript 工程师。请只输出代码,不加解释,展示一个使用 async/await 获取远程接口并渲染结果到 HTML 的完整范例。
4. 减少"幻觉"与提高可信度
幻觉(Hallucination)是大模型输出最令人头疼的问题。虽然无法彻底杜绝,但可以通过提示技巧减少其发生概率。
4.1 要求模型承认"不知道"
反例(幻觉):
Q: "通义千问的首席科学家是谁?" A: "是李彦宏。" (错误,李彦宏是百度的)
优化提示:
如果你不知道答案,请直接说"我不知道"而不是编造内容。
4.2 引导引用信息源
提示示例:
请基于维基百科或官方新闻源作答,并在回答中列出出处。
4.3 限定知识边界
例子:
截止到2023年9月,请根据当时的数据分析以下问题......
5. 黄金法则:提示词设计的 26 条原则
为了在多模态生成与可信控制中取得更高效的结果,可以参考提示词工程领域总结出的 26 条设计原则(部分来自 OpenPrompt Lab 与行业一线实践):
A. 基础策略
- 明确角色与目标
- 指定输出格式
- 规定回答语言/语气
- 要求逐步推理(Chain-of-Thought)
- 限定输出字数或行数
- 要求用 JSON、Markdown 等结构化方式输出
- 加入"你可以不回答"避免胡编(幻觉)
- 明确知识边界或时间范围(如"仅使用2023年数据")
B. 图像生成专用技巧
- 明确风格(油画、水彩、赛博朋克等)
- 限定画面构图(位置、前后景、方向等)
- 加入艺术家风格标签(如"in style of Monet")
- 指明构图尺寸或比例(如"--ar 16:9")
- 用动词+情境触发画面情感(如"凝视夜空的旅人")
- 拆解成分镜、拼图描述(适用于漫画/分镜)
C. 代码生成专用技巧
- 限定语言与规范(如"使用 TypeScript + Composition API")
- 明确模块职责(如"仅实现输入验证部分")
- 要求异常处理与注释
- 要求输出测试用例或单元测试
- 要求不要解释,仅输出代码块
- 明确目标平台/框架(如 React Native / Vue 2)
- 引入输入输出样例,提高精度
- 要求性能优化或简洁性
D. 减少幻觉与可信表达
- 要求列出引用或信息源
- 提示"如不确定请说不知道"
- 限制模型知识范围(如"不要预测未来事件")
- 要求区分"事实"与"模型推断"
这些原则可作为提示词设计时的"黄金清单",特别适用于图像生成(如 Midjourney、DALL·E)和代码生成,以及防止 AI 胡编乱造。
6. 总结
提示词工程不仅是"写好一句话"那么简单,而是一个结合目标表达、系统设计、用户意图建模、跨模态表达与风险规避的复杂过程。未来,Prompt Engineering 将继续演化为交互设计、模型行为管理与生成内容质量控制的核心能力。