From c675937cd232c86f6ffcbe44f3bec730b487d4c0 Mon Sep 17 00:00:00 2001 From: Scott Lilly <2271154+ScottLilly@users.noreply.github.com> Date: Tue, 22 Apr 2025 07:36:08 -0400 Subject: [PATCH] Added Grok API --- Legba.Engine/Enums.cs | 6 +++- .../LlmConnectors/LlmConnectorFactory.cs | 11 +------- Legba.WPF/appsettings.json | 28 +++++++++++++++++++ 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/Legba.Engine/Enums.cs b/Legba.Engine/Enums.cs index 6e0d925..1cc5cec 100644 --- a/Legba.Engine/Enums.cs +++ b/Legba.Engine/Enums.cs @@ -10,7 +10,11 @@ public enum Llm [Description("OpenAI")] OpenAi, [Description("Perplexity")] - Perplexity + Perplexity, + [Description("Grok")] + Grok, + [Description("Groq")] + Groq } public enum Role diff --git a/Legba.Engine/LlmConnectors/LlmConnectorFactory.cs b/Legba.Engine/LlmConnectors/LlmConnectorFactory.cs index bdba785..5467ceb 100644 --- a/Legba.Engine/LlmConnectors/LlmConnectorFactory.cs +++ b/Legba.Engine/LlmConnectors/LlmConnectorFactory.cs @@ -13,15 +13,6 @@ public LlmConnectorFactory(IHttpClientFactory httpClientFactory) public ILlmConnector GetLlmConnector(Settings.Llm llm, Settings.Model model) { - switch(llm.Name) - { - case Enums.Llm.OpenAi: - return new OpenAi.OpenAiConnector(_httpClientFactory, llm, model); - case Enums.Llm.Perplexity: - // Perplexity uses the same connector as OpenAI - return new OpenAi.OpenAiConnector(_httpClientFactory, llm, model); - default: - throw new Exception($"Unknown LLM Connector: {llm.Name} - {model.Name}"); - } + return new OpenAi.OpenAiConnector(_httpClientFactory, llm, model); } } diff --git a/Legba.WPF/appsettings.json b/Legba.WPF/appsettings.json index 63c14c1..2a8e1b2 100644 --- a/Legba.WPF/appsettings.json +++ b/Legba.WPF/appsettings.json @@ -36,6 +36,34 @@ "url": "https://api.perplexity.ai/chat/completions" } ] + }, + { + "name": "Grok", + "keys": { + "apiKey": "YOUR_API_KEY" + }, + "models": [ + { + "name": "Grok 3.0 mini fast beta", + "id": "grok-3-mini-fast-beta", + "url": "https://api.x.ai/v1/chat/completions" + }, + { + "name": "Grok 3.0 mini beta", + "id": "grok-3-mini-beta", + "url": "https://api.x.ai/v1/chat/completions" + }, + { + "name": "Grok 3.0 fast beta", + "id": "grok-3-fast-beta", + "url": "https://api.x.ai/v1/chat/completions" + }, + { + "name": "Grok 3.0 beta", + "id": "grok-3-beta", + "url": "https://api.x.ai/v1/chat/completions" + } + ]" } ] } \ No newline at end of file