老胡茶室
老胡茶室

提示词工程知识卡片

胡键

为了提高团队提示词技巧,我让 ChatGPT 基于《Google 提示词工程白皮书》生成了一组知识卡片,见下方。

同时,人工补充了《Gemini 提示词指南入门》的有效提示词框架。

在整个生成过程中还有些小插曲,将其附于文末,方便回顾和参考。

高效提示词框架

  • 角色(Persona)
  • 任务(Task)
  • 上下文(Context)
  • 格式(Format)

例子如下:

You are a program manager in [industry]. Draft an executive summary email to [persona] based on [details
about relevant program docs]. Limit to bullet points.

🛠️ 有效提示词工程最佳实践

原则核心思想示例 / 技巧
提供示例(Provide Examples)使用单样本(one-shot)或少样本(few-shot)示例,向模型展示优质输出的样貌。✅ 在分类提示词中包含 3-5 个不同类型的示例。
简洁设计(Design with Simplicity)清晰、简洁、结构化的提示词比模糊或冗长的更有效。❌ “我们在纽约应该做什么?” -> ✅ “列出曼哈顿的 3 个家庭景点。“
明确输出要求(Be Specific About Output)明确定义输出的长度、格式、语调或限制。“写一份 3 段的总结,格式为 JSON。“
指令优于约束(Instructions > Constraints)告诉模型要做什么,而不是不要做什么。✅ “列出顶级的游戏机及其制造商。” 对比 ❌ “不要提及视频游戏名称。“
控制 Token 长度(Control Token Length)使用模型配置或提示词表述来限制响应长度。“用一句话解释” 或设置 Token 限制。
使用变量(Use Variables)通过插入动态值来模板化提示词,以便重复使用。告诉我一个关于 {城市} 的事实。
尝试输入风格(Experiment with Input Style)尝试不同的格式:问题、陈述、指令。🔄 比较:“X 是什么?”, “解释 X。”, “写一篇关于 X 的博客。“
打乱类别顺序(Few-Shot)(Shuffle Classes (Few-Shot))打乱响应类别的顺序,以避免模型对提示词模式过拟合。✅ 在少样本任务中随机化类别标签的顺序。
适应模型更新(Adapt to Model Updates)大语言模型不断发展;定期测试并调整提示词。🔄 针对新的 Gemini / GPT / Claude 版本重新调优。
尝试输出格式(Experiment with Output Format)对于结构化任务,要求以 JSON/XML 格式输出以减少歧义。“以有效的 JSON 格式返回响应。“
记录提示词迭代(Document Prompt Iterations)记录每个提示词的更改和测试。📝 使用表格或版本控制系统。

🎯 核心提示词工程技术

技术描述示例总结
零样本(Zero-Shot)不提供任何示例,直接向模型提问。🧠 “将此评论分类为正面/中性/负面。“
单样本(One-Shot)提供一个示例来展示预期的格式/输出。🖋️ 输入 + 示例 -> 新输入
少样本(Few-Shot)提供多个示例来展示一个模式。🎓 使用 3-5 个不同类型的示例。有助于解析、分类等。
系统提示(System Prompting)设置高层次的任务目标和输出指令。🛠️ “以 JSON 格式返回答案。标签只使用大写字母。“
角色扮演提示(Role Prompting)为模型分配一个角色或身份。🎭 “扮演一位旅行向导。我在东京。“
上下文提示(Contextual Prompting)提供相关的背景信息以指导输出。📜 “你正在为一家复古游戏博客撰稿。“
回溯提示(Step-Back Prompting)首先提出一个普遍性问题,然后解决具体问题。🔄 提取相关主题 -> 用作上下文 -> 提出最终问题
思维链(Chain of Thought, CoT)要求模型逐步思考。提高推理能力。🤔 “让我们一步一步地思考。“
自洽性(Self-Consistency)生成多个思维链,并选择最常见的答案。🗳️ 多次运行相同的 CoT 提示词,采用多数投票。
思维树(Tree of Thoughts, ToT)对于更复杂的问题,并行探索多个推理路径。🌳 大语言模型像决策树一样探索不同的路径。
ReAct(Reason & Act)结合推理与行动。模型进行决策、执行行动(例如通过工具/API)、观察结果并迭代。🤖 思考 -> 行动 -> 观察 -> 思考
自动化提示(Automatic Prompting)使用大语言模型自动生成提示词变体,然后评估最佳变体。💡 “生成 10 种表达‘订购一件小号 Metallica T 恤’的方式。“

