using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Data.Security; using BeWo.Service.Plugins; using BeWo.Service.ServiceContracts.Enhanced; using BS.Shared; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Feature.AI; using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords; using System.Collections.Generic; using System.ServiceModel; namespace BeWo.Service.ServiceImplementations.Enhanced { [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)] public class AiEnhancedServiceImp : IAiEnhancedService { #region General AI public AiConfigDC GetAiConfig() => GetAiService().GetAiConfig(); public AiConfigDC UpdateAiConfig(AiConfigDC toUpdate) => GetAiService().UpdateAiConfig(toUpdate); public IEnumerable GetAiModels() => GetAiService().GetAiModels(); public IEnumerable GetAiConversations(AiContextType uicontext, long? oid) => GetAiService().GetAiConversations(uicontext, oid); public AiConversationDC CreateAiConversation(AiConversationDC conversation, long modell_oid) => GetAiService().CreateAiConversation(conversation, modell_oid); public AiConversationDC CreateAiConversationWithMessage(AiConversationDC conversation, long modell_oid, string message) => GetAiService().CreateAiConversationWithMessage(conversation, modell_oid, message); public AiConversationDC CloneAiConversation(long conversation_oid, long? last_message_oid) => GetAiService().CloneAiConversation(conversation_oid, last_message_oid); public long UpdateAiConversationDisplayname(long oid, long version, string displayname) => GetAiService().UpdateAiConversationDisplayname(oid, version, displayname); public void DeleteAiConversation(long conversation_oid) => GetAiService().DeleteAiConversation(conversation_oid); public AiConversationMessageDC[] SendNewMessage(long conversation, string message) => GetAiService().SendNewMessage(conversation, message); private AiService2 GetAiService() { var plugin = PluginLoader.FindClass(); return plugin; } #endregion #region Promptbausteine public IEnumerable GetAiPromptbausteineTree() => GetAiPromptbausteineService().GetAiPromptbausteineTree(); public IEnumerable CreateAiPromptbausteineTree(IEnumerable aiPromptbausteinDC) => GetAiPromptbausteineService().CreateAiPromptbausteineTree(aiPromptbausteinDC); public Dictionary UpdateAiPromptbausteineTree(IEnumerable aiPromptbausteinDCs) => GetAiPromptbausteineService().UpdateAiPromptbausteineTree(aiPromptbausteinDCs); public void DeleteAiPromptbausteineTree(Dictionary oid2version) => GetAiPromptbausteineService().DeleteAiPromptbausteineTree(oid2version); public IEnumerable GetAiPromptbausteine() => GetAiPromptbausteineService().GetAiPromptbausteine(); public IEnumerable CreateAiPromptbausteine(IEnumerable aiPromptbausteinDCs) => GetAiPromptbausteineService().CreateAiPromptbausteine(aiPromptbausteinDCs); public Dictionary UpdateAiPromptbausteine(IEnumerable aiPromptbausteinDCs) => GetAiPromptbausteineService().UpdateAiPromptbausteine(aiPromptbausteinDCs); public void DeleteAiPromptbausteine(Dictionary oid2version) => GetAiPromptbausteineService().DeleteAiPromptbausteine(oid2version); private AiPromptbausteineService GetAiPromptbausteineService() { 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 } }