@n8n/n8n-nodes-langchain 1.83.1 → 1.84.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.
Files changed (123) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/known/nodes.json +4 -0
  3. package/dist/nodes/agents/Agent/Agent.node.js +5 -1
  4. package/dist/nodes/agents/Agent/Agent.node.js.map +1 -1
  5. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js +9 -19
  6. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js.map +1 -1
  7. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js +3 -7
  8. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js.map +1 -1
  9. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.js +3 -7
  10. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.js.map +1 -1
  11. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js +3 -7
  12. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js.map +1 -1
  13. package/dist/nodes/agents/Agent/agents/ToolsAgent/execute.js +5 -6
  14. package/dist/nodes/agents/Agent/agents/ToolsAgent/execute.js.map +1 -1
  15. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js +17 -389
  16. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
  17. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.d.ts +15 -0
  18. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.js +69 -0
  19. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.js.map +1 -0
  20. package/dist/nodes/chains/ChainLLM/methods/config.d.ts +14 -0
  21. package/dist/nodes/chains/ChainLLM/methods/config.js +253 -0
  22. package/dist/nodes/chains/ChainLLM/methods/config.js.map +1 -0
  23. package/dist/nodes/chains/ChainLLM/methods/imageUtils.d.ts +12 -0
  24. package/dist/nodes/chains/ChainLLM/methods/imageUtils.js +66 -0
  25. package/dist/nodes/chains/ChainLLM/methods/imageUtils.js.map +1 -0
  26. package/dist/nodes/chains/ChainLLM/methods/index.d.ts +4 -0
  27. package/dist/nodes/chains/ChainLLM/methods/index.js +11 -0
  28. package/dist/nodes/chains/ChainLLM/methods/index.js.map +1 -0
  29. package/dist/nodes/chains/ChainLLM/methods/promptUtils.d.ts +3 -0
  30. package/dist/nodes/chains/ChainLLM/methods/promptUtils.js +69 -0
  31. package/dist/nodes/chains/ChainLLM/methods/promptUtils.js.map +1 -0
  32. package/dist/nodes/chains/ChainLLM/methods/responseFormatter.d.ts +2 -0
  33. package/dist/nodes/chains/ChainLLM/methods/responseFormatter.js +29 -0
  34. package/dist/nodes/chains/ChainLLM/methods/responseFormatter.js.map +1 -0
  35. package/dist/nodes/chains/ChainLLM/methods/types.d.ts +28 -0
  36. package/dist/nodes/chains/ChainLLM/methods/types.js +3 -0
  37. package/dist/nodes/chains/ChainLLM/methods/types.js.map +1 -0
  38. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js +68 -33
  39. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js.map +1 -1
  40. package/dist/nodes/llms/LMChatOpenAi/methods/loadModels.js +1 -0
  41. package/dist/nodes/llms/LMChatOpenAi/methods/loadModels.js.map +1 -1
  42. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js +1 -1
  43. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js.map +1 -1
  44. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js +1 -1
  45. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js.map +1 -1
  46. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.d.ts +16 -0
  47. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.js +244 -0
  48. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.js.map +1 -0
  49. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/mongodb.dark.svg +3 -0
  50. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/mongodb.svg +3 -0
  51. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js +1 -1
  52. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js.map +1 -1
  53. package/dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.js +2 -2
  54. package/dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.js.map +1 -1
  55. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.d.ts +1 -1
  56. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js +1 -1
  57. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js.map +1 -1
  58. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.d.ts +1 -1
  59. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js +1 -1
  60. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js.map +1 -1
  61. package/dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.js +2 -2
  62. package/dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.js.map +1 -1
  63. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js +2 -2
  64. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js.map +1 -1
  65. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.d.ts +1 -1
  66. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js +1 -1
  67. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js.map +1 -1
  68. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.d.ts +1 -1
  69. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js +1 -1
  70. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js.map +1 -1
  71. package/dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.js +1 -1
  72. package/dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.js.map +1 -1
  73. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.d.ts +4 -0
  74. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js +44 -0
  75. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js.map +1 -0
  76. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.d.ts +15 -0
  77. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js +226 -0
  78. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js.map +1 -0
  79. package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js.map +1 -0
  80. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.d.ts +5 -0
  81. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js +22 -0
  82. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js.map +1 -0
  83. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.d.ts +5 -0
  84. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js +34 -0
  85. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js.map +1 -0
  86. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.d.ts +5 -0
  87. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js +33 -0
  88. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js.map +1 -0
  89. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +5 -0
  90. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js +42 -0
  91. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -0
  92. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.d.ts +5 -0
  93. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js +16 -0
  94. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js.map +1 -0
  95. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.d.ts +5 -0
  96. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js +39 -0
  97. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js.map +1 -0
  98. package/dist/nodes/vector_store/shared/{createVectorStoreNode.d.ts → createVectorStoreNode/types.d.ts} +3 -16
  99. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js +3 -0
  100. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js.map +1 -0
  101. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.d.ts +6 -0
  102. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js +20 -0
  103. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js.map +1 -0
  104. package/dist/types/nodes.json +10 -9
  105. package/dist/utils/helpers.d.ts +1 -0
  106. package/dist/utils/helpers.js +12 -0
  107. package/dist/utils/helpers.js.map +1 -1
  108. package/dist/utils/output_parsers/N8nOutputFixingParser.js +6 -1
  109. package/dist/utils/output_parsers/N8nOutputFixingParser.js.map +1 -1
  110. package/dist/utils/output_parsers/N8nOutputParser.d.ts +1 -1
  111. package/dist/utils/output_parsers/N8nOutputParser.js +5 -5
  112. package/dist/utils/output_parsers/N8nOutputParser.js.map +1 -1
  113. package/dist/utils/output_parsers/N8nStructuredOutputParser.js +2 -1
  114. package/dist/utils/output_parsers/N8nStructuredOutputParser.js.map +1 -1
  115. package/package.json +9 -6
  116. package/dist/nodes/chains/ChainLLM/utils.d.ts +0 -5
  117. package/dist/nodes/chains/ChainLLM/utils.js +0 -14
  118. package/dist/nodes/chains/ChainLLM/utils.js.map +0 -1
  119. package/dist/nodes/vector_store/shared/createVectorStoreNode.js +0 -369
  120. package/dist/nodes/vector_store/shared/createVectorStoreNode.js.map +0 -1
  121. package/dist/nodes/vector_store/shared/methods/listSearch.js.map +0 -1
  122. /package/dist/nodes/vector_store/shared/{methods → createVectorStoreNode/methods}/listSearch.d.ts +0 -0
  123. /package/dist/nodes/vector_store/shared/{methods → createVectorStoreNode/methods}/listSearch.js +0 -0
