[all_in_ai] AI 名词扫盲 prompt

是机会 也是 陷阱

名词扫盲

Prompt

Prompts (提示词) ; 对于同一个 LLM , 不同的人用 结果天差地别,而 prompt 就是为了 统一 。

可以是 :

  1. 具体的指令
  2. 具体的问题
  3. 具体的背景
  4. 具体的格式要求
1
2
3
4
messages = [
  { role: "system",  content: "你是一个 OnCall 助理,回答必须简洁" },
  { role: "user",    content: "昨晚数据库报警是什么原因?" },
]

system和user 都是 prompt 的一部分

为什么 prompt 很重要

llm 本质上是一个 next-token 的预测及其 。 对于模糊的上下文,他往哪里走的方向就越多,输出的就越随机

但是给的上下文越精确,它搜索的范围就越窄

user prompts

大部分 Ai 对话 都是 user protmps

好的 User prompts 的三要素 :

  1. 目标明确 :要做什么?分析、总结、改写、生成代码,得明说。“帮我看看这个日志"不是目标,“帮我分析这段日志里的报错原因并给出排查方向"才是。
  2. 背景充足 :大模型不知道你的业务、你的系统架构、你的团队惯例,它只能靠你给的信息推断。背景给得越充分,它越不需要乱猜,幻觉越少。
  3. 输出要求 :格式、长度、风格,不说,它随心所欲。你想要 Markdown 列表?想要 JSON?想要 3 条以内?一定要在 Prompt 里讲清楚。

场景对比 :

❌ 简单版 :「数据库怎么了?」 大模型不知道你说的是哪个数据库、什么时间发生的、有什么报警信息、你想要什么样的答案。

✅ 完整版 :

1
2
3
4
5
以下是今天凌晨 2 点的数据库报警日志:

[日志内容]

请分析可能的根本原因,并给出 3 条排查建议,以 Markdown 列表格式输出。

System Prompt

用户层面看不到 system prompt 这是开发提前写进去的一个 底层指令

system prompts 的三个核心用途 :

  1. 身份设定 :给模型一个具体的角色
1
2
你是一个 OnCall 助理,专门帮助工程师排查和分析系统故障。
你只处理与系统稳定性、报警分析、故障排查相关的问题。
  1. 行为规则:定义模型"能做什么、不能做什么”
1
2
3
4
不允许回答与系统故障无关的话题。
如果你不确定某个判断,必须说明"我不确定,建议进一步验证"。

不要自行假设任何背景信息,只根据用户提供的内容作答。
  1. 输出格式约束 :让模型每次都按固定格式输出
1
2
3
4
你的回答必须是 JSON 格式,包含以下字段:
summary:对问题的一句话概括
root_cause:可能的根本原因列表
action_items:建议的排查步骤列表

如何写好一个 pormpts

  1. 给模型"角色”
  2. 正向约束 > 负向约束
  • ❌不要太啰嗦
  • ✅回答控制在3句话以内
  1. 喂足够的信息
  2. 指定输出格式
  3. Few-shot . 给几个参考例子
  4. 让模型先思考再回答
  • 请先逐步分析,再给出最终结论
使用 Golang 构建