This commit is contained in:
Haiping Chen 2023-06-19 11:33:27 -05:00
parent 9b2b0b71e4
commit e450f5dbff
9 changed files with 92 additions and 9 deletions

View file

@ -17,7 +17,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{2635
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Messages", "Messages", "{64264688-0F5C-4AB0-8F2B-B59B717CCE00}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{D5293208-2BEF-42FC-A64C-5954F61720BA}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LLMs", "LLMs", "{D5293208-2BEF-42FC-A64C-5954F61720BA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Plugin.AzureOpenAI", "src\Plugins\BotSharp.Plugin.AzureOpenAI\BotSharp.Plugin.AzureOpenAI.csproj", "{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}"
EndProject
@ -33,9 +33,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{32FAFFFE
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "tests\UnitTest\UnitTest.csproj", "{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BotSharp.Plugin.MetaAI", "src\Plugins\BotSharp.Plugin.MetaAI\BotSharp.Plugin.MetaAI.csproj", "{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Plugin.MetaAI", "src\Plugins\BotSharp.Plugin.MetaAI\BotSharp.Plugin.MetaAI.csproj", "{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Databases", "Databases", "{53E7CD86-0D19-40D9-A0FA-AB4613837E89}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VectorStores", "VectorStores", "{53E7CD86-0D19-40D9-A0FA-AB4613837E89}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Plugin.Qdrant", "src\Plugins\BotSharp.Plugin.Qdrant\BotSharp.Plugin.Qdrant.csproj", "{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}"
EndProject
@ -43,6 +43,8 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
GPU|Any CPU = GPU|Any CPU
GPU|x64 = GPU|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
EndGlobalSection
@ -51,6 +53,10 @@ Global
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Debug|x64.ActiveCfg = Debug|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Debug|x64.Build.0 = Debug|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|Any CPU.Build.0 = Release|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|x64.ActiveCfg = Release|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|x64.Build.0 = Release|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Release|Any CPU.Build.0 = Release|Any CPU
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Release|x64.ActiveCfg = Release|Any CPU
@ -59,6 +65,10 @@ Global
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Debug|x64.ActiveCfg = Debug|x64
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Debug|x64.Build.0 = Debug|x64
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|Any CPU.Build.0 = Release|Any CPU
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|x64.ActiveCfg = Release|x64
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|x64.Build.0 = Release|x64
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Release|Any CPU.Build.0 = Release|Any CPU
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Release|x64.ActiveCfg = Release|x64
@ -67,6 +77,10 @@ Global
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Debug|x64.ActiveCfg = Debug|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Debug|x64.Build.0 = Debug|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|Any CPU.Build.0 = Release|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|x64.ActiveCfg = Release|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|x64.Build.0 = Release|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Release|Any CPU.Build.0 = Release|Any CPU
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Release|x64.ActiveCfg = Release|Any CPU
@ -75,6 +89,10 @@ Global
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Debug|x64.ActiveCfg = Debug|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Debug|x64.Build.0 = Debug|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|Any CPU.Build.0 = Release|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|x64.ActiveCfg = Release|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|x64.Build.0 = Release|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Release|Any CPU.Build.0 = Release|Any CPU
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Release|x64.ActiveCfg = Release|Any CPU
@ -83,6 +101,10 @@ Global
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Debug|Any CPU.Build.0 = Debug|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Debug|x64.ActiveCfg = Debug|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Debug|x64.Build.0 = Debug|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|Any CPU.Build.0 = Release|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|x64.ActiveCfg = Release|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|x64.Build.0 = Release|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Release|Any CPU.ActiveCfg = Release|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Release|Any CPU.Build.0 = Release|Any CPU
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Release|x64.ActiveCfg = Release|Any CPU
@ -91,6 +113,10 @@ Global
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Debug|x64.ActiveCfg = Debug|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Debug|x64.Build.0 = Debug|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|Any CPU.Build.0 = Release|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|x64.ActiveCfg = Release|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|x64.Build.0 = Release|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Release|Any CPU.Build.0 = Release|Any CPU
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Release|x64.ActiveCfg = Release|Any CPU
@ -99,6 +125,10 @@ Global
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.Debug|x64.ActiveCfg = Debug|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.Debug|x64.Build.0 = Debug|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.GPU|Any CPU.Build.0 = Release|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.GPU|x64.ActiveCfg = Release|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.GPU|x64.Build.0 = Release|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.Release|Any CPU.Build.0 = Release|Any CPU
{0149F6C2-4CF8-4904-A545-54F3278BEA74}.Release|x64.ActiveCfg = Release|Any CPU
@ -107,6 +137,10 @@ Global
{2323A7A3-E938-488D-A57E-638638054BC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.Debug|x64.ActiveCfg = Debug|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.Debug|x64.Build.0 = Debug|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|Any CPU.Build.0 = Release|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|x64.ActiveCfg = Release|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|x64.Build.0 = Release|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.Release|Any CPU.Build.0 = Release|Any CPU
{2323A7A3-E938-488D-A57E-638638054BC4}.Release|x64.ActiveCfg = Release|Any CPU
@ -115,6 +149,10 @@ Global
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Debug|x64.ActiveCfg = Debug|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Debug|x64.Build.0 = Debug|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|Any CPU.Build.0 = Release|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|x64.ActiveCfg = Release|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|x64.Build.0 = Release|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Release|Any CPU.Build.0 = Release|Any CPU
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Release|x64.ActiveCfg = Release|Any CPU
@ -123,6 +161,10 @@ Global
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Debug|x64.ActiveCfg = Debug|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Debug|x64.Build.0 = Debug|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|Any CPU.Build.0 = Release|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|x64.ActiveCfg = Release|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|x64.Build.0 = Release|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Release|Any CPU.Build.0 = Release|Any CPU
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Release|x64.ActiveCfg = Release|Any CPU
@ -131,6 +173,10 @@ Global
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Debug|x64.ActiveCfg = Debug|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Debug|x64.Build.0 = Debug|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|Any CPU.ActiveCfg = Release|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|Any CPU.Build.0 = Release|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|x64.ActiveCfg = Release|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|x64.Build.0 = Release|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Release|Any CPU.Build.0 = Release|Any CPU
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Release|x64.ActiveCfg = Release|Any CPU

View file

@ -0,0 +1,6 @@
namespace BotSharp.Abstraction.Conversations.Settings;
public class ConversationSetting
{
}

View file

@ -3,4 +3,5 @@ namespace BotSharp.Abstraction.Plugins;
public class PluginLoaderSettings
{
public string[] Assemblies { get; set; }
public string[] Plugins { get; set; }
}

View file

@ -55,7 +55,7 @@ public class ConversationController : ControllerBase, IApiAdapter
return new MessageResponseModel
{
Content = container.Output.Content
Content = result.IsSuccess ? container.Output.Content : result.Messages.First()
};
}
}

View file

@ -1,6 +1,6 @@
using BotSharp.Abstraction.Infrastructures.ContentTransfers;
using BotSharp.Abstraction.Infrastructures.ContentTransmitters;
using BotSharp.Abstraction.Models;
using BotSharp.Core.Repository.Collections;
using LLama;
using System.IO;
@ -84,6 +84,16 @@ public class ChatCompletionProvider : IServiceZone
public async Task Serving(ContentContainer content)
{
string output = "";
var prompt = GetInstruction();
var conversations = string.Join("\n ", content.Conversations.Select(x => $"{x.Role}: {x.Content.Replace("user:", "")}")).Trim();
conversations += "\n assistant: ";
foreach (var response in _model.Chat(conversations, prompt, "UTF-8"))
{
Console.Write(response);
output += response;
}
Console.WriteLine();
}
}

View file

@ -10,6 +10,6 @@ public class LLamaSharpPlugin : IBotSharpPlugin
config.Bind("LlamaSharp", llamaSharpSettings);
services.AddSingleton(x => llamaSharpSettings);
// services.AddScoped<IServiceZone, ChatCompletionProvider>();
services.AddScoped<IServiceZone, ChatCompletionProvider>();
}
}

