@cascadeflow/n8n-nodes-cascadeflow 0.4.9 → 0.4.11
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;AA4EtB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,WAAW,EAAE,oBAAoB,CA6H/B;IAEI,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CAyElE"}
|
|
@@ -3,6 +3,8 @@ 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 openai_1 = require("@langchain/openai");
|
|
7
|
+
const anthropic_1 = require("@langchain/anthropic");
|
|
6
8
|
/**
|
|
7
9
|
* Custom CascadeChatModel that wraps two models (drafter and verifier)
|
|
8
10
|
* and implements cascading logic
|
|
@@ -20,7 +22,10 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
20
22
|
async _generate(messages, options, runManager) {
|
|
21
23
|
try {
|
|
22
24
|
// Step 1: Try the drafter model
|
|
25
|
+
console.log('🎯 CascadeFlow: Trying drafter model...');
|
|
26
|
+
const drafterStartTime = Date.now();
|
|
23
27
|
const drafterResult = await this.drafterModel._generate(messages, options, runManager);
|
|
28
|
+
const drafterLatency = Date.now() - drafterStartTime;
|
|
24
29
|
const drafterMessage = drafterResult.generations[0].message;
|
|
25
30
|
// Step 2: Simple quality check (can be enhanced)
|
|
26
31
|
// For now, we'll just check if the response is substantive
|
|
@@ -28,29 +33,37 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
|
|
|
28
33
|
const qualityScore = Math.min(responseText.length / 100, 1.0); // Simple heuristic
|
|
29
34
|
// Step 3: If quality is sufficient, return drafter response
|
|
30
35
|
if (qualityScore >= this.qualityThreshold) {
|
|
36
|
+
console.log(`✅ CascadeFlow: Drafter accepted (quality: ${qualityScore.toFixed(2)}, latency: ${drafterLatency}ms)`);
|
|
31
37
|
return drafterResult;
|
|
32
38
|
}
|
|
33
39
|
// Step 4: Otherwise, escalate to verifier
|
|
40
|
+
console.log(`⚠️ CascadeFlow: Escalating to verifier (quality: ${qualityScore.toFixed(2)} < threshold: ${this.qualityThreshold})`);
|
|
41
|
+
const verifierStartTime = Date.now();
|
|
34
42
|
const verifierResult = await this.verifierModel._generate(messages, options, runManager);
|
|
43
|
+
const verifierLatency = Date.now() - verifierStartTime;
|
|
44
|
+
console.log(`✅ CascadeFlow: Verifier completed (latency: ${verifierLatency}ms, total: ${drafterLatency + verifierLatency}ms)`);
|
|
35
45
|
return verifierResult;
|
|
36
46
|
}
|
|
37
47
|
catch (error) {
|
|
38
48
|
// Fallback to verifier on error
|
|
39
|
-
|
|
49
|
+
console.log(`❌ CascadeFlow: Drafter failed, falling back to verifier. Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
50
|
+
const verifierResult = await this.verifierModel._generate(messages, options, runManager);
|
|
51
|
+
console.log('✅ CascadeFlow: Verifier fallback completed');
|
|
52
|
+
return verifierResult;
|
|
40
53
|
}
|
|
41
54
|
}
|
|
42
55
|
}
|
|
43
56
|
class LmChatCascadeFlow {
|
|
44
57
|
constructor() {
|
|
45
58
|
this.description = {
|
|
46
|
-
displayName: 'CascadeFlow
|
|
59
|
+
displayName: 'CascadeFlow',
|
|
47
60
|
name: 'lmChatCascadeFlow',
|
|
48
61
|
icon: 'file:cascadeflow.svg',
|
|
49
62
|
group: ['transform'],
|
|
50
63
|
version: 1,
|
|
51
|
-
description: 'Smart AI model cascading with 40-85% cost savings.
|
|
64
|
+
description: 'Smart AI model cascading with 40-85% cost savings. Configure two models (drafter and verifier) and intelligently cascade between them.',
|
|
52
65
|
defaults: {
|
|
53
|
-
name: 'CascadeFlow
|
|
66
|
+
name: 'CascadeFlow',
|
|
54
67
|
},
|
|
55
68
|
codex: {
|
|
56
69
|
categories: ['AI'],
|
|
@@ -65,27 +78,93 @@ class LmChatCascadeFlow {
|
|
|
65
78
|
],
|
|
66
79
|
},
|
|
67
80
|
},
|
|
68
|
-
// Sub-node: no
|
|
81
|
+
// Sub-node: no inputs
|
|
69
82
|
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
|
|
70
|
-
inputs: [
|
|
83
|
+
inputs: [],
|
|
84
|
+
// Outputs an AI model that can be connected to Agent
|
|
85
|
+
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
|
|
86
|
+
outputs: ['ai_languageModel'],
|
|
87
|
+
outputNames: ['Model'],
|
|
88
|
+
credentials: [
|
|
89
|
+
{
|
|
90
|
+
name: 'cascadeFlowApi',
|
|
91
|
+
required: true,
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
properties: [
|
|
95
|
+
// Drafter Model Configuration
|
|
71
96
|
{
|
|
72
97
|
displayName: 'Drafter Model',
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
name: 'drafterModel',
|
|
99
|
+
type: 'string',
|
|
100
|
+
default: 'gpt-4o-mini',
|
|
75
101
|
required: true,
|
|
102
|
+
description: 'The cheaper model to try first (e.g., gpt-4o-mini, claude-3-5-haiku-20241022)',
|
|
103
|
+
placeholder: 'gpt-4o-mini',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
displayName: 'Drafter Provider',
|
|
107
|
+
name: 'drafterProvider',
|
|
108
|
+
type: 'options',
|
|
109
|
+
default: 'openai',
|
|
110
|
+
required: true,
|
|
111
|
+
options: [
|
|
112
|
+
{
|
|
113
|
+
name: 'OpenAI',
|
|
114
|
+
value: 'openai',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'Anthropic',
|
|
118
|
+
value: 'anthropic',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'Groq',
|
|
122
|
+
value: 'groq',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: 'Together AI',
|
|
126
|
+
value: 'together',
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
description: 'Provider for the drafter model',
|
|
76
130
|
},
|
|
131
|
+
// Verifier Model Configuration
|
|
77
132
|
{
|
|
78
133
|
displayName: 'Verifier Model',
|
|
79
|
-
|
|
80
|
-
|
|
134
|
+
name: 'verifierModel',
|
|
135
|
+
type: 'string',
|
|
136
|
+
default: 'gpt-4o',
|
|
81
137
|
required: true,
|
|
138
|
+
description: 'The quality model to escalate to if needed (e.g., gpt-4o, claude-3-5-sonnet-20241022)',
|
|
139
|
+
placeholder: 'gpt-4o',
|
|
82
140
|
},
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
141
|
+
{
|
|
142
|
+
displayName: 'Verifier Provider',
|
|
143
|
+
name: 'verifierProvider',
|
|
144
|
+
type: 'options',
|
|
145
|
+
default: 'openai',
|
|
146
|
+
required: true,
|
|
147
|
+
options: [
|
|
148
|
+
{
|
|
149
|
+
name: 'OpenAI',
|
|
150
|
+
value: 'openai',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: 'Anthropic',
|
|
154
|
+
value: 'anthropic',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Groq',
|
|
158
|
+
value: 'groq',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Together AI',
|
|
162
|
+
value: 'together',
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
description: 'Provider for the verifier model',
|
|
166
|
+
},
|
|
167
|
+
// Quality Threshold
|
|
89
168
|
{
|
|
90
169
|
displayName: 'Quality Threshold',
|
|
91
170
|
name: 'qualityThreshold',
|
|
@@ -102,17 +181,52 @@ class LmChatCascadeFlow {
|
|
|
102
181
|
};
|
|
103
182
|
}
|
|
104
183
|
async supplyData() {
|
|
105
|
-
// Get
|
|
184
|
+
// Get credentials
|
|
185
|
+
const credentials = await this.getCredentials('cascadeFlowApi');
|
|
186
|
+
// Get parameters
|
|
187
|
+
const drafterModelName = this.getNodeParameter('drafterModel', 0);
|
|
188
|
+
const drafterProvider = this.getNodeParameter('drafterProvider', 0);
|
|
189
|
+
const verifierModelName = this.getNodeParameter('verifierModel', 0);
|
|
190
|
+
const verifierProvider = this.getNodeParameter('verifierProvider', 0);
|
|
106
191
|
const qualityThreshold = this.getNodeParameter('qualityThreshold', 0, 0.7);
|
|
107
|
-
//
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
192
|
+
// Helper to create model based on provider
|
|
193
|
+
const createModel = (provider, modelName) => {
|
|
194
|
+
const keyMap = {
|
|
195
|
+
openai: 'openaiApiKey',
|
|
196
|
+
anthropic: 'anthropicApiKey',
|
|
197
|
+
groq: 'groqApiKey',
|
|
198
|
+
together: 'togetherApiKey',
|
|
199
|
+
};
|
|
200
|
+
const keyName = keyMap[provider];
|
|
201
|
+
const apiKey = credentials[keyName];
|
|
202
|
+
if (!apiKey) {
|
|
203
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `API key for ${provider} not found in credentials. Please configure the CascadeFlow API credentials.`);
|
|
204
|
+
}
|
|
205
|
+
switch (provider) {
|
|
206
|
+
case 'openai':
|
|
207
|
+
case 'groq':
|
|
208
|
+
case 'together':
|
|
209
|
+
return new openai_1.ChatOpenAI({
|
|
210
|
+
modelName,
|
|
211
|
+
apiKey,
|
|
212
|
+
configuration: provider === 'groq' ? {
|
|
213
|
+
baseURL: 'https://api.groq.com/openai/v1',
|
|
214
|
+
} : provider === 'together' ? {
|
|
215
|
+
baseURL: 'https://api.together.xyz/v1',
|
|
216
|
+
} : undefined,
|
|
217
|
+
});
|
|
218
|
+
case 'anthropic':
|
|
219
|
+
return new anthropic_1.ChatAnthropic({
|
|
220
|
+
modelName,
|
|
221
|
+
apiKey,
|
|
222
|
+
});
|
|
223
|
+
default:
|
|
224
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unsupported provider: ${provider}`);
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
// Create drafter and verifier models
|
|
228
|
+
const drafterModel = createModel(drafterProvider, drafterModelName);
|
|
229
|
+
const verifierModel = createModel(verifierProvider, verifierModelName);
|
|
116
230
|
// Create and return the cascade model
|
|
117
231
|
const cascadeModel = new CascadeChatModel(drafterModel, verifierModel, qualityThreshold);
|
|
118
232
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatCascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":";;;AAOA,+CAAsE;AAEtE,6EAA4E;
|
|
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.4.
|
|
3
|
+
"version": "0.4.11",
|
|
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",
|
|
@@ -52,7 +52,9 @@
|
|
|
52
52
|
"openai": "^4.73.1",
|
|
53
53
|
"@anthropic-ai/sdk": "^0.30.0",
|
|
54
54
|
"groq-sdk": "^0.5.0",
|
|
55
|
-
"@langchain/core": "^0.3.0"
|
|
55
|
+
"@langchain/core": "^0.3.0",
|
|
56
|
+
"@langchain/openai": "^0.3.0",
|
|
57
|
+
"@langchain/anthropic": "^0.3.0"
|
|
56
58
|
},
|
|
57
59
|
"scripts": {
|
|
58
60
|
"build": "tsc && gulp build:icons",
|