From 566d42da0732bdde1f69a5d9636a881e4927f650 Mon Sep 17 00:00:00 2001 From: reanon <> Date: Fri, 23 May 2025 05:30:38 +0200 Subject: [PATCH] hopefully last edit --- src/proxy/anthropic.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/proxy/anthropic.ts b/src/proxy/anthropic.ts index 668b99f..5b9c4be 100644 --- a/src/proxy/anthropic.ts +++ b/src/proxy/anthropic.ts @@ -206,8 +206,10 @@ function setAnthropicBetaHeader(req: Request) { */ function addWebSearchTool(req: Request) { // Check if this is a Claude model that supports web search and if web search is enabled - const supportsWebSearch = /^claude-3-(5|7)/.test(req.body.model); - const useWebSearch = supportsWebSearch && Boolean(req.body.enable_web_search); + const isClaude35 = req.body.model?.includes("claude-3-5") || req.body.model?.includes("claude-3.5"); + const isClaude37 = req.body.model?.includes("claude-3-7") || req.body.model?.includes("claude-3.7"); + const isClaude4 = req.body.model?.includes("claude-4"); + const useWebSearch = (isClaude35 || isClaude37 || isClaude4) && Boolean(req.body.enable_web_search); if (useWebSearch) { // Create the base web search tool @@ -305,7 +307,7 @@ const textToChatPreprocessor = createPreprocessorMiddleware( * (claude-3 based models do not support the old text completion endpoint). */ const preprocessAnthropicTextRequest: RequestHandler = (req, res, next) => { - if (req.body.model?.startsWith("claude-3")) { + if (req.body.model?.startsWith("claude-3") || req.body.model?.startsWith("claude-4")) { textToChatPreprocessor(req, res, next); } else { nativeTextPreprocessor(req, res, next); @@ -336,7 +338,9 @@ const oaiToChatPreprocessor = createPreprocessorMiddleware( */ const preprocessOpenAICompatRequest: RequestHandler = (req, res, next) => { maybeReassignModel(req); - if (req.body.model?.includes("claude-3")) { + const model = req.body.model; + const isClaude4 = model?.includes("claude-4"); + if (model?.includes("claude-3") || isClaude4) { oaiToChatPreprocessor(req, res, next); } else { oaiToTextPreprocessor(req, res, next);