providers.go

 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}