From fadaa0d129989b6ae7ec4f896ecf3bef6cace763 Mon Sep 17 00:00:00 2001 From: ccnetcore Date: Wed, 4 Feb 2026 23:45:36 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=97=A5=E5=BF=97=E4=B8=AD=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E7=94=A8=E6=88=B7ID=E4=BB=A5=E5=A2=9E=E5=BC=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=AE=9A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 统一在 AiGateWayManager 各类异常日志中输出 userId,并向流式处理方法透传 userId,提升问题排查与审计能力,不影响现有业务逻辑。 --- .../Managers/AiGateWayManager.cs | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs index e1daf273..1833a719 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs @@ -270,7 +270,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, $"Ai对话异常"); + _logger.LogError(e, $"Ai对话异常,用户ID:{userId}"); var errorContent = $"对话Ai异常,异常信息:\n当前Ai模型:{request.Model}\n异常信息:{e.Message}\n异常堆栈:{e}"; var model = new ThorChatCompletionsResponse() { @@ -683,7 +683,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, $"Ai对话异常"); + _logger.LogError(e, $"Ai对话异常,用户ID:{userId}"); var errorContent = $"对话Ai异常,异常信息:\n当前Ai模型:{sourceModelId}\n异常信息:{e.Message}\n异常堆栈:{e}"; throw new UserFriendlyException(errorContent); } @@ -856,7 +856,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, $"Ai响应异常"); + _logger.LogError(e, $"Ai响应异常,用户ID:{userId}"); var errorContent = $"响应Ai异常,异常信息:\n当前Ai模型:{request.Model}\n异常信息:{e.Message}\n异常堆栈:{e}"; throw new UserFriendlyException(errorContent); } @@ -1026,7 +1026,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, $"Ai生成异常"); + _logger.LogError(e, $"Ai生成异常,用户ID:{userId}"); var errorContent = $"生成Ai异常,异常信息:\n当前Ai模型:{modelId}\n异常信息:{e.Message}\n异常堆栈:{e}"; throw new UserFriendlyException(errorContent); } @@ -1205,16 +1205,16 @@ public class AiGateWayManager : DomainService switch (apiType) { case ModelApiTypeEnum.Completions: - processResult = await ProcessCompletionsStreamAsync(messageQueue, requestBody, modelDescribe, cancellationToken); + processResult = await ProcessCompletionsStreamAsync(messageQueue, requestBody, modelDescribe, userId, cancellationToken); break; case ModelApiTypeEnum.Messages: - processResult = await ProcessAnthropicStreamAsync(messageQueue, requestBody, modelDescribe, cancellationToken); + processResult = await ProcessAnthropicStreamAsync(messageQueue, requestBody, modelDescribe, userId, cancellationToken); break; case ModelApiTypeEnum.Responses: - processResult = await ProcessOpenAiResponsesStreamAsync(messageQueue, requestBody, modelDescribe, cancellationToken); + processResult = await ProcessOpenAiResponsesStreamAsync(messageQueue, requestBody, modelDescribe, userId, cancellationToken); break; case ModelApiTypeEnum.GenerateContent: - processResult = await ProcessGeminiStreamAsync(messageQueue, requestBody, modelDescribe, cancellationToken); + processResult = await ProcessGeminiStreamAsync(messageQueue, requestBody, modelDescribe, userId, cancellationToken); break; default: throw new UserFriendlyException($"不支持的API类型: {apiType}"); @@ -1293,6 +1293,7 @@ public class AiGateWayManager : DomainService ConcurrentQueue messageQueue, JsonElement requestBody, AiModelDescribe modelDescribe, + Guid? userId, CancellationToken cancellationToken) { var request = requestBody.Deserialize(ThorJsonSerializer.DefaultOptions)!; @@ -1336,7 +1337,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, "Ai对话异常"); + _logger.LogError(e, "Ai对话异常,用户ID:{UserId}", userId); var errorContent = $"对话Ai异常,异常信息:\n当前Ai模型:{request.Model}\n异常信息:{e.Message}\n异常堆栈:{e}"; systemContentBuilder.Append(errorContent); var model = new ThorChatCompletionsResponse() @@ -1374,6 +1375,7 @@ public class AiGateWayManager : DomainService ConcurrentQueue messageQueue, JsonElement requestBody, AiModelDescribe modelDescribe, + Guid? userId, CancellationToken cancellationToken) { var request = requestBody.Deserialize(ThorJsonSerializer.DefaultOptions)!; @@ -1457,7 +1459,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, "Ai对话异常"); + _logger.LogError(e, "Ai对话异常,用户ID:{UserId}", userId); var errorContent = $"对话Ai异常,异常信息:\n当前Ai模型:{request.Model}\n异常信息:{e.Message}\n异常堆栈:{e}"; systemContentBuilder.Append(errorContent); throw new UserFriendlyException(errorContent); @@ -1481,6 +1483,7 @@ public class AiGateWayManager : DomainService ConcurrentQueue messageQueue, JsonElement requestBody, AiModelDescribe modelDescribe, + Guid? userId, CancellationToken cancellationToken) { var request = requestBody.Deserialize(ThorJsonSerializer.DefaultOptions)!; @@ -1556,7 +1559,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, "Ai响应异常"); + _logger.LogError(e, "Ai响应异常,用户ID:{UserId}", userId); var errorContent = $"响应Ai异常,异常信息:\n当前Ai模型:{request.Model}\n异常信息:{e.Message}\n异常堆栈:{e}"; systemContentBuilder.Append(errorContent); throw new UserFriendlyException(errorContent); @@ -1577,6 +1580,7 @@ public class AiGateWayManager : DomainService ConcurrentQueue messageQueue, JsonElement requestBody, AiModelDescribe modelDescribe, + Guid? userId, CancellationToken cancellationToken) { // 提取用户最后一条消息 (contents[last].parts[last].text) @@ -1622,7 +1626,7 @@ public class AiGateWayManager : DomainService } catch (Exception e) { - _logger.LogError(e, "Ai生成异常"); + _logger.LogError(e, "Ai生成异常,用户ID:{UserId}", userId); var errorContent = $"生成Ai异常,异常信息:\n当前Ai模型:{modelDescribe.ModelId}\n异常信息:{e.Message}\n异常堆栈:{e}"; systemContentBuilder.Append(errorContent); throw new UserFriendlyException(errorContent);