Net.Like.Xue.Tokyo/Packages-Local/Net.Project.B.AI.Dialogue.M.../MaxKbDialogueService.cs

59 lines
1.7 KiB
C#
Raw Permalink Normal View History

2025-06-24 23:49:13 +08:00
using System;
using System.Diagnostics;
using System.Dynamic;
using System.Net.Http;
using System.Text;
using Cysharp.Threading.Tasks;
using Newtonsoft.Json;
namespace Net.Project.B.AI.Dialogue.MaxKb
{
public class MaxKbDialogueService:IAiDialogueService
{
public async UniTask<string> DialogueAsync(int id, string message)
{
using var client = new HttpClient();
const string url = "http://server.bitfall.icu:18918/api/application/chat_message/ceb19752-185e-11f0-9541-0242ac120009";
dynamic data = new ExpandoObject() { };
data.message = message;
data.re_chat = false;
data.stream = false;
// 构造 JSON 数据
var json = JsonConvert.SerializeObject(data);
// 设置请求体
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
// 添加请求头
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("AUTHORIZATION", "application-012e89878ee3e8dcfc4bc59a0c5648ae");
client.DefaultRequestHeaders.Add("accept", "application/json");
// 发送请求
var response = await client.PostAsync(url, stringContent);
string newMessage;
try
{
response.EnsureSuccessStatusCode();
// 处理返回
json = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<dynamic>(json);
newMessage = result.data.content;
}
catch (Exception e)
{
newMessage = e.Message;
}
return newMessage;
}
}
}