From 39efdbdba23f79e96edd79b7ab158c179ad007e0 Mon Sep 17 00:00:00 2001
From: Madpeter <57852827+Madpeterz@users.noreply.github.com>
Date: Tue, 1 Oct 2024 10:18:09 +0100
Subject: [PATCH] open router support
---
Dockerfile | 2 +-
LibreMetaverse/LibreMetaverse.csproj | 2 +-
SecondBotEvents/Config/ChatGptConfig.cs | 8 +++-
SecondBotEvents/SecondBotEvents.csproj | 10 ++--
SecondBotEvents/Services/ChatGptService.cs | 55 ++++++++++++++--------
5 files changed, 49 insertions(+), 28 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index e8af814..100c685 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -113,7 +113,7 @@ ENV basic_Username='' \
chatgpt_GroupReplyRateLimiter='3' \
chatgpt_LocalchatReply='false' \
chatgpt_LocalchatRateLimiter='3' \
- chatgpt_UseModel='gpt3' \
+ chatgpt_UseModel='gpt-3.5-turbo' \
chatgpt_ChatHistoryMessages='5' \
chatgpt_ChatPrompt='respond as if you are a horse that knows its going to the glue factory and you are upset about this fact' \
chatgpt_Provider='openai' \
diff --git a/LibreMetaverse/LibreMetaverse.csproj b/LibreMetaverse/LibreMetaverse.csproj
index e79a5e0..e7faecc 100644
--- a/LibreMetaverse/LibreMetaverse.csproj
+++ b/LibreMetaverse/LibreMetaverse.csproj
@@ -43,7 +43,7 @@
True
-
+
diff --git a/SecondBotEvents/Config/ChatGptConfig.cs b/SecondBotEvents/Config/ChatGptConfig.cs
index ed9749b..d3d14eb 100644
--- a/SecondBotEvents/Config/ChatGptConfig.cs
+++ b/SecondBotEvents/Config/ChatGptConfig.cs
@@ -24,6 +24,12 @@ namespace SecondBotEvents.Config
settings.Add("UseModel");
settings.Add("ChatHistoryMessages");
settings.Add("ChatPrompt");
+ settings.Add("Provider");
+ }
+
+ public string GetProvider()
+ {
+ return ReadSettingAsString("Provider", "openai");
}
public string GetChatPrompt()
@@ -49,7 +55,7 @@ namespace SecondBotEvents.Config
}
public string GetUseModel()
{
- return ReadSettingAsString("UseModel", "gpt3");
+ return ReadSettingAsString("UseModel", "gpt-3.5-turbo");
}
public bool GetEnabled()
{
diff --git a/SecondBotEvents/SecondBotEvents.csproj b/SecondBotEvents/SecondBotEvents.csproj
index a234a8f..d49678e 100644
--- a/SecondBotEvents/SecondBotEvents.csproj
+++ b/SecondBotEvents/SecondBotEvents.csproj
@@ -13,18 +13,18 @@
-
-
-
+
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/SecondBotEvents/Services/ChatGptService.cs b/SecondBotEvents/Services/ChatGptService.cs
index ec00633..9d91bf8 100644
--- a/SecondBotEvents/Services/ChatGptService.cs
+++ b/SecondBotEvents/Services/ChatGptService.cs
@@ -17,6 +17,7 @@ using OpenAI.ObjectModels.RequestModels;
using OpenAI.ObjectModels;
using OpenAI.ObjectModels.ResponseModels;
using System.Threading.Tasks;
+using OpenAI.Interfaces;
namespace SecondBotEvents.Services
{
@@ -332,38 +333,32 @@ namespace SecondBotEvents.Services
Organization = myConfig.GetOrganizationId(),
});
}
+ if(myConfig.GetProvider() != "openai")
+ {
+ openAiService = new OpenAIService(new OpenAiOptions()
+ {
+ ApiKey = myConfig.GetApiKey(),
+ Organization = myConfig.GetOrganizationId(),
+ BaseDomain= myConfig.GetProvider(),
+ });
+ }
ChatCompletionCreateResponse completionResult = null;
- if (myConfig.GetUseModel() == "gpt3")
+ if (myConfig.GetProvider() != "openai")
{
completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{
Messages = messages,
- Model = Models.Gpt_3_5_Turbo
+ Model = myConfig.GetUseModel(),
});
}
- else if (myConfig.GetUseModel() == "gpt-3.5-turbo")
+ else
{
completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{
Messages = messages,
- Model = Models.Gpt_3_5_Turbo
- });
- }
- else if(myConfig.GetUseModel() == "gpt-4-mini")
- {
- completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
- {
- Messages = messages,
- Model = Models.Gpt_4o_mini
- });
- }
- else if (myConfig.GetUseModel() == "gpt-4-turbo")
- {
- completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
- {
- Messages = messages,
- Model = Models.Gpt_4_turbo
+ Model = openAI_Models.GetModel(myConfig.GetUseModel())
});
+
}
if(completionResult == null)
{
@@ -475,4 +470,24 @@ namespace SecondBotEvents.Services
LogFormater.Info("ChatGpt [accepting chat input]");
}
}
+
+ public class openAI_Models
+ {
+ public static string GetModel(string input)
+ {
+ if (input == "gpt-3.5-turbo")
+ {
+ return Models.Gpt_3_5_Turbo;
+ }
+ else if (input == "gpt-4-mini")
+ {
+ return Models.Gpt_4o_mini;
+ }
+ else if (input == "gpt-4-turbo")
+ {
+ return Models.Gpt_4_turbo;
+ }
+ return input;
+ }
+ }
}