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

103 lines
4.2 KiB
C#
Raw Normal View History

2025-10-27 08:32:36 +01:00
using BeWo.Data.Access;
2025-04-14 12:17:09 +02:00
using BeWo.Data.Entities;
using BeWo.Data.Security;
2025-10-27 08:32:36 +01:00
using BeWo.Service.Plugins;
2025-06-02 11:16:35 +02:00
using BeWo.Service.ServiceContracts.Enhanced;
2025-07-25 14:27:57 +02:00
using BS.Shared;
2025-04-14 12:17:09 +02:00
using BS.Shared.DataContracts.Feature.AI;
2025-11-24 15:47:45 +01:00
using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords;
2026-01-12 16:53:47 +01:00
using System;
2025-04-14 12:17:09 +02:00
using System.Collections.Generic;
using System.ServiceModel;
2025-06-02 11:16:35 +02:00
namespace BeWo.Service.ServiceImplementations.Enhanced
2025-04-14 12:17:09 +02:00
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)]
public class AiEnhancedServiceImp : IAiEnhancedService
{
2025-11-24 15:47:45 +01:00
#region General AI
2025-10-27 08:32:36 +01:00
public AiConfigDC GetAiConfig()
=> GetAiService().GetAiConfig();
public AiConfigDC UpdateAiConfig(AiConfigDC toUpdate)
=> GetAiService().UpdateAiConfig(toUpdate);
public IEnumerable<AiModelDC> GetAiModels()
=> GetAiService().GetAiModels();
public IEnumerable<AiConversationDC> 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);
2026-02-20 11:41:26 +01:00
public bool CheckContextSize(AiContextType aiContextType, Dictionary<TableID, long[]> context, long? modell_oid)
=> GetAiService().CheckContextSize(aiContextType, context, modell_oid);
2026-02-19 14:32:37 +01:00
2025-07-25 14:27:49 +02:00
private AiService2 GetAiService()
2025-04-14 12:17:09 +02:00
{
2025-07-25 14:27:49 +02:00
var plugin = PluginLoader.FindClass<AiService2>();
return plugin;
2025-07-08 16:30:58 +02:00
}
2025-11-24 15:47:45 +01:00
#endregion
2025-10-27 08:32:36 +01:00
2025-11-24 15:47:45 +01:00
#region Promptbausteine
2026-01-12 16:53:47 +01:00
public IEnumerable<AiPromptbausteinFolderDC> GetAiPromptbausteinFolder(AiActionType aiActionType)
=> GetAiPromptbausteineService().GetAiPromptbausteinFolder(aiActionType);
public IEnumerable<AiPromptbausteinFolderDC> InsertAiPromptbausteinFolder(IEnumerable<AiPromptbausteinFolderDC> folders)
=> GetAiPromptbausteineService().InsertAiPromptbausteinFolder(folders);
public IEnumerable<AiPromptbausteinPromptDC> InsertAiPromptbausteinPrompt(IEnumerable<AiPromptbausteinPromptDC> prompts)
=> GetAiPromptbausteineService().InsertAiPromptbausteinPrompt(prompts);
public IEnumerable<AiPromptbausteinFolderDC> UpdateAiPromptbausteinFolder(IEnumerable<AiPromptbausteinFolderDC> folders)
=> GetAiPromptbausteineService().UpdateAiPromptbausteinFolder(folders);
public IEnumerable<AiPromptbausteinPromptDC> UpdateAiPromptbausteinPrompt(IEnumerable<AiPromptbausteinPromptDC> prompts)
=> GetAiPromptbausteineService().UpdateAiPromptbausteinPrompt(prompts);
public void DeleteAiPromptbausteinFolder(Dictionary<long, long> oid2version)
=> GetAiPromptbausteineService().DeleteAiPromptbausteinFolder(oid2version);
public void DeleteAiPromptbausteinPrompt(Dictionary<long, long> oid2version)
=> GetAiPromptbausteineService().DeleteAiPromptbausteinPrompt(oid2version);
2025-11-24 15:47:45 +01:00
private AiPromptbausteineService GetAiPromptbausteineService()
2025-10-27 08:32:36 +01:00
{
2025-11-24 15:47:45 +01:00
return new AiPromptbausteineService();
//var plugin = PluginLoader.FindClass<AiPromptbausteineService>();
//return plugin;
2025-10-27 08:32:36 +01:00
}
2025-11-24 15:47:45 +01:00
#endregion
2025-10-27 08:32:36 +01:00
2025-11-24 15:47:45 +01:00
#region Functions
public AiFunctionDocResponse ExecuteAiFunctionServiceRecordDocumentation(AiFunctionDocRequest request)
=> GetAiFunctionService().ExecuteAiFunctionServiceRecordDocumentation(request);
private AiFunctionService GetAiFunctionService()
2025-10-27 08:32:36 +01:00
{
2025-11-24 15:47:45 +01:00
return new AiFunctionService();
//var plugin = PluginLoader.FindClass<AiPromptbausteineService>();
//return plugin;
2025-10-27 08:32:36 +01:00
}
2025-11-24 15:47:45 +01:00
#endregion
2025-04-14 12:17:09 +02:00
}
}