Refactor model cache breakpoint logic to use model info in Unbound (#4137)

Co-authored-by: Pugazhendhi <pugazhendhi@unboundsecurity.ai>
This commit is contained in:
pugazhendhi-m 2025-05-30 12:03:12 +05:30 committed by GitHub
parent 0f22eabb1b
commit 7ee90f916f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,7 +5,8 @@ import { ApiHandlerOptions, unboundDefaultModelId, unboundDefaultModelInfo } fro
import { ApiStream, ApiStreamUsageChunk } from "../transform/stream"
import { convertToOpenAiMessages } from "../transform/openai-format"
import { addCacheBreakpoints } from "../transform/caching/anthropic"
import { addCacheBreakpoints as addAnthropicCacheBreakpoints } from "../transform/caching/anthropic"
import { addCacheBreakpoints as addGeminiCacheBreakpoints } from "../transform/caching/gemini"
import type { SingleCompletionHandler, ApiHandlerCreateMessageMetadata } from "../index"
import { RouterProvider } from "./router-provider"
@ -44,8 +45,12 @@ export class UnboundHandler extends RouterProvider implements SingleCompletionHa
...convertToOpenAiMessages(messages),
]
if (modelId.startsWith("anthropic/claude-3")) {
addCacheBreakpoints(systemPrompt, openAiMessages)
if (info.supportsPromptCache) {
if (modelId.startsWith("google/")) {
addGeminiCacheBreakpoints(systemPrompt, openAiMessages)
} else if (modelId.startsWith("anthropic/")) {
addAnthropicCacheBreakpoints(systemPrompt, openAiMessages)
}
}
// Required by Anthropic; other providers default to max tokens allowed.