open router support

This commit is contained in:
Madpeter 2024-10-01 10:18:09 +01:00
parent f990f56bf0
commit 39efdbdba2
5 changed files with 49 additions and 28 deletions

View file

@ -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' \

View file

@ -43,7 +43,7 @@
<Optimize>True</Optimize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="log4net" Version="2.0.17" />
<PackageReference Include="log4net" Version="3.0.1" />
<PackageReference Include="Microsoft.Extensions.ObjectPool" Version="8.0.8" />
<PackageReference Include="OggVorbisEncoder" Version="1.2.2" />
<PackageReference Include="OpenJpegDotNet-LMV" Version="2.4.0.5" />

View file

@ -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()
{

View file

@ -13,18 +13,18 @@
<None Remove="Services\template.html" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Betalgo.OpenAI" Version="8.6.2" />
<PackageReference Include="Discord.Net" Version="3.15.3" />
<PackageReference Include="Discord.Net.WebSocket" Version="3.15.3" />
<PackageReference Include="Betalgo.OpenAI" Version="8.7.1" />
<PackageReference Include="Discord.Net" Version="3.16.0" />
<PackageReference Include="Discord.Net.WebSocket" Version="3.16.0" />
<PackageReference Include="EmbedIO" Version="3.4.3" />
<PackageReference Include="Microsoft.NET.Build.Containers" Version="8.0.401" />
<PackageReference Include="Microsoft.NET.Build.Containers" Version="8.0.402" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.0" />
<PackageReference Include="MSBuildGitHash" Version="2.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="RestSharp" Version="111.4.1" />
<PackageReference Include="RestSharp" Version="112.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LibreMetaverse\LibreMetaverse.csproj" />

View file

@ -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;
}
}
}