|
|
@@ -73,9 +73,15 @@ func OaiResponsesStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, resp
|
|
|
switch streamResponse.Type {
|
|
|
case "response.completed":
|
|
|
if streamResponse.Response.Usage != nil {
|
|
|
- usage.PromptTokens = streamResponse.Response.Usage.InputTokens
|
|
|
- usage.CompletionTokens = streamResponse.Response.Usage.OutputTokens
|
|
|
- usage.TotalTokens = streamResponse.Response.Usage.TotalTokens
|
|
|
+ if streamResponse.Response.Usage.InputTokens != 0 {
|
|
|
+ usage.PromptTokens = streamResponse.Response.Usage.InputTokens
|
|
|
+ }
|
|
|
+ if streamResponse.Response.Usage.OutputTokens != 0 {
|
|
|
+ usage.CompletionTokens = streamResponse.Response.Usage.OutputTokens
|
|
|
+ }
|
|
|
+ if streamResponse.Response.Usage.TotalTokens != 0 {
|
|
|
+ usage.TotalTokens = streamResponse.Response.Usage.TotalTokens
|
|
|
+ }
|
|
|
if streamResponse.Response.Usage.InputTokensDetails != nil {
|
|
|
usage.PromptTokensDetails.CachedTokens = streamResponse.Response.Usage.InputTokensDetails.CachedTokens
|
|
|
}
|
|
|
@@ -110,9 +116,9 @@ func OaiResponsesStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, resp
|
|
|
|
|
|
if usage.PromptTokens == 0 && usage.CompletionTokens != 0 {
|
|
|
usage.PromptTokens = info.PromptTokens
|
|
|
- } else {
|
|
|
- usage.TotalTokens = usage.PromptTokens + usage.CompletionTokens
|
|
|
}
|
|
|
|
|
|
+ usage.TotalTokens = usage.PromptTokens + usage.CompletionTokens
|
|
|
+
|
|
|
return usage, nil
|
|
|
}
|