@cascadeflow/n8n-nodes-cascadeflow 0.5.5 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatCascadeFlow.node.d.ts","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACX,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"LmChatCascadeFlow.node.d.ts","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACX,MAAM,cAAc,CAAC;AAoqBtB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,WAAW,EAAE,oBAAoB,CAiF/B;IAEI,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CA+DlE"}
|
|
@@ -3,24 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LmChatCascadeFlow = void 0;
|
|
4
4
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
5
|
const chat_models_1 = require("@langchain/core/language_models/chat_models");
|
|
6
|
-
|
|
6
|
+
const outputs_1 = require("@langchain/core/outputs");
|
|
7
|
+
// Quality validation, cost tracking, and routing - optional import, fallback if unavailable
|
|
7
8
|
let QualityValidator;
|
|
8
9
|
let CASCADE_QUALITY_CONFIG;
|
|
10
|
+
let CostCalculator;
|
|
11
|
+
let ComplexityDetector;
|
|
12
|
+
let PreRouter;
|
|
9
13
|
try {
|
|
10
14
|
const cascadeCore = require('@cascadeflow/core');
|
|
11
15
|
QualityValidator = cascadeCore.QualityValidator;
|
|
12
16
|
CASCADE_QUALITY_CONFIG = cascadeCore.CASCADE_QUALITY_CONFIG;
|
|
17
|
+
CostCalculator = cascadeCore.CostCalculator;
|
|
18
|
+
ComplexityDetector = cascadeCore.ComplexityDetector;
|
|
19
|
+
PreRouter = cascadeCore.PreRouter;
|
|
13
20
|
}
|
|
14
21
|
catch (e) {
|
|
15
|
-
// @cascadeflow/core not available - use simple validation
|
|
16
|
-
console.warn('⚠️ @cascadeflow/core not available, using
|
|
22
|
+
// @cascadeflow/core not available - use simple validation and estimates
|
|
23
|
+
console.warn('⚠️ @cascadeflow/core not available, using fallbacks');
|
|
17
24
|
}
|
|
18
25
|
/**
|
|
19
26
|
* Custom CascadeChatModel that wraps two models (drafter and verifier)
|
|
20
27
|
* and implements cascading logic with cost tracking
|
|
21
28
|
*/
|
|
22
29
|
class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
23
|
-
constructor(drafterModel, verifierModelGetter, qualityThreshold = 0.7) {
|
|
30
|
+
constructor(drafterModel, verifierModelGetter, qualityThreshold = 0.7, useSemanticValidation = true, useAlignmentScoring = true, useComplexityRouting = true) {
|
|
24
31
|
super({});
|
|
25
32
|
// Cost tracking
|
|
26
33
|
this.drafterCost = 0;
|
|
@@ -30,14 +37,23 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
30
37
|
this.drafterModel = drafterModel;
|
|
31
38
|
this.verifierModelGetter = verifierModelGetter;
|
|
32
39
|
this.qualityThreshold = qualityThreshold;
|
|
33
|
-
// Initialize quality validator with CASCADE-optimized config
|
|
40
|
+
// Initialize quality validator with CASCADE-optimized config + semantic validation
|
|
34
41
|
if (QualityValidator && CASCADE_QUALITY_CONFIG) {
|
|
35
42
|
try {
|
|
36
43
|
this.qualityValidator = new QualityValidator({
|
|
37
44
|
...CASCADE_QUALITY_CONFIG,
|
|
38
45
|
minConfidence: qualityThreshold,
|
|
46
|
+
useSemanticValidation, // Enable semantic ML-based validation
|
|
47
|
+
useAlignmentScoring, // Enable query-response alignment scoring
|
|
48
|
+
semanticThreshold: 0.5, // Semantic similarity threshold
|
|
39
49
|
});
|
|
40
50
|
console.log('✅ CascadeFlow quality validator initialized');
|
|
51
|
+
if (useSemanticValidation) {
|
|
52
|
+
console.log(' 📊 Semantic validation enabled (requires @cascadeflow/ml)');
|
|
53
|
+
}
|
|
54
|
+
if (useAlignmentScoring) {
|
|
55
|
+
console.log(' 🎯 Alignment scoring enabled');
|
|
56
|
+
}
|
|
41
57
|
}
|
|
42
58
|
catch (e) {
|
|
43
59
|
console.warn('⚠️ Quality validator initialization failed, using simple check');
|
|
@@ -47,6 +63,39 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
47
63
|
else {
|
|
48
64
|
this.qualityValidator = null;
|
|
49
65
|
}
|
|
66
|
+
// Initialize cost calculator if available
|
|
67
|
+
if (CostCalculator) {
|
|
68
|
+
try {
|
|
69
|
+
this.costCalculator = new CostCalculator();
|
|
70
|
+
console.log('💰 CascadeFlow cost calculator initialized');
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
console.warn('⚠️ Cost calculator initialization failed, using estimates');
|
|
74
|
+
this.costCalculator = null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.costCalculator = null;
|
|
79
|
+
}
|
|
80
|
+
// Initialize complexity detector and PreRouter if enabled
|
|
81
|
+
if (useComplexityRouting && ComplexityDetector && PreRouter) {
|
|
82
|
+
try {
|
|
83
|
+
this.complexityDetector = new ComplexityDetector();
|
|
84
|
+
// Note: PreRouter needs model configs, but we only have 2 models in n8n (drafter/verifier)
|
|
85
|
+
// We'll use complexity detection to decide: trivial/simple → drafter, hard/expert → direct verifier
|
|
86
|
+
this.preRouter = null; // Not using full PreRouter since we only have 2 models
|
|
87
|
+
console.log('🧠 CascadeFlow complexity-based routing enabled');
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
console.warn('⚠️ Complexity detector initialization failed');
|
|
91
|
+
this.complexityDetector = null;
|
|
92
|
+
this.preRouter = null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.complexityDetector = null;
|
|
97
|
+
this.preRouter = null;
|
|
98
|
+
}
|
|
50
99
|
}
|
|
51
100
|
async getVerifierModel() {
|
|
52
101
|
if (!this.verifierModel) {
|
|
@@ -65,6 +114,96 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
65
114
|
const modelName = model.modelName || model.model || 'unknown';
|
|
66
115
|
return `${type} (${modelName})`;
|
|
67
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Check if message contains tool calls
|
|
119
|
+
* Tool calls can be in additional_kwargs.tool_calls or additional_kwargs.function_call
|
|
120
|
+
*/
|
|
121
|
+
hasToolCalls(message) {
|
|
122
|
+
const additionalKwargs = message.additional_kwargs || {};
|
|
123
|
+
// Check for tool_calls array (OpenAI format)
|
|
124
|
+
if (additionalKwargs.tool_calls && Array.isArray(additionalKwargs.tool_calls) && additionalKwargs.tool_calls.length > 0) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
// Check for function_call object (legacy format)
|
|
128
|
+
if (additionalKwargs.function_call && typeof additionalKwargs.function_call === 'object') {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
// Check for tool_calls in response_metadata (Anthropic format)
|
|
132
|
+
const responseMetadata = message.response_metadata || {};
|
|
133
|
+
if (responseMetadata.tool_calls && Array.isArray(responseMetadata.tool_calls) && responseMetadata.tool_calls.length > 0) {
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get count of tool calls in message
|
|
140
|
+
*/
|
|
141
|
+
getToolCallsCount(message) {
|
|
142
|
+
const additionalKwargs = message.additional_kwargs || {};
|
|
143
|
+
const responseMetadata = message.response_metadata || {};
|
|
144
|
+
// Count tool_calls array
|
|
145
|
+
if (additionalKwargs.tool_calls && Array.isArray(additionalKwargs.tool_calls)) {
|
|
146
|
+
return additionalKwargs.tool_calls.length;
|
|
147
|
+
}
|
|
148
|
+
// Count function_call (legacy - counts as 1)
|
|
149
|
+
if (additionalKwargs.function_call) {
|
|
150
|
+
return 1;
|
|
151
|
+
}
|
|
152
|
+
// Count Anthropic format tool_calls
|
|
153
|
+
if (responseMetadata.tool_calls && Array.isArray(responseMetadata.tool_calls)) {
|
|
154
|
+
return responseMetadata.tool_calls.length;
|
|
155
|
+
}
|
|
156
|
+
return 0;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Calculate accurate cost from message token usage
|
|
160
|
+
* Falls back to rough estimates if cost calculator unavailable
|
|
161
|
+
*/
|
|
162
|
+
async calculateMessageCost(message, model) {
|
|
163
|
+
// Extract token usage from response metadata
|
|
164
|
+
const responseMetadata = message.response_metadata || {};
|
|
165
|
+
const tokenUsage = responseMetadata.tokenUsage || responseMetadata.usage || {};
|
|
166
|
+
const inputTokens = tokenUsage.promptTokens || tokenUsage.prompt_tokens || 0;
|
|
167
|
+
const outputTokens = tokenUsage.completionTokens || tokenUsage.completion_tokens || 0;
|
|
168
|
+
// Get model name
|
|
169
|
+
const modelName = model.modelName || model.model || 'unknown';
|
|
170
|
+
// Use cost calculator if available
|
|
171
|
+
if (this.costCalculator && inputTokens > 0) {
|
|
172
|
+
try {
|
|
173
|
+
const cost = await this.costCalculator.calculateCost({
|
|
174
|
+
model: modelName,
|
|
175
|
+
inputTokens,
|
|
176
|
+
outputTokens,
|
|
177
|
+
});
|
|
178
|
+
return cost;
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
console.warn(`Cost calculation failed for ${modelName}, using estimate`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Fallback to rough estimates based on model name
|
|
185
|
+
const estimatesPerMillion = {
|
|
186
|
+
'gpt-4o-mini': { input: 0.15, output: 0.6 },
|
|
187
|
+
'gpt-4o': { input: 5.0, output: 15.0 },
|
|
188
|
+
'gpt-4-turbo': { input: 10.0, output: 30.0 },
|
|
189
|
+
'gpt-4': { input: 30.0, output: 60.0 },
|
|
190
|
+
'gpt-3.5-turbo': { input: 0.5, output: 1.5 },
|
|
191
|
+
'claude-3-5-sonnet': { input: 3.0, output: 15.0 },
|
|
192
|
+
'claude-3-haiku': { input: 0.25, output: 1.25 },
|
|
193
|
+
default: { input: 1.0, output: 2.0 },
|
|
194
|
+
};
|
|
195
|
+
// Find matching estimate
|
|
196
|
+
let estimate = estimatesPerMillion.default;
|
|
197
|
+
for (const [key, value] of Object.entries(estimatesPerMillion)) {
|
|
198
|
+
if (modelName.includes(key)) {
|
|
199
|
+
estimate = value;
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const cost = (inputTokens / 1000000) * estimate.input +
|
|
204
|
+
(outputTokens / 1000000) * estimate.output;
|
|
205
|
+
return cost;
|
|
206
|
+
}
|
|
68
207
|
/**
|
|
69
208
|
* Simple quality validation fallback (when @cascadeflow/core not available)
|
|
70
209
|
*/
|
|
@@ -99,7 +238,61 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
99
238
|
}
|
|
100
239
|
async _generate(messages, options, runManager) {
|
|
101
240
|
try {
|
|
102
|
-
// Step 1:
|
|
241
|
+
// Step 1: Detect query complexity (if enabled)
|
|
242
|
+
const queryText = messages.map(m => m.content.toString()).join(' ');
|
|
243
|
+
let complexity;
|
|
244
|
+
let shouldSkipDrafter = false;
|
|
245
|
+
if (this.complexityDetector) {
|
|
246
|
+
try {
|
|
247
|
+
const complexityResult = await this.complexityDetector.detectComplexity(queryText);
|
|
248
|
+
complexity = complexityResult.level;
|
|
249
|
+
// Skip drafter for hard/expert queries - go directly to verifier
|
|
250
|
+
if (complexity === 'hard' || complexity === 'expert') {
|
|
251
|
+
shouldSkipDrafter = true;
|
|
252
|
+
await runManager?.handleText(`🧠 Complexity: ${complexity} → Routing directly to verifier (skip drafter)\n`);
|
|
253
|
+
console.log(`🧠 Complexity: ${complexity} → Direct verifier route`);
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
await runManager?.handleText(`🧠 Complexity: ${complexity} → Trying drafter first\n`);
|
|
257
|
+
console.log(`🧠 Complexity: ${complexity} → Drafter route`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
catch (e) {
|
|
261
|
+
console.warn('Complexity detection failed, using normal flow');
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Step 1a: If complexity routing says skip drafter, go directly to verifier
|
|
265
|
+
if (shouldSkipDrafter) {
|
|
266
|
+
const verifierModel = await this.getVerifierModel();
|
|
267
|
+
const verifierInfo = this.getModelInfo(verifierModel);
|
|
268
|
+
await runManager?.handleText(`⚡ Direct route: Using verifier for ${complexity} query\n`);
|
|
269
|
+
const verifierStartTime = Date.now();
|
|
270
|
+
const verifierMessage = await verifierModel.invoke(messages, options);
|
|
271
|
+
const verifierLatency = Date.now() - verifierStartTime;
|
|
272
|
+
this.verifierCount++;
|
|
273
|
+
const verifierCost = await this.calculateMessageCost(verifierMessage, verifierModel);
|
|
274
|
+
const flowLog = `\n┌────────────────────────────────────────────┐\n│ ⚡ FLOW: DIRECT VERIFIER (SMART ROUTE) │\n└────────────────────────────────────────────┘\n Query → Complexity Check (${complexity}) → Verifier → Response\n 🧠 Smart routing: Skipped drafter for complex query\n Model used: ${verifierInfo}\n Latency: ${verifierLatency}ms\n 💰 Cost: $${verifierCost.toFixed(6)}\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
|
|
275
|
+
await runManager?.handleText(flowLog);
|
|
276
|
+
console.log(flowLog);
|
|
277
|
+
if (!verifierMessage.response_metadata) {
|
|
278
|
+
verifierMessage.response_metadata = {};
|
|
279
|
+
}
|
|
280
|
+
verifierMessage.response_metadata.cascadeflow = {
|
|
281
|
+
flow: 'direct_verifier',
|
|
282
|
+
complexity,
|
|
283
|
+
latency_ms: verifierLatency,
|
|
284
|
+
cost_usd: verifierCost,
|
|
285
|
+
model_used: 'verifier',
|
|
286
|
+
reason: `Query complexity (${complexity}) warranted direct verifier routing`
|
|
287
|
+
};
|
|
288
|
+
return {
|
|
289
|
+
generations: [{
|
|
290
|
+
text: verifierMessage.content.toString(),
|
|
291
|
+
message: verifierMessage,
|
|
292
|
+
}],
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
// Step 2: Try the drafter model (normal flow)
|
|
103
296
|
const drafterInfo = this.getModelInfo(this.drafterModel);
|
|
104
297
|
await runManager?.handleText(`🎯 CascadeFlow: Trying drafter model (from BOTTOM port): ${drafterInfo}\n`);
|
|
105
298
|
console.log(`🎯 CascadeFlow: Trying drafter model (from BOTTOM port): ${drafterInfo}`);
|
|
@@ -107,7 +300,36 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
107
300
|
const drafterMessage = await this.drafterModel.invoke(messages, options);
|
|
108
301
|
const drafterLatency = Date.now() - drafterStartTime;
|
|
109
302
|
this.drafterCount++;
|
|
110
|
-
// Step 2:
|
|
303
|
+
// Step 2: Check if response contains tool calls
|
|
304
|
+
// Tool calls skip quality validation and pass through directly
|
|
305
|
+
const hasToolCalls = this.hasToolCalls(drafterMessage);
|
|
306
|
+
if (hasToolCalls) {
|
|
307
|
+
const toolCallsCount = this.getToolCallsCount(drafterMessage);
|
|
308
|
+
const toolLog = ` 🔧 Tool calls detected (${toolCallsCount}) - bypassing quality check\n`;
|
|
309
|
+
await runManager?.handleText(toolLog);
|
|
310
|
+
console.log(toolLog);
|
|
311
|
+
const flowLog = `\n┌──────────────────────────────────────────┐\n│ 🔧 FLOW: TOOL CALLS (DIRECT PASS) │\n└──────────────────────────────────────────┘\n Query → Drafter → Tool Calls (${toolCallsCount}) → Response\n ⚡ Tool calling: Drafter generated tool calls\n Model used: ${drafterInfo}\n Latency: ${drafterLatency}ms\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
|
|
312
|
+
await runManager?.handleText(flowLog);
|
|
313
|
+
console.log(flowLog);
|
|
314
|
+
// Add tool call metadata
|
|
315
|
+
if (!drafterMessage.response_metadata) {
|
|
316
|
+
drafterMessage.response_metadata = {};
|
|
317
|
+
}
|
|
318
|
+
drafterMessage.response_metadata.cascadeflow = {
|
|
319
|
+
flow: 'tool_calls_direct',
|
|
320
|
+
has_tool_calls: true,
|
|
321
|
+
tool_calls_count: toolCallsCount,
|
|
322
|
+
latency_ms: drafterLatency,
|
|
323
|
+
model_used: 'drafter'
|
|
324
|
+
};
|
|
325
|
+
return {
|
|
326
|
+
generations: [{
|
|
327
|
+
text: drafterMessage.content.toString(),
|
|
328
|
+
message: drafterMessage,
|
|
329
|
+
}],
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
// Step 3: Quality check using CascadeFlow validator (or simple fallback)
|
|
111
333
|
const responseText = drafterMessage.content.toString();
|
|
112
334
|
let validationResult;
|
|
113
335
|
if (this.qualityValidator) {
|
|
@@ -138,13 +360,11 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
138
360
|
await runManager?.handleText(simpleLog);
|
|
139
361
|
console.log(simpleLog);
|
|
140
362
|
}
|
|
141
|
-
// Step
|
|
363
|
+
// Step 4: If quality is sufficient, return drafter response
|
|
142
364
|
if (validationResult.passed) {
|
|
143
|
-
//
|
|
144
|
-
const
|
|
145
|
-
const
|
|
146
|
-
const savings = ((estimatedVerifierCost - estimatedDrafterCost) / estimatedVerifierCost * 100).toFixed(1);
|
|
147
|
-
const flowLog = `\n┌─────────────────────────────────────────┐\n│ ✅ FLOW: DRAFTER ACCEPTED (FAST PATH) │\n└─────────────────────────────────────────┘\n Query → Drafter → Quality Check ✅ → Response\n ⚡ Fast & Cheap: Used drafter model only\n Model used: ${drafterInfo}\n Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})\n Quality score: ${validationResult.score.toFixed(2)}\n Latency: ${drafterLatency}ms\n 💰 Cost savings: ~${savings}% (used cheap model)\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
|
|
365
|
+
// Calculate actual cost
|
|
366
|
+
const drafterCost = await this.calculateMessageCost(drafterMessage, this.drafterModel);
|
|
367
|
+
const flowLog = `\n┌─────────────────────────────────────────┐\n│ ✅ FLOW: DRAFTER ACCEPTED (FAST PATH) │\n└─────────────────────────────────────────┘\n Query → Drafter → Quality Check ✅ → Response\n ⚡ Fast & Cheap: Used drafter model only\n Model used: ${drafterInfo}\n Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})\n Quality score: ${validationResult.score.toFixed(2)}\n Latency: ${drafterLatency}ms\n 💰 Cost: $${drafterCost.toFixed(6)} (drafter only)\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
|
|
148
368
|
await runManager?.handleText(flowLog);
|
|
149
369
|
console.log(flowLog);
|
|
150
370
|
// Add flow metadata to message for n8n UI visibility (logs only, not in response text)
|
|
@@ -156,7 +376,7 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
156
376
|
confidence: validationResult.confidence,
|
|
157
377
|
quality_score: validationResult.score,
|
|
158
378
|
latency_ms: drafterLatency,
|
|
159
|
-
|
|
379
|
+
cost_usd: drafterCost,
|
|
160
380
|
model_used: 'drafter'
|
|
161
381
|
};
|
|
162
382
|
return {
|
|
@@ -166,7 +386,7 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
166
386
|
}],
|
|
167
387
|
};
|
|
168
388
|
}
|
|
169
|
-
// Step
|
|
389
|
+
// Step 5: Otherwise, escalate to verifier
|
|
170
390
|
const escalateLog = `\n┌────────────────────────────────────────────────┐\n│ ⚠️ FLOW: ESCALATED TO VERIFIER (SLOW PATH) │\n└────────────────────────────────────────────────┘\n Query → Drafter → Quality Check ❌ → Verifier → Response\n 🔄 Escalating: Drafter quality too low, using verifier\n Confidence: ${validationResult.confidence.toFixed(2)} < ${this.qualityThreshold} (threshold)\n Reason: ${validationResult.reason}\n Drafter latency: ${drafterLatency}ms\n 🔄 Loading verifier model...\n`;
|
|
171
391
|
await runManager?.handleText(escalateLog);
|
|
172
392
|
console.log(escalateLog);
|
|
@@ -176,9 +396,12 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
176
396
|
const verifierMessage = await verifierModel.invoke(messages, options);
|
|
177
397
|
const verifierLatency = Date.now() - verifierStartTime;
|
|
178
398
|
this.verifierCount++;
|
|
399
|
+
// Calculate costs
|
|
400
|
+
const verifierCost = await this.calculateMessageCost(verifierMessage, verifierModel);
|
|
401
|
+
const totalCost = verifierCost; // Drafter cost is wasted in this path
|
|
179
402
|
const totalLatency = drafterLatency + verifierLatency;
|
|
180
403
|
const acceptanceRate = (this.drafterCount / (this.drafterCount + this.verifierCount) * 100).toFixed(1);
|
|
181
|
-
const completionLog = ` ✅ Verifier completed successfully\n Model used: ${verifierInfo}\n Verifier latency: ${verifierLatency}ms\n Total latency: ${totalLatency}ms (drafter: ${drafterLatency}ms + verifier: ${verifierLatency}ms)\n 💰 Cost:
|
|
404
|
+
const completionLog = ` ✅ Verifier completed successfully\n Model used: ${verifierInfo}\n Verifier latency: ${verifierLatency}ms\n Total latency: ${totalLatency}ms (drafter: ${drafterLatency}ms + verifier: ${verifierLatency}ms)\n 💰 Cost: $${totalCost.toFixed(6)} (verifier only, drafter attempt wasted)\n 📊 Stats: ${this.drafterCount} drafter (${acceptanceRate}%), ${this.verifierCount} verifier\n`;
|
|
182
405
|
await runManager?.handleText(completionLog);
|
|
183
406
|
console.log(completionLog);
|
|
184
407
|
// Add flow metadata to message for n8n UI visibility (logs only, not in response text)
|
|
@@ -191,7 +414,7 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
191
414
|
drafter_latency_ms: drafterLatency,
|
|
192
415
|
verifier_latency_ms: verifierLatency,
|
|
193
416
|
total_latency_ms: totalLatency,
|
|
194
|
-
|
|
417
|
+
cost_usd: totalCost,
|
|
195
418
|
model_used: 'verifier',
|
|
196
419
|
reason: validationResult.reason
|
|
197
420
|
};
|
|
@@ -233,6 +456,101 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
233
456
|
};
|
|
234
457
|
}
|
|
235
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Streaming implementation for real-time cascade feedback
|
|
461
|
+
* Streams drafter response, then quality checks, then optionally streams verifier
|
|
462
|
+
*/
|
|
463
|
+
async *_streamResponseChunks(messages, options, runManager) {
|
|
464
|
+
try {
|
|
465
|
+
// Step 1: Stream drafter response
|
|
466
|
+
const drafterInfo = this.getModelInfo(this.drafterModel);
|
|
467
|
+
await runManager?.handleText(`🎯 CascadeFlow (Streaming): Trying drafter model: ${drafterInfo}\n`);
|
|
468
|
+
console.log(`🎯 CascadeFlow (Streaming): Trying drafter model: ${drafterInfo}`);
|
|
469
|
+
const drafterStartTime = Date.now();
|
|
470
|
+
let fullDrafterContent = '';
|
|
471
|
+
let lastChunk = null;
|
|
472
|
+
// Stream all drafter chunks to user in real-time
|
|
473
|
+
const drafterStream = await this.drafterModel.stream(messages, options);
|
|
474
|
+
for await (const chunk of drafterStream) {
|
|
475
|
+
fullDrafterContent += chunk.content;
|
|
476
|
+
// Convert AIMessageChunk to ChatGenerationChunk
|
|
477
|
+
const generationChunk = new outputs_1.ChatGenerationChunk({
|
|
478
|
+
text: chunk.content.toString(),
|
|
479
|
+
message: chunk,
|
|
480
|
+
});
|
|
481
|
+
lastChunk = generationChunk;
|
|
482
|
+
yield generationChunk; // Stream to user immediately
|
|
483
|
+
}
|
|
484
|
+
const drafterLatency = Date.now() - drafterStartTime;
|
|
485
|
+
this.drafterCount++;
|
|
486
|
+
// Step 2: Check for tool calls (after streaming complete)
|
|
487
|
+
if (lastChunk && this.hasToolCalls(lastChunk.message)) {
|
|
488
|
+
const toolCallsCount = this.getToolCallsCount(lastChunk.message);
|
|
489
|
+
const toolLog = `\n🔧 Tool calls detected (${toolCallsCount}) - cascade complete\n`;
|
|
490
|
+
await runManager?.handleText(toolLog);
|
|
491
|
+
console.log(toolLog);
|
|
492
|
+
return; // Done streaming
|
|
493
|
+
}
|
|
494
|
+
// Step 3: Quality check (after streaming complete)
|
|
495
|
+
const queryText = messages.map(m => m.content.toString()).join(' ');
|
|
496
|
+
await runManager?.handleText(`\n📊 Running quality check...\n`);
|
|
497
|
+
let validationResult;
|
|
498
|
+
if (this.qualityValidator) {
|
|
499
|
+
try {
|
|
500
|
+
validationResult = await this.qualityValidator.validate(fullDrafterContent, queryText);
|
|
501
|
+
await runManager?.handleText(` Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})\n`);
|
|
502
|
+
}
|
|
503
|
+
catch (e) {
|
|
504
|
+
validationResult = this.simpleQualityCheck(fullDrafterContent);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
validationResult = this.simpleQualityCheck(fullDrafterContent);
|
|
509
|
+
}
|
|
510
|
+
// Step 4: If quality sufficient, we're done
|
|
511
|
+
if (validationResult.passed) {
|
|
512
|
+
await runManager?.handleText(`✅ Quality check passed - cascade complete (drafter accepted)\n`);
|
|
513
|
+
console.log(`✅ Streaming: Drafter accepted (${drafterLatency}ms)`);
|
|
514
|
+
return; // Done streaming
|
|
515
|
+
}
|
|
516
|
+
// Step 5: Quality insufficient - escalate to verifier and stream its response
|
|
517
|
+
await runManager?.handleText(`\n⚠️ Quality check failed - escalating to verifier...\n`);
|
|
518
|
+
console.log(`⚠️ Streaming: Escalating to verifier (confidence ${validationResult.confidence.toFixed(2)} < ${this.qualityThreshold})`);
|
|
519
|
+
const verifierModel = await this.getVerifierModel();
|
|
520
|
+
const verifierInfo = this.getModelInfo(verifierModel);
|
|
521
|
+
await runManager?.handleText(`🔄 Streaming verifier response from ${verifierInfo}...\n`);
|
|
522
|
+
const verifierStartTime = Date.now();
|
|
523
|
+
const verifierStream = await verifierModel.stream(messages, options);
|
|
524
|
+
this.verifierCount++;
|
|
525
|
+
// Stream verifier response
|
|
526
|
+
for await (const chunk of verifierStream) {
|
|
527
|
+
// Convert AIMessageChunk to ChatGenerationChunk
|
|
528
|
+
yield new outputs_1.ChatGenerationChunk({
|
|
529
|
+
text: chunk.content.toString(),
|
|
530
|
+
message: chunk,
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
const verifierLatency = Date.now() - verifierStartTime;
|
|
534
|
+
await runManager?.handleText(`\n✅ Verifier streaming complete (${verifierLatency}ms)\n`);
|
|
535
|
+
console.log(`✅ Streaming: Verifier complete (${verifierLatency}ms)`);
|
|
536
|
+
}
|
|
537
|
+
catch (error) {
|
|
538
|
+
// Fallback to verifier on error
|
|
539
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
540
|
+
await runManager?.handleText(`\n❌ Drafter error - falling back to verifier: ${errorMsg}\n`);
|
|
541
|
+
console.log(`❌ Streaming: Drafter error, using verifier fallback`);
|
|
542
|
+
const verifierModel = await this.getVerifierModel();
|
|
543
|
+
const verifierStream = await verifierModel.stream(messages, options);
|
|
544
|
+
this.verifierCount++;
|
|
545
|
+
for await (const chunk of verifierStream) {
|
|
546
|
+
// Convert AIMessageChunk to ChatGenerationChunk
|
|
547
|
+
yield new outputs_1.ChatGenerationChunk({
|
|
548
|
+
text: chunk.content.toString(),
|
|
549
|
+
message: chunk,
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
236
554
|
}
|
|
237
555
|
class LmChatCascadeFlow {
|
|
238
556
|
constructor() {
|
|
@@ -295,12 +613,36 @@ class LmChatCascadeFlow {
|
|
|
295
613
|
},
|
|
296
614
|
description: 'Minimum quality score (0-1) to accept drafter response. Lower = more cost savings, higher = better quality.',
|
|
297
615
|
},
|
|
616
|
+
{
|
|
617
|
+
displayName: 'Enable Semantic Validation',
|
|
618
|
+
name: 'useSemanticValidation',
|
|
619
|
+
type: 'boolean',
|
|
620
|
+
default: true,
|
|
621
|
+
description: 'Whether to use ML-based semantic similarity validation for better quality detection',
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
displayName: 'Enable Alignment Scoring',
|
|
625
|
+
name: 'useAlignmentScoring',
|
|
626
|
+
type: 'boolean',
|
|
627
|
+
default: true,
|
|
628
|
+
description: 'Whether to score query-response alignment for improved validation accuracy',
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
displayName: 'Enable Complexity Routing',
|
|
632
|
+
name: 'useComplexityRouting',
|
|
633
|
+
type: 'boolean',
|
|
634
|
+
default: true,
|
|
635
|
+
description: 'Whether to route queries directly to the verifier based on detected complexity',
|
|
636
|
+
},
|
|
298
637
|
],
|
|
299
638
|
};
|
|
300
639
|
}
|
|
301
640
|
async supplyData() {
|
|
302
641
|
// Get parameters
|
|
303
642
|
const qualityThreshold = this.getNodeParameter('qualityThreshold', 0, 0.64);
|
|
643
|
+
const useSemanticValidation = this.getNodeParameter('useSemanticValidation', 0, true);
|
|
644
|
+
const useAlignmentScoring = this.getNodeParameter('useAlignmentScoring', 0, true);
|
|
645
|
+
const useComplexityRouting = this.getNodeParameter('useComplexityRouting', 0, true);
|
|
304
646
|
// Get the drafter model immediately (at index 1 - bottom port, labeled "Drafter")
|
|
305
647
|
const drafterData = await this.getInputConnectionData('ai_languageModel', 1);
|
|
306
648
|
const drafterModel = (Array.isArray(drafterData) ? drafterData[0] : drafterData);
|
|
@@ -327,8 +669,11 @@ class LmChatCascadeFlow {
|
|
|
327
669
|
console.log(` ├─ TOP port (labeled "Verifier") → VERIFIER model: lazy-loaded (will fetch only if needed)`);
|
|
328
670
|
console.log(` └─ BOTTOM port (labeled "Drafter") → DRAFTER model: ${getDrafterInfo()}`);
|
|
329
671
|
console.log(` Quality threshold: ${qualityThreshold}`);
|
|
330
|
-
|
|
331
|
-
|
|
672
|
+
console.log(` Semantic validation: ${useSemanticValidation ? 'enabled' : 'disabled'}`);
|
|
673
|
+
console.log(` Alignment scoring: ${useAlignmentScoring ? 'enabled' : 'disabled'}`);
|
|
674
|
+
console.log(` Complexity routing: ${useComplexityRouting ? 'enabled' : 'disabled'}`);
|
|
675
|
+
// Create and return the cascade model with lazy verifier and advanced features
|
|
676
|
+
const cascadeModel = new CascadeChatModel(drafterModel, verifierModelGetter, qualityThreshold, useSemanticValidation, useAlignmentScoring, useComplexityRouting);
|
|
332
677
|
return {
|
|
333
678
|
response: cascadeModel,
|
|
334
679
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatCascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LmChatCascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cascadeflow/n8n-nodes-cascadeflow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "n8n node for cascadeflow - Smart AI model cascading with 40-85% cost savings",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -56,6 +56,6 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@langchain/core": "^0.3.0",
|
|
59
|
-
"@cascadeflow/core": "^
|
|
59
|
+
"@cascadeflow/core": "^0.6.0"
|
|
60
60
|
}
|
|
61
61
|
}
|