@ai-sdk/openai
Version:
The **[OpenAI provider](https://ai-sdk.dev/providers/ai-sdk-providers/openai)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the OpenAI chat and completion APIs and embedding model support for the OpenAI embeddings API.
47 lines (42 loc) • 1.09 kB
text/typescript
import type { LanguageModelV4Usage } from '@ai-sdk/provider';
export type OpenAICompletionUsage = {
prompt_tokens?: number | null;
completion_tokens?: number | null;
total_tokens?: number | null;
};
export function convertOpenAICompletionUsage(
usage: OpenAICompletionUsage | undefined | null,
): LanguageModelV4Usage {
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;
return {
inputTokens: {
total: usage.prompt_tokens ?? undefined,
noCache: promptTokens,
cacheRead: undefined,
cacheWrite: undefined,
},
outputTokens: {
total: usage.completion_tokens ?? undefined,
text: completionTokens,
reasoning: undefined,
},
raw: usage,
};
}