fix: 修正消息与Anthropic返回的Token统计逻辑,避免零值覆盖并支持缓存Token计算

This commit is contained in:
chenchun
2025-10-11 23:27:46 +08:00
parent 2b12e18e6c
commit 593b3a4cdd
2 changed files with 25 additions and 16 deletions

View File

@@ -29,13 +29,20 @@ public class MessageAggregateRoot : FullAuditedAggregateRoot<Guid>
ModelId = modelId;
if (tokenUsage is not null)
{
long inputTokenCount = tokenUsage.PromptTokens
?? tokenUsage.InputTokens
?? 0;
long inputTokenCount =
(tokenUsage.PromptTokens.HasValue && tokenUsage.PromptTokens.Value != 0)
? tokenUsage.PromptTokens.Value
: (tokenUsage.InputTokens.HasValue && tokenUsage.InputTokens.Value != 0)
? tokenUsage.InputTokens.Value
: 0;
long outputTokenCount =
(tokenUsage.CompletionTokens.HasValue && tokenUsage.CompletionTokens.Value != 0)
? tokenUsage.CompletionTokens.Value
: (tokenUsage.OutputTokens.HasValue && tokenUsage.OutputTokens.Value != 0)
? tokenUsage.OutputTokens.Value
: 0;
long outputTokenCount = tokenUsage.CompletionTokens
?? tokenUsage.OutputTokens
?? 0;
this.TokenUsage = new TokenUsageValueObject
{