diff options
| author | Kujtim Hoxha <[email protected]> | 2025-04-20 15:56:36 +0200 |
|---|---|---|
| committer | Kujtim Hoxha <[email protected]> | 2025-04-21 13:42:29 +0200 |
| commit | 8e160488ff1aa29f6b2cb601145e9f3ff5410d07 (patch) | |
| tree | 46138a414360ca73be3bb98c24597eebb90d695f /internal/llm | |
| parent | 2de51274177432b559be3b7deb1f14b9539f2994 (diff) | |
| download | opencode-8e160488ff1aa29f6b2cb601145e9f3ff5410d07.tar.gz opencode-8e160488ff1aa29f6b2cb601145e9f3ff5410d07.zip | |
improve cache
Diffstat (limited to 'internal/llm')
| -rw-r--r-- | internal/llm/provider/anthropic.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/internal/llm/provider/anthropic.go b/internal/llm/provider/anthropic.go index 2c16a0593..86f483f64 100644 --- a/internal/llm/provider/anthropic.go +++ b/internal/llm/provider/anthropic.go @@ -57,16 +57,18 @@ func newAnthropicClient(opts providerClientOptions) AnthropicClient { } func (a *anthropicClient) convertMessages(messages []message.Message) (anthropicMessages []anthropic.MessageParam) { - cachedBlocks := 0 - for _, msg := range messages { + for i, msg := range messages { + cache := false + if len(messages)-3 > i { + cache = true + } switch msg.Role { case message.User: content := anthropic.NewTextBlock(msg.Content().String()) - if cachedBlocks < 2 && !a.options.disableCache { + if cache && !a.options.disableCache { content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{ Type: "ephemeral", } - cachedBlocks++ } anthropicMessages = append(anthropicMessages, anthropic.NewUserMessage(content)) @@ -74,11 +76,10 @@ func (a *anthropicClient) convertMessages(messages []message.Message) (anthropic blocks := []anthropic.ContentBlockParamUnion{} if msg.Content().String() != "" { content := anthropic.NewTextBlock(msg.Content().String()) - if cachedBlocks < 2 && !a.options.disableCache { + if cache && !a.options.disableCache { content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{ Type: "ephemeral", } - cachedBlocks++ } blocks = append(blocks, content) } |
