mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-15 17:30:13 +08:00
Fix handling of cached_tokens in _extract_usage
Ensure cached_tokens is an integer and handle None safely.
This commit is contained in:
@@ -391,7 +391,8 @@ class ProviderOpenAIOfficial(Provider):
|
||||
def _extract_usage(self, usage: CompletionUsage | dict) -> TokenUsage:
|
||||
ptd = getattr(usage, "prompt_tokens_details", None)
|
||||
cached = getattr(ptd, "cached_tokens", 0) if ptd else 0
|
||||
prompt_tokens = getattr(usage, "prompt_tokens", 0) or 0
|
||||
cached = cached if isinstance(cached, int) else 0 # ptd.cached_tokens 可能为None
|
||||
prompt_tokens = getattr(usage, "prompt_tokens", 0) or 0 # 安全
|
||||
completion_tokens = getattr(usage, "completion_tokens", 0) or 0
|
||||
return TokenUsage(
|
||||
input_other=prompt_tokens - cached,
|
||||
|
||||
Reference in New Issue
Block a user