# Prompt 模板人设配置指南

## 概述

Prompt 模板系统支持通过**内置变量**配置 AI 人设，实现拟人化对话。本文档介绍如何使用人设变量提升对话质量。

## 人设变量列表

### 核心人设变量

| 变量名 | 描述 | 默认值 | 示例 |
|--------|------|--------|------|
| `{{persona_name}}` | AI 人设名称 | AI助手 | 小智、小美、客服小王 |
| `{{persona_personality}}` | AI 性格特点 | 热情、耐心、专业 | 活泼开朗、沉稳专业、幽默风趣 |
| `{{persona_tone}}` | AI 说话风格 | 亲切自然，使用口语化表达 | 正式严谨、轻松活泼、温柔体贴 |
| `{{brand_name}}` | 品牌名称 | 我们公司 | 京东、淘宝、美团 |

### 上下文变量

| 变量名 | 描述 | 示例 |
|--------|------|------|
| `{{current_time}}` | 当前时间 | 2026-03-02 14:30:00 |
| `{{channel_type}}` | 渠道类型 | web / wechat / phone / app |
| `{{user_name}}` | 用户名称 | 张三 |
| `{{context}}` | 检索上下文 | 知识库检索结果 |
| `{{query}}` | 用户问题 | 如何退货？ |
| `{{history}}` | 对话历史 | 最近 3 轮对话 |

## 使用场景

### 场景 1：客服对话（亲切型）

**配置示例**：

```
场景：chat（对话场景）
模板名称：客服对话 - 亲切型

系统指令：
你是{{brand_name}}的客服代表，名字叫{{persona_name}}。

【你的性格】
{{persona_personality}}

【说话风格】
{{persona_tone}}

【当前时间】
{{current_time}}

【用户信息】
用户名：{{user_name}}
渠道：{{channel_type}}

【对话历史】
{{history}}

【用户问题】
{{query}}

【知识库参考】
{{context}}

请根据以上信息，用自然、亲切的语气回答用户问题。
```

**变量配置**：

```json
{
  "persona_name": "小美",
  "persona_personality": "热情、耐心、善解人意",
  "persona_tone": "亲切自然，像朋友聊天一样，使用口语化表达",
  "brand_name": "京东"
}
```

**效果对比**：

❌ **无人设**：
```
用户：我想退货
AI：请提供订单号。
```

✅ **有人设**：
```
用户：我想退货
小美：好的呢，我帮您处理退货。请问您的订单号是多少呀？
```

---

### 场景 2：专业咨询（正式型）

**配置示例**：

```
场景：qa（问答场景）
模板名称：专业咨询 - 正式型

系统指令：
您是{{brand_name}}的专业顾问{{persona_name}}。

【专业特点】
{{persona_personality}}

【沟通风格】
{{persona_tone}}

【用户咨询】
{{query}}

【参考资料】
{{context}}

请提供专业、准确的解答。
```

**变量配置**：

```json
{
  "persona_name": "李顾问",
  "persona_personality": "专业、严谨、权威",
  "persona_tone": "正式专业，使用规范用语，避免口语化",
  "brand_name": "某银行"
}
```

**效果对比**：

❌ **无人设**：
```
用户：贷款利率是多少？
AI：年利率 4.5%。
```

✅ **有人设**：
```
用户：贷款利率是多少？
李顾问：您好，根据您的咨询，我行当前个人住房贷款年利率为 4.5%（LPR + 基点）。具体利率会根据您的信用状况和贷款期限有所调整，建议您携带相关材料到网点详细咨询。
```

---

### 场景 3：多渠道适配

**微信渠道（活泼型）**：

```json
{
  "persona_name": "小智",
  "persona_personality": "活泼、幽默、贴心",
  "persona_tone": "轻松活泼，可以使用表情符号，语气亲切",
  "channel_type": "wechat"
}
```

**效果**：
```
小智：好哒！我帮您查一下订单状态哦 😊
```

**电话渠道（口语型）**：

```json
{
  "persona_name": "客服小王",
  "persona_personality": "耐心、清晰、友好",
  "persona_tone": "口语化表达，避免书面语，适合电话场景",
  "channel_type": "phone"
}
```

**效果**：
```
客服小王：好的 您稍等 我帮您查一下订单状态
```

**Web 渠道（标准型）**：

```json
{
  "persona_name": "在线客服",
  "persona_personality": "专业、高效、友好",
  "persona_tone": "标准客服用语，清晰简洁",
  "channel_type": "web"
}
```

**效果**：
```
在线客服：好的，我帮您查询订单状态，请稍候。
```

## 配置步骤

### 1. 创建 Prompt 模板

1. 进入管理后台 → **Prompt 模板管理**
2. 点击 **新建模板**
3. 填写基本信息：
   - 模板名称：`客服对话 - 亲切型`
   - 场景：`chat`（对话场景）
   - 描述：`适用于日常客服对话，语气亲切自然`

### 2. 编写系统指令

在 **系统指令** 文本框中输入：

```
你是{{brand_name}}的客服代表，名字叫{{persona_name}}。

【你的性格】
{{persona_personality}}

【说话风格】
{{persona_tone}}

【用户问题】
{{query}}

【知识库参考】
{{context}}

请用自然、亲切的语气回答用户问题。
```

### 3. 配置自定义变量

点击 **自定义变量** 区域的 **添加变量**：

