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 106bd23a..468e7e60 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 @@ -33,9 +33,12 @@ public class ChatManager : DomainService private readonly UsageStatisticsManager _usageStatisticsManager; private readonly PremiumPackageManager _premiumPackageManager; private readonly AiGateWayManager _aiGateWayManager; + public ChatManager(ILoggerFactory loggerFactory, ISqlSugarRepository messageRepository, - ISqlSugarRepository agentStoreRepository, AiMessageManager aiMessageManager, UsageStatisticsManager usageStatisticsManager, PremiumPackageManager premiumPackageManager, AiGateWayManager aiGateWayManager) + ISqlSugarRepository agentStoreRepository, AiMessageManager aiMessageManager, + UsageStatisticsManager usageStatisticsManager, PremiumPackageManager premiumPackageManager, + AiGateWayManager aiGateWayManager) { _loggerFactory = loggerFactory; _messageRepository = messageRepository; @@ -64,8 +67,8 @@ public class ChatManager : DomainService response.Headers.TryAdd("Cache-Control", "no-cache"); response.Headers.TryAdd("Connection", "keep-alive"); - var modelDescribe=await _aiGateWayManager.GetModelAsync(ModelApiTypeEnum.OpenAi,modelId); - + var modelDescribe = await _aiGateWayManager.GetModelAsync(ModelApiTypeEnum.OpenAi, modelId); + //token状态检查,在应用层统一处理 var client = new OpenAIClient(new ApiKeyCredential(token), new OpenAIClientOptions @@ -177,7 +180,7 @@ public class ChatManager : DomainService }; //设置倍率 usage.SetSupplementalMultiplier(modelDescribe.Multiplier); - + //创建系统回答,用于计费统计 await _aiMessageManager.CreateSystemMessageAsync(userId, sessionId, new MessageInputDto { @@ -185,7 +188,7 @@ public class ChatManager : DomainService ModelId = modelId, TokenUsage = usage }, tokenId); - + //创建用量统计,用于统计分析 await _usageStatisticsManager.SetUsageAsync(userId, modelId, usage, tokenId); @@ -198,7 +201,7 @@ public class ChatManager : DomainService await _premiumPackageManager.TryConsumeTokensAsync(userId, totalTokens); } } - + await SendHttpStreamMessageAsync(httpContext, new AgentResultOutput {