From f61cbe97805e787ecbd64dffdab040b38e4bdd8f Mon Sep 17 00:00:00 2001 From: zeyu xu <286513187@qq.com> Date: Sat, 23 Mar 2024 12:20:56 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=E8=AE=B0=E5=BD=95llama?= =?UTF-8?q?factory=E6=98=AF=E5=90=A6=E5=90=AF=E5=8A=A8=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DependencyInjection/InitExtensions.cs | 22 ++++++++- .../Model/Constant/LLamaFactoryConstantcs.cs | 14 ++++++ .../Repositories/Setting/Dic/Dics.cs | 16 +++++++ .../Setting/Dic/Dics_Repositories.cs | 11 +++++ .../Setting/Dic/IDics_Repositories.cs | 8 ++++ .../Pages/Setting/AIModel/AddModel.razor | 15 ++++-- .../Pages/Setting/AIModel/AddModel.razor.cs | 47 ++++++++++++------- src/AntSK/Program.cs | 1 + 8 files changed, 112 insertions(+), 22 deletions(-) create mode 100644 src/AntSK.Domain/Domain/Model/Constant/LLamaFactoryConstantcs.cs create mode 100644 src/AntSK.Domain/Repositories/Setting/Dic/Dics.cs create mode 100644 src/AntSK.Domain/Repositories/Setting/Dic/Dics_Repositories.cs create mode 100644 src/AntSK.Domain/Repositories/Setting/Dic/IDics_Repositories.cs diff --git a/src/AntSK.Domain/Common/DependencyInjection/InitExtensions.cs b/src/AntSK.Domain/Common/DependencyInjection/InitExtensions.cs index 8e8e8e3..602aaf5 100644 --- a/src/AntSK.Domain/Common/DependencyInjection/InitExtensions.cs +++ b/src/AntSK.Domain/Common/DependencyInjection/InitExtensions.cs @@ -1,4 +1,5 @@ -using AntSK.Domain.Domain.Service; +using AntSK.Domain.Domain.Model.Constant; +using AntSK.Domain.Domain.Service; using AntSK.Domain.Repositories; using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing; using Microsoft.AspNetCore.Builder; @@ -53,7 +54,26 @@ namespace AntSK.Domain.Common.DependencyInjection return app; } + public static WebApplication InitDbData(this WebApplication app) + { + using (var scope = app.Services.CreateScope()) + { + // 初始化字典 + var _dic_Repository = scope.ServiceProvider.GetRequiredService(); + var llamafactoryStart = _dic_Repository.GetFirst(p => p.Type == LLamaFactoryConstantcs.LLamaFactorDic && p.Key == LLamaFactoryConstantcs.IsStartKey); + if (llamafactoryStart==null) + { + llamafactoryStart = new Dics(); + llamafactoryStart.Id=Guid.NewGuid().ToString(); + llamafactoryStart.Type = LLamaFactoryConstantcs.LLamaFactorDic; + llamafactoryStart.Key = LLamaFactoryConstantcs.IsStartKey; + llamafactoryStart.Value = "false"; + _dic_Repository.Insert(llamafactoryStart); + } + } + return app; + } /// /// 加载数据库的插件 /// diff --git a/src/AntSK.Domain/Domain/Model/Constant/LLamaFactoryConstantcs.cs b/src/AntSK.Domain/Domain/Model/Constant/LLamaFactoryConstantcs.cs new file mode 100644 index 0000000..5a3d72a --- /dev/null +++ b/src/AntSK.Domain/Domain/Model/Constant/LLamaFactoryConstantcs.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AntSK.Domain.Domain.Model.Constant +{ + public class LLamaFactoryConstantcs + { + public const string LLamaFactorDic = "llamafactory"; + public const string IsStartKey = "isstart"; + } +} diff --git a/src/AntSK.Domain/Repositories/Setting/Dic/Dics.cs b/src/AntSK.Domain/Repositories/Setting/Dic/Dics.cs new file mode 100644 index 0000000..1b678a6 --- /dev/null +++ b/src/AntSK.Domain/Repositories/Setting/Dic/Dics.cs @@ -0,0 +1,16 @@ +using AntSK.Domain.Domain.Model.Enum; +using SqlSugar; +using System.ComponentModel.DataAnnotations; + +namespace AntSK.Domain.Repositories +{ + [SugarTable("Dics")] + public partial class Dics + { + [SugarColumn(IsPrimaryKey = true)] + public string Id { get; set; } + public string Type { get; set; } + public string Key { get; set; } + public string Value { get; set; } + } +} diff --git a/src/AntSK.Domain/Repositories/Setting/Dic/Dics_Repositories.cs b/src/AntSK.Domain/Repositories/Setting/Dic/Dics_Repositories.cs new file mode 100644 index 0000000..9f557e1 --- /dev/null +++ b/src/AntSK.Domain/Repositories/Setting/Dic/Dics_Repositories.cs @@ -0,0 +1,11 @@ + +using AntSK.Domain.Common.DependencyInjection; +using AntSK.Domain.Repositories.Base; + +namespace AntSK.Domain.Repositories +{ + [ServiceDescription(typeof(IDics_Repositories), ServiceLifetime.Scoped)] + public class Dics_Repositories : Repository, IDics_Repositories + { + } +} diff --git a/src/AntSK.Domain/Repositories/Setting/Dic/IDics_Repositories.cs b/src/AntSK.Domain/Repositories/Setting/Dic/IDics_Repositories.cs new file mode 100644 index 0000000..cabb648 --- /dev/null +++ b/src/AntSK.Domain/Repositories/Setting/Dic/IDics_Repositories.cs @@ -0,0 +1,8 @@ +using AntSK.Domain.Repositories.Base; + +namespace AntSK.Domain.Repositories +{ + public interface IDics_Repositories : IRepository + { + } +} diff --git a/src/AntSK/Pages/Setting/AIModel/AddModel.razor b/src/AntSK/Pages/Setting/AIModel/AddModel.razor index db1c54a..c8847f2 100644 --- a/src/AntSK/Pages/Setting/AIModel/AddModel.razor +++ b/src/AntSK/Pages/Setting/AIModel/AddModel.razor @@ -111,14 +111,19 @@ - + - - + @if (!llamaFactoryIsStart) + { + + } + else + { + + } - } @if (context.AIType == AIType.Mock) @@ -156,7 +161,7 @@ - + diff --git a/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs b/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs index 9e465ac..0d944d7 100644 --- a/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs +++ b/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs @@ -1,6 +1,7 @@ using AntDesign; using AntDesign.ProLayout; using AntSK.Domain.Domain.Interface; +using AntSK.Domain.Domain.Model.Constant; using AntSK.Domain.Domain.Model.Enum; using AntSK.Domain.Domain.Service; using AntSK.Domain.Options; @@ -26,31 +27,34 @@ namespace AntSK.Pages.Setting.AIModel [Inject] protected ILLamaFactoryService _ILLamaFactoryService { get; set; } + [Inject] protected IDics_Repositories _IDics_Repositories { get; set; } private AIModels _aiModel = new AIModels(); + //llamasharp download private string _downloadUrl; private bool _downloadModalVisible; - private bool _logModalVisible; - private bool _isComplete; - private double _downloadProgress; private bool _downloadFinished; private bool _downloadStarted; - IDownload _download; + private IDownload _download; private Modal _modal; + private string[] _modelFiles; - string[] _modelFiles; - - IEnumerable _menuKeys; - + //menu + private IEnumerable _menuKeys; private List menuList = new List(); + + //llamafactory private List modelList=new List(); - bool llamaFactoryIsStart = false; + private bool llamaFactoryIsStart = false; + private Dics llamaFactoryDic= new Dics(); + //日志输出 private BlazorTerminal blazorTerminal = new BlazorTerminal(); private TerminalParagraph para; + private bool _logModalVisible; protected override async Task OnInitializedAsync() { @@ -71,8 +75,13 @@ namespace AntSK.Pages.Setting.AIModel _downloadUrl = $"https://hf-mirror.com{ModelPath.Replace("---","/")}"; } + modelList = _ILLamaFactoryService.GetLLamaFactoryModels(); - + llamaFactoryDic = await _IDics_Repositories.GetFirstAsync(p => p.Type == LLamaFactoryConstantcs.LLamaFactorDic && p.Key == LLamaFactoryConstantcs.IsStartKey); + if (llamaFactoryDic != null) + { + llamaFactoryIsStart= llamaFactoryDic.Value== "false" ? false:true; + } } catch { @@ -211,9 +220,20 @@ namespace AntSK.Pages.Setting.AIModel } llamaFactoryIsStart = true; _logModalVisible = true; + llamaFactoryDic.Value = "true"; + _IDics_Repositories.Update(llamaFactoryDic); _ILLamaFactoryService.LogMessageReceived += CmdLogHandler; _ILLamaFactoryService.StartLLamaFactory(_aiModel.ModelName, "default"); } + + private void HandleStopService() + { + llamaFactoryIsStart = false; + llamaFactoryDic.Value = "false"; + _IDics_Repositories.Update(llamaFactoryDic); + _ILLamaFactoryService.KillProcess(); + } + private async Task CmdLogHandler(string message) { await InvokeAsync(() => @@ -225,12 +245,7 @@ namespace AntSK.Pages.Setting.AIModel /// /// 停止服务 /// - private void HandleStopService() - { - llamaFactoryIsStart = false; - _ILLamaFactoryService.KillProcess(); - } - + private void OnCancelLog() { _logModalVisible = false; } diff --git a/src/AntSK/Program.cs b/src/AntSK/Program.cs index fac35db..c760a15 100644 --- a/src/AntSK/Program.cs +++ b/src/AntSK/Program.cs @@ -91,6 +91,7 @@ app.UseStaticFiles(); //扩展初始化实现 app.CodeFirst(); app.LoadFun(); +app.InitDbData(); app.UseRouting();