From bc91a8cff2b0114a5fbd6f1fd7a3de9b25293921 Mon Sep 17 00:00:00 2001 From: ccnetcore Date: Thu, 19 Jun 2025 22:24:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/AiService.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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); // 确保立即推送数据 } }