View file

@ -1,6 +1,8 @@
using Microsoft.Extensions.Configuration;
using System.Drawing;
using System.IO;
using System.Reflection;
using Console = Colorful.Console;
namespace BotSharp.Core.Plugins;
@ -38,8 +40,15 @@ public class PluginLoader
foreach (var module in modules)
{
module.RegisterDI(_services, _config);
Console.WriteLine($"Loaded plugin {module.GetType().Name} from {assemblyName}.");
if (_settings.Plugins.Contains(module.GetType().Name))
{
module.RegisterDI(_services, _config);
Console.WriteLine($"Loaded plugin {module.GetType().Name} from {assemblyName}.", Color.Green);
}
else
{
Console.WriteLine($"Skipped plugin {module.GetType().Name} from {assemblyName}.", Color.Yellow);
}
}
_modules.AddRange(modules);

View file

@ -9,6 +9,7 @@ global using EntityFrameworkCore.BootKit;
global using BotSharp.Abstraction.Agents;
global using BotSharp.Abstraction.Conversations;
global using BotSharp.Abstraction.Infrastructures.ContentTransmitters;
global using BotSharp.Abstraction.Infrastructures.ContentTransfers;
global using BotSharp.Abstraction.Knowledges;
global using BotSharp.Abstraction.Users;
global using BotSharp.Core.Repository;

View file

@ -13,6 +13,10 @@
"Key": "31ba6052aa6f4569901facc3a41fcb4a"
},
"Conversation": {
},
"LlamaSharp": {
"Interactive": true,
"ModelPath": "C:\\Users\\haipi\\Downloads\\wizard-vicuna-13B.ggmlv3.q8_0.bin",
@ -59,6 +63,12 @@
"BotSharp.Plugin.AzureOpenAI",
"BotSharp.Plugin.MetaAI",
"BotSharp.Plugin.Qdrant"
],
"Plugins": [
// "LLamaSharpPlugin",
"AzureOpenAiPlugin",
"MetaAiPlugin",
"QdrantPlugin"
]
}
}