1package providers
2
3import (
4 _ "embed"
5 "encoding/json"
6 "log"
7)
8
9//go:embed configs/openai.json
10var openAIConfig []byte
11
12//go:embed configs/anthropic.json
13var anthropicConfig []byte
14
15//go:embed configs/gemini.json
16var geminiConfig []byte
17
18//go:embed configs/openrouter.json
19var openRouterConfig []byte
20
21//go:embed configs/azure.json
22var azureConfig []byte
23
24//go:embed configs/vertexai.json
25var vertexAIConfig []byte
26
27//go:embed configs/xai.json
28var xAIConfig []byte
29
30//go:embed configs/bedrock.json
31var bedrockConfig []byte
32
33func loadProviderFromConfig(configData []byte) Provider {
34 var provider Provider
35 if err := json.Unmarshal(configData, &provider); err != nil {
36 log.Printf("Error loading provider config: %v", err)
37 return Provider{}
38 }
39 return provider
40}
41
42func openAIProvider() Provider {
43 return loadProviderFromConfig(openAIConfig)
44}
45
46func anthropicProvider() Provider {
47 return loadProviderFromConfig(anthropicConfig)
48}
49
50func geminiProvider() Provider {
51 return loadProviderFromConfig(geminiConfig)
52}
53
54func azureProvider() Provider {
55 return loadProviderFromConfig(azureConfig)
56}
57
58func bedrockProvider() Provider {
59 return loadProviderFromConfig(bedrockConfig)
60}
61
62func vertexAIProvider() Provider {
63 return loadProviderFromConfig(vertexAIConfig)
64}
65
66func xAIProvider() Provider {
67 return loadProviderFromConfig(xAIConfig)
68}
69
70func openRouterProvider() Provider {
71 return loadProviderFromConfig(openRouterConfig)
72}