1package provider
2
3import (
4 "context"
5 "log/slog"
6 "strings"
7
8 "google.golang.org/genai"
9)
10
11type VertexAIClient ProviderClient
12
13func newVertexAIClient(opts providerClientOptions) VertexAIClient {
14 project := opts.extraParams["project"]
15 location := opts.extraParams["location"]
16 client, err := genai.NewClient(context.Background(), &genai.ClientConfig{
17 Project: project,
18 Location: location,
19 Backend: genai.BackendVertexAI,
20 })
21 if err != nil {
22 slog.Error("Failed to create VertexAI client", "error", err)
23 return nil
24 }
25
26 model := opts.model(opts.modelType)
27 if strings.Contains(model.ID, "anthropic") || strings.Contains(model.ID, "claude-sonnet") {
28 return newAnthropicClient(opts, AnthropicClientTypeVertex)
29 }
30 return &geminiClient{
31 providerOptions: opts,
32 client: client,
33 }
34}