@@ -1,144 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChainLlm = void 0;
4
- const messages_1 = require("@langchain/core/messages");
5
- const prompts_1 = require("@langchain/core/prompts");
6
- const google_genai_1 = require("@langchain/google-genai");
7
- const ollama_1 = require("@langchain/ollama");
8
- const chains_1 = require("langchain/chains");
9
- const output_parsers_1 = require("langchain/output_parsers");
10
4
  const n8n_workflow_1 = require("n8n-workflow");
11
- const descriptions_1 = require("../../../utils/descriptions");
12
5
  const helpers_1 = require("../../../utils/helpers");
13
6
  const N8nOutputParser_1 = require("../../../utils/output_parsers/N8nOutputParser");
14
- const sharedFields_1 = require("../../../utils/sharedFields");
15
- const tracing_1 = require("../../../utils/tracing");
16
- const utils_1 = require("./utils");
7
+ const methods_1 = require("./methods");
17
8
  const error_handling_1 = require("../../vendors/OpenAi/helpers/error-handling");
18
- async function getImageMessage(context, itemIndex, message) {
19
- if (message.messageType !== 'imageBinary' && message.messageType !== 'imageUrl') {
20
- throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Invalid message type. Only imageBinary and imageUrl are supported');
21
- }
22
- const detail = message.imageDetail === 'auto' ? undefined : message.imageDetail;
23
- if (message.messageType === 'imageUrl' && message.imageUrl) {
24
- return new messages_1.HumanMessage({
25
- content: [
26
- {
27
- type: 'image_url',
28
- image_url: {
29
- url: message.imageUrl,
30
- detail,
31
- },
32
- },
33
- ],
34
- });
35
- }
36
- const binaryDataKey = message.binaryImageDataKey ?? 'data';
37
- const inputData = context.getInputData()[itemIndex];
38
- const binaryData = inputData.binary?.[binaryDataKey];
39
- if (!binaryData) {
40
- throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'No binary data set.');
41
- }
42
- const bufferData = await context.helpers.getBinaryDataBuffer(itemIndex, binaryDataKey);
43
- const model = (await context.getInputConnectionData("ai_languageModel", 0));
44
- try {
45
- const dataURI = (0, utils_1.dataUriFromImageData)(binaryData, bufferData);
46
- const directUriModels = [google_genai_1.ChatGoogleGenerativeAI, ollama_1.ChatOllama];
47
- const imageUrl = directUriModels.some((i) => model instanceof i)
48
- ? dataURI
49
- : { url: dataURI, detail };
50
- return new messages_1.HumanMessage({
51
- content: [
52
- {
53
- type: 'image_url',
54
- image_url: imageUrl,
55
- },
56
- ],
57
- });
58
- }
59
- catch (error) {
60
- if (error instanceof utils_1.UnsupportedMimeTypeError)
61
- throw new n8n_workflow_1.NodeOperationError(context.getNode(), error.message);
62
- throw error;
63
- }
64
- }
65
- async function getChainPromptTemplate(context, itemIndex, llm, messages, formatInstructions, query) {
66
- const queryTemplate = new prompts_1.PromptTemplate({
67
- template: `{query}${formatInstructions ? '\n{formatInstructions}' : ''}`,
68
- inputVariables: ['query'],
69
- partialVariables: formatInstructions ? { formatInstructions } : undefined,
70
- });
71
- if ((0, helpers_1.isChatInstance)(llm)) {
72
- const parsedMessages = await Promise.all((messages ?? []).map(async (message) => {
73
- const messageClass = [
74
- prompts_1.SystemMessagePromptTemplate,
75
- prompts_1.AIMessagePromptTemplate,
76
- prompts_1.HumanMessagePromptTemplate,
77
- ].find((m) => m.lc_name() === message.type);
78
- if (!messageClass) {
79
- throw new n8n_workflow_1.ApplicationError('Invalid message type', {
80
- extra: { messageType: message.type },
81
- });
82
- }
83
- if (messageClass === prompts_1.HumanMessagePromptTemplate && message.messageType !== 'text') {
84
- const test = await getImageMessage(context, itemIndex, message);
85
- return test;
86
- }
87
- const res = messageClass.fromTemplate((message.message || '').replace(/[{}]/g, (match) => match + match));
88
- return res;
89
- }));
90
- const lastMessage = parsedMessages[parsedMessages.length - 1];
91
- if (lastMessage instanceof messages_1.HumanMessage && Array.isArray(lastMessage.content)) {
92
- const humanMessage = new prompts_1.HumanMessagePromptTemplate(queryTemplate);
93
- const test = await humanMessage.format({ query });
94
- lastMessage.content.push({ text: test.content.toString(), type: 'text' });
95
- }
96
- else {
97
- parsedMessages.push(new prompts_1.HumanMessagePromptTemplate(queryTemplate));
98
- }
99
- return prompts_1.ChatPromptTemplate.fromMessages(parsedMessages);
100
- }
101
- return queryTemplate;
102
- }
103
- async function createSimpleLLMChain(context, llm, query, prompt) {
104
- const chain = new chains_1.LLMChain({
105
- llm,
106
- prompt,
107
- }).withConfig((0, tracing_1.getTracingConfig)(context));
108
- const response = (await chain.invoke({
109
- query,
110
- signal: context.getExecutionCancelSignal(),
111
- }));
112
- return Array.isArray(response) ? response : [response];
113
- }
114
- async function getChain(context, itemIndex, query, llm, outputParsers, messages) {
115
- const chatTemplate = await getChainPromptTemplate(context, itemIndex, llm, messages, undefined, query);
116
- if (!outputParsers.length) {
117
- return await createSimpleLLMChain(context, llm, query, chatTemplate);
118
- }
119
- const combinedOutputParser = outputParsers.length === 1 ? outputParsers[0] : new output_parsers_1.CombiningOutputParser(...outputParsers);
120
- const formatInstructions = combinedOutputParser.getFormatInstructions();
121
- const prompt = await getChainPromptTemplate(context, itemIndex, llm, messages, formatInstructions, query);
122
- const chain = prompt.pipe(llm).pipe(combinedOutputParser);
123
- const response = (await chain.withConfig((0, tracing_1.getTracingConfig)(context)).invoke({ query }));
124
- return Array.isArray(response) ? response : [response];
125
- }
126
- function getInputs(parameters) {
127
- const hasOutputParser = parameters?.hasOutputParser;
128
- const inputs = [
129
- { displayName: '', type: "main" },
130
- {
131
- displayName: 'Model',
132
- maxConnections: 1,
133
- type: "ai_languageModel",
134
- required: true,
135
- },
136
- ];
137
- if (hasOutputParser === undefined || hasOutputParser === true) {
138
- inputs.push({ displayName: 'Output Parser', type: "ai_outputParser" });
139
- }
140
- return inputs;
141
- }
142
9
  class ChainLlm {
143
10
  constructor() {
144
11
  this.description = {
@@ -147,7 +14,7 @@ class ChainLlm {
147
14
  icon: 'fa:link',
148
15
  iconColor: 'black',
149
16
  group: ['transform'],
150
- version: [1, 1.1, 1.2, 1.3, 1.4, 1.5],
17
+ version: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6],
151
18
  description: 'A simple chain to prompt a large language model',
152
19
  defaults: {
153
20
  name: 'Basic LLM Chain',
@@ -167,244 +34,21 @@ class ChainLlm {
167
34
  ],
168
35
  },
169
36
  },
170
- inputs: `={{ ((parameter) => { ${getInputs.toString()}; return getInputs(parameter) })($parameter) }}`,
37
+ inputs: `={{ ((parameter) => { ${methods_1.getInputs.toString()}; return getInputs(parameter) })($parameter) }}`,
171
38
  outputs: ["main"],
172
39
  credentials: [],
173
- properties: [
174
- (0, sharedFields_1.getTemplateNoticeField)(1978),
175
- {
176
- displayName: 'Prompt',
177
- name: 'prompt',
178
- type: 'string',
179
- required: true,
180
- default: '={{ $json.input }}',
181
- displayOptions: {
182
- show: {
183
- '@version': [1],
184
- },
185
- },
186
- },
187
- {
188
- displayName: 'Prompt',
189
- name: 'prompt',
190
- type: 'string',
191
- required: true,
192
- default: '={{ $json.chat_input }}',
193
- displayOptions: {
194
- show: {
195
- '@version': [1.1, 1.2],
196
- },
197
- },
198
- },
199
- {
200
- displayName: 'Prompt',
201
- name: 'prompt',
202
- type: 'string',
203
- required: true,
204
- default: '={{ $json.chatInput }}',
205
- displayOptions: {
206
- show: {
207
- '@version': [1.3],
208
- },
209
- },
210
- },
211
- {
212
- ...descriptions_1.promptTypeOptions,
213
- displayOptions: {
214
- hide: {
215
- '@version': [1, 1.1, 1.2, 1.3],
216
- },
217
- },
218
- },
219
- {
220
- ...descriptions_1.textFromPreviousNode,
221
- displayOptions: { show: { promptType: ['auto'], '@version': [{ _cnd: { gte: 1.5 } }] } },
222
- },
223
- {
224
- displayName: 'Prompt (User Message)',
225
- name: 'text',
226
- type: 'string',
227
- required: true,
228
- default: '',
229
- placeholder: 'e.g. Hello, how can you help me?',
230
- typeOptions: {
231
- rows: 2,
232
- },
233
- displayOptions: {
234
- show: {
235
- promptType: ['define'],
236
- },
237
- },
238
- },
239
- {
240
- displayName: 'Require Specific Output Format',
241
- name: 'hasOutputParser',
242
- type: 'boolean',
243
- default: false,
244
- noDataExpression: true,
245
- displayOptions: {
246
- hide: {
247
- '@version': [1, 1.1, 1.3],
248
- },
249
- },
250
- },
251
- {
252
- displayName: 'Chat Messages (if Using a Chat Model)',
253
- name: 'messages',
254
- type: 'fixedCollection',
255
- typeOptions: {
256
- multipleValues: true,
257
- },
258
- default: {},
259
- placeholder: 'Add prompt',
260
- options: [
261
- {
262
- name: 'messageValues',
263
- displayName: 'Prompt',
264
- values: [
265
- {
266
- displayName: 'Type Name or ID',
267
- name: 'type',
268
- type: 'options',
269
- options: [
270
- {
271
- name: 'AI',
272
- value: prompts_1.AIMessagePromptTemplate.lc_name(),
273
- },
274
- {
275
- name: 'System',
276
- value: prompts_1.SystemMessagePromptTemplate.lc_name(),
277
- },
278
- {
279
- name: 'User',
280
- value: prompts_1.HumanMessagePromptTemplate.lc_name(),
281
- },
282
- ],
283
- default: prompts_1.SystemMessagePromptTemplate.lc_name(),
284
- },
285
- {
286
- displayName: 'Message Type',
287
- name: 'messageType',
288
- type: 'options',
289
- displayOptions: {
290
- show: {
291
- type: [prompts_1.HumanMessagePromptTemplate.lc_name()],
292
- },
293
- },
294
- options: [
295
- {
296
- name: 'Text',
297
- value: 'text',
298
- description: 'Simple text message',
299
- },
300
- {
301
- name: 'Image (Binary)',
302
- value: 'imageBinary',
303
- description: 'Process the binary input from the previous node',
304
- },
305
- {
306
- name: 'Image (URL)',
307
- value: 'imageUrl',
308
- description: 'Process the image from the specified URL',
309
- },
310
- ],
311
- default: 'text',
312
- },
313
- {
314
- displayName: 'Image Data Field Name',
315
- name: 'binaryImageDataKey',
316
- type: 'string',
317
- default: 'data',
318
- required: true,
319
- description: 'The name of the field in the chain’s input that contains the binary image file to be processed',
320
- displayOptions: {
321
- show: {
322
- messageType: ['imageBinary'],
323
- },
324
- },
325
- },
326
- {
327
- displayName: 'Image URL',
328
- name: 'imageUrl',
329
- type: 'string',
330
- default: '',
331
- required: true,
332
- description: 'URL to the image to be processed',
333
- displayOptions: {
334
- show: {
335
- messageType: ['imageUrl'],
336
- },
337
- },
338
- },
339
- {
340
- displayName: 'Image Details',
341
- description: 'Control how the model processes the image and generates its textual understanding',
342
- name: 'imageDetail',
343
- type: 'options',
344
- displayOptions: {
345
- show: {
346
- type: [prompts_1.HumanMessagePromptTemplate.lc_name()],
347
- messageType: ['imageBinary', 'imageUrl'],
348
- },
349
- },
350
- options: [
351
- {
352
- name: 'Auto',
353
- value: 'auto',
354
- description: 'Model will use the auto setting which will look at the image input size and decide if it should use the low or high setting',
355
- },
356
- {
357
- name: 'Low',
358
- value: 'low',
359
- description: 'The model will receive a low-res 512px x 512px version of the image, and represent the image with a budget of 65 tokens. This allows the API to return faster responses and consume fewer input tokens for use cases that do not require high detail.',
360
- },
361
- {
362
- name: 'High',
363
- value: 'high',
364
- description: 'Allows the model to see the low res image and then creates detailed crops of input images as 512px squares based on the input image size. Each of the detailed crops uses twice the token budget (65 tokens) for a total of 129 tokens.',
365
- },
366
- ],
367
- default: 'auto',
368
- },
369
- {
370
- displayName: 'Message',
371
- name: 'message',
372
- type: 'string',
373
- required: true,
374
- displayOptions: {
375
- hide: {
376
- messageType: ['imageBinary', 'imageUrl'],
377
- },
378
- },
379
- default: '',
380
- },
381
- ],
382
- },
383
- ],
384
- },
385
- {
386
- displayName: `Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='${"ai_outputParser"}'>output parser</a> on the canvas to specify the output format you require`,
387
- name: 'notice',
388
- type: 'notice',
389
- default: '',
390
- displayOptions: {
391
- show: {
392
- hasOutputParser: [true],
393
- },
394
- },
395
- },
396
- ],
40
+ properties: methods_1.nodeProperties,
397
41
  };
398
42
  }
