mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 19:32:15 +00:00
feat: Auto-compact workflow builder conversation history (no-changelog) (#18083)
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user