diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/Anthropic/AnthropicChatCompletionDto.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/Anthropic/AnthropicChatCompletionDto.cs index ee2e993a..f505bc32 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/Anthropic/AnthropicChatCompletionDto.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/Anthropic/AnthropicChatCompletionDto.cs @@ -19,6 +19,7 @@ public class AnthropicStreamDto [JsonPropertyName("error")] public AnthropicStreamErrorDto? Error { get; set; } + [JsonIgnore] public ThorUsageResponse TokenUsage => new ThorUsageResponse { PromptTokens = Usage?.InputTokens + Usage?.CacheCreationInputTokens + Usage?.CacheReadInputTokens, @@ -94,6 +95,7 @@ public class AnthropicChatCompletionDto public AnthropicCompletionDtoUsage Usage { get; set; } + [JsonIgnore] public ThorUsageResponse TokenUsage => new ThorUsageResponse { PromptTokens = Usage?.InputTokens + Usage?.CacheCreationInputTokens + Usage?.CacheReadInputTokens, diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs index 47746cdb..7573bfec 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/AiGateWay/Impl/ThorClaude/Chats/AnthropicChatCompletionsService.cs @@ -96,7 +96,7 @@ public class AnthropicChatCompletionsService(IHttpClientFactory httpClientFactor options.Endpoint = "https://api.anthropic.com/"; } - var client = HttpClientFactory.GetHttpClient(options.Endpoint); + var client = httpClientFactory.CreateClient(); var headers = new Dictionary { 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 d753cf17..8905f2c0 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 @@ -546,7 +546,11 @@ public class AiGateWayManager : DomainService { await foreach (var responseResult in completeChatResponse) { - tokenUsage = responseResult.Item2?.TokenUsage; + //message_start是为了保底机制 + if (responseResult.Item1.Contains("message_delta")||responseResult.Item1.Contains("message_start")) + { + tokenUsage = responseResult.Item2?.TokenUsage; + } backupSystemContent.Append(responseResult.Item2?.Delta?.Text); await WriteAsEventStreamDataAsync(httpContext, responseResult.Item1, responseResult.Item2, cancellationToken);