Skip to content

Commit 7b97883

Browse files
committed
Always override the http client
Signed-off-by: David Gageot <david.gageot@docker.com>
1 parent 56e5993 commit 7b97883

4 files changed

Lines changed: 21 additions & 4 deletions

File tree

pkg/httpclient/client.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package httpclient
2+
3+
import "net/http"
4+
5+
func NewHttpClient() *http.Client {
6+
return &http.Client{}
7+
}

pkg/model/provider/anthropic/client.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/docker/cagent/pkg/chat"
1515
latest "github.com/docker/cagent/pkg/config/v2"
1616
"github.com/docker/cagent/pkg/environment"
17+
"github.com/docker/cagent/pkg/httpclient"
1718
"github.com/docker/cagent/pkg/model/provider/base"
1819
"github.com/docker/cagent/pkg/model/provider/options"
1920
"github.com/docker/cagent/pkg/tools"
@@ -81,6 +82,7 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro
8182
slog.Debug("Anthropic API key found, creating client")
8283
requestOptions := []option.RequestOption{
8384
option.WithAPIKey(authToken),
85+
option.WithHTTPClient(httpclient.NewHttpClient()),
8486
}
8587
if cfg.BaseURL != "" {
8688
requestOptions = append(requestOptions, option.WithBaseURL(cfg.BaseURL))
@@ -108,6 +110,7 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro
108110
option.WithAuthToken(authToken),
109111
option.WithAPIKey(authToken),
110112
option.WithBaseURL(gateway),
113+
option.WithHTTPClient(httpclient.NewHttpClient()),
111114
), nil
112115
}
113116
}

pkg/model/provider/gemini/client.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/docker/cagent/pkg/chat"
1515
latest "github.com/docker/cagent/pkg/config/v2"
1616
"github.com/docker/cagent/pkg/environment"
17+
"github.com/docker/cagent/pkg/httpclient"
1718
"github.com/docker/cagent/pkg/model/provider/base"
1819
"github.com/docker/cagent/pkg/model/provider/options"
1920
"github.com/docker/cagent/pkg/tools"
@@ -49,8 +50,9 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro
4950
}
5051

5152
client, err := genai.NewClient(ctx, &genai.ClientConfig{
52-
APIKey: apiKey,
53-
Backend: genai.BackendGeminiAPI,
53+
APIKey: apiKey,
54+
Backend: genai.BackendGeminiAPI,
55+
HTTPClient: httpclient.NewHttpClient(),
5456
})
5557
if err != nil {
5658
return nil, err
@@ -75,8 +77,9 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro
7577
}
7678

7779
return genai.NewClient(ctx, &genai.ClientConfig{
78-
APIKey: authToken,
79-
Backend: genai.BackendGeminiAPI,
80+
APIKey: authToken,
81+
Backend: genai.BackendGeminiAPI,
82+
HTTPClient: httpclient.NewHttpClient(),
8083
HTTPOptions: genai.HTTPOptions{
8184
BaseURL: gateway,
8285
Headers: http.Header{

pkg/model/provider/openai/client.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/docker/cagent/pkg/chat"
1515
latest "github.com/docker/cagent/pkg/config/v2"
1616
"github.com/docker/cagent/pkg/environment"
17+
"github.com/docker/cagent/pkg/httpclient"
1718
"github.com/docker/cagent/pkg/model/provider/base"
1819
"github.com/docker/cagent/pkg/model/provider/options"
1920
"github.com/docker/cagent/pkg/tools"
@@ -71,6 +72,8 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro
7172
openaiConfig.BaseURL = cfg.BaseURL
7273
}
7374

75+
openaiConfig.HTTPClient = httpclient.NewHttpClient()
76+
7477
// TODO: Move this logic to ProviderAliases as a config function
7578
if cfg.ProviderOpts != nil {
7679
switch cfg.Provider { //nolint:gocritic
@@ -106,6 +109,7 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro
106109

107110
openaiConfig := openai.DefaultConfig(authToken)
108111
openaiConfig.BaseURL = gateway + "/v1"
112+
openaiConfig.HTTPClient = httpclient.NewHttpClient()
109113

110114
return openai.NewClientWithConfig(openaiConfig), nil
111115
}

0 commit comments

Comments
 (0)