Files
BeWoPlaner/Service/ServiceProxy/MikePHPScriptFacade.cs

106 lines
2.4 KiB
C#
Raw Normal View History

2025-03-19 16:30:27 +01:00
using BS.Shared.Core;
using BS.Shared.DataContracts;
2025-03-28 10:05:29 +01:00
using BS.Shared.DataContracts.MikePHPContracts;
2025-03-19 16:30:27 +01:00
using DevExpress.DataAccess.Native.EntityFramework;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
2025-03-28 10:05:29 +01:00
using System.IO;
2025-03-19 16:30:27 +01:00
using System.Linq;
using System.Net;
2025-03-28 10:05:29 +01:00
using System.Reflection;
2025-03-19 16:30:27 +01:00
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.ServiceProxy
{
public class MikePHPScriptFacade : WebClientFacade
{
public List<AiModelDC> GetAiModelle()
{
var url = "https://ai1.ownsoft.de/osaimodels.php?show";
var dictList = SendGet<List<Dictionary<string, int>>>(url);
var rtn = new List<AiModelDC>();
foreach (var item in dictList)
{
foreach (var kvp in item)
{
rtn.Add(new AiModelDC(kvp.Key, kvp.Value));
}
}
return rtn;
}
2025-03-28 10:05:29 +01:00
public AiMessageResponse SendAiRequest(AiConversationMessageDC msg, string api_data)
{
var url = "https://ai1.ownsoft.de/osaiquery.php";
msg.Context2 = getSystemPrompt2() + api_data;
var request = new AiMessageRequest()
{
Context = msg.Context2,
Model = msg.Model,
Option = "json",
Prompt = msg.Prompt
};
var result = SendPost<AiMessageRequest, AiMessageResponse>(url, request);
return result;
}
public AiMessageResponse2 SendAiRequestComplex(AiConversationMessageDC msg)
{
var url = "https://ai1.ownsoft.de/osaiquery.php";
2025-03-31 16:42:49 +02:00
msg.Context = getSystemPrompt2() + msg.Context;
2025-03-28 10:05:29 +01:00
var request = new AiMessageRequest()
{
Context = msg.Context,
Model = msg.Model,
Option = "json",
Prompt = msg.Prompt
};
var result = SendPost<AiMessageRequest, AiMessageResponse2>(url, request);
return result;
}
private string getSystemPrompt()
{
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "BeWo.Service.AI.system_prompt.txt";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
string result = reader.ReadToEnd();
return result;
}
return null;
}
private string getSystemPrompt2()
{
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "BeWo.Service.AI.system_prompt2.txt";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
string result = reader.ReadToEnd();
return result;
}
return null;
}
2025-03-19 16:30:27 +01:00
}
}