Skip to main content

智能上下文压缩

智能上下文压缩功能通过总结对话的早期部分来帮助管理长对话。这可以防止在上下文窗口接近其限制时丢失重要信息。此功能默认启用



工作原理

当您与itBuilder的对话增长时,它可能会接近底层AI模型的上下文窗口限制。当这种情况发生时,通常会删除较旧的消息以腾出空间。智能上下文压缩旨在通过以下方式防止这种突然的丢失:

  1. 总结: 使用AI模型压缩对话的早期部分。
  2. 保留要点: 目标是减少总体令牌计数,同时保留来自已总结消息的关键信息。
  3. 保持流程: 这允许AI对整个对话有更连贯的理解,即使是很长的对话。

重要考虑事项:

  • 总结影响: 虽然如果您使用检查点回退,原始消息会被保留,但总结版本用于正在进行的LLM调用以保持上下文可管理。
  • 成本: 执行总结的AI调用会产生成本。此成本包含在UI中显示的上下文压缩指标中。

配置

智能上下文压缩默认启用并提供多种配置选项:

  1. 打开itBuilder设置(itBuilder面板右上角的图标)。
  2. 导航到"上下文"设置部分。
  3. 配置可用选项:
    • 自动触发智能上下文压缩:默认启用,这控制是否自动进行压缩
    • 触发智能上下文压缩的阈值:一个百分比滑块(默认100%),根据上下文窗口使用情况确定何时激活压缩
    • 上下文压缩的API配置:选择用于压缩操作的API配置(默认为您当前的活动配置)
    • 自定义上下文压缩提示:自定义用于上下文压缩操作的系统提示
智能上下文压缩设置

智能上下文压缩配置选项:自动触发开关、阈值滑块、API配置选择和自定义提示定制。

控制和理解上下文压缩

itBuilder提供了几种控制和理解智能上下文压缩功能的方法:

控制上下文压缩

  • 自动阈值: "上下文"设置中的阈值滑块允许您定义上下文窗口使用率的百分比(例如80%)。当对话达到此容量水平时,itBuilder将尝试自动压缩上下文。

  • API配置: 选择用于上下文压缩操作的API配置。这允许您如果需要,可以为压缩专门使用不同的提供商或模型。

  • 自定义提示: 修改用于压缩的系统提示,以更好地适应您的工作流程或强调对话总结的某些方面。

  • 手动触发: 在任务顶部,位于上下文栏右侧,有一个压缩上下文按钮。这允许您随时启动上下文压缩过程。

    展开任务视图中的手动压缩上下文按钮

    手动压缩上下文按钮(用黄色箭头突出显示)易于访问,便于手动控制。

理解上下文压缩活动

  • 上下文压缩指标: 当发生上下文压缩时,itBuilder显示:
    • 上下文压缩前后的上下文令牌计数。
    • 与上下文压缩AI调用相关的成本。
    • 可展开的摘要,详细说明压缩了什么(此信息是聊天历史中可见的ContextCondenseRow组件的一部分)。
聊天中的上下文压缩消息

上下文压缩后,消息指示上下文已被压缩,显示令牌变化和成本。

  • 视觉指示器:
    • 在上下文压缩活动期间,聊天界面中显示进度指示器("正在压缩上下文...")。
聊天中的压缩上下文进度指示器

"正在压缩上下文..."指示器在过程中出现在聊天中。

  • 任务标题还显示当前上下文压缩状态。
  • ContextWindowProgress栏提供令牌分布的可视化表示,包括当前使用情况、为AI输出保留的空间、可用空间和原始令牌数字。
  • 界面清晰度: "压缩上下文"按钮包含解释其功能的工具提示,支持所有支持的语言。

技术实现

令牌计数

itBuilder使用复杂的令牌计数系统:

  • 在可用时使用原生令牌计数端点(例如,Anthropic的API)
  • 如果API调用失败,回退到tiktoken估计
  • 为不同内容类型提供准确的计数:
    • 文本内容:使用基于单词的估计,包含标点符号和换行符开销
    • 图像内容:使用每张图像300个令牌的保守估计
    • 系统提示:包含结构元素的额外开销

上下文窗口管理

  • 默认情况下,30%的上下文窗口被保留(20%用于模型输出,10%作为安全缓冲区),留下70%用于对话历史。
  • 此保留可以被模型特定设置覆盖
  • 系统在维护此保留的同时自动计算可用空间