三个角色是什么?

现代大模型的对话结构分三个角色:

System Prompt的最佳实践

System是最重要的一层,决定了模型在整个对话中的"人设"。以下内容应该放在System里:

常见误用

多轮对话中Assistant角色的用法(Few-shot)

可以手动构造历史对话来引导模型输出格式:

messages = [
  {"role": "system", "content": "你是一个提取器,从文本中提取关键信息,始终以JSON格式输出"},
  {"role": "user", "content": "张三是北京分公司的销售经理"},
  {"role": "assistant", "content": '{"name":"张三","location":"北京分公司","title":"销售经理"}'},
  {"role": "user", "content": "李四在上海担任技术总监,负责后端团队"},
  # 此时模型会按照上面的格式输出李四的信息
]

完整System Prompt模板

你是[角色名称],专注于[专业领域]。

## 行为规范
- [规则1]
- [规则2]
- 不要做[禁止行为]

## 输出格式
始终以以下格式输出:
[格式示例]

## 背景信息
- 用户技术栈:[...]
- 项目类型:[...]
System Prompt写得好,等于给模型装了一个"固定角色",后续User的输入都在这个角色框架内被处理,输出会更一致和可控。