399
43
  async execute() {
400
- this.logger.debug('Executing LLM Chain');
44
+ this.logger.debug('Executing Basic LLM Chain');
401
45
  const items = this.getInputData();
402
46
  const returnData = [];
403
47
  for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
404
48
  try {
405
- let prompt;
406
49
  const llm = (await this.getInputConnectionData("ai_languageModel", 0));
407
- const outputParsers = await (0, N8nOutputParser_1.getOptionalOutputParsers)(this);
50
+ const outputParser = await (0, N8nOutputParser_1.getOptionalOutputParser)(this);
51
+ let prompt;
408
52
  if (this.getNode().typeVersion <= 1.3) {
409
53
  prompt = this.getNodeParameter('prompt', itemIndex);
410
54
  }
@@ -416,37 +60,21 @@ class ChainLlm {
416
60
  promptTypeKey: 'promptType',
417
61
  });
418
62
  }
419
- const messages = this.getNodeParameter('messages.messageValues', itemIndex, []);
420
63
  if (prompt === undefined) {
421
64
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), "The 'prompt' parameter is empty.");
422
65
  }
423
- const responses = await getChain(this, itemIndex, prompt, llm, outputParsers, messages);
66
+ const messages = this.getNodeParameter('messages.messageValues', itemIndex, []);
67
+ const responses = await (0, methods_1.executeChain)({
68
+ context: this,
69
+ itemIndex,
70
+ query: prompt,
71
+ llm,
72
+ outputParser,
73
+ messages,
74
+ });
424
75
  responses.forEach((response) => {
425
- let data;
426
- if (typeof response === 'string') {
427
- data = {
428
- response: {
429
- text: response.trim(),
430
- },
431
- };
432
- }
433
- else if (Array.isArray(response)) {
434
- data = {
435
- data: response,
436
- };
437
- }
438
- else if (response instanceof Object) {
439
- data = response;
440
- }
441
- else {
442
- data = {
443
- response: {
444
- text: response,
445
- },
446
- };
447
- }
448
76
  returnData.push({
449
- json: data,
77
+ json: (0, methods_1.formatResponse)(response, this.getNode().typeVersion),
450
78
  });
451
79
  });
