fix: add content length token tracking for URL content

Co-Authored-By: sha.zhou@jina.ai <sha.zhou@jina.ai>
This commit is contained in:
Devin AI
2025-02-11 10:31:47 +00:00
parent 5808ae9540
commit 6fbbb5301e

View File

@@ -70,11 +70,20 @@ export function readUrl(url: string, tracker?: TokenTracker): Promise<{ response
tokens: response.data.usage?.tokens || 0 tokens: response.data.usage?.tokens || 0
}); });
const tokens = response.data.usage?.tokens || 0; const apiTokens = response.data.usage?.tokens || 0;
const tokenTracker = tracker || new TokenTracker();
tokenTracker.trackUsage('read', tokens); if (tracker) {
// Track API response tokens
tracker.trackUsage('read_api', apiTokens);
// Track content length tokens using the same estimation method
if (response.data.content) {
const contentTokens = Math.ceil(Buffer.byteLength(response.data.content, 'utf-8') / 4);
tracker.trackUsage('read_content', contentTokens);
}
}
resolve({ response, tokens }); resolve({ response, tokens: apiTokens });
}); });
}); });
@@ -95,4 +104,4 @@ export function readUrl(url: string, tracker?: TokenTracker): Promise<{ response
export function removeAllLineBreaks(text: string) { export function removeAllLineBreaks(text: string) {
return text.replace(/(\r\n|\n|\r)/gm, " "); return text.replace(/(\r\n|\n|\r)/gm, " ");
} }