From 6224a04b9620d7d0d5f4b7badad3c3c6bbd9d5a1 Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Thu, 18 Jan 2024 05:30:28 -0600 Subject: [PATCH] dotnet run --project .\src\WebStarter --- BotSharp.sln | 13 ++++++++++++- docs/quick-start/get-started.md | 8 ++++++-- .../BotSharp.Logger/BotSharp.Logger.csproj | 4 ++-- .../Actions/ExecuteQueryAction.cs | 8 ++++---- ....csproj => BotSharp.Plugin.SqlDriver.csproj} | 5 ++++- .../Models/LlmInputArgs.cs | 2 +- .../{SqlHeroSetting.cs => SqlDriverSetting.cs} | 2 +- .../{SqlHeroPlugin.cs => SqlDriverPlugin.cs} | 11 ++++++----- .../agent.json | 4 ++-- .../instruction.liquid | 2 +- src/WebStarter/WebStarter.csproj | 17 ++++++----------- src/WebStarter/appsettings.json | 15 ++++++++++++++- 12 files changed, 59 insertions(+), 32 deletions(-) rename src/Plugins/BotSharp.Plugin.SqlDriver/{BotSharp.Plugin.SqlHero.csproj => BotSharp.Plugin.SqlDriver.csproj} (63%) rename src/Plugins/BotSharp.Plugin.SqlDriver/Settings/{SqlHeroSetting.cs => SqlDriverSetting.cs} (77%) rename src/Plugins/BotSharp.Plugin.SqlDriver/{SqlHeroPlugin.cs => SqlDriverPlugin.cs} (71%) diff --git a/BotSharp.sln b/BotSharp.sln index 6806adf1..e161ed0d 100644 --- a/BotSharp.sln +++ b/BotSharp.sln @@ -77,7 +77,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Plugin.TelegramBot EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Logger", "src\Infrastructure\BotSharp.Logger\BotSharp.Logger.csproj", "{5CA3335E-E6AD-46FD-B277-29BBC3A16500}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BotSharp.Plugin.HttpHandler", "src\Plugins\BotSharp.Plugin.HttpHandler\BotSharp.Plugin.HttpHandler.csproj", "{32D9E720-6FE6-4F29-94B1-B10B05BFAD75}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Plugin.HttpHandler", "src\Plugins\BotSharp.Plugin.HttpHandler\BotSharp.Plugin.HttpHandler.csproj", "{32D9E720-6FE6-4F29-94B1-B10B05BFAD75}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Plugin.SqlDriver", "src\Plugins\BotSharp.Plugin.SqlDriver\BotSharp.Plugin.SqlDriver.csproj", "{D775DB67-A4B4-44E5-9144-522689590057}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -303,6 +305,14 @@ Global {32D9E720-6FE6-4F29-94B1-B10B05BFAD75}.Release|Any CPU.Build.0 = Release|Any CPU {32D9E720-6FE6-4F29-94B1-B10B05BFAD75}.Release|x64.ActiveCfg = Release|Any CPU {32D9E720-6FE6-4F29-94B1-B10B05BFAD75}.Release|x64.Build.0 = Release|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Debug|x64.ActiveCfg = Debug|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Debug|x64.Build.0 = Debug|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Release|Any CPU.Build.0 = Release|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Release|x64.ActiveCfg = Release|Any CPU + {D775DB67-A4B4-44E5-9144-522689590057}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -342,6 +352,7 @@ Global {DCA18996-4D3A-4E98-BCD0-1FB77C59253E} = {64264688-0F5C-4AB0-8F2B-B59B717CCE00} {5CA3335E-E6AD-46FD-B277-29BBC3A16500} = {E29DC6C4-5E57-48C5-BCB0-6B8F84782749} {32D9E720-6FE6-4F29-94B1-B10B05BFAD75} = {51AFE054-AE99-497D-A593-69BAEFB5106F} + {D775DB67-A4B4-44E5-9144-522689590057} = {51AFE054-AE99-497D-A593-69BAEFB5106F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A9969D89-C98B-40A5-A12B-FC87E55B3A19} diff --git a/docs/quick-start/get-started.md b/docs/quick-start/get-started.md index a3b8e1b3..4f6cf738 100644 --- a/docs/quick-start/get-started.md +++ b/docs/quick-start/get-started.md @@ -6,10 +6,14 @@ In order to allow developers to experience the convenience of BotSharp as quickl ### Run in command line -```console +```shell git clone https://github.com/SciSharp/BotSharp cd BotSharp +# Run PizzzaBot showcase with package reference dotnet run --project .\src\WebStarter\WebStarter.csproj -p SolutionName=PizzaBot + +# Use BotSharp to include all dependent projects with latest source code +dotnet run --project .\src\WebStarter ``` Here you go, you will see this running screen. @@ -27,7 +31,7 @@ BotSharp has an official front-end project to be used in conjunction with the ba ```console git clone https://github.com/SciSharp/BotSharp-UI cd BotSharp-UI -npm install --force +npm install npm run dev ``` diff --git a/src/Infrastructure/BotSharp.Logger/BotSharp.Logger.csproj b/src/Infrastructure/BotSharp.Logger/BotSharp.Logger.csproj index a73c11e3..05c7a42f 100644 --- a/src/Infrastructure/BotSharp.Logger/BotSharp.Logger.csproj +++ b/src/Infrastructure/BotSharp.Logger/BotSharp.Logger.csproj @@ -1,7 +1,7 @@ - + - net6.0 + netstandard2.1 enable enable $(LangVersion) diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/Actions/ExecuteQueryAction.cs b/src/Plugins/BotSharp.Plugin.SqlDriver/Actions/ExecuteQueryAction.cs index df9181af..90807e79 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/Actions/ExecuteQueryAction.cs +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/Actions/ExecuteQueryAction.cs @@ -1,21 +1,21 @@ using BotSharp.Abstraction.Conversations.Models; using BotSharp.Abstraction.Functions; -using BotSharp.Plugin.SqlHero.Models; +using BotSharp.Plugin.SqlDriver.Models; using BotSharp.Plugin.SqlHero.Settings; using Dapper; using MySqlConnector; using System.Text.Json; using System.Threading.Tasks; -namespace BotSharp.Plugin.SqlHero.Actions; +namespace BotSharp.Plugin.SqlDriver.Actions; public class ExecuteQueryAction : IFunctionCallback { public string Name => "execute_sql"; - private readonly SqlHeroSetting _setting; + private readonly SqlDriverSetting _setting; - public ExecuteQueryAction(SqlHeroSetting setting) + public ExecuteQueryAction(SqlDriverSetting setting) { _setting = setting; } diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/BotSharp.Plugin.SqlHero.csproj b/src/Plugins/BotSharp.Plugin.SqlDriver/BotSharp.Plugin.SqlDriver.csproj similarity index 63% rename from src/Plugins/BotSharp.Plugin.SqlDriver/BotSharp.Plugin.SqlHero.csproj rename to src/Plugins/BotSharp.Plugin.SqlDriver/BotSharp.Plugin.SqlDriver.csproj index ba521fa9..88885015 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/BotSharp.Plugin.SqlHero.csproj +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/BotSharp.Plugin.SqlDriver.csproj @@ -3,7 +3,10 @@ netstandard2.1 enable - $(MSBuildProjectName.Replace(" ", "_")) + $(LangVersion) + $(BotSharpVersion) + $(GeneratePackageOnBuild) + $(GenerateDocumentationFile) diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/Models/LlmInputArgs.cs b/src/Plugins/BotSharp.Plugin.SqlDriver/Models/LlmInputArgs.cs index 0d12b7af..e17d57de 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/Models/LlmInputArgs.cs +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/Models/LlmInputArgs.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace BotSharp.Plugin.SqlHero.Models; +namespace BotSharp.Plugin.SqlDriver.Models; public class LlmInputArgs { diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/Settings/SqlHeroSetting.cs b/src/Plugins/BotSharp.Plugin.SqlDriver/Settings/SqlDriverSetting.cs similarity index 77% rename from src/Plugins/BotSharp.Plugin.SqlDriver/Settings/SqlHeroSetting.cs rename to src/Plugins/BotSharp.Plugin.SqlDriver/Settings/SqlDriverSetting.cs index 4ffe9aab..8ccd2215 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/Settings/SqlHeroSetting.cs +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/Settings/SqlDriverSetting.cs @@ -1,6 +1,6 @@ namespace BotSharp.Plugin.SqlHero.Settings; -public class SqlHeroSetting +public class SqlDriverSetting { public string MySqlConnectionString { get; set; } } diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/SqlHeroPlugin.cs b/src/Plugins/BotSharp.Plugin.SqlDriver/SqlDriverPlugin.cs similarity index 71% rename from src/Plugins/BotSharp.Plugin.SqlDriver/SqlHeroPlugin.cs rename to src/Plugins/BotSharp.Plugin.SqlDriver/SqlDriverPlugin.cs index b5cdd2a0..963304a3 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/SqlHeroPlugin.cs +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/SqlDriverPlugin.cs @@ -6,17 +6,18 @@ using System; using System.Drawing; using System.Text.RegularExpressions; -namespace BotSharp.Plugin.SqlHero; +namespace BotSharp.Plugin.SqlDriver; -public class SqlHeroPlugin : IBotSharpPlugin +public class SqlDriverPlugin : IBotSharpPlugin { - public string Name => "SQL Hero"; + public string Id => "da7b6f7a-b1f0-455a-9939-ad2d493e929e"; + public string Name => "SQL Driver"; public string Description => "Convert the requirements into corresponding SQL statements and execute if needed"; public void RegisterDI(IServiceCollection services, IConfiguration config) { - var settings = new SqlHeroSetting(); - config.Bind("SqlHero", settings); + var settings = new SqlDriverSetting(); + config.Bind("SqlDriver", settings); services.AddSingleton(x => { Console.WriteLine($"Loaded SqlHero settings:: {Regex.Replace(settings.MySqlConnectionString, "password=.*?;", "password=******;")}", Color.Yellow); diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/agent.json b/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/agent.json index 60e200aa..5d24c701 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/agent.json +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/agent.json @@ -1,9 +1,9 @@ { "id": "beda4c12-e1ec-4b4b-b328-3df4a6687c4f", - "name": "SQL Expert", + "name": "SQL Driver", "description": "Convert the requirements into corresponding SQL statements according to the table structure and execute them if needed.", "createdDateTime": "2023-11-15T13:49:00Z", "updatedDateTime": "2023-11-15T13:49:00Z", "isPublic": false, - "allowRouting": false + "allowRouting": true } \ No newline at end of file diff --git a/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/instruction.liquid b/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/instruction.liquid index eded4c7b..f9aa8a1f 100644 --- a/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/instruction.liquid +++ b/src/Plugins/BotSharp.Plugin.SqlDriver/data/agents/beda4c12-e1ec-4b4b-b328-3df4a6687c4f/instruction.liquid @@ -1,4 +1,4 @@ -You are a SQL Expert who knows how to convert business requirements to SQL expressions. +You are a SQL Driver who knows how to convert business requirements to SQL expressions. Follow these steps: 1: Look at the table DDL defintions especially for the CONSTRAINT and FOREIGN KEY REFERENCES. diff --git a/src/WebStarter/WebStarter.csproj b/src/WebStarter/WebStarter.csproj index 6759cba7..342196ca 100644 --- a/src/WebStarter/WebStarter.csproj +++ b/src/WebStarter/WebStarter.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -23,13 +23,6 @@ - - - - - - - @@ -37,14 +30,17 @@ + + + + + - - @@ -58,7 +54,6 @@ - diff --git a/src/WebStarter/appsettings.json b/src/WebStarter/appsettings.json index dd8ae953..3104416c 100644 --- a/src/WebStarter/appsettings.json +++ b/src/WebStarter/appsettings.json @@ -43,6 +43,19 @@ "Type": "chat" } ] + }, + { + "Provider": "huggingface", + "Models": [ + { + "Name": "mistralai/Mistral-7B-v0.1", + "Type": "text" + }, + { + "Name": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "Type": "text" + } + ] } ], @@ -60,7 +73,7 @@ "Agent": { "DataDir": "agents", "TemplateFormat": "liquid", - "MaxRecursiveDepth": 3, + "HostAgentId": "01e2fc5c-2c89-4ec7-8470-7688608b496c", "LlmConfig": { "Provider": "azure-openai", "Model": "gpt-35-turbo"