diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AiService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AiService.cs
index eaf205ac..a2cf33f0 100644
--- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AiService.cs
+++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AiService.cs
@@ -66,14 +66,15 @@ public class AiService : ApplicationService
/// 发送消息
///
///
- public async Task PostSendAsync(SendMessageInput input)
+ ///
+ public async Task PostSendAsync(SendMessageInput input,CancellationToken cancelToken)
{
var httpContext = this.httpContextAccessor.HttpContext;
var response = httpContext.Response;
// 设置响应头,声明是 SSE 流
response.ContentType = "text/event-stream";
- response.Headers.Add("Cache-Control", "no-cache");
- response.Headers.Add("Connection", "keep-alive");
+ response.Headers.Append("Cache-Control", "no-cache");
+ response.Headers.Append("Connection", "keep-alive");
var chatCompletionService = this._skClient.Kernel.GetRequiredService(input.Model);
@@ -97,7 +98,8 @@ public class AiService : ApplicationService
var results = chatCompletionService.GetStreamingChatMessageContentsAsync(
chatHistory: history,
executionSettings: openSettings,
- kernel: _skClient.Kernel);
+ kernel: _skClient.Kernel,
+ cancelToken);
await using var writer = new StreamWriter(response.Body, Encoding.UTF8, leaveOpen: true);
@@ -110,7 +112,7 @@ public class AiService : ApplicationService
});
await writer.WriteLineAsync($"data: {message}\n");
- await writer.FlushAsync(); // 确保立即推送数据
+ await writer.FlushAsync(cancelToken); // 确保立即推送数据
}
}