4.2 分隔符与结构化表达

分隔符和结构化表达是提高提示词可读性和有效性的重要技巧。它们帮助模型更准确地区分指令、上下文、输入数据等不同部分,减少理解偏差。

4.2.1 分隔符的作用

分隔符像是提示词中的“标点符号”,用于:

  • 明确区分不同类型的内容

  • 防止用户输入与指令混淆

  • 提高复杂提示词的可读性

  • 便于模型识别输入数据的边界

4.2.2 常用分隔符类型

1. 三引号和反引号

适用于包裹需要处理的文本内容。

请总结以下文章的主要观点:

"""
这里是需要总结的文章内容...
文章可能包含多个段落...
"""
请检查以下代码的语法错误:

```python
def hello_world()
    print("Hello, World!")
```

2. XML/HTML 标签

结构化程度最高,特别适合 Claude 模型。

3. Markdown 标题和分隔线

使用 Markdown 格式增强可读性。

4. 符号分隔符

使用特殊符号序列作为分隔。

4.2.3 选择分隔符的原则

避免与内容冲突

选择在待处理内容中不太可能出现的分隔符。

保持一致性

在同一个提示词或提示词系统中保持分隔符风格一致。

匹配模型偏好

不同模型对不同格式的响应可能不同:

  • Claude:对 XML 标签响应特别好

  • GPT:对 Markdown 和三引号响应良好

  • 通用:三引号 """ 是较安全的选择

4.2.4 结构化表达技术

分节组织

将提示词按逻辑分成清晰的小节。

表格呈现

用表格组织成对或多维度的信息。

编号列表

为步骤或选项使用编号,便于模型和用户理解顺序。

层级缩进

用缩进表示信息的层级关系。

4.2.5 实战案例:提示词结构化改造

改造前(非结构化)

改造后(结构化)

4.2.6 安全性考虑

结构化分隔也有助于防止提示词注入攻击。

通过明确标记用户输入的边界,模型更容易区分指令和输入,减少恶意输入影响系统行为的风险。

4.2.7 常见问题处理

问题 1:分隔符被模型输出

有时模型会在回复中重复分隔符。

解决方案

问题 2:嵌套结构过于复杂

解决方案

  • 简化层级,控制在 3 层以内

  • 使用扁平化结构加上明确的编号

  • 拆分为多个提示词处理

问题 3:分隔符在不同模型表现不同

解决方案

  • 测试并记录不同模型的偏好

  • 建立模型-分隔符对照表

  • 在代码中使用可配置的分隔符

想一想

  1. XML 标签、Markdown 标记、三引号——这些分隔符各自最适合什么场景?有没有你混用过导致混乱的经历?

  2. 当提示词本身需要包含分隔符字符时(例如要求模型输出 XML),你如何避免歧义?

最后更新于