79 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|