import { LanguageModelV3Usage } from '@ai-sdk/provider'; export function convertDeepSeekUsage( usage: | { prompt_tokens?: number | null | undefined; completion_tokens?: number | null | undefined; prompt_cache_hit_tokens?: number | null | undefined; completion_tokens_details?: | { reasoning_tokens?: number | null | undefined; } | null | undefined; } | undefined | null, ): LanguageModelV3Usage { if (usage == null) { return { inputTokens: { total: undefined, noCache: undefined, cacheRead: undefined, cacheWrite: undefined, }, outputTokens: { total: undefined, text: undefined, reasoning: undefined, }, raw: undefined, }; } const promptTokens = usage.prompt_tokens ?? 0; const completionTokens = usage.completion_tokens ?? 0; const cacheReadTokens = usage.prompt_cache_hit_tokens ?? 0; const reasoningTokens = usage.completion_tokens_details?.reasoning_tokens ?? 0; return { inputTokens: { total: promptTokens, noCache: promptTokens - cacheReadTokens, cacheRead: cacheReadTokens, cacheWrite: undefined, }, outputTokens: { total: completionTokens, text: completionTokens - reasoningTokens, reasoning: reasoningTokens, }, raw: usage, }; }