Files
BeWoPlaner/Service/Status/AiStatusService.cs

79 lines
2.2 KiB
C#

using AICore.Facade.LLM;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BeWo.Service.ServiceProxy;
using BS.Shared.Tests.Objects;
namespace BeWo.Service.Status
{
public class AiStatusService : BaseStatusService
{
public AiStatusService() : base("AI")
{
AddWebConfigCheck(WebConfigSetting.OllamaUrl,
WebConfigSetting.Ollama2Url,
WebConfigSetting.AiPromptsUrl);
AddWebSecretConfigCheck(WebSecretConfigSetting.Ollama2Key);
AddDBScript("Changes_2026-05-22 AiConv ActionType",
"Changes_2026-06-03 AiRoutine RoutineType",
"Changes_2026-06-18 AiModel default updaten",
"Changes_2026-07-08 AiConversation Promptreferenz",
"Changes_2026-07-10 AiConversationMessage ShowMessage",
"Changes_2026-07-22 AiConversationMessage UsedPromptbausteinTitle");
RegisterCheckup(CheckEndpointOneGetModels,
CheckEndpointOneSendMessage,
CheckEndpointTwoGetModels,
CheckEndpointTwoSendMessage);
}
private string CheckEndpointOneGetModels()
{
var response = ServiceFacade.OllamaApiClient.GetAiModelle();
if (!response.Success)
return "endpoint 1m: " + response.ToErrorString();
return null;
}
private string CheckEndpointOneSendMessage()
{
var logger = ServiceLogger.GetRequestLogger(out string id);
var payload = AiTestObjects.GetExampleSendRequest(UserRightHelper.GetTenant(), id);
var response = ServiceFacade.OllamaApiClient.SendAiMessageRequest(payload, out LLMResponse llm_response, logger);
if (!response.Success)
return "endpoint 1s: " + response.ToErrorString();
return null;
}
private string CheckEndpointTwoGetModels()
{
var response = ServiceFacade.Ollama2ApiClient.GetAiModelle();
if (!response.Success)
return "endpoint 2m: " + response.ToErrorString();
return null;
}
private string CheckEndpointTwoSendMessage()
{
var logger = ServiceLogger.GetRequestLogger(out string id);
var payload = AiTestObjects.GetExampleSendRequest(UserRightHelper.GetTenant(), id);
var response = ServiceFacade.Ollama2ApiClient.SendAiMessageRequest(payload, out LLMResponse llm_response, logger);
if (!response.Success)
return "endpoint 2s: " + response.ToErrorString();
return null;
}
}
}