n8n-nodes-openrouter-selector 0.5.0 → 0.5.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.
- package/dist/nodes/OpenRouterChatModel/OpenRouterChatModel.class.d.ts +10 -3
- package/dist/nodes/OpenRouterChatModel/OpenRouterChatModel.class.d.ts.map +1 -1
- package/dist/nodes/OpenRouterChatModel/OpenRouterChatModel.class.js +147 -8
- package/dist/nodes/OpenRouterChatModel/OpenRouterChatModel.class.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* OpenRouter Chat Model Class
|
|
3
3
|
*
|
|
4
4
|
* Langchain-compatible BaseChatModel implementation for n8n AI Agent.
|
|
5
|
+
* Supports tool calling for AI Agent integration.
|
|
5
6
|
*/
|
|
6
|
-
import { BaseChatModel, type BaseChatModelCallOptions } from '@langchain/core/language_models/chat_models';
|
|
7
|
-
import { BaseMessage } from '@langchain/core/messages';
|
|
7
|
+
import { BaseChatModel, type BaseChatModelCallOptions, type BindToolsInput } from '@langchain/core/language_models/chat_models';
|
|
8
|
+
import { BaseMessage, AIMessageChunk } from '@langchain/core/messages';
|
|
8
9
|
import type { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';
|
|
9
10
|
import { ChatResult } from '@langchain/core/outputs';
|
|
11
|
+
import { Runnable } from '@langchain/core/runnables';
|
|
10
12
|
export interface OpenRouterChatModelConfig {
|
|
11
13
|
apiKey: string;
|
|
12
14
|
model: string;
|
|
@@ -18,14 +20,19 @@ export interface OpenRouterChatModelConfig {
|
|
|
18
20
|
}
|
|
19
21
|
export declare class OpenRouterChatModel extends BaseChatModel {
|
|
20
22
|
private apiKey;
|
|
21
|
-
private
|
|
23
|
+
private modelId;
|
|
22
24
|
private temperature;
|
|
23
25
|
private maxTokens;
|
|
24
26
|
private topP;
|
|
25
27
|
private frequencyPenalty;
|
|
26
28
|
private presencePenalty;
|
|
29
|
+
private boundTools;
|
|
27
30
|
constructor(config: OpenRouterChatModelConfig);
|
|
28
31
|
_llmType(): string;
|
|
32
|
+
bindTools(tools: BindToolsInput[], _kwargs?: Partial<BaseChatModelCallOptions>): Runnable<BaseMessage[], AIMessageChunk, BaseChatModelCallOptions>;
|
|
33
|
+
private convertToolToOpenRouterFormat;
|
|
34
|
+
private zodToJsonSchema;
|
|
35
|
+
private getZodType;
|
|
29
36
|
_generate(messages: BaseMessage[], options?: BaseChatModelCallOptions, _runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
|
|
30
37
|
private convertMessages;
|
|
31
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatModel.class.d.ts","sourceRoot":"","sources":["../../../nodes/OpenRouterChatModel/OpenRouterChatModel.class.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OpenRouterChatModel.class.d.ts","sourceRoot":"","sources":["../../../nodes/OpenRouterChatModel/OpenRouterChatModel.class.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACpB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAEL,WAAW,EAIX,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,UAAU,EAAkB,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8CD,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAwB;gBAE9B,MAAM,EAAE,yBAAyB;IAW7C,QAAQ,IAAI,MAAM;IAIlB,SAAS,CACP,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAC1C,QAAQ,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,wBAAwB,CAAC;IAepE,OAAO,CAAC,6BAA6B;IAsBrC,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,UAAU;IAUZ,SAAS,CACb,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,wBAAwB,EAClC,WAAW,CAAC,EAAE,wBAAwB,GACrC,OAAO,CAAC,UAAU,CAAC;IAsFtB,OAAO,CAAC,eAAe;CAkCxB"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* OpenRouter Chat Model Class
|
|
4
4
|
*
|
|
5
5
|
* Langchain-compatible BaseChatModel implementation for n8n AI Agent.
|
|
6
|
+
* Supports tool calling for AI Agent integration.
|
|
6
7
|
*/
|
|
7
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
9
|
exports.OpenRouterChatModel = void 0;
|
|
@@ -10,16 +11,17 @@ const chat_models_1 = require("@langchain/core/language_models/chat_models");
|
|
|
10
11
|
const messages_1 = require("@langchain/core/messages");
|
|
11
12
|
class OpenRouterChatModel extends chat_models_1.BaseChatModel {
|
|
12
13
|
apiKey;
|
|
13
|
-
|
|
14
|
+
modelId;
|
|
14
15
|
temperature;
|
|
15
16
|
maxTokens;
|
|
16
17
|
topP;
|
|
17
18
|
frequencyPenalty;
|
|
18
19
|
presencePenalty;
|
|
20
|
+
boundTools = [];
|
|
19
21
|
constructor(config) {
|
|
20
22
|
super({});
|
|
21
23
|
this.apiKey = config.apiKey;
|
|
22
|
-
this.
|
|
24
|
+
this.modelId = config.model;
|
|
23
25
|
this.temperature = config.temperature ?? 0.7;
|
|
24
26
|
this.maxTokens = config.maxTokens ?? 1000;
|
|
25
27
|
this.topP = config.topP ?? 1;
|
|
@@ -29,10 +31,104 @@ class OpenRouterChatModel extends chat_models_1.BaseChatModel {
|
|
|
29
31
|
_llmType() {
|
|
30
32
|
return 'openrouter-chat';
|
|
31
33
|
}
|
|
34
|
+
bindTools(tools, _kwargs) {
|
|
35
|
+
const boundModel = new OpenRouterChatModel({
|
|
36
|
+
apiKey: this.apiKey,
|
|
37
|
+
model: this.modelId,
|
|
38
|
+
temperature: this.temperature,
|
|
39
|
+
maxTokens: this.maxTokens,
|
|
40
|
+
topP: this.topP,
|
|
41
|
+
frequencyPenalty: this.frequencyPenalty,
|
|
42
|
+
presencePenalty: this.presencePenalty,
|
|
43
|
+
});
|
|
44
|
+
boundModel.boundTools = tools.map((tool) => this.convertToolToOpenRouterFormat(tool));
|
|
45
|
+
return boundModel;
|
|
46
|
+
}
|
|
47
|
+
convertToolToOpenRouterFormat(tool) {
|
|
48
|
+
// Handle StructuredTool or similar tool interfaces
|
|
49
|
+
if (typeof tool === 'object' && tool !== null) {
|
|
50
|
+
const toolObj = tool;
|
|
51
|
+
if (toolObj.name && toolObj.description && toolObj.schema) {
|
|
52
|
+
return {
|
|
53
|
+
type: 'function',
|
|
54
|
+
function: {
|
|
55
|
+
name: toolObj.name,
|
|
56
|
+
description: toolObj.description,
|
|
57
|
+
parameters: this.zodToJsonSchema(toolObj.schema),
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Handle raw function definition
|
|
62
|
+
if ('type' in tool && tool.type === 'function') {
|
|
63
|
+
return tool;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`Unsupported tool format: ${JSON.stringify(tool)}`);
|
|
67
|
+
}
|
|
68
|
+
zodToJsonSchema(schema) {
|
|
69
|
+
// If it's already a JSON schema object, return it
|
|
70
|
+
if (typeof schema === 'object' && schema !== null) {
|
|
71
|
+
const schemaObj = schema;
|
|
72
|
+
// Check if it has a jsonSchema property (some Zod schemas expose this)
|
|
73
|
+
if ('jsonSchema' in schemaObj) {
|
|
74
|
+
return schemaObj.jsonSchema;
|
|
75
|
+
}
|
|
76
|
+
// Check if it looks like a JSON schema already
|
|
77
|
+
if ('type' in schemaObj || 'properties' in schemaObj) {
|
|
78
|
+
return schemaObj;
|
|
79
|
+
}
|
|
80
|
+
// Try to get JSON schema from Zod
|
|
81
|
+
if (typeof schemaObj._def === 'object') {
|
|
82
|
+
// It's a Zod schema, try to convert
|
|
83
|
+
try {
|
|
84
|
+
const zodSchema = schemaObj;
|
|
85
|
+
if (zodSchema.shape) {
|
|
86
|
+
const properties = {};
|
|
87
|
+
const required = [];
|
|
88
|
+
for (const [key, value] of Object.entries(zodSchema.shape)) {
|
|
89
|
+
const fieldSchema = value;
|
|
90
|
+
properties[key] = {
|
|
91
|
+
type: this.getZodType(fieldSchema),
|
|
92
|
+
description: fieldSchema._def?.description || '',
|
|
93
|
+
};
|
|
94
|
+
// Check if field is required (not optional)
|
|
95
|
+
if (!fieldSchema._def?.typeName?.includes('Optional')) {
|
|
96
|
+
required.push(key);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
type: 'object',
|
|
101
|
+
properties,
|
|
102
|
+
required: required.length > 0 ? required : undefined,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Fall through to default
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Default fallback
|
|
112
|
+
return { type: 'object', properties: {} };
|
|
113
|
+
}
|
|
114
|
+
getZodType(schema) {
|
|
115
|
+
const typeName = schema._def?.typeName || '';
|
|
116
|
+
if (typeName.includes('String'))
|
|
117
|
+
return 'string';
|
|
118
|
+
if (typeName.includes('Number'))
|
|
119
|
+
return 'number';
|
|
120
|
+
if (typeName.includes('Boolean'))
|
|
121
|
+
return 'boolean';
|
|
122
|
+
if (typeName.includes('Array'))
|
|
123
|
+
return 'array';
|
|
124
|
+
if (typeName.includes('Object'))
|
|
125
|
+
return 'object';
|
|
126
|
+
return 'string';
|
|
127
|
+
}
|
|
32
128
|
async _generate(messages, options, _runManager) {
|
|
33
129
|
const openRouterMessages = this.convertMessages(messages);
|
|
34
130
|
const body = {
|
|
35
|
-
model: this.
|
|
131
|
+
model: this.modelId,
|
|
36
132
|
messages: openRouterMessages,
|
|
37
133
|
temperature: this.temperature,
|
|
38
134
|
max_tokens: this.maxTokens,
|
|
@@ -40,6 +136,10 @@ class OpenRouterChatModel extends chat_models_1.BaseChatModel {
|
|
|
40
136
|
frequency_penalty: this.frequencyPenalty,
|
|
41
137
|
presence_penalty: this.presencePenalty,
|
|
42
138
|
};
|
|
139
|
+
if (this.boundTools.length > 0) {
|
|
140
|
+
body.tools = this.boundTools;
|
|
141
|
+
body.tool_choice = 'auto';
|
|
142
|
+
}
|
|
43
143
|
if (options?.stop) {
|
|
44
144
|
body.stop = options.stop;
|
|
45
145
|
}
|
|
@@ -66,12 +166,29 @@ class OpenRouterChatModel extends chat_models_1.BaseChatModel {
|
|
|
66
166
|
throw new Error(`OpenRouter API Error: ${response.status} - ${errorMessage}`);
|
|
67
167
|
}
|
|
68
168
|
const data = await response.json();
|
|
69
|
-
const
|
|
169
|
+
const choice = data.choices[0];
|
|
170
|
+
const messageData = choice?.message;
|
|
171
|
+
let aiMessage;
|
|
172
|
+
if (messageData?.tool_calls && messageData.tool_calls.length > 0) {
|
|
173
|
+
// Create AIMessage with tool calls
|
|
174
|
+
aiMessage = new messages_1.AIMessage({
|
|
175
|
+
content: messageData.content || '',
|
|
176
|
+
tool_calls: messageData.tool_calls.map((tc) => ({
|
|
177
|
+
id: tc.id,
|
|
178
|
+
name: tc.function.name,
|
|
179
|
+
args: JSON.parse(tc.function.arguments),
|
|
180
|
+
type: 'tool_call',
|
|
181
|
+
})),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
aiMessage = new messages_1.AIMessage(messageData?.content || '');
|
|
186
|
+
}
|
|
70
187
|
const generation = {
|
|
71
|
-
text: content,
|
|
72
|
-
message:
|
|
188
|
+
text: messageData?.content || '',
|
|
189
|
+
message: aiMessage,
|
|
73
190
|
generationInfo: {
|
|
74
|
-
finish_reason:
|
|
191
|
+
finish_reason: choice?.finish_reason,
|
|
75
192
|
},
|
|
76
193
|
};
|
|
77
194
|
return {
|
|
@@ -94,7 +211,29 @@ class OpenRouterChatModel extends chat_models_1.BaseChatModel {
|
|
|
94
211
|
return { role: 'user', content: msg.content };
|
|
95
212
|
}
|
|
96
213
|
else if (msg instanceof messages_1.AIMessage) {
|
|
97
|
-
|
|
214
|
+
const aiMsg = msg;
|
|
215
|
+
if (aiMsg.tool_calls && aiMsg.tool_calls.length > 0) {
|
|
216
|
+
return {
|
|
217
|
+
role: 'assistant',
|
|
218
|
+
content: aiMsg.content || null,
|
|
219
|
+
tool_calls: aiMsg.tool_calls.map((tc) => ({
|
|
220
|
+
id: tc.id || `call_${Math.random().toString(36).substr(2, 9)}`,
|
|
221
|
+
type: 'function',
|
|
222
|
+
function: {
|
|
223
|
+
name: tc.name,
|
|
224
|
+
arguments: JSON.stringify(tc.args),
|
|
225
|
+
},
|
|
226
|
+
})),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
return { role: 'assistant', content: aiMsg.content };
|
|
230
|
+
}
|
|
231
|
+
else if (msg instanceof messages_1.ToolMessage) {
|
|
232
|
+
return {
|
|
233
|
+
role: 'tool',
|
|
234
|
+
content: msg.content,
|
|
235
|
+
tool_call_id: msg.tool_call_id,
|
|
236
|
+
};
|
|
98
237
|
}
|
|
99
238
|
// Default to user for unknown message types
|
|
100
239
|
return { role: 'user', content: msg.content };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatModel.class.js","sourceRoot":"","sources":["../../../nodes/OpenRouterChatModel/OpenRouterChatModel.class.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"OpenRouterChatModel.class.js","sourceRoot":"","sources":["../../../nodes/OpenRouterChatModel/OpenRouterChatModel.class.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED