From e54abc0f89ac184eedcd3bc15a3ab05e40ec4df3 Mon Sep 17 00:00:00 2001 From: mlkt <365690226@qq.com> Date: Sun, 26 May 2024 05:57:05 +0800 Subject: [PATCH] =?UTF-8?q?aiproxy=E6=94=AF=E6=8C=81vip=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=EF=BC=88=E9=85=8D=E7=BD=AE=E6=B8=A0=E9=81=93=E6=97=B6=E5=9C=A8?= =?UTF-8?q?key=E5=90=8E=E5=8A=A0=E4=B8=8A=20#vip=20=E5=90=8E=E7=BC=80?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relay/adaptor/aiproxy/adaptor.go | 11 +++++++++-- relay/adaptor/openai/adaptor.go | 11 ++++++++++- relay/billing/ratio/image.go | 2 -- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/relay/adaptor/aiproxy/adaptor.go b/relay/adaptor/aiproxy/adaptor.go index 42d49c0a..f2485727 100644 --- a/relay/adaptor/aiproxy/adaptor.go +++ b/relay/adaptor/aiproxy/adaptor.go @@ -9,6 +9,7 @@ import ( "github.com/songquanpeng/one-api/relay/model" "io" "net/http" + "strings" ) type Adaptor struct { @@ -20,12 +21,18 @@ func (a *Adaptor) Init(meta *meta.Meta) { } func (a *Adaptor) GetRequestURL(meta *meta.Meta) (string, error) { - return fmt.Sprintf("%s/api/library/ask", meta.BaseURL), nil + baseURL := meta.BaseURL + if strings.HasSuffix(meta.APIKey, "#vip") { + baseURL = "https://apivip.aiproxy.io" + } + return fmt.Sprintf("%s/api/library/ask", baseURL), nil } func (a *Adaptor) SetupRequestHeader(c *gin.Context, req *http.Request, meta *meta.Meta) error { adaptor.SetupCommonRequestHeader(c, req, meta) - req.Header.Set("Authorization", "Bearer "+meta.APIKey) + apiKey := meta.APIKey + apiKey = strings.TrimSuffix(apiKey, "#vip") + req.Header.Set("Authorization", "Bearer "+apiKey) return nil } diff --git a/relay/adaptor/openai/adaptor.go b/relay/adaptor/openai/adaptor.go index db569e4f..72440cc0 100644 --- a/relay/adaptor/openai/adaptor.go +++ b/relay/adaptor/openai/adaptor.go @@ -48,6 +48,11 @@ func (a *Adaptor) GetRequestURL(meta *meta.Meta) (string, error) { return minimax.GetRequestURL(meta) case channeltype.Doubao: return doubao.GetRequestURL(meta) + case channeltype.AIProxy: + if strings.HasSuffix(meta.APIKey, "#vip") { + return GetFullRequestURL("https://apivip.aiproxy.io", meta.RequestURLPath, meta.ChannelType), nil + } + fallthrough default: return GetFullRequestURL(meta.BaseURL, meta.RequestURLPath, meta.ChannelType), nil } @@ -59,7 +64,11 @@ func (a *Adaptor) SetupRequestHeader(c *gin.Context, req *http.Request, meta *me req.Header.Set("api-key", meta.APIKey) return nil } - req.Header.Set("Authorization", "Bearer "+meta.APIKey) + apiKey := meta.APIKey + if meta.ChannelType == channeltype.AIProxy { + apiKey = strings.TrimSuffix(apiKey, "#vip") + } + req.Header.Set("Authorization", "Bearer "+apiKey) if meta.ChannelType == channeltype.OpenRouter { req.Header.Set("HTTP-Referer", "https://github.com/songquanpeng/one-api") req.Header.Set("X-Title", "One API") diff --git a/relay/billing/ratio/image.go b/relay/billing/ratio/image.go index ced0c667..640fb0af 100644 --- a/relay/billing/ratio/image.go +++ b/relay/billing/ratio/image.go @@ -51,6 +51,4 @@ var ImagePromptLengthLimitations = map[string]int{ } var ImageOriginModelName = map[string]string{ - "ali-stable-diffusion-xl": "stable-diffusion-xl", - "ali-stable-diffusion-v1.5": "stable-diffusion-v1.5", }