@cascadeflow/n8n-nodes-cascadeflow 0.4.19 → 5.0.1
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;AA8JtB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,WAAW,EAAE,oBAAoB,CAyD/B;IAEI,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CA8ClE"}
|
|
@@ -3,12 +3,13 @@ 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
|
+
const core_1 = require("@cascadeflow/core");
|
|
6
7
|
/**
|
|
7
8
|
* Custom CascadeChatModel that wraps two models (drafter and verifier)
|
|
8
9
|
* and implements cascading logic with cost tracking
|
|
9
10
|
*/
|
|
10
11
|
class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
11
|
-
constructor(drafterModel,
|
|
12
|
+
constructor(drafterModel, verifierModelGetter, qualityThreshold = 0.7) {
|
|
12
13
|
super({});
|
|
13
14
|
// Cost tracking
|
|
14
15
|
this.drafterCost = 0;
|
|
@@ -16,8 +17,20 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
16
17
|
this.drafterCount = 0;
|
|
17
18
|
this.verifierCount = 0;
|
|
18
19
|
this.drafterModel = drafterModel;
|
|
19
|
-
this.
|
|
20
|
+
this.verifierModelGetter = verifierModelGetter;
|
|
20
21
|
this.qualityThreshold = qualityThreshold;
|
|
22
|
+
// Initialize quality validator with CASCADE-optimized config
|
|
23
|
+
this.qualityValidator = new core_1.QualityValidator({
|
|
24
|
+
...core_1.CASCADE_QUALITY_CONFIG,
|
|
25
|
+
minConfidence: qualityThreshold, // Use user's threshold
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async getVerifierModel() {
|
|
29
|
+
if (!this.verifierModel) {
|
|
30
|
+
console.log(' 🔄 Loading verifier model...');
|
|
31
|
+
this.verifierModel = await this.verifierModelGetter();
|
|
32
|
+
}
|
|
33
|
+
return this.verifierModel;
|
|
21
34
|
}
|
|
22
35
|
_llmType() {
|
|
23
36
|
return 'cascade';
|
|
@@ -30,17 +43,25 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
30
43
|
const drafterMessage = await this.drafterModel.invoke(messages, options);
|
|
31
44
|
const drafterLatency = Date.now() - drafterStartTime;
|
|
32
45
|
this.drafterCount++;
|
|
33
|
-
// Step 2: Quality check
|
|
46
|
+
// Step 2: Quality check using CascadeFlow validator
|
|
34
47
|
const responseText = drafterMessage.content.toString();
|
|
35
|
-
|
|
48
|
+
// Extract query text from messages
|
|
49
|
+
const queryText = messages.map(m => m.content.toString()).join(' ');
|
|
50
|
+
// Validate response quality
|
|
51
|
+
const validationResult = await this.qualityValidator.validate(responseText, queryText);
|
|
52
|
+
console.log(` 📊 Quality validation: confidence=${validationResult.confidence.toFixed(2)}, method=${validationResult.method}`);
|
|
53
|
+
if (validationResult.details?.alignmentScore) {
|
|
54
|
+
console.log(` 🎯 Alignment: ${validationResult.details.alignmentScore.toFixed(2)}`);
|
|
55
|
+
}
|
|
36
56
|
// Step 3: If quality is sufficient, return drafter response
|
|
37
|
-
if (
|
|
57
|
+
if (validationResult.passed) {
|
|
38
58
|
// Estimate cost savings
|
|
39
59
|
const estimatedDrafterCost = 0.0001; // $0.0001 per request (rough estimate)
|
|
40
60
|
const estimatedVerifierCost = 0.0016; // $0.0016 per request (rough estimate)
|
|
41
61
|
const savings = ((estimatedVerifierCost - estimatedDrafterCost) / estimatedVerifierCost * 100).toFixed(1);
|
|
42
62
|
console.log(`✅ CascadeFlow: Drafter accepted!`);
|
|
43
|
-
console.log(`
|
|
63
|
+
console.log(` Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})`);
|
|
64
|
+
console.log(` Quality score: ${validationResult.score.toFixed(2)}`);
|
|
44
65
|
console.log(` Latency: ${drafterLatency}ms`);
|
|
45
66
|
console.log(` 💰 Cost savings: ~${savings}% (used cheap model)`);
|
|
46
67
|
console.log(` 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier`);
|
|
@@ -53,10 +74,12 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
53
74
|
}
|
|
54
75
|
// Step 4: Otherwise, escalate to verifier
|
|
55
76
|
console.log(`⚠️ CascadeFlow: Quality below threshold, escalating to verifier...`);
|
|
56
|
-
console.log(`
|
|
77
|
+
console.log(` Confidence: ${validationResult.confidence.toFixed(2)} < ${this.qualityThreshold}`);
|
|
78
|
+
console.log(` Reason: ${validationResult.reason}`);
|
|
57
79
|
console.log(` Drafter latency: ${drafterLatency}ms`);
|
|
58
80
|
const verifierStartTime = Date.now();
|
|
59
|
-
const
|
|
81
|
+
const verifierModel = await this.getVerifierModel();
|
|
82
|
+
const verifierMessage = await verifierModel.invoke(messages, options);
|
|
60
83
|
const verifierLatency = Date.now() - verifierStartTime;
|
|
61
84
|
this.verifierCount++;
|
|
62
85
|
const totalLatency = drafterLatency + verifierLatency;
|
|
@@ -76,7 +99,8 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
76
99
|
// Fallback to verifier on error
|
|
77
100
|
console.log(`❌ CascadeFlow: Drafter failed, falling back to verifier`);
|
|
78
101
|
console.log(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
79
|
-
const
|
|
102
|
+
const verifierModel = await this.getVerifierModel();
|
|
103
|
+
const verifierMessage = await verifierModel.invoke(messages, options);
|
|
80
104
|
this.verifierCount++;
|
|
81
105
|
console.log('✅ CascadeFlow: Verifier fallback completed');
|
|
82
106
|
return {
|
|
@@ -152,24 +176,27 @@ class LmChatCascadeFlow {
|
|
|
152
176
|
async supplyData() {
|
|
153
177
|
// Get parameters
|
|
154
178
|
const qualityThreshold = this.getNodeParameter('qualityThreshold', 0, 0.7);
|
|
155
|
-
// Get the
|
|
179
|
+
// Get the drafter model immediately
|
|
156
180
|
const drafterData = await this.getInputConnectionData('ai_languageModel', 0);
|
|
157
|
-
const verifierData = await this.getInputConnectionData('ai_languageModel', 1);
|
|
158
|
-
// Extract model from array if needed (n8n returns arrays for ai_languageModel connections)
|
|
159
181
|
const drafterModel = (Array.isArray(drafterData) ? drafterData[0] : drafterData);
|
|
160
|
-
const verifierModel = (Array.isArray(verifierData) ? verifierData[0] : verifierData);
|
|
161
182
|
if (!drafterModel) {
|
|
162
183
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Drafter model is required. Please connect an AI chat model (OpenAI, Anthropic, Ollama, etc.) to the "Drafter" input.');
|
|
163
184
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
185
|
+
// Create a lazy loader for the verifier model (only fetched when needed)
|
|
186
|
+
const verifierModelGetter = async () => {
|
|
187
|
+
const verifierData = await this.getInputConnectionData('ai_languageModel', 1);
|
|
188
|
+
const verifierModel = (Array.isArray(verifierData) ? verifierData[0] : verifierData);
|
|
189
|
+
if (!verifierModel) {
|
|
190
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Verifier model is required. Please connect an AI chat model (OpenAI, Anthropic, Ollama, etc.) to the "Verifier" input.');
|
|
191
|
+
}
|
|
192
|
+
return verifierModel;
|
|
193
|
+
};
|
|
167
194
|
console.log('🚀 CascadeFlow initialized');
|
|
168
195
|
console.log(` Drafter: ${typeof drafterModel._llmType === 'function' ? drafterModel._llmType() : 'connected'}`);
|
|
169
|
-
console.log(` Verifier:
|
|
196
|
+
console.log(` Verifier: lazy-loaded (will fetch only if needed)`);
|
|
170
197
|
console.log(` Quality threshold: ${qualityThreshold}`);
|
|
171
|
-
// Create and return the cascade model
|
|
172
|
-
const cascadeModel = new CascadeChatModel(drafterModel,
|
|
198
|
+
// Create and return the cascade model with lazy verifier
|
|
199
|
+
const cascadeModel = new CascadeChatModel(drafterModel, verifierModelGetter, qualityThreshold);
|
|
173
200
|
return {
|
|
174
201
|
response: cascadeModel,
|
|
175
202
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatCascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":";;;AAOA,+CAAsE;AAEtE,6EAA4E;AAK5E;;;GAGG;AACH,MAAM,gBAAiB,SAAQ,2BAAa;
|
|
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": "5.0.1",
|
|
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",
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
"n8n-workflow": "*"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@langchain/core": "^0.3.0"
|
|
50
|
+
"@langchain/core": "^0.3.0",
|
|
51
|
+
"@cascadeflow/core": "0.4.0"
|
|
51
52
|
},
|
|
52
53
|
"scripts": {
|
|
53
54
|
"build": "tsc && gulp build:icons",
|