From 8bab658cf8df69f20be6c6bf1ca2420629f3083f Mon Sep 17 00:00:00 2001 From: devocy Date: Mon, 26 Feb 2024 15:47:52 +0800 Subject: [PATCH] feat: Update the Gemini API call method --- relay/channel/gemini/adaptor.go | 24 ++++++++++++++++-------- relay/channel/gemini/constants.go | 2 +- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/relay/channel/gemini/adaptor.go b/relay/channel/gemini/adaptor.go index 554ee349..6c6364b8 100644 --- a/relay/channel/gemini/adaptor.go +++ b/relay/channel/gemini/adaptor.go @@ -12,23 +12,27 @@ import ( "github.com/songquanpeng/one-api/relay/util" "io" "net/http" + "net/url" ) type Adaptor struct { } -func (a *Adaptor) Init(meta *util.RelayMeta) { - fmt.Println(meta.APIVersion) -} +func (a *Adaptor) Init(meta *util.RelayMeta) {} func (a *Adaptor) GetRequestURL(meta *util.RelayMeta) (string, error) { version := helper.AssignOrDefault(meta.APIVersion, "v1") - action := "generateContent" + var action string - if relaymode.RelayModeEmbeddings == meta.Mode { + switch meta.Mode { + case relaymode.RelayModeEmbeddings: action = "batchEmbedContents" - } else if meta.IsStream { - action = "streamGenerateContent" + default: + if meta.IsStream { + action = "streamGenerateContent" + } else { + action = "generateContent" + } } return fmt.Sprintf("%s/%s/models/%s:%s", meta.BaseURL, version, meta.ActualModelName, action), nil @@ -36,7 +40,11 @@ func (a *Adaptor) GetRequestURL(meta *util.RelayMeta) (string, error) { func (a *Adaptor) SetupRequestHeader(c *gin.Context, req *http.Request, meta *util.RelayMeta) error { channelhelper.SetupCommonRequestHeader(c, req, meta) - req.Header.Set("x-goog-api-key", meta.APIKey) + + req.URL.RawQuery = url.Values{ + "key": {meta.APIKey}, + }.Encode() + return nil } diff --git a/relay/channel/gemini/constants.go b/relay/channel/gemini/constants.go index d35f22e0..fcddf1d9 100644 --- a/relay/channel/gemini/constants.go +++ b/relay/channel/gemini/constants.go @@ -3,5 +3,5 @@ package gemini var ModelList = []string{ "gemini-pro", "gemini-pro-vision", - "(Gemini)embedding-001", + "embedding-001", }