vertexai.go

 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}