452
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChainLlm.node.js","sourceRoot":"","sources":["../../../../nodes/chains/ChainLLM/ChainLlm.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChainLlm.node.js","sourceRoot":"","sources":["../../../../nodes/chains/ChainLLM/ChainLlm.node.ts"],"names":[],"mappings":";;;AAOA,+CAAoF;AAEpF,4CAAsD;AACtD,2EAAgF;AAGhF,uCAMmB;AACnB,gFAGqD;AAMrD,MAAa,QAAQ;IAArB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC1C,WAAW,EAAE,iDAAiD;YAC9D,QAAQ,EAAE;gBACT,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,SAAS;aAChB;YACD,KAAK,EAAE;gBACN,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;iBAC5B;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,iGAAiG;yBACtG;qBACD;iBACD;aACD;YACD,MAAM,EAAE,yBAAyB,mBAAS,CAAC,QAAQ,EAAE,iDAAiD;YACtG,OAAO,EAAE,QAAyB;YAClC,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,wBAAc;SAC1B,CAAC;IAwFH,CAAC;IAnFA,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAG5C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC;gBAEJ,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,qBAE7C,CAAC,CACD,CAAsB,CAAC;gBAGxB,MAAM,YAAY,GAAG,MAAM,IAAA,yCAAuB,EAAC,IAAI,CAAC,CAAC;gBAGzD,IAAI,MAAc,CAAC;gBAEnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;oBACvC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAW,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACP,MAAM,GAAG,IAAA,8BAAoB,EAAC;wBAC7B,GAAG,EAAE,IAAI;wBACT,CAAC,EAAE,SAAS;wBACZ,QAAQ,EAAE,MAAM;wBAChB,aAAa,EAAE,YAAY;qBAC3B,CAAC,CAAC;gBACJ,CAAC;gBAGD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,kCAAkC,CAAC,CAAC;gBAClF,CAAC;gBAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACrC,wBAAwB,EACxB,SAAS,EACT,EAAE,CACmB,CAAC;gBAGvB,MAAM,SAAS,GAAG,MAAM,IAAA,sBAAY,EAAC;oBACpC,OAAO,EAAE,IAAI;oBACb,SAAS;oBACT,KAAK,EAAE,MAAM;oBACb,GAAG;oBACH,YAAY;oBACZ,QAAQ;iBACR,CAAC,CAAC;gBAGH,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC9B,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,IAAA,wBAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;qBAC1D,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEhB,IAAI,KAAK,YAAY,2BAAY,IAAI,IAAA,8BAAa,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjE,MAAM,eAAe,GAAwB,KAAK,CAAC,KAAa,CAAC,KAAK,EAAE,IAAI,CAAC;oBAC7E,IAAI,eAAe,EAAE,CAAC;wBACrB,MAAM,aAAa,GAAG,IAAA,sCAA2B,EAAC,eAAe,CAAC,CAAC;wBACnE,IAAI,aAAa,EAAE,CAAC;4BACnB,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC;wBAC/B,CAAC;oBACF,CAAC;gBACF,CAAC;gBAGD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBACrF,SAAS;gBACV,CAAC;gBAED,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;CACD;AAvHD,4BAuHC"}
@@ -0,0 +1,15 @@
1
+ import type { BaseLanguageModel } from '@langchain/core/language_models/base';
2
+ import type { BaseLLMOutputParser } from '@langchain/core/output_parsers';
3
+ import type { ChainExecutionParams } from './types';
4
+ export declare function isModelWithResponseFormat(llm: BaseLanguageModel): llm is BaseLanguageModel & {
5
+ modelKwargs: {
6
+ response_format: {
7
+ type: string;
8
+ };
9
+ };
10
+ };
11
+ export declare function isModelWithFormat(llm: BaseLanguageModel): llm is BaseLanguageModel & {
12
+ format: string;
13
+ };
14
+ export declare function getOutputParserForLLM(llm: BaseLanguageModel): BaseLLMOutputParser<string | Record<string, unknown>>;
15
+ export declare function executeChain({ context, itemIndex, query, llm, outputParser, messages, }: ChainExecutionParams): Promise<unknown[]>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isModelWithResponseFormat = isModelWithResponseFormat;
4
+ exports.isModelWithFormat = isModelWithFormat;
5
+ exports.getOutputParserForLLM = getOutputParserForLLM;
6
+ exports.executeChain = executeChain;
7
+ const output_parsers_1 = require("@langchain/core/output_parsers");
8
+ const tracing_1 = require("../../../../utils/tracing");
9
+ const promptUtils_1 = require("./promptUtils");
10
+ function isModelWithResponseFormat(llm) {
11
+ return ('modelKwargs' in llm &&
12
+ !!llm.modelKwargs &&
13
+ typeof llm.modelKwargs === 'object' &&
14
+ 'response_format' in llm.modelKwargs);
15
+ }
16
+ function isModelWithFormat(llm) {
17
+ return 'format' in llm && typeof llm.format !== 'undefined';
18
+ }
19
+ function getOutputParserForLLM(llm) {
20
+ if (isModelWithResponseFormat(llm) && llm.modelKwargs?.response_format?.type === 'json_object') {
21
+ return new output_parsers_1.JsonOutputParser();
22
+ }
23
+ if (isModelWithFormat(llm) && llm.format === 'json') {
24
+ return new output_parsers_1.JsonOutputParser();
25
+ }
26
+ return new output_parsers_1.StringOutputParser();
27
+ }
28
+ async function executeSimpleChain({ context, llm, query, prompt, }) {
29
+ const outputParser = getOutputParserForLLM(llm);
30
+ const chain = prompt.pipe(llm).pipe(outputParser).withConfig((0, tracing_1.getTracingConfig)(context));
31
+ const response = await chain.invoke({
32
+ query,
33
+ signal: context.getExecutionCancelSignal(),
34
+ });
35
+ return [response];
36
+ }
37
+ async function executeChain({ context, itemIndex, query, llm, outputParser, messages, }) {
38
+ if (!outputParser) {
39
+ const promptTemplate = await (0, promptUtils_1.createPromptTemplate)({
40
+ context,
41
+ itemIndex,
42
+ llm,
43
+ messages,
44
+ query,
45
+ });
46
+ return await executeSimpleChain({
47
+ context,
48
+ llm,
49
+ query,
50
+ prompt: promptTemplate,
51
+ });
52
+ }
53
+ const formatInstructions = outputParser.getFormatInstructions();
54
+ const promptWithInstructions = await (0, promptUtils_1.createPromptTemplate)({
55
+ context,
56
+ itemIndex,
57
+ llm,
58
+ messages,
59
+ formatInstructions,
60
+ query,
61
+ });
62
+ const chain = promptWithInstructions
63
+ .pipe(llm)
64
+ .pipe(outputParser)
65
+ .withConfig((0, tracing_1.getTracingConfig)(context));
66
+ const response = await chain.invoke({ query }, { signal: context.getExecutionCancelSignal() });
67
+ return Array.isArray(response) ? response : [response];
68
+ }
69
+ //# sourceMappingURL=chainExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainExecutor.js","sourceRoot":"","sources":["../../../../../nodes/chains/ChainLLM/methods/chainExecutor.ts"],"names":[],"mappings":";;AAcA,8DASC;AAKD,8CAIC;AAKD,sDAYC;AAiCD,oCA+CC;AA/HD,mEAAsF;AAItF,4CAAkD;AAElD,+CAAqD;AAMrD,SAAgB,yBAAyB,CACxC,GAAsB;IAEtB,OAAO,CACN,aAAa,IAAI,GAAG;QACpB,CAAC,CAAC,GAAG,CAAC,WAAW;QACjB,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QACnC,iBAAiB,IAAI,GAAG,CAAC,WAAW,CACpC,CAAC;AACH,CAAC;AAKD,SAAgB,iBAAiB,CAChC,GAAsB;IAEtB,OAAO,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC;AAC7D,CAAC;AAKD,SAAgB,qBAAqB,CACpC,GAAsB;IAEtB,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;QAChG,OAAO,IAAI,iCAAgB,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACrD,OAAO,IAAI,iCAAgB,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,mCAAkB,EAAE,CAAC;AACjC,CAAC;AAKD,KAAK,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,GAAG,EACH,KAAK,EACL,MAAM,GAMN;IACA,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,IAAA,0BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;IAGxF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QACnC,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,wBAAwB,EAAE;KAC1C,CAAC,CAAC;IAGH,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnB,CAAC;AAKM,KAAK,UAAU,YAAY,CAAC,EAClC,OAAO,EACP,SAAS,EACT,KAAK,EACL,GAAG,EACH,YAAY,EACZ,QAAQ,GACc;IAEtB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,MAAM,IAAA,kCAAoB,EAAC;YACjD,OAAO;YACP,SAAS;YACT,GAAG;YACH,QAAQ;YACR,KAAK;SACL,CAAC,CAAC;QAEH,OAAO,MAAM,kBAAkB,CAAC;YAC/B,OAAO;YACP,GAAG;YACH,KAAK;YACL,MAAM,EAAE,cAAc;SACtB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;IAGhE,MAAM,sBAAsB,GAAG,MAAM,IAAA,kCAAoB,EAAC;QACzD,OAAO;QACP,SAAS;QACT,GAAG;QACH,QAAQ;QACR,kBAAkB;QAClB,KAAK;KACL,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,sBAAsB;SAClC,IAAI,CAAC,GAAG,CAAC;SACT,IAAI,CAAC,YAAY,CAAC;SAClB,UAAU,CAAC,IAAA,0BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAI/F,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { IDataObject, INodeProperties } from 'n8n-workflow';
2
+ import { NodeConnectionType } from 'n8n-workflow';
3
+ export declare function getInputs(parameters: IDataObject): ({
4
+ displayName: string;
5
+ type: NodeConnectionType;
6
+ maxConnections?: undefined;
7
+ required?: undefined;
8
+ } | {
9
+ displayName: string;
10
+ maxConnections: number;
11
+ type: NodeConnectionType;
12
+ required: boolean;
13
+ })[];
14
+ export declare const nodeProperties: INodeProperties[];