|
|
@@ -466,6 +466,7 @@ class PointsService
|
|
|
* 从 AI 对话接口返回的 usage 中提取消耗的 token 数
|
|
|
*
|
|
|
* DeepSeek/OpenAI 格式:usage.total_tokens / usage.completion_tokens
|
|
|
+ * Gemini 格式:usageMetadata.totalTokenCount(含思考 token),缺省时按 prompt + candidates 合计
|
|
|
*
|
|
|
* @param mixed $usage
|
|
|
* @return int
|
|
|
@@ -479,7 +480,16 @@ class PointsService
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- $tokens = $usage['total_tokens'] ?? $usage['completion_tokens'] ?? 0;
|
|
|
+ $tokens = $usage['total_tokens']
|
|
|
+ ?? $usage['completion_tokens']
|
|
|
+ ?? $usage['totalTokenCount']
|
|
|
+ ?? (
|
|
|
+ isset($usage['promptTokenCount']) || isset($usage['candidatesTokenCount'])
|
|
|
+ ? (int)($usage['promptTokenCount'] ?? 0)
|
|
|
+ + (int)($usage['candidatesTokenCount'] ?? 0)
|
|
|
+ + (int)($usage['thoughtsTokenCount'] ?? 0)
|
|
|
+ : 0
|
|
|
+ );
|
|
|
return (int)$tokens;
|
|
|
}
|
|
|
|