From 5d96f7b2cc82bd2299ec939c0ea03553a6d9b48e Mon Sep 17 00:00:00 2001 From: leezhuuuuu Date: Sat, 16 Nov 2024 21:29:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E4=BA=8Egemini-exp-?= =?UTF-8?q?1114=E6=A8=A1=E5=9E=8B=E7=9A=84=E6=94=AF=E6=8C=81=EF=BC=8C?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E5=88=B0v1beta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat(gemini): add support for gemini-exp-1114 model - Add gemini-exp-1114 to ModelList in constant.go - Update GetRequestURL in adaptor.go to use v1beta API version for gemini-exp-1114 - Keep backward compatibility for other models This change enables the use of the experimental gemini-exp-1114 model by correctly routing its requests to the v1beta API endpoint while maintaining existing functionality for other models. --- relay/channel/gemini/adaptor.go | 23 ++++++++++++++++------- relay/channel/gemini/constant.go | 1 + 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/relay/channel/gemini/adaptor.go b/relay/channel/gemini/adaptor.go index 437efcc..d466caf 100644 --- a/relay/channel/gemini/adaptor.go +++ b/relay/channel/gemini/adaptor.go @@ -30,13 +30,22 @@ func (a *Adaptor) Init(info *relaycommon.RelayInfo) { } func (a *Adaptor) GetRequestURL(info *relaycommon.RelayInfo) (string, error) { - // 从映射中获取模型名称对应的版本,如果找不到就使用 info.ApiVersion 或默认的版本 "v1" - version, beta := constant.GeminiModelMap[info.UpstreamModelName] - if !beta { - if info.ApiVersion != "" { - version = info.ApiVersion - } else { - version = "v1" + var version string + + // 为特定模型指定版本 + switch info.UpstreamModelName { + case "gemini-exp-1114": + version = "v1beta" + default: + // 从映射中获取模型名称对应的版本,如果找不到就使用 info.ApiVersion 或默认的版本 "v1" + var beta bool + version, beta = constant.GeminiModelMap[info.UpstreamModelName] + if !beta { + if info.ApiVersion != "" { + version = info.ApiVersion + } else { + version = "v1" + } } } diff --git a/relay/channel/gemini/constant.go b/relay/channel/gemini/constant.go index 4a2e4dd..5f189f3 100644 --- a/relay/channel/gemini/constant.go +++ b/relay/channel/gemini/constant.go @@ -7,6 +7,7 @@ const ( var ModelList = []string{ "gemini-1.0-pro-latest", "gemini-1.0-pro-001", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest", "gemini-ultra", "gemini-1.0-pro-vision-latest", "gemini-1.0-pro-vision-001", "gemini-1.5-pro-exp-0827", "gemini-1.5-flash-exp-0827", + "gemini-exp-1114", } var ChannelName = "google gemini"