diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/Chat/AiChatService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/Chat/AiChatService.cs
index 2024a568..e6695aad 100644
--- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/Chat/AiChatService.cs
+++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/Chat/AiChatService.cs
@@ -148,6 +148,9 @@ public class AiChatService : ApplicationService
// 使用 ChatManager
}
+ ///
+ /// Agent 发送消息
+ ///
[HttpPost("ai-chat/agent/send")]
public async Task PostAgentSendAsync()
{
diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/ChatManager.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/ChatManager.cs
index ad89ec26..bb70d84d 100644
--- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/ChatManager.cs
+++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/ChatManager.cs
@@ -1,5 +1,6 @@
using System.ClientModel;
using System.Reflection;
+using System.Text.Json;
using Dm.util;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
@@ -15,6 +16,7 @@ public class ChatManager : DomainService
{
private readonly AiGateWayManager _aiGateWayManager;
private readonly ILoggerFactory _loggerFactory;
+
public ChatManager(AiGateWayManager aiGateWayManager, ILoggerFactory loggerFactory)
{
_aiGateWayManager = aiGateWayManager;
@@ -26,15 +28,16 @@ public class ChatManager : DomainService
//token可以用户传进来
// HttpClient.DefaultProxy = new WebProxy("127.0.0.1:8888");
var modelId = "gpt-5.2-chat";
- var client = new OpenAIClient(new ApiKeyCredential("xxx"), new OpenAIClientOptions
- {
- Endpoint = new Uri("https://yxai.chat/v1"),
- });
+ var client = new OpenAIClient(new ApiKeyCredential("xxx"),
+ new OpenAIClientOptions
+ {
+ Endpoint = new Uri("https://yxai.chat/v1"),
+ });
var agent = client.GetChatClient(modelId)
.AsIChatClient() // Converts a native OpenAI SDK ChatClient into a Microsoft.Extensions.AI.IChatClient
- .CreateAIAgent("你是一个专业的网页ai助手") ;
+ .CreateAIAgent("你是一个专业的网页ai助手");
+
-
var thread = agent.GetNewThread();
var tools = GetTools();
@@ -43,7 +46,7 @@ public class ChatManager : DomainService
Tools = tools.Select(x => (AITool)x).ToList(),
ToolMode = ChatToolMode.Auto
};
-
+
await foreach (var update in agent.RunStreamingAsync("联网搜索一下,奥德赛第一中学学生会会长是谁", thread,
new ChatClientAgentRunOptions(chatOptions)))
{
@@ -71,6 +74,11 @@ public class ChatManager : DomainService
}
}
}
+
+
+ string serializedJson = thread.Serialize(JsonSerializerOptions.Web).GetRawText();
+ JsonElement reloaded = JsonSerializer.Deserialize(serializedJson, JsonSerializerOptions.Web);
+ var newThread = agent.DeserializeThread(reloaded, JsonSerializerOptions.Web);
}