mirror of
https://github.com/jina-ai/node-DeepResearch.git
synced 2026-03-22 07:29:35 +08:00
fix: ensure tokens are properly accumulated by using passed tracker instance
Co-Authored-By: sha.zhou@jina.ai <sha.zhou@jina.ai>
This commit is contained in:
@@ -381,7 +381,9 @@ export async function evaluateQuestion(
|
||||
maxTokens: getMaxTokens('evaluator')
|
||||
});
|
||||
|
||||
(tracker || new TokenTracker()).trackUsage('evaluator', result.usage?.totalTokens || 0);
|
||||
if (tracker) {
|
||||
tracker.trackUsage('evaluator', result.usage?.totalTokens || 0);
|
||||
}
|
||||
console.log('Question Evaluation:', result.object);
|
||||
|
||||
// Always include definitive in types
|
||||
@@ -419,7 +421,9 @@ async function performEvaluation(
|
||||
maxTokens: params.maxTokens
|
||||
});
|
||||
|
||||
(tracker || new TokenTracker()).trackUsage('evaluator', result.usage?.totalTokens || 0);
|
||||
if (tracker) {
|
||||
tracker.trackUsage('evaluator', result.usage?.totalTokens || 0);
|
||||
}
|
||||
console.log(`${evaluationType} Evaluation:`, result.object);
|
||||
|
||||
return result;
|
||||
@@ -523,7 +527,9 @@ export async function evaluateAnswer(
|
||||
}
|
||||
} catch (error) {
|
||||
const errorResult = await handleGenerateObjectError<EvaluationResponse>(error);
|
||||
(tracker || new TokenTracker()).trackUsage('evaluator', errorResult.totalTokens || 0);
|
||||
if (tracker) {
|
||||
tracker.trackUsage('evaluator', errorResult.totalTokens || 0);
|
||||
}
|
||||
return {response: errorResult.object};
|
||||
}
|
||||
}
|
||||
@@ -557,4 +563,4 @@ async function fetchSourceContent(urls: string[], tracker?: TokenTracker): Promi
|
||||
console.error('Error fetching source content:', error);
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,8 +62,9 @@ export function search(query: string, tracker?: TokenTracker): Promise<{ respons
|
||||
const totalTokens = response.data.reduce((sum, item) => sum + (item.usage?.tokens || 0), 0);
|
||||
console.log('Total URLs:', response.data.length);
|
||||
|
||||
const tokenTracker = tracker || new TokenTracker();
|
||||
tokenTracker.trackUsage('search', totalTokens);
|
||||
if (tracker) {
|
||||
tracker.trackUsage('search', totalTokens);
|
||||
}
|
||||
|
||||
resolve({ response, tokens: totalTokens });
|
||||
});
|
||||
@@ -81,4 +82,4 @@ export function search(query: string, tracker?: TokenTracker): Promise<{ respons
|
||||
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ export class TokenTracker extends EventEmitter {
|
||||
if (!this.budget || currentTotal + tokens <= this.budget) {
|
||||
const usage = { tool, tokens, category };
|
||||
this.usages.push(usage);
|
||||
console.log(`[TokenTracker] Adding ${tokens} tokens from ${tool}${category ? ` (${category})` : ''}`);
|
||||
console.log(`[TokenTracker] New total: ${this.getTotalUsage()}`);
|
||||
this.emit('usage', usage);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user