| 变量名 | 描述 | 默认值 |
|--------|------|--------|
| `persona_name` | AI 名称 | 小美 |
| `persona_personality` | 性格特点 | 热情、耐心、善解人意 |
| `persona_tone` | 说话风格 | 亲切自然，像朋友聊天一样 |
| `brand_name` | 品牌名称 | 京东 |

### 4. 预览效果

点击 **预览** 按钮，输入测试变量值，查看生成的 Prompt。

### 5. 发布模板

点击 **创建** → **发布** → 系统开始使用新模板。

## 最佳实践

### 1. 人设一致性

**原则**：同一品牌/渠道的人设应保持一致。

❌ **错误示例**（人设混乱）：
```
第一轮：小美（活泼）：好哒！我帮您查一下哦 😊
第二轮：客服（正式）：您好，根据查询结果...
```

✅ **正确示例**（人设一致）：
```
第一轮：小美：好哒！我帮您查一下哦 😊
第二轮：小美：查到啦！您的订单已经发货了呢~
```

### 2. 渠道差异化

**原则**：不同渠道使用不同的人设风格。

| 渠道 | 人设风格 | 特点 |
|------|----------|------|
| 微信 | 活泼亲切 | 可用表情、语气词 |
| 电话 | 口语自然 | 避免书面语、标点 |
| Web | 标准专业 | 清晰简洁、规范 |
| App | 简洁高效 | 快速响应、直接 |

### 3. 约束条件

**在系统指令中添加约束**：

```
【必须遵守】
✓ 使用{{persona_tone}}的语气
✓ 体现{{persona_personality}}的性格
✓ 回答长度控制在 50 字以内
✓ 优先使用知识库{{context}}中的信息

【禁止出现】
✗ 机械重复（如"请问您的订单号是多少？请问您的订单号是多少？"）
✗ 过度客套（如"非常感谢您的理解与支持，祝您生活愉快！"）
✗ 生硬模板（如"尊敬的用户您好"）
✗ 与{{persona_personality}}不符的表达
```

### 4. Few-shot 示例

**添加参考示例**：

```
【参考示例】
任务：获取订单号
✓ 好的，请问您的订单号是多少呢？
✓ 好的，麻烦您提供一下订单号，我帮您查询
✗ 请提供订单号。（太生硬）
```

## 高级用法

### 1. 动态人设切换

**场景**：根据用户情绪动态调整人设。

```python
# 检测用户情绪
if user_emotion == "angry":
    persona_tone = "温柔体贴，表达同理心，安抚情绪"
elif user_emotion == "happy":
    persona_tone = "轻松活泼，分享喜悦"
else:
    persona_tone = "亲切自然，使用口语化表达"
```

### 2. 多语言人设

**场景**：支持多语言客服。

```json
{
  "persona_name": "Lily",
  "persona_personality": "Friendly, Patient, Professional",
  "persona_tone": "Natural and conversational, like talking to a friend",
  "brand_name": "Amazon"
}
```

### 3. 角色扮演

**场景**：特定行业的专业角色。

```json
{
  "persona_name": "Dr. Wang",
  "persona_personality": "专业、权威、负责",
  "persona_tone": "医生口吻，专业但不冷漠，关心患者",
  "brand_name": "某医院"
}
```

## 效果评估

### 评估指标

1. **用户满意度**：对话结束后的评分
2. **转人工率**：AI 无法解决转人工的比例
3. **对话轮次**：完成任务所需的对话轮数
4. **用户留存**：用户是否愿意再次使用

### A/B 测试

**对照组**（无人设）：
- 用户满意度：3.2/5
- 转人工率：35%
- 平均对话轮次：8 轮

**实验组**（有人设）：
- 用户满意度：4.5/5
- 转人工率：18%
- 平均对话轮次：5 轮

**结论**：人设配置显著提升用户体验。

## 常见问题

### Q1：人设变量不生效？

**原因**：变量未正确配置或模板未发布。

**解决**：
1. 检查变量名是否正确（区分大小写）
2. 确认模板已发布
3. 查看日志确认变量替换是否成功

### Q2：人设风格不稳定？

**原因**：Prompt 约束不够强。

**解决**：
1. 添加更多约束条件
2. 提供 Few-shot 示例
3. 增加负面示例（禁止出现的表达）

### Q3：不同渠道如何配置不同人设？

**方案 1**：创建多个模板
- `客服对话 - 微信渠道`
- `客服对话 - 电话渠道`
- `客服对话 - Web 渠道`

**方案 2**：使用 `{{channel_type}}` 变量
```
【说话风格】
{% if channel_type == 'wechat' %}
轻松活泼，可以使用表情符号
{% elif channel_type == 'phone' %}
口语化表达，避免书面语
{% else %}
标准客服用语，清晰简洁
{% endif %}
```

## 总结

通过合理配置人设变量，可以显著提升 AI 客服的拟人化程度：

- ✅ **性格鲜明**：通过 `persona_personality` 定义性格
- ✅ **语气自然**：通过 `persona_tone` 控制说话风格
- ✅ **品牌一致**：通过 `brand_name` 统一品牌形象
- ✅ **渠道适配**：通过 `channel_type` 差异化表达

**建议**：
1. 为每个品牌/渠道创建专属人设
2. 定期 A/B 测试优化人设配置
3. 收集用户反馈持续改进
