MCPcopy Create free account
hub / github.com/Rfym21/Qwen2API / createUsageObject

Function createUsageObject

src/utils/precise-tokenizer.js:78–104  ·  view source on GitHub ↗

* 创建精准的usage对象 * @param {Array|string} promptMessages - 提示消息或文本 * @param {string} completionText - 完成文本 * @param {object} realUsage - 真实的usage数据(如果有) * @param {string} model - 模型名称 * @returns {object} usage对象

(promptMessages, completionText = '', realUsage = null, model = 'gpt-3.5-turbo')

Source from the content-addressed store, hash-verified

76 * @returns {object} usage对象
77 */
78function createUsageObject(promptMessages, completionText = '', realUsage = null, model = 'gpt-3.5-turbo') {
79 // 如果有真实的usage数据,优先使用
80 if (realUsage && realUsage.prompt_tokens && realUsage.completion_tokens) {
81 return {
82 prompt_tokens: realUsage.prompt_tokens,
83 completion_tokens: realUsage.completion_tokens,
84 total_tokens: realUsage.total_tokens || (realUsage.prompt_tokens + realUsage.completion_tokens)
85 }
86 }
87
88 // 计算prompt tokens
89 let promptTokens = 0
90 if (Array.isArray(promptMessages)) {
91 promptTokens = countMessagesTokens(promptMessages, model)
92 } else if (typeof promptMessages === 'string') {
93 promptTokens = countTokens(promptMessages, model)
94 }
95
96 // 计算completion tokens
97 const completionTokens = countTokens(completionText, model)
98
99 return {
100 prompt_tokens: promptTokens,
101 completion_tokens: completionTokens,
102 total_tokens: promptTokens + completionTokens
103 }
104}
105
106module.exports = {
107 countTokens,

Callers 4

handleStreamResponseFunction · 0.85
handleNonStreamResponseFunction · 0.85
handleAnthropicStreamFunction · 0.85
handleAnthropicNonStreamFunction · 0.85

Calls 2

countMessagesTokensFunction · 0.85
countTokensFunction · 0.85

Tested by

no test coverage detected