长对话模型上下文暴增,如何压缩上下文?

8 月 26 日
 jonsmith

基于单一长需求持续对话,模型上下文很容易跑到几十万 Token 。

背景:

疑问:

  1. 压缩时机: 按比例固定压缩,比如上下文到达 50%主动压缩?
  2. 压缩方式: OpenCode 的 /compact 指令是否靠谱?会丢失关键信息吗?
  3. 替代方案: 如果不压缩上下文,是自己拆分任务吗?有合适的工具或流程吗?
2454 次点击
所在节点    程序员
12 条回复
ttsh
8 月 26 日
我目前的做法是

先判断当前对话和上下文是否有关联,没关联丢弃历史对话,只要最新的 message
有关联保留,然后按照对话和 trace 次数来分割,保留前 200 字符
再长就让模型总结当前对话,然后给一个概览

我这个和写代码没关系,是内部平台,比较简单,压缩我感觉是对话里很难的一步
canyue7897
8 月 26 日
直接拉满。这玩意儿公司都是自部署的,不用管,直接拉满。
Edisonzzz
8 月 26 日
你看看 opencode 咋实现 session 无限续的
catinsides
8 月 26 日
jonsmith
8 月 26 日
opencode 自动触发了 compact ,上下文从 70%降到 50%左右。我就不主动压缩了,先按目前工具默认的行为试试
ykone
8 月 26 日
推荐你用用这个插件 https://github.com/ranxianglei/billion-context-pii ,之前作者也来介绍过,我也是实际用了发现它确实很能解决单个巨型对话的问题,又避免那种一次性压缩的信息丢失
ykone
8 月 26 日
打错字了......https://github.com/ranxianglei/billion-context-pi ,也有其他插件适配
micean
8 月 26 日
这种上下文管理的插件多如牛毛了,我用的 https://github.com/cortexkit/magic-context ,压缩和记忆都有
ychost
8 月 26 日
目前只有 codex 的服务端 compact 相对好点,其它都是 PE 压缩,损失很大
mandex
8 月 26 日
让它把任务分给子 Agent
schemesAlot
8 月 26 日
pi 不错,压缩后也有索引,一直在用
mailke
8 月 27 日
上下文基本有缓存,缓存只要 1/10 的价格, 基本不用管了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1237292

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX