chatbox icon indicating copy to clipboard operation
chatbox copied to clipboard

[Other] 关于缓存的建议(命中率)

Open ImAlexBlock opened this issue 11 months ago • 6 comments
trafficstars

首先感谢作者开发了优质的软件!🙏

最近我再查看我的deepseek的api记录时发现了一个比较神奇的问题: PixPin_2024-12-17_11-28-23 注意观察:最后一点天和倒数第三天形成了鲜明的对比 这是详细的数据: only ChatBox

2024-12-15 238152 tokens
输入(命中缓存) 0 tokens
输入 (未命中缓存) 217368 tokens
输出 20784 tokens

only OpenWebUI

2024-12-17 229740 tokens
输入 (命中缓存)180736 tokens
输入 (未命中缓存)18353 tokens
输出 30651 tokens

问题就出在这里——缓存命中率天差地别 deepseek的缓存:https://api-docs.deepseek.com/zh-cn/news/news0802 实际情况是,我在学校使用openwebui,在家使用chatbox

所以现在的情况是:在差不多的使用量下,chatbox 完全没有 命中缓存 我不太清楚时因为deepseek的缓存机制不通还是其他的问题?(使用Chatbox我没有频繁的切换话题) 有可能问题出在这里: 注意,只有当两个请求的前缀内容相同时(从第 0 个 token 开始相同),才算重复。中间开始的重复不能被缓存命中。 - deepseek文档

希望开发者看到了可以解答一下QAQ

ImAlexBlock avatar Dec 17 '24 03:12 ImAlexBlock

你好,我猜测可能是上下文滚动窗口导致无法命中前缀匹配。我需要再研究一下。

Bin-Huang avatar Dec 17 '24 11:12 Bin-Huang

可以详细描述下你的使用习惯吗?越详细越好?

Bin-Huang avatar Dec 17 '24 11:12 Bin-Huang

我的使用习惯一般来说是: 当我需要编程、解题等场景,我会一个话题中累计10k tokens左右。这个时候即使还有相同内容一般也会选择下一个话题 小问题解答(例如一句两句的,我可能会开一个话题或者再上一个话题中直接问(但一般比较少) 也就是总的来说,无论大小我对会更加倾向开启一个新的话题

ImAlexBlock avatar Dec 17 '24 11:12 ImAlexBlock

这确实是一个很好的习惯👍。我想问下你会在消息中附带代码文件吗?一般情况下你的一个话题的会有多少消息?以及你的设置中是否修改过上下文消息限制,如果修改了的话设置是多少?这些应该可以让我快速定位并复现你的问题。

Bin-Huang avatar Dec 20 '24 14:12 Bin-Huang

  1. 首先是附带代码,一般来说样式是要求/问题 换行使用代码块包裹
  2. 最少200-900 最多2w左右
  3. 默认设置(有点记不清,应该是晚上回家再确认一下)

ImAlexBlock avatar Dec 21 '24 01:12 ImAlexBlock

Image

Image

Image

可能是注入默认元数据导致的,不过目前已经关闭这个开关了(1.11.5版本),重启了chatbox,该问题依旧存在,只有在每次新建对话后的系统提示词会被算入命中缓存

NotUNperson avatar Apr 02 '25 07:04 NotUNperson

感谢您的贡献

同上,我在此应用上调用deepseek api时上下文缓存似乎未启用,这应当是默认开启的,但没有,这会使我的tokens消耗过快,

如图可见前后两天在不同应用中使用时缓存命中的差异

这不致命,但是通常是需要的,希望开发者能在合适的时间调整这一现象,再次感谢。

Chatbox(v1.12.3) Android14

fearry avatar May 23 '25 14:05 fearry

Image

Image

Image

fearry avatar May 23 '25 14:05 fearry