@n8n/n8n-nodes-langchain 1.83.0 → 1.84.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.
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 +16 -388
  16. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
  17. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.d.ts +2 -0
  18. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.js +50 -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 +26 -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 +8 -5
  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 = {
@@ -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),
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":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ChainExecutionParams } from './types';
2
+ export declare function executeChain({ context, itemIndex, query, llm, outputParser, messages, }: ChainExecutionParams): Promise<unknown[]>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeChain = executeChain;
4
+ const output_parsers_1 = require("@langchain/core/output_parsers");
5
+ const tracing_1 = require("../../../../utils/tracing");
6
+ const promptUtils_1 = require("./promptUtils");
7
+ async function executeSimpleChain({ context, llm, query, prompt, }) {
8
+ const chain = prompt
9
+ .pipe(llm)
10
+ .pipe(new output_parsers_1.StringOutputParser())
11
+ .withConfig((0, tracing_1.getTracingConfig)(context));
12
+ const response = await chain.invoke({
13
+ query,
14
+ signal: context.getExecutionCancelSignal(),
15
+ });
16
+ return [response];
17
+ }
18
+ async function executeChain({ context, itemIndex, query, llm, outputParser, messages, }) {
19
+ if (!outputParser) {
20
+ const promptTemplate = await (0, promptUtils_1.createPromptTemplate)({
21
+ context,
22
+ itemIndex,
23
+ llm,
24
+ messages,
25
+ query,
26
+ });
27
+ return await executeSimpleChain({
28
+ context,
29
+ llm,
30
+ query,
31
+ prompt: promptTemplate,
32
+ });
33
+ }
34
+ const formatInstructions = outputParser.getFormatInstructions();
35
+ const promptWithInstructions = await (0, promptUtils_1.createPromptTemplate)({
36
+ context,
37
+ itemIndex,
38
+ llm,
39
+ messages,
40
+ formatInstructions,
41
+ query,
42
+ });
43
+ const chain = promptWithInstructions
44
+ .pipe(llm)
45
+ .pipe(outputParser)
46
+ .withConfig((0, tracing_1.getTracingConfig)(context));
47
+ const response = await chain.invoke({ query }, { signal: context.getExecutionCancelSignal() });
48
+ return Array.isArray(response) ? response : [response];
49
+ }
50
+ //# sourceMappingURL=chainExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainExecutor.js","sourceRoot":"","sources":["../../../../../nodes/chains/ChainLLM/methods/chainExecutor.ts"],"names":[],"mappings":";;AA0CA,oCA+CC;AAxFD,mEAAoE;AAIpE,4CAAkD;AAElD,+CAAqD;AAMrD,KAAK,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,GAAG,EACH,KAAK,EACL,MAAM,GAMN;IACA,MAAM,KAAK,GAAG,MAAM;SAClB,IAAI,CAAC,GAAG,CAAC;SACT,IAAI,CAAC,IAAI,mCAAkB,EAAE,CAAC;SAC9B,UAAU,CAAC,IAAA,0BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;IAGxC,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[];