From 2cc120f35bec812e506c781a4af127cb824336b9 Mon Sep 17 00:00:00 2001 From: Buer <42402987+MartialBE@users.noreply.github.com> Date: Sat, 20 Jan 2024 13:26:11 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20proxy=20bug=20(#49)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/requester/http_client.go | 2 ++ common/test/api.go | 2 +- model/channel.go | 2 +- providers/ali/base.go | 2 +- providers/azure/base.go | 2 +- providers/azure/image_generations.go | 2 -- providers/azureSpeech/base.go | 2 +- providers/baichuan/base.go | 2 +- providers/baidu/base.go | 2 +- providers/claude/base.go | 2 +- providers/gemini/base.go | 2 +- providers/openai/base.go | 2 +- providers/palm/base.go | 2 +- providers/tencent/base.go | 2 +- providers/xunfei/base.go | 7 ++++--- providers/zhipu/base.go | 2 +- 16 files changed, 19 insertions(+), 18 deletions(-) diff --git a/common/requester/http_client.go b/common/requester/http_client.go index af511629..469f2459 100644 --- a/common/requester/http_client.go +++ b/common/requester/http_client.go @@ -38,6 +38,8 @@ func (h *HTTPClient) getClientFromPool(proxyAddr string) *http.Client { } func (h *HTTPClient) returnClientToPool(client *http.Client) { + // 清除代理设置 + client.Transport = nil clientPool.Put(client) } diff --git a/common/test/api.go b/common/test/api.go index ba93e637..9812b5b6 100644 --- a/common/test/api.go +++ b/common/test/api.go @@ -48,7 +48,7 @@ func GetChannel(channelType int, baseUrl, other, porxy, modelMapping string) mod Type: channelType, BaseURL: &baseUrl, Other: other, - Proxy: porxy, + Proxy: &porxy, ModelMapping: &modelMapping, Key: GetTestToken(), } diff --git a/model/channel.go b/model/channel.go index 1c6d7121..97c6877d 100644 --- a/model/channel.go +++ b/model/channel.go @@ -25,7 +25,7 @@ type Channel struct { UsedQuota int64 `json:"used_quota" gorm:"bigint;default:0"` ModelMapping *string `json:"model_mapping" gorm:"type:varchar(1024);default:''"` Priority *int64 `json:"priority" gorm:"bigint;default:0"` - Proxy string `json:"proxy" gorm:"type:varchar(255);default:''"` + Proxy *string `json:"proxy" gorm:"type:varchar(255);default:''"` TestModel string `json:"test_model" gorm:"type:varchar(50);default:''"` } diff --git a/providers/ali/base.go b/providers/ali/base.go index 90fe2cf1..41f098ca 100644 --- a/providers/ali/base.go +++ b/providers/ali/base.go @@ -26,7 +26,7 @@ func (f AliProviderFactory) Create(channel *model.Channel) base.ProviderInterfac BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } } diff --git a/providers/azure/base.go b/providers/azure/base.go index f3c7a202..882fed7a 100644 --- a/providers/azure/base.go +++ b/providers/azure/base.go @@ -17,7 +17,7 @@ func (f AzureProviderFactory) Create(channel *model.Channel) base.ProviderInterf BaseProvider: base.BaseProvider{ Config: config, Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, openai.RequestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, openai.RequestErrorHandle), }, IsAzure: true, BalanceAction: false, diff --git a/providers/azure/image_generations.go b/providers/azure/image_generations.go index a2e143ce..882d8268 100644 --- a/providers/azure/image_generations.go +++ b/providers/azure/image_generations.go @@ -2,7 +2,6 @@ package azure import ( "errors" - "fmt" "net/http" "one-api/common" "one-api/providers/openai" @@ -85,7 +84,6 @@ func (p *AzureProvider) ResponseAzureImageHandler(resp *http.Response, azure *Im // 休眠 2 秒 time.Sleep(2 * time.Second) _, errWithCode = p.Requester.SendRequest(req, &getImageAzureResponse, false) - fmt.Println("getImageAzureResponse", getImageAzureResponse) if errWithCode != nil { return } diff --git a/providers/azureSpeech/base.go b/providers/azureSpeech/base.go index af029484..3bcca8a2 100644 --- a/providers/azureSpeech/base.go +++ b/providers/azureSpeech/base.go @@ -17,7 +17,7 @@ func (f AzureSpeechProviderFactory) Create(channel *model.Channel) base.Provider AudioSpeech: "/cognitiveservices/v1", }, Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, nil), + Requester: requester.NewHTTPRequester(*channel.Proxy, nil), }, } } diff --git a/providers/baichuan/base.go b/providers/baichuan/base.go index 671c1932..1912f334 100644 --- a/providers/baichuan/base.go +++ b/providers/baichuan/base.go @@ -18,7 +18,7 @@ func (f BaichuanProviderFactory) Create(channel *model.Channel) base.ProviderInt BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, openai.RequestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, openai.RequestErrorHandle), }, }, } diff --git a/providers/baidu/base.go b/providers/baidu/base.go index e513cd8f..ee82ebf5 100644 --- a/providers/baidu/base.go +++ b/providers/baidu/base.go @@ -29,7 +29,7 @@ func (f BaiduProviderFactory) Create(channel *model.Channel) base.ProviderInterf BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } } diff --git a/providers/claude/base.go b/providers/claude/base.go index f55ea977..38524a96 100644 --- a/providers/claude/base.go +++ b/providers/claude/base.go @@ -17,7 +17,7 @@ func (f ClaudeProviderFactory) Create(channel *model.Channel) base.ProviderInter BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } } diff --git a/providers/gemini/base.go b/providers/gemini/base.go index 6371936a..8b256701 100644 --- a/providers/gemini/base.go +++ b/providers/gemini/base.go @@ -19,7 +19,7 @@ func (f GeminiProviderFactory) Create(channel *model.Channel) base.ProviderInter BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } } diff --git a/providers/openai/base.go b/providers/openai/base.go index 74d3dc6a..eac3b502 100644 --- a/providers/openai/base.go +++ b/providers/openai/base.go @@ -37,7 +37,7 @@ func CreateOpenAIProvider(channel *model.Channel, baseURL string) *OpenAIProvide BaseProvider: base.BaseProvider{ Config: config, Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, RequestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, RequestErrorHandle), }, IsAzure: false, BalanceAction: true, diff --git a/providers/palm/base.go b/providers/palm/base.go index 5ef244e9..46cc851e 100644 --- a/providers/palm/base.go +++ b/providers/palm/base.go @@ -19,7 +19,7 @@ func (f PalmProviderFactory) Create(channel *model.Channel) base.ProviderInterfa BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } } diff --git a/providers/tencent/base.go b/providers/tencent/base.go index b079a774..b10fca3c 100644 --- a/providers/tencent/base.go +++ b/providers/tencent/base.go @@ -25,7 +25,7 @@ func (f TencentProviderFactory) Create(channel *model.Channel) base.ProviderInte BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } } diff --git a/providers/xunfei/base.go b/providers/xunfei/base.go index e4cd525f..fdaf8647 100644 --- a/providers/xunfei/base.go +++ b/providers/xunfei/base.go @@ -23,9 +23,9 @@ func (f XunfeiProviderFactory) Create(channel *model.Channel) base.ProviderInter BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, nil), + Requester: requester.NewHTTPRequester(*channel.Proxy, nil), }, - wsRequester: requester.NewWSRequester(channel.Proxy), + wsRequester: requester.NewWSRequester(*channel.Proxy), } } @@ -103,7 +103,8 @@ func (p *XunfeiProvider) buildXunfeiAuthUrl(hostUrl string, apiKey, apiSecret st } ul, err := url.Parse(hostUrl) if err != nil { - fmt.Println(err) + common.SysError("url parse error: " + err.Error()) + return "" } date := time.Now().UTC().Format(time.RFC1123) signString := []string{"host: " + ul.Host, "date: " + date, "GET " + ul.Path + " HTTP/1.1"} diff --git a/providers/zhipu/base.go b/providers/zhipu/base.go index c434be76..0cebbd0d 100644 --- a/providers/zhipu/base.go +++ b/providers/zhipu/base.go @@ -27,7 +27,7 @@ func (f ZhipuProviderFactory) Create(channel *model.Channel) base.ProviderInterf BaseProvider: base.BaseProvider{ Config: getConfig(), Channel: channel, - Requester: requester.NewHTTPRequester(channel.Proxy, requestErrorHandle), + Requester: requester.NewHTTPRequester(*channel.Proxy, requestErrorHandle), }, } }