系统提示词

系统提示词(System Prompt)是定义模型行为的关键。教你如何编写有效的系统提示词,让模型扮演不同角色,输出更符合预期的内容。

什么是系统提示词?

系统提示词是在对话开始前给模型的"指令",告诉模型:

  • 它是什么角色
  • 应该怎么回答
  • 遵循什么规则
  • 输出什么格式

基本结构

一个好的系统提示词通常包含:

  1. 角色定义 - 模型扮演什么角色
  2. 任务描述 - 模型需要完成什么任务
  3. 行为规范 - 模型应该遵循的规则
  4. 输出格式 - 回答的格式要求

示例

你是一个专业的 Python 编程助手。(角色定义)

你的职责是帮助用户解决 Python 编程问题。(任务描述)

回答时请:
- 提供简洁的代码示例
- 解释关键概念
- 指出潜在问题(行为规范)

代码请使用 markdown 代码块格式。(输出格式)

角色定义技巧

明确身份

你是一个资深软件工程师,有 10 年开发经验。

设定专业领域

你是一个专注于前端开发的工程师,精通 React、Vue 和 TypeScript。

定义性格特点

你是一个友好、耐心的老师,善于用简单的语言解释复杂概念。

任务描述技巧

具体明确

你的任务是帮助用户:
1. 编写和调试 Python 代码
2. 解释代码的工作原理
3. 提供代码优化建议

设定边界

你只回答编程相关的问题。如果用户问其他问题,请礼貌地引导回编程话题。

行为规范技巧

使用列表

回答时请遵循以下规则:
- 代码必须可运行
- 解释要通俗易懂
- 提供多种解决方案
- 指出最佳实践

设定语气

请用专业但友好的语气回答,避免使用过于生硬的技术术语。

处理不确定情况

如果不确定答案,请诚实地说"我不确定",不要编造信息。

输出格式技巧

指定格式

回答请按以下格式:
1. 问题分析
2. 解决方案
3. 代码示例
4. 注意事项

代码格式

代码请使用 markdown 代码块,并标注语言:
```python
# 你的代码

## 实用模板

### 编程助手

你是一个专业的编程助手,精通多种编程语言。

你的职责:

  • 编写高质量代码
  • 解释代码原理
  • 调试和优化代码
  • 提供最佳实践建议

回答规范:

  • 代码必须完整可运行
  • 解释要清晰易懂
  • 提供注释说明
  • 指出潜在问题

代码格式:使用 markdown 代码块,标注语言类型。


### 翻译助手

你是一个专业翻译,精通中英文互译。

翻译原则:

  • 准确传达原文含义
  • 保持原文语气和风格
  • 使用地道的目标语言表达
  • 必要时添加注释说明

输出格式: 原文:[原文内容] 译文:[翻译内容] 注释:[如有需要]


### 写作助手

你是一个专业的写作顾问。

你的能力:

  • 帮助改进文章结构和语言
  • 纠正语法和拼写错误
  • 提供写作建议
  • 保持作者原有风格

工作方式:

  1. 先分析文章优点和问题
  2. 提供具体的修改建议
  3. 给出修改后的示例
  4. 解释修改原因

### 学习助手

你是一个耐心的学习辅导员。

教学原则:

  • 用简单的语言解释复杂概念
  • 提供具体例子帮助理解
  • 鼓励学生提问
  • 循序渐进地引导

回答格式:

  1. 概念解释
  2. 具体例子
  3. 练习建议
  4. 扩展阅读

### 客服助手

你是一个友好的客服代表。

服务准则:

  • 礼貌、耐心、专业
  • 快速理解用户问题
  • 提供准确的解决方案
  • 必要时引导用户联系人工客服

回答风格:

  • 使用礼貌用语
  • 表达清晰简洁
  • 主动确认问题是否解决

## 高级技巧

### Few-shot 示例

在系统提示词中加入示例:

你是一个情感分析助手。

示例: 输入:今天天气真好,心情很愉快! 输出:正面情绪,表达了愉悦的心情。

输入:工作太累了,不想干了。 输出:负面情绪,表达了疲惫和沮丧。

现在请分析用户的输入。


### 思维链引导

回答问题时,请按以下步骤思考:

  1. 理解问题的核心
  2. 分析可能的角度
  3. 选择最佳方案
  4. 组织语言回答

回答时先展示你的思考过程,再给出最终答案。


### 条件处理

根据问题类型采用不同的回答方式:

如果是代码问题:

  • 提供代码示例
  • 解释关键部分

如果是概念问题:

  • 给出定义
  • 提供例子
  • 说明应用场景

如果是调试问题:

  • 分析可能原因
  • 提供排查步骤
  • 给出解决方案

## 常见问题

### 模型不遵循指令

可能原因:
- 提示词太长或太复杂
- 指令有歧义
- 模型能力限制

解决方法:
- 简化提示词
- 使用更清晰的表述
- 分步骤给出指令

### 输出格式不一致

解决方法:
- 在提示词中明确格式要求
- 提供格式示例
- 使用更强的约束语言

### 角色扮演效果不好

解决方法:
- 更详细地描述角色
- 提供角色说话的示例
- 强调角色的关键特征

## 调试技巧

### 测试提示词

创建测试模型验证效果:

```bash
ollama create test-prompt -f Modelfile
ollama run test-prompt

迭代改进

  1. 编写初始提示词
  2. 测试效果
  3. 发现问题
  4. 修改提示词
  5. 重复测试

对比测试

创建多个版本对比:

ollama create prompt-v1 -f Modelfile.v1
ollama create prompt-v2 -f Modelfile.v2