llm-credit-sdk
Version:
SDK for estimating and reconciling LLM token costs using a credit system.
49 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OPENAI_EXTRACTORS = exports.openAIGenericExtractor = exports.openAIChatExtractor = void 0;
/**
* Token extractor for OpenAI Chat Completions API
*
* This extractor handles the standard OpenAI Chat Completions response format
* as documented at https://platform.openai.com/docs/guides/text-generation
*/
exports.openAIChatExtractor = {
providerName: 'openai',
description: 'OpenAI Chat Completions API',
apiVersion: 'v1',
extract: (response) => {
if (!response.usage) {
throw new Error('OpenAI response missing usage information');
}
return {
promptTokens: response.usage.prompt_tokens,
completionTokens: response.usage.completion_tokens
};
}
};
/**
* Generic OpenAI extractor that works with various response formats
* that follow the standard OpenAI usage pattern
*/
exports.openAIGenericExtractor = {
providerName: 'openai',
description: 'Generic OpenAI API extractor for various endpoints',
extract: (response) => {
if (!response?.usage) {
throw new Error('OpenAI response missing usage information');
}
const usage = response.usage;
return {
promptTokens: usage.prompt_tokens || 0,
completionTokens: usage.completion_tokens || 0
};
}
};
/**
* Collection of OpenAI extractors for different use cases
*/
exports.OPENAI_EXTRACTORS = {
chat: exports.openAIChatExtractor,
generic: exports.openAIGenericExtractor
};
//# sourceMappingURL=openai.js.map