Files
BeWoPlaner/Service/ServiceImplementations/Enhanced/AiEnhancedServiceImp.cs

128 lines
4.8 KiB
C#

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.BusinessLogic;
using BeWo.Service.Plugins;
using BeWo.Service.ServiceContracts.Enhanced;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Feature.AI;
using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords;
using DevExpress.DataAccess.Native.Sql;
using System;
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<AiModelDC> GetAiModels()
=> GetAiService().GetAiModels();
public IEnumerable<AiConversationDC> GetAiConversations(AiActionType actionType, long? oid)
=> GetAiService().GetAiConversations(actionType, 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);
public bool CheckContextSize(AiActionType actionType, Dictionary<TableID, long[]> context, long? modell_oid)
=> GetAiService().CheckContextSize(actionType, context, modell_oid);
public AiUserSettingDC GetUserSetting()
=> GetAiService().GetUserSetting();
public AiUserSettingDC UpdateUserSetting(AiUserSettingDC aiUserSettingDC)
=> GetAiService().UpdateUserSetting(aiUserSettingDC);
private AiService2 GetAiService()
{
var plugin = PluginLoader.FindClass<AiService2>();
return plugin;
}
#endregion
#region Promptbausteine
public IEnumerable<AiPromptbausteinFolderDC> GetAiPromptbausteinFolder(AiActionType aiActionType)
=> GetAiPromptbausteineService().GetAiPromptbausteinFolder(aiActionType);
private AiPromptbausteineService GetAiPromptbausteineService()
{
return new AiPromptbausteineService();
//var plugin = PluginLoader.FindClass<AiPromptbausteineService>();
//return plugin;
}
public AiPromptbausteinFolderDC InsertAiPromptbausteinFolder(AiPromptbausteinFolderDC folder)
=> GetFolderLogic().Insert(folder);
public AiPromptbausteinPromptDC InsertAiPromptbausteinPrompt(AiPromptbausteinPromptDC prompt)
=> GetPromptLogic().Insert(prompt);
public AiPromptbausteinRoutineDC InsertAiPromptbausteinRoutine(AiPromptbausteinRoutineDC routine)
=> GetRoutineLogic().Insert(routine);
public AiPromptbausteinFolderDC UpdateAiPromptbausteinFolder(AiPromptbausteinFolderDC folder)
=> GetFolderLogic().Update(folder);
public AiPromptbausteinPromptDC UpdateAiPromptbausteinPrompt(AiPromptbausteinPromptDC prompt)
=> GetPromptLogic().Update(prompt);
public AiPromptbausteinRoutineDC UpdateAiPromptbausteinRoutine(AiPromptbausteinRoutineDC routine)
=> GetRoutineLogic().Update(routine);
public void DeleteAiPromptbausteinFolder(AiPromptbausteinFolderDC folder)
=> GetFolderLogic().Deactivate(folder);
public void DeleteAiPromptbausteinPrompt(AiPromptbausteinPromptDC prompt)
=> GetPromptLogic().Deactivate(prompt);
public void DeleteAiPromptbausteinRoutine(AiPromptbausteinRoutineDC routine)
=> GetRoutineLogic().Deactivate(routine);
private AiPromptbausteinFolderLogic GetFolderLogic()
=> new AiPromptbausteinFolderLogic();
private AiPromptbausteinPromptLogic GetPromptLogic()
=> new AiPromptbausteinPromptLogic();
private AiPromptbausteinRoutineLogic GetRoutineLogic()
=> new AiPromptbausteinRoutineLogic();
#endregion
#region Functions
public AiFunctionDocResponse ExecuteAiFunctionServiceRecordDocumentation(AiFunctionDocRequest request)
=> GetAiFunctionService().ExecuteAiFunctionServiceRecordDocumentation(request);
private AiFunctionService GetAiFunctionService()
{
return new AiFunctionService();
//var plugin = PluginLoader.FindClass<AiPromptbausteineService>();
//return plugin;
}
#endregion
}
}