mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
35 lines
831 B
TypeScript
35 lines
831 B
TypeScript
import { AIMessage } from '@langchain/core/messages';
|
|
|
|
type AIMessageWithUsageMetadata = AIMessage & {
|
|
response_metadata: {
|
|
usage: {
|
|
input_tokens: number;
|
|
output_tokens: number;
|
|
};
|
|
};
|
|
};
|
|
|
|
export interface TokenUsage {
|
|
input_tokens: number;
|
|
output_tokens: number;
|
|
}
|
|
|
|
/**
|
|
* Extracts token usage information from the last AI assistant message
|
|
*/
|
|
export function extractLastTokenUsage(messages: unknown[]): TokenUsage | undefined {
|
|
const lastAiAssistantMessage = messages.findLast(
|
|
(m): m is AIMessageWithUsageMetadata =>
|
|
m instanceof AIMessage &&
|
|
m.response_metadata?.usage !== undefined &&
|
|
'input_tokens' in m.response_metadata.usage &&
|
|
'output_tokens' in m.response_metadata.usage,
|
|
);
|
|
|
|
if (!lastAiAssistantMessage) {
|
|
return undefined;
|
|
}
|
|
|
|
return lastAiAssistantMessage.response_metadata.usage;
|
|
}
|