From eb474163629fa9eca2d14a601a82f100b110f6bc Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Mon, 24 Nov 2025 15:47:45 +0100 Subject: [PATCH] Aufteilung --- Service/Plugins/AiFunctionService.cs | 33 ++++++++++++++ Service/Plugins/AiPromptbausteineService.cs | 39 ++++++++++++++++ Service/Service.csproj | 2 + .../ServiceContracts/IAiEnhancedService.cs | 5 +++ .../AiEnhancedServiceImp.cs | 45 ++++++++++++------- Shared/BeWoEntityEnums.cs | 2 +- ...FunctionDocRequest.cs => AiFunctionDoc.cs} | 7 +++ Shared/Shared.csproj | 2 +- 8 files changed, 116 insertions(+), 19 deletions(-) create mode 100644 Service/Plugins/AiFunctionService.cs create mode 100644 Service/Plugins/AiPromptbausteineService.cs rename Shared/DataContracts/Feature/AI/Functions/ServiceRecords/{AiFunctionDocRequest.cs => AiFunctionDoc.cs} (81%) diff --git a/Service/Plugins/AiFunctionService.cs b/Service/Plugins/AiFunctionService.cs new file mode 100644 index 000000000..2f0583c48 --- /dev/null +++ b/Service/Plugins/AiFunctionService.cs @@ -0,0 +1,33 @@ +using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeWo.Service.Plugins +{ + public class AiFunctionService + { + public AiFunctionDocResponse ExecuteAiFunctionServiceRecordDocumentation(AiFunctionDocRequest request) + { + // Request valideren + + // Request auswerten + + // DB Daten holen + + // DB Daten prüfen + + // Anfrage zusammensetzen + + // Anfrage abschicken + + // Response auswerten + + // Eigene Response erstellen + + throw new System.NotImplementedException(); + } + } +} diff --git a/Service/Plugins/AiPromptbausteineService.cs b/Service/Plugins/AiPromptbausteineService.cs new file mode 100644 index 000000000..7f1d96ab1 --- /dev/null +++ b/Service/Plugins/AiPromptbausteineService.cs @@ -0,0 +1,39 @@ +using BS.Shared.DataContracts.Feature.AI; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeWo.Service.Plugins +{ + public class AiPromptbausteineService + { + public IEnumerable GetAiPromptbausteine() + { + var dc = new AiPromptbausteinTreeDC(); + + //dc.Oid = 1; + //dc.IsParent = false; + //dc.Version = 1; + //dc.Text = "Beispiel"; + + return new List { dc }; + } + + public IEnumerable CreateAiPromptbausteine(IEnumerable aiPromptbausteinDC) + { + throw new System.NotImplementedException(); + } + + public Dictionary UpdateAiPromptbausteine(IEnumerable aiPromptbausteinDCs) + { + throw new System.NotImplementedException(); + } + + public void DeleteAiPromptbausteine(Dictionary oid2version) + { + throw new System.NotImplementedException(); + } + } +} diff --git a/Service/Service.csproj b/Service/Service.csproj index 90585785d..4d9d5888a 100644 --- a/Service/Service.csproj +++ b/Service/Service.csproj @@ -459,6 +459,8 @@ + + diff --git a/Service/ServiceContracts/IAiEnhancedService.cs b/Service/ServiceContracts/IAiEnhancedService.cs index e63d10cb5..c8381b7b9 100644 --- a/Service/ServiceContracts/IAiEnhancedService.cs +++ b/Service/ServiceContracts/IAiEnhancedService.cs @@ -2,6 +2,7 @@ using BS.Shared; using BS.Shared.Attributes; using BS.Shared.DataContracts.Feature.AI; +using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords; using System; using System.Collections.Generic; using System.Linq; @@ -84,5 +85,9 @@ namespace BeWo.Service.ServiceContracts [RequirePermission(UserRightType.AiModulePromptbausteineRemove)] void DeleteAiPromptbausteine(Dictionary oid2version); + [FaultContract(typeof(BeWoFault))] + [OperationContract] + [RequirePermission(UserRightType.AiModulePromptbausteineView)] + AiFunctionDocResponse ExecuteAiFunctionServiceRecordDocumentation(AiFunctionDocRequest request); } } \ No newline at end of file diff --git a/Service/ServiceImplementations/AiEnhancedServiceImp.cs b/Service/ServiceImplementations/AiEnhancedServiceImp.cs index fd0845989..511c00430 100644 --- a/Service/ServiceImplementations/AiEnhancedServiceImp.cs +++ b/Service/ServiceImplementations/AiEnhancedServiceImp.cs @@ -3,6 +3,7 @@ using BeWo.Service.Plugins; using BeWo.Service.ServiceContracts; using BS.Shared; using BS.Shared.DataContracts.Feature.AI; +using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords; using System.Collections.Generic; using System.ServiceModel; @@ -11,6 +12,7 @@ namespace BeWo.Service.ServiceImplementations [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)] public class AiEnhancedServiceImp : IAiEnhancedService { + #region General AI public AiConfigDC GetAiConfig() => GetAiService().GetAiConfig(); @@ -45,32 +47,41 @@ namespace BeWo.Service.ServiceImplementations var plugin = PluginLoader.FindClass(); return plugin; } + #endregion + #region Promptbausteine public IEnumerable GetAiPromptbausteine() - { - var dc = new AiPromptbausteinTreeDC(); - - //dc.Oid = 1; - //dc.IsParent = false; - //dc.Version = 1; - //dc.Text = "Beispiel"; - - return new List { dc }; - } + => GetAiPromptbausteineService().GetAiPromptbausteine(); public IEnumerable CreateAiPromptbausteine(IEnumerable aiPromptbausteinDC) - { - throw new System.NotImplementedException(); - } + => GetAiPromptbausteineService().CreateAiPromptbausteine(aiPromptbausteinDC); public Dictionary UpdateAiPromptbausteine(IEnumerable aiPromptbausteinDCs) - { - throw new System.NotImplementedException(); - } + => GetAiPromptbausteineService().UpdateAiPromptbausteine(aiPromptbausteinDCs); public void DeleteAiPromptbausteine(Dictionary oid2version) + => GetAiPromptbausteineService().DeleteAiPromptbausteine(oid2version); + + private AiPromptbausteineService GetAiPromptbausteineService() { - throw new System.NotImplementedException(); + return new AiPromptbausteineService(); + + //var plugin = PluginLoader.FindClass(); + //return plugin; } + #endregion + + #region Functions + public AiFunctionDocResponse ExecuteAiFunctionServiceRecordDocumentation(AiFunctionDocRequest request) + => GetAiFunctionService().ExecuteAiFunctionServiceRecordDocumentation(request); + + private AiFunctionService GetAiFunctionService() + { + return new AiFunctionService(); + + //var plugin = PluginLoader.FindClass(); + //return plugin; + } + #endregion } } diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs index c8cc2c402..40828209d 100644 --- a/Shared/BeWoEntityEnums.cs +++ b/Shared/BeWoEntityEnums.cs @@ -635,12 +635,12 @@ namespace BS.Shared AiModuleView2 = 201004, AiModuleViewSetting = 201005, AiModuleChatClone = 201006, + AiModulePromptbausteineView = 201007, AiModulePromptbausteineAdd = 201008, AiModulePromptbausteineEdit = 201009, AiModulePromptbausteineRemove = 201010, AiModulePromptbausteineSeeAll = 201011, - } public enum PersonType diff --git a/Shared/DataContracts/Feature/AI/Functions/ServiceRecords/AiFunctionDocRequest.cs b/Shared/DataContracts/Feature/AI/Functions/ServiceRecords/AiFunctionDoc.cs similarity index 81% rename from Shared/DataContracts/Feature/AI/Functions/ServiceRecords/AiFunctionDocRequest.cs rename to Shared/DataContracts/Feature/AI/Functions/ServiceRecords/AiFunctionDoc.cs index f951bd0ab..a0635ccf6 100644 --- a/Shared/DataContracts/Feature/AI/Functions/ServiceRecords/AiFunctionDocRequest.cs +++ b/Shared/DataContracts/Feature/AI/Functions/ServiceRecords/AiFunctionDoc.cs @@ -19,4 +19,11 @@ namespace BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords [DataMember] public string Dokumentation { get; set; } } + + [DataContract] + public class AiFunctionDocResponse + { + [DataMember] + public string Result { get; set; } + } } diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj index e5756e1d1..38d508992 100644 --- a/Shared/Shared.csproj +++ b/Shared/Shared.csproj @@ -203,7 +203,7 @@ - +