diff --git a/astrbot/core/provider/sources/openai_source.py b/astrbot/core/provider/sources/openai_source.py index 90d427248..233347bbd 100644 --- a/astrbot/core/provider/sources/openai_source.py +++ b/astrbot/core/provider/sources/openai_source.py @@ -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,