⚙️ 大语言模型输出配置要点

配置选项作用最佳使用场景
最大 Token 长度(Max Token Length)限制响应的 Token 数量。📦 防止失控生成,控制成本/速度。
温度(Temperature)控制 Token 选择的随机性(0 = 确定性)。🎯 0 适用于精确答案(例如,数学/代码),0.7+ 适用于创意生成。
Top-K 采样(Top-K Sampling)从 Top K 个最可能的 Token 中选择下一个 Token。🎨 K 值越高 = 输出越多样。K=1 = 贪婪解码。
Top-P 采样(Top-P Sampling)从累积概率大于等于 P 的最小 Token 集合中选择。💡 Top-P ~0.9-0.95 能提供质量与多样性的平衡。

🔁 这些设置如何相互作用

如果你设置…那么…
temperature = 0Top-K/Top-P 被忽略。总是选择最可能的 Token。
top-k = 1类似于贪婪解码。温度/Top-P 变得无关紧要。
top-p = 0只考虑最可能的 Token。
high temperature (e.g. >1)使 Top-K/Top-P 占据主导地位。Token 采样变得更随机。

✅ 初始配置速查表

目标温度Top-PTop-K备注
🧠 精确回答0任意任意适用于逻辑/数学问题,确定性输出
🛠️ 半创作性0.20.9530平衡、信息丰富的输出
🎨 高度创作性0.90.9940适用于故事、想法、写作

Vibe 创作过程回顾

为何使用 ChatGPT 生成知识卡片?

在日常使用过程中,发现 ChatGPT 的文笔明显比 Gemini 强很多,表现力也更丰富,因此这个选择也就不难理解了。

由此外推,凡事有文笔要求的地方,ChatGPT 都是更好的选择。包括但不限于:市场营销、产品文案、创意写作等。

甚至于,在你灵感枯竭之时,或者是只有一个大致想法时,你都可以把它当作产品经理或者创意总监来使用。

比如在做老胡茶室时,当时灵感来自于千利休的待庵。但首页的 Slogan 始终没有想好,只是隐约想结合两点跟“茶”相关的典故:石田三成的三献茶和赵州禅师的“且吃茶去”。

于是,将这个想法输入 ChatGPT,虽然未最终照搬其文案,但基于它的初始文案修改成了最终的版本:

"三盏茶意,洞见 AI、区块链、研发与人生真味。个中滋味,且吃茶去!"

借助 vibe-coding 完成最终格式生成

最早版本的 ChatGPT 中,复制的生成结果时是复制的其内部 Markdown 格式,无需特别设定。

基于这个记忆,我将首次复制结果粘贴到编辑器中时,发现其格式已经改变。于是,回到 ChatGPT,让其将结果导出到 Markdown 文件。However,这次虽然格式对了,但内容却已不是第一次的结果。

很明显,它重新生成了一个新版本,然后再将其导出。

此时,我也没有耐心去在这么个小任务上去展示我的提示词功力,于是打算采用简单而暴力的做法:截屏并将其递给 vscode copilot agent,让其生成匹配图片的 Markdown 文件。

成功!

最终,让 Gemini 将其翻译成:中文和日文两个版本。

提示:当需要多语言版本时,尤其涉及技术类内容时,先生成英文版本,再让 LLM 翻译成其他语言,这样会更准确。