|
|
@@ -51,7 +51,7 @@ func GeminiTextGenerationHandler(c *gin.Context, resp *http.Response, info *rela
|
|
|
// 计算使用量(基于 UsageMetadata)
|
|
|
usage := dto.Usage{
|
|
|
PromptTokens: geminiResponse.UsageMetadata.PromptTokenCount,
|
|
|
- CompletionTokens: geminiResponse.UsageMetadata.CandidatesTokenCount,
|
|
|
+ CompletionTokens: geminiResponse.UsageMetadata.CandidatesTokenCount + geminiResponse.UsageMetadata.ThoughtsTokenCount,
|
|
|
TotalTokens: geminiResponse.UsageMetadata.TotalTokenCount,
|
|
|
}
|
|
|
|
|
|
@@ -64,9 +64,6 @@ func GeminiTextGenerationHandler(c *gin.Context, resp *http.Response, info *rela
|
|
|
usage.PromptTokensDetails.TextTokens = detail.TokenCount
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // 计算最终使用量
|
|
|
- usage.CompletionTokens = usage.TotalTokens - usage.PromptTokens
|
|
|
|
|
|
// 直接返回 Gemini 原生格式的 JSON 响应
|
|
|
jsonResponse, err := json.Marshal(geminiResponse)
|
|
|
@@ -111,7 +108,7 @@ func GeminiTextGenerationStreamHandler(c *gin.Context, resp *http.Response, info
|
|
|
// 更新使用量统计
|
|
|
if geminiResponse.UsageMetadata.TotalTokenCount != 0 {
|
|
|
usage.PromptTokens = geminiResponse.UsageMetadata.PromptTokenCount
|
|
|
- usage.CompletionTokens = geminiResponse.UsageMetadata.CandidatesTokenCount
|
|
|
+ usage.CompletionTokens = geminiResponse.UsageMetadata.CandidatesTokenCount + geminiResponse.UsageMetadata.ThoughtsTokenCount
|
|
|
usage.TotalTokens = geminiResponse.UsageMetadata.TotalTokenCount
|
|
|
usage.CompletionTokenDetails.ReasoningTokens = geminiResponse.UsageMetadata.ThoughtsTokenCount
|
|
|
for _, detail := range geminiResponse.UsageMetadata.PromptTokensDetails {
|
|
|
@@ -139,7 +136,7 @@ func GeminiTextGenerationStreamHandler(c *gin.Context, resp *http.Response, info
|
|
|
}
|
|
|
|
|
|
// 计算最终使用量
|
|
|
- usage.CompletionTokens = usage.TotalTokens - usage.PromptTokens
|
|
|
+ // usage.CompletionTokens = usage.TotalTokens - usage.PromptTokens
|
|
|
|
|
|
// 移除流式响应结尾的[Done],因为Gemini API没有发送Done的行为
|
|
|
//helper.Done(c)
|