上下文窗口管理
上下文窗口是模型单次能处理的最大 Token 数量。有效管理上下文窗口意味着在有限空间内最大化信息密度,合理安排指令、示例和输入内容的优先级,避免关键信息被截断或稀释。
高级 架构设计
适用场景
处理长文档或大量数据时;多轮对话历史管理;需要在有限窗口内放入多种信息时;构建 RAG 系统时。
Prompt 示例
## 上下文管理策略示例 ### 优先级排列(从高到低): 1. System Prompt(核心指令)- 放在最前 2. 当前用户输入 - 紧跟其后 3. 最相关的历史对话 - 最近 3 轮 4. 检索到的参考文档 - 摘要形式 5. Few-shot 示例 - 如果空间允许 ### 压缩策略: - 历史对话:保留关键信息,删除寒暄 - 文档:使用摘要而非全文 - 示例:选择最相关的 2-3 个
输出示例
[模型根据优先级策略组织上下文,确保关键信息不被截断]
最佳实践
- 关键指令放在上下文的开头和结尾(首因效应和近因效应)
- 使用摘要压缩历史对话
- 动态调整 Few-shot 示例数量
- 监控 Token 使用量,预留输出空间
常见坑
- 中间位置的信息最容易被模型忽略(Lost in the Middle)
- 过度压缩可能丢失关键上下文
- 不同模型的有效上下文长度可能小于标称值