chore: add groq

Kujtim Hoxha created

Change summary

internal/providers/configs/groq.json | 19 +++++++++++++++++++
internal/providers/providers.go      |  8 ++++++++
pkg/provider/provider.go             |  2 ++
3 files changed, 29 insertions(+)

Detailed changes

internal/providers/configs/groq.json 🔗

@@ -0,0 +1,19 @@
+{
+  "name": "Groq",
+  "id": "groq",
+  "api_key": "$GROQ_API_KEY",
+  "api_endpoint": "https://api.groq.com/openai/v1",
+  "type": "openai",
+  "default_large_model_id": "moonshotai/kimi-k2-instruct",
+  "default_small_model_id": "moonshotai/kimi-k2-instruct",
+  "models": [
+    {
+      "id": "moonshotai/kimi-k2-instruct",
+      "model": "Kimi K2",
+      "cost_per_1m_in": 1,
+      "cost_per_1m_out": 3,
+      "context_window": 131072,
+      "default_max_tokens": 10000
+    }
+  ]
+}

internal/providers/providers.go 🔗

@@ -33,6 +33,9 @@ var xAIConfig []byte
 //go:embed configs/bedrock.json
 var bedrockConfig []byte
 
+//go:embed configs/groq.json
+var groqConfig []byte
+
 // ProviderFunc is a function that returns a Provider.
 type ProviderFunc func() provider.Provider
 
@@ -44,6 +47,7 @@ var providerRegistry = []ProviderFunc{
 	bedrockProvider,
 	vertexAIProvider,
 	xAIProvider,
+	groqProvider,
 	openRouterProvider,
 }
 
@@ -96,3 +100,7 @@ func xAIProvider() provider.Provider {
 func openRouterProvider() provider.Provider {
 	return loadProviderFromConfig(openRouterConfig)
 }
+
+func groqProvider() provider.Provider {
+	return loadProviderFromConfig(groqConfig)
+}

pkg/provider/provider.go 🔗

@@ -28,6 +28,7 @@ const (
 	InferenceProviderBedrock    InferenceProvider = "bedrock"
 	InferenceProviderVertexAI   InferenceProvider = "vertexai"
 	InferenceProviderXAI        InferenceProvider = "xai"
+	InferenceProviderGROQ       InferenceProvider = "groq"
 	InferenceProviderOpenRouter InferenceProvider = "openrouter"
 )
 
@@ -69,6 +70,7 @@ func KnownProviders() []InferenceProvider {
 		InferenceProviderBedrock,
 		InferenceProviderVertexAI,
 		InferenceProviderXAI,
+		InferenceProviderGROQ,
 		InferenceProviderOpenRouter,
 	}
 }