4e9ef48af2
* fix: handle None values in _extract_usage to prevent TypeError Some LLM providers (especially API proxies) may return None for prompt_tokens and completion_tokens in the usage response. This causes a TypeError when attempting arithmetic operations. Added null checks with fallback to 0 for both prompt_tokens and completion_tokens before performing calculations. * refactor: use explicit None check and reuse cached variable - Use `is None` instead of `or 0` to avoid masking unexpected falsy values - Reuse `cached` variable for `input_cached` to avoid redundant calculation * ruff format --------- Co-authored-by: Soulter <905617992@qq.com>