fix: 修正Claude聊天响应的Token统计逻辑并优化AiGateWayManager使用条件,同时移除前端无用环境变量定义

This commit is contained in:
ccnetcore
2025-10-16 22:11:09 +08:00
parent c5c22224cf
commit 867a2dc861
4 changed files with 21 additions and 11 deletions

View File

@@ -590,7 +590,7 @@ public sealed class ClaudiaChatCompletionsService(
Model = input.Model,
Usage = new ThorUsageResponse()
{
PromptTokens = result?.Message?.Usage?.InputTokens,
PromptTokens = result?.Message?.Usage?.InputTokens
}
};
continue;
@@ -623,7 +623,7 @@ public sealed class ClaudiaChatCompletionsService(
if (result.Type == "message_delta")
{
yield return new ThorChatCompletionsResponse()
var deltaOutput = new ThorChatCompletionsResponse()
{
Choices =
[
@@ -637,13 +637,22 @@ public sealed class ClaudiaChatCompletionsService(
}
],
Model = input.Model,
Usage = new ThorUsageResponse()
Usage = new ThorUsageResponse
{
CompletionTokens = result.Usage?.OutputTokens,
InputTokens = result.Usage?.InputTokens
InputTokens = result.Usage?.InputTokens + result.Usage?.CacheCreationInputTokens +
result.Usage?.CacheReadInputTokens,
OutputTokens = result.Usage?.OutputTokens,
}
};
deltaOutput.Usage.PromptTokens = deltaOutput.Usage.InputTokens;
deltaOutput.Usage.CompletionTokens = deltaOutput.Usage.OutputTokens;
deltaOutput.Usage.TotalTokens = deltaOutput.Usage.InputTokens + deltaOutput.Usage.OutputTokens;
yield return deltaOutput;
continue;
}
@@ -694,13 +703,14 @@ public sealed class ClaudiaChatCompletionsService(
Id = result.Message.id,
Usage = new ThorUsageResponse()
{
CompletionTokens = result.Message.Usage?.OutputTokens,
PromptTokens = result.Message.Usage?.InputTokens,
InputTokens = result.Message.Usage?.InputTokens,
InputTokens = result.Message.Usage?.InputTokens + result.Message.Usage?.CacheCreationInputTokens +
result.Message.Usage?.CacheReadInputTokens,
OutputTokens = result.Message.Usage?.OutputTokens,
TotalTokens = result.Message.Usage?.InputTokens + result.Message.Usage?.OutputTokens
}
};
output.Usage.PromptTokens = output.Usage.InputTokens;
output.Usage.CompletionTokens = output.Usage.OutputTokens;
output.Usage.TotalTokens = output.Usage.InputTokens + output.Usage.OutputTokens;
output.SupplementalMultiplier(AnthropicChatCompletionsService.ClaudeMultiplier);
yield return output;
}

View File

@@ -225,7 +225,7 @@ public class AiGateWayManager : DomainService
{
await foreach (var data in completeChatResponse)
{
if (data.Usage is not null)
if (data.Usage is not null&&(data.Usage.CompletionTokens>0||data.Usage.OutputTokens>0))
{
tokenUsage = data.Usage;
}

View File

@@ -1,3 +1,4 @@
using System.Text.Json;
using Serilog;
using Serilog.Events;
using Yi.Abp.Web;