fix: 修正Claude聊天响应的Token统计逻辑并优化AiGateWayManager使用条件,同时移除前端无用环境变量定义
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Text.Json;
|
||||
using Serilog;
|
||||
using Serilog.Events;
|
||||
using Yi.Abp.Web;
|
||||
|
||||
Reference in New Issue
Block a user