|
|
7d38046a82
|
原因分析: 之前的代码使用了一种所谓的“顶层自动缓存”非标准写法(在请求顶层直接塞入一个全局的 cache_control),但很多中转站或 Anthropic 官方 API 并不兼容这种格式。这会导致在解析和转发的过程中,错误地给多个内容块打上了缓存标记,最终超过了官方限制的“最多 4 个”上限。
修复方案: 我重写了 adapters/cc_anthropic_adapter.py 中的 optimize_cache_control 函数,改回了 Anthropic 官方支持的**块级别缓存(block-level prompt caching)**策略。
新逻辑会严格计算名额,最多只分配 4 个缓存断点。
它会优先把断点分配给 system 和 tools(因为这两个部分最占 Token 且最稳定)。
剩下的名额会根据窗口距离,动态分配给 messages 列表中最新的那几个文本块。
代码已修改完成,你可以直接重新测试一下 Claude 系列模型,这个 invalid_request_error 报错应该已经解决了。
|
2026-05-07 11:57:17 +08:00 |
|
h88782481
|
bec7b3e5ef
|
修复缓存命中问题
|
2026-04-29 11:14:00 +08:00 |
|
h88782481
|
a8f5ada8e1
|
回退旧版本
|
2026-03-26 11:34:27 +08:00 |
|
h88782481
|
70361242ab
|
重构代码
|
2026-03-22 08:24:19 +08:00 |
|
h88782481
|
56faf4fcf1
|
优化缓存命中问题
|
2026-03-15 16:26:07 +08:00 |
|
h88782481
|
2f2a3cce41
|
回滚
|
2026-03-15 14:10:15 +08:00 |
|
h88782481
|
98f3ae24a0
|
修复缓存问题
|
2026-03-15 13:25:23 +08:00 |
|
h88782481
|
4de6db13f9
|
支持gimini格式,优化debug日志
|
2026-03-14 09:27:15 +08:00 |
|
h88782481
|
ae059ffcb8
|
增加注入提示词功能
|
2026-03-13 17:22:28 +08:00 |
|
h88782481
|
f193c48ce1
|
补全注释
|
2026-03-10 08:43:07 +08:00 |
|
h88782481
|
96fbc4da80
|
优化代码
|
2026-03-09 19:43:51 +08:00 |
|
h88782481
|
202731df74
|
初始化提交
|
2026-03-09 14:18:42 +08:00 |
|