上下文压缩
DevKit AI支持压缩agent的上下文长度,可以避免上下文窗口失控导致调用模型失败,减少无效tokens消耗导致的资源浪费或成本失控。
操作步骤
- 使用
SSH 远程登录工具,登录DevKit AI的安装节点。 - 进入DevKit AI基础包解压后目录。
cd DevKit-AI-x.x.x-Linux-Kunpeng
- 打开“config/config.yaml”文件。
vi config/config.yaml
- 按“i”进入编辑模式,新增如下内容。
summarization: #开启上下文压缩选项 enable: true # 必须在 chat_models 中存在,不存在则报错 model_name: "" # 触发上下文压缩阈值 trigger: #三种都可配置,关系为满足一个即可触发摘要逻辑 - type: fraction value: 0.8 - type: tokens value: 500000 - type: messages value: 200 # 保留上下文压缩的数值,三选一 # 必须保证keep.type对应的value小于trigger.type对应的value,否则不会触发摘要 keep: # fraction[float(0-1)] | tokens[int] | messages[int] 3个类型选择一个分别为(百分比|token数值|对话消息数量) type: fraction value: 0.15 # 生成摘要时应包含的最大tokens数 trim_tokens_to_summarize: message_counter: #是否可视当前上下文数值 enable: false表1 参数说明 参数
参数选项
参数说明
备注
summarization
enable
true/false
开启或关闭上下文压缩功能:
- true:开启。
- false:关闭。
-
model_name
字符串
用于执行上下文压缩的模型名。
该模型名必须在chat_models中存在定义或者留空使用默认模型。
trigger
type
fraction/tokens/messages
触发上下文压缩的阈值:
- fraction:上下文内容最大值的百分比。其对应value填写类型为大于0且小于1的浮点型,例如填写0.8表示当上下文内容达到最大值的80%时触发上下文压缩。
- tokens:token消耗数量。其对应value填写参数为整型,例如填写500000时表示当token消耗数量达到500000时触发上下文压缩。
- messages:对话消息的数量阈值。其对应value填写参数为整型,例如填写200表示当对话消息达到200条时触发上下文压缩。
trigger可以填写数量为小于等于三个type和value组,例如可以同时配置fraction、tokens、messages和其对应的value,当其中任意一个参数阈值满足条件时便会触发上下文压缩。
value
整型或浮点型
keep
type
fraction/tokens/messages
触发上下文压缩时内容保留的数量:
- fraction:上下文内容最大值的百分比。其对应value填写类型为大于0且小于1的浮点型,例如填写0.15表示当触发上下文压缩时保留上下文内容最大值的15%。
- tokens:token消耗数量。其对应value填写参数为整型,例如填写3000时表示当触发上下文压缩时保留3000个token的内容。
- messages:对话消息的数量阈值。其对应value填写参数为整型,例如填写15表示当触发上下文压缩时保留15条对话消息内容。
keep只能填写一个type和value组,且其value与trigger的type相同时,keep对应value值必须小于trigger对应value值。
value
整型或浮点型
trim_tokens_to_summarize
整型
生成内容摘要时应包含的最大tokens数量。
-
message_counter
enable
true/false
开启或关闭上下文统计功能,该功能可以直观看到当前对话计算得出的token数量。
- true:开启。
- false:关闭。
开启该功能可以直观看到token数量,便于判断使用token是否即将达到上下文压缩阈值。
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
功能开启,trigger、keep和message_counter参数正常生效。每当上下文达到trigger下type对应的values阈值,就会触发上下文压缩,把之前的对话生成一个摘要保留到agent的messages中,按照keep设置的值保留对应的信息。