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_GroupReplyRateLimiter='3' \
chatgpt_LocalchatReply='false' \ chatgpt_LocalchatReply='false' \
chatgpt_LocalchatRateLimiter='3' \ chatgpt_LocalchatRateLimiter='3' \
chatgpt_UseModel='gpt3' \ chatgpt_UseModel='gpt-3.5-turbo' \
chatgpt_ChatHistoryMessages='5' \ 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_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' \ chatgpt_Provider='openai' \

View file

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

View file

@ -24,6 +24,12 @@ namespace SecondBotEvents.Config
settings.Add("UseModel"); settings.Add("UseModel");
settings.Add("ChatHistoryMessages"); settings.Add("ChatHistoryMessages");
settings.Add("ChatPrompt"); settings.Add("ChatPrompt");
settings.Add("Provider");
}
public string GetProvider()
{
return ReadSettingAsString("Provider", "openai");
} }
public string GetChatPrompt() public string GetChatPrompt()
@ -49,7 +55,7 @@ namespace SecondBotEvents.Config
} }
public string GetUseModel() public string GetUseModel()
{ {
return ReadSettingAsString("UseModel", "gpt3"); return ReadSettingAsString("UseModel", "gpt-3.5-turbo");
} }
public bool GetEnabled() public bool GetEnabled()
{ {

View file

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

View file

@ -17,6 +17,7 @@ using OpenAI.ObjectModels.RequestModels;
using OpenAI.ObjectModels; using OpenAI.ObjectModels;
using OpenAI.ObjectModels.ResponseModels; using OpenAI.ObjectModels.ResponseModels;
using System.Threading.Tasks; using System.Threading.Tasks;
using OpenAI.Interfaces;
namespace SecondBotEvents.Services namespace SecondBotEvents.Services
{ {
@ -332,38 +333,32 @@ namespace SecondBotEvents.Services
Organization = myConfig.GetOrganizationId(), Organization = myConfig.GetOrganizationId(),
}); });
} }
if(myConfig.GetProvider() != "openai")
{
openAiService = new OpenAIService(new OpenAiOptions()
{
ApiKey = myConfig.GetApiKey(),
Organization = myConfig.GetOrganizationId(),
BaseDomain= myConfig.GetProvider(),
});
}
ChatCompletionCreateResponse completionResult = null; ChatCompletionCreateResponse completionResult = null;
if (myConfig.GetUseModel() == "gpt3") if (myConfig.GetProvider() != "openai")
{ {
completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{ {
Messages = messages, 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 completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{ {
Messages = messages, Messages = messages,
Model = Models.Gpt_3_5_Turbo Model = openAI_Models.GetModel(myConfig.GetUseModel())
});
}
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
}); });
} }
if(completionResult == null) if(completionResult == null)
{ {
@ -475,4 +470,24 @@ namespace SecondBotEvents.Services
LogFormater.Info("ChatGpt [accepting chat input]"); 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;
}
}
} }