@n8n/n8n-nodes-langchain 0.22.0 → 1.36.4
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/build.tsbuildinfo +1 -1
- package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.d.ts +1 -1
- package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js +21 -33
- package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js.map +1 -1
- package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js +21 -33
- package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js.map +1 -1
- package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.js +21 -33
- package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.js.map +1 -1
- package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js +21 -33
- package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js.map +1 -1
- package/dist/nodes/agents/Agent/agents/SqlAgent/execute.js +70 -80
- package/dist/nodes/agents/Agent/agents/SqlAgent/execute.js.map +1 -1
- package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js +43 -53
- package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js.map +1 -1
- package/dist/nodes/chains/ChainLLM/ChainLlm.node.js +44 -54
- package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
- package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js +15 -25
- package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js.map +1 -1
- package/dist/nodes/chains/ChainSummarization/V2/ChainSummarizationV2.node.js +40 -50
- package/dist/nodes/chains/ChainSummarization/V2/ChainSummarizationV2.node.js.map +1 -1
- package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js +2 -2
- package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js.map +1 -1
- package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js +4 -4
- package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js.map +1 -1
- package/dist/nodes/trigger/ChatTrigger/templates.js +2 -3
- package/dist/nodes/trigger/ChatTrigger/templates.js.map +1 -1
- package/dist/nodes/vendors/OpenAi/actions/assistant/message.operation.js +1 -2
- package/dist/nodes/vendors/OpenAi/actions/assistant/message.operation.js.map +1 -1
- package/package.json +4 -4
- package/dist/utils/tracing.d.ts +0 -7
- package/dist/utils/tracing.js +0 -21
- package/dist/utils/tracing.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IExecuteFunctions, type INodeExecutionData } from 'n8n-workflow';
|
|
2
2
|
export declare function conversationalAgentExecute(this: IExecuteFunctions, nodeVersion: number): Promise<INodeExecutionData[][]>;
|
|
@@ -6,7 +6,6 @@ const agents_1 = require("langchain/agents");
|
|
|
6
6
|
const prompts_1 = require("@langchain/core/prompts");
|
|
7
7
|
const output_parsers_1 = require("langchain/output_parsers");
|
|
8
8
|
const helpers_1 = require("../../../../../utils/helpers");
|
|
9
|
-
const tracing_1 = require("../../../../../utils/tracing");
|
|
10
9
|
async function conversationalAgentExecute(nodeVersion) {
|
|
11
10
|
var _a;
|
|
12
11
|
this.logger.verbose('Executing Conversational Agent');
|
|
@@ -49,40 +48,29 @@ async function conversationalAgentExecute(nodeVersion) {
|
|
|
49
48
|
}
|
|
50
49
|
const items = this.getInputData();
|
|
51
50
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
input = this.getNodeParameter('text', itemIndex);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
input = (0, helpers_1.getPromptInputByType)({
|
|
59
|
-
ctx: this,
|
|
60
|
-
i: itemIndex,
|
|
61
|
-
inputKey: 'text',
|
|
62
|
-
promptTypeKey: 'promptType',
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
if (input === undefined) {
|
|
66
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text parameter is empty.');
|
|
67
|
-
}
|
|
68
|
-
if (prompt) {
|
|
69
|
-
input = (await prompt.invoke({ input })).value;
|
|
70
|
-
}
|
|
71
|
-
let response = await agentExecutor
|
|
72
|
-
.withConfig((0, tracing_1.getTracingConfig)(this))
|
|
73
|
-
.invoke({ input, outputParsers });
|
|
74
|
-
if (outputParser) {
|
|
75
|
-
response = { output: await outputParser.parse(response.output) };
|
|
76
|
-
}
|
|
77
|
-
returnData.push({ json: response });
|
|
51
|
+
let input;
|
|
52
|
+
if (this.getNode().typeVersion <= 1.2) {
|
|
53
|
+
input = this.getNodeParameter('text', itemIndex);
|
|
78
54
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
55
|
+
else {
|
|
56
|
+
input = (0, helpers_1.getPromptInputByType)({
|
|
57
|
+
ctx: this,
|
|
58
|
+
i: itemIndex,
|
|
59
|
+
inputKey: 'text',
|
|
60
|
+
promptTypeKey: 'promptType',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (input === undefined) {
|
|
64
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text parameter is empty.');
|
|
65
|
+
}
|
|
66
|
+
if (prompt) {
|
|
67
|
+
input = (await prompt.invoke({ input })).value;
|
|
68
|
+
}
|
|
69
|
+
let response = await agentExecutor.call({ input, outputParsers });
|
|
70
|
+
if (outputParser) {
|
|
71
|
+
response = { output: await outputParser.parse(response.output) };
|
|
85
72
|
}
|
|
73
|
+
returnData.push({ json: response });
|
|
86
74
|
}
|
|
87
75
|
return await this.prepareOutputData(returnData);
|
|
88
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/ConversationalAgent/execute.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/ConversationalAgent/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ const output_parsers_1 = require("langchain/output_parsers");
|
|
|
8
8
|
const memory_1 = require("langchain/memory");
|
|
9
9
|
const openai_1 = require("@langchain/openai");
|
|
10
10
|
const helpers_1 = require("../../../../../utils/helpers");
|
|
11
|
-
const tracing_1 = require("../../../../../utils/tracing");
|
|
12
11
|
async function openAiFunctionsAgentExecute(nodeVersion) {
|
|
13
12
|
var _a;
|
|
14
13
|
this.logger.verbose('Executing OpenAi Functions Agent');
|
|
@@ -51,40 +50,29 @@ async function openAiFunctionsAgentExecute(nodeVersion) {
|
|
|
51
50
|
}
|
|
52
51
|
const items = this.getInputData();
|
|
53
52
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
input = this.getNodeParameter('text', itemIndex);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
input = (0, helpers_1.getPromptInputByType)({
|
|
61
|
-
ctx: this,
|
|
62
|
-
i: itemIndex,
|
|
63
|
-
inputKey: 'text',
|
|
64
|
-
promptTypeKey: 'promptType',
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
if (input === undefined) {
|
|
68
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text‘ parameter is empty.');
|
|
69
|
-
}
|
|
70
|
-
if (prompt) {
|
|
71
|
-
input = (await prompt.invoke({ input })).value;
|
|
72
|
-
}
|
|
73
|
-
let response = await agentExecutor
|
|
74
|
-
.withConfig((0, tracing_1.getTracingConfig)(this))
|
|
75
|
-
.invoke({ input, outputParsers });
|
|
76
|
-
if (outputParser) {
|
|
77
|
-
response = { output: await outputParser.parse(response.output) };
|
|
78
|
-
}
|
|
79
|
-
returnData.push({ json: response });
|
|
53
|
+
let input;
|
|
54
|
+
if (this.getNode().typeVersion <= 1.2) {
|
|
55
|
+
input = this.getNodeParameter('text', itemIndex);
|
|
80
56
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
57
|
+
else {
|
|
58
|
+
input = (0, helpers_1.getPromptInputByType)({
|
|
59
|
+
ctx: this,
|
|
60
|
+
i: itemIndex,
|
|
61
|
+
inputKey: 'text',
|
|
62
|
+
promptTypeKey: 'promptType',
|
|
63
|
+
});
|
|
87
64
|
}
|
|
65
|
+
if (input === undefined) {
|
|
66
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text‘ parameter is empty.');
|
|
67
|
+
}
|
|
68
|
+
if (prompt) {
|
|
69
|
+
input = (await prompt.invoke({ input })).value;
|
|
70
|
+
}
|
|
71
|
+
let response = await agentExecutor.call({ input, outputParsers });
|
|
72
|
+
if (outputParser) {
|
|
73
|
+
response = { output: await outputParser.parse(response.output) };
|
|
74
|
+
}
|
|
75
|
+
returnData.push({ json: response });
|
|
88
76
|
}
|
|
89
77
|
return await this.prepareOutputData(returnData);
|
|
90
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.ts"],"names":[],"mappings":";;;AAAA,+CAKsB;AAGtB,6CAA8D;AAE9D,qDAAyD;AACzD,6DAAiE;AACjE,6CAAqE;AACrE,8CAA+C;AAC/C,0DAIsC;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.ts"],"names":[],"mappings":";;;AAAA,+CAKsB;AAGtB,6CAA8D;AAE9D,qDAAyD;AACzD,6DAAiE;AACjE,6CAAqE;AACrE,8CAA+C;AAC/C,0DAIsC;AAE/B,KAAK,UAAU,2BAA2B,CAEhD,WAAmB;;IAEnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,qBAE/C,CAAC,CACD,CAAe,CAAC;IAEjB,IAAI,CAAC,CAAC,KAAK,YAAY,mBAAU,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,mDAAmD,CACnD,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,cAA8B,CAAC,CAAC,CAErE,CAAC;IACb,MAAM,KAAK,GAAG,MAAM,IAAA,2BAAiB,EAAC,IAAI,EAAE,WAAW,IAAI,GAAG,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,IAAA,kCAAwB,EAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAIrD,CAAC;IAEF,MAAM,WAAW,GAAuB;QACvC,IAAI,EAAE,CAAC,kBAAkB,CAAC;QAC1B,KAAK,EAAE,oBAAW,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;YAChD,MAAM,EAAE,OAAO,CAAC,aAAa;SAC7B,CAAC;QACF,KAAK;QACL,aAAa,EAAE,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE;QAC1C,uBAAuB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,MAAK,IAAI;QAClE,MAAM,EACL,MAAM,aAAN,MAAM,cAAN,MAAM,GACN,IAAI,qBAAY,CAAC;YAChB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,QAAQ;SACnB,CAAC;KACH,CAAC;IAEF,MAAM,aAAa,GAAG,sBAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,IAAI,YAA0C,CAAC;IAC/C,IAAI,MAAkC,CAAC;IACvC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,YAAY;YACX,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,sCAAqB,CAAC,GAAG,aAAa,CAAC,CAAC;QAE7F,MAAM,kBAAkB,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAEhE,MAAM,GAAG,IAAI,wBAAc,CAAC;YAC3B,QAAQ,EAAE,+BAA+B;YACzC,cAAc,EAAE,CAAC,OAAO,CAAC;YACzB,gBAAgB,EAAE,EAAE,kBAAkB,EAAE;SACxC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/D,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;YACvC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAW,CAAC;QAC5D,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,IAAA,8BAAoB,EAAC;gBAC5B,GAAG,EAAE,IAAI;gBACT,CAAC,EAAE,SAAS;gBACZ,QAAQ,EAAE,MAAM;gBAChB,aAAa,EAAE,YAAY;aAC3B,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,gCAAgC,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACZ,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAChD,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAElE,IAAI,YAAY,EAAE,CAAC;YAClB,QAAQ,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAgB,CAAC,EAAE,CAAC;QAC5E,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAhGD,kEAgGC"}
|
|
@@ -6,7 +6,6 @@ const prompts_1 = require("@langchain/core/prompts");
|
|
|
6
6
|
const output_parsers_1 = require("langchain/output_parsers");
|
|
7
7
|
const plan_and_execute_1 = require("langchain/experimental/plan_and_execute");
|
|
8
8
|
const helpers_1 = require("../../../../../utils/helpers");
|
|
9
|
-
const tracing_1 = require("../../../../../utils/tracing");
|
|
10
9
|
async function planAndExecuteAgentExecute(nodeVersion) {
|
|
11
10
|
this.logger.verbose('Executing PlanAndExecute Agent');
|
|
12
11
|
const model = (await this.getInputConnectionData("ai_languageModel", 0));
|
|
@@ -33,40 +32,29 @@ async function planAndExecuteAgentExecute(nodeVersion) {
|
|
|
33
32
|
}
|
|
34
33
|
const items = this.getInputData();
|
|
35
34
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
input = this.getNodeParameter('text', itemIndex);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
input = (0, helpers_1.getPromptInputByType)({
|
|
43
|
-
ctx: this,
|
|
44
|
-
i: itemIndex,
|
|
45
|
-
inputKey: 'text',
|
|
46
|
-
promptTypeKey: 'promptType',
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
if (input === undefined) {
|
|
50
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text‘ parameter is empty.');
|
|
51
|
-
}
|
|
52
|
-
if (prompt) {
|
|
53
|
-
input = (await prompt.invoke({ input })).value;
|
|
54
|
-
}
|
|
55
|
-
let response = await agentExecutor
|
|
56
|
-
.withConfig((0, tracing_1.getTracingConfig)(this))
|
|
57
|
-
.invoke({ input, outputParsers });
|
|
58
|
-
if (outputParser) {
|
|
59
|
-
response = { output: await outputParser.parse(response.output) };
|
|
60
|
-
}
|
|
61
|
-
returnData.push({ json: response });
|
|
35
|
+
let input;
|
|
36
|
+
if (this.getNode().typeVersion <= 1.2) {
|
|
37
|
+
input = this.getNodeParameter('text', itemIndex);
|
|
62
38
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
39
|
+
else {
|
|
40
|
+
input = (0, helpers_1.getPromptInputByType)({
|
|
41
|
+
ctx: this,
|
|
42
|
+
i: itemIndex,
|
|
43
|
+
inputKey: 'text',
|
|
44
|
+
promptTypeKey: 'promptType',
|
|
45
|
+
});
|
|
69
46
|
}
|
|
47
|
+
if (input === undefined) {
|
|
48
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text‘ parameter is empty.');
|
|
49
|
+
}
|
|
50
|
+
if (prompt) {
|
|
51
|
+
input = (await prompt.invoke({ input })).value;
|
|
52
|
+
}
|
|
53
|
+
let response = await agentExecutor.call({ input, outputParsers });
|
|
54
|
+
if (outputParser) {
|
|
55
|
+
response = { output: await outputParser.parse(response.output) };
|
|
56
|
+
}
|
|
57
|
+
returnData.push({ json: response });
|
|
70
58
|
}
|
|
71
59
|
return await this.prepareOutputData(returnData);
|
|
72
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.ts"],"names":[],"mappings":";;;AAAA,+CAKsB;AAGtB,qDAAyD;AACzD,6DAAiE;AAEjE,8EAAsF;AACtF,0DAIsC;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ const agents_1 = require("langchain/agents");
|
|
|
6
6
|
const prompts_1 = require("@langchain/core/prompts");
|
|
7
7
|
const output_parsers_1 = require("langchain/output_parsers");
|
|
8
8
|
const helpers_1 = require("../../../../../utils/helpers");
|
|
9
|
-
const tracing_1 = require("../../../../../utils/tracing");
|
|
10
9
|
async function reActAgentAgentExecute(nodeVersion) {
|
|
11
10
|
this.logger.verbose('Executing ReAct Agent');
|
|
12
11
|
const model = (await this.getInputConnectionData("ai_languageModel", 0));
|
|
@@ -47,40 +46,29 @@ async function reActAgentAgentExecute(nodeVersion) {
|
|
|
47
46
|
}
|
|
48
47
|
const items = this.getInputData();
|
|
49
48
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
input = this.getNodeParameter('text', itemIndex);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
input = (0, helpers_1.getPromptInputByType)({
|
|
57
|
-
ctx: this,
|
|
58
|
-
i: itemIndex,
|
|
59
|
-
inputKey: 'text',
|
|
60
|
-
promptTypeKey: 'promptType',
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
if (input === undefined) {
|
|
64
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text‘ parameter is empty.');
|
|
65
|
-
}
|
|
66
|
-
if (prompt) {
|
|
67
|
-
input = (await prompt.invoke({ input })).value;
|
|
68
|
-
}
|
|
69
|
-
let response = await agentExecutor
|
|
70
|
-
.withConfig((0, tracing_1.getTracingConfig)(this))
|
|
71
|
-
.invoke({ input, outputParsers });
|
|
72
|
-
if (outputParser) {
|
|
73
|
-
response = { output: await outputParser.parse(response.output) };
|
|
74
|
-
}
|
|
75
|
-
returnData.push({ json: response });
|
|
49
|
+
let input;
|
|
50
|
+
if (this.getNode().typeVersion <= 1.2) {
|
|
51
|
+
input = this.getNodeParameter('text', itemIndex);
|
|
76
52
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
53
|
+
else {
|
|
54
|
+
input = (0, helpers_1.getPromptInputByType)({
|
|
55
|
+
ctx: this,
|
|
56
|
+
i: itemIndex,
|
|
57
|
+
inputKey: 'text',
|
|
58
|
+
promptTypeKey: 'promptType',
|
|
59
|
+
});
|
|
83
60
|
}
|
|
61
|
+
if (input === undefined) {
|
|
62
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘text‘ parameter is empty.');
|
|
63
|
+
}
|
|
64
|
+
if (prompt) {
|
|
65
|
+
input = (await prompt.invoke({ input })).value;
|
|
66
|
+
}
|
|
67
|
+
let response = await agentExecutor.call({ input, outputParsers });
|
|
68
|
+
if (outputParser) {
|
|
69
|
+
response = { output: await outputParser.parse(response.output) };
|
|
70
|
+
}
|
|
71
|
+
returnData.push({ json: response });
|
|
84
72
|
}
|
|
85
73
|
return await this.prepareOutputData(returnData);
|
|
86
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/ReActAgent/execute.ts"],"names":[],"mappings":";;;AAAA,+CAKsB;AAEtB,6CAA2E;AAG3E,qDAAyD;AACzD,6DAAiE;AAEjE,0DAKsC;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/ReActAgent/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ const n8n_workflow_1 = require("n8n-workflow");
|
|
|
5
5
|
const sql_db_1 = require("langchain/sql_db");
|
|
6
6
|
const sql_1 = require("langchain/agents/toolkits/sql");
|
|
7
7
|
const helpers_1 = require("../../../../../utils/helpers");
|
|
8
|
-
const tracing_1 = require("../../../../../utils/tracing");
|
|
9
8
|
const sqlite_1 = require("./other/handlers/sqlite");
|
|
10
9
|
const postgres_1 = require("./other/handlers/postgres");
|
|
11
10
|
const prompts_1 = require("./other/prompts");
|
|
@@ -21,91 +20,82 @@ async function sqlAgentAgentExecute(nodeVersion) {
|
|
|
21
20
|
const items = this.getInputData();
|
|
22
21
|
const returnData = [];
|
|
23
22
|
for (let i = 0; i < items.length; i++) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
promptTypeKey: 'promptType',
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (input === undefined) {
|
|
39
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘prompt’ parameter is empty.');
|
|
40
|
-
}
|
|
41
|
-
const options = this.getNodeParameter('options', i, {});
|
|
42
|
-
const selectedDataSource = this.getNodeParameter('dataSource', i, 'sqlite');
|
|
43
|
-
const includedSampleRows = options.includedSampleRows;
|
|
44
|
-
const includedTablesArray = parseTablesString((_a = options.includedTables) !== null && _a !== void 0 ? _a : '');
|
|
45
|
-
const ignoredTablesArray = parseTablesString((_b = options.ignoredTables) !== null && _b !== void 0 ? _b : '');
|
|
46
|
-
let dataSource = null;
|
|
47
|
-
if (selectedDataSource === 'sqlite') {
|
|
48
|
-
if (!item.binary) {
|
|
49
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No binary data found, please connect a binary to the input if you want to use SQLite as data source');
|
|
50
|
-
}
|
|
51
|
-
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i, 'data');
|
|
52
|
-
dataSource = await sqlite_1.getSqliteDataSource.call(this, item.binary, binaryPropertyName);
|
|
53
|
-
}
|
|
54
|
-
if (selectedDataSource === 'postgres') {
|
|
55
|
-
dataSource = await postgres_1.getPostgresDataSource.call(this);
|
|
56
|
-
}
|
|
57
|
-
if (selectedDataSource === 'mysql') {
|
|
58
|
-
dataSource = await mysql_1.getMysqlDataSource.call(this);
|
|
59
|
-
}
|
|
60
|
-
if (!dataSource) {
|
|
61
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No data source found, please configure data source');
|
|
62
|
-
}
|
|
63
|
-
const agentOptions = {
|
|
64
|
-
topK: (_c = options.topK) !== null && _c !== void 0 ? _c : 10,
|
|
65
|
-
prefix: (_d = options.prefixPrompt) !== null && _d !== void 0 ? _d : prompts_1.SQL_PREFIX,
|
|
66
|
-
suffix: (_e = options.suffixPrompt) !== null && _e !== void 0 ? _e : prompts_1.SQL_SUFFIX,
|
|
67
|
-
inputVariables: ['chatHistory', 'input', 'agent_scratchpad'],
|
|
68
|
-
};
|
|
69
|
-
const dbInstance = await sql_db_1.SqlDatabase.fromDataSourceParams({
|
|
70
|
-
appDataSource: dataSource,
|
|
71
|
-
includesTables: includedTablesArray.length > 0 ? includedTablesArray : undefined,
|
|
72
|
-
ignoreTables: ignoredTablesArray.length > 0 ? ignoredTablesArray : undefined,
|
|
73
|
-
sampleRowsInTableInfo: includedSampleRows !== null && includedSampleRows !== void 0 ? includedSampleRows : 3,
|
|
23
|
+
const item = items[i];
|
|
24
|
+
let input;
|
|
25
|
+
if (this.getNode().typeVersion <= 1.2) {
|
|
26
|
+
input = this.getNodeParameter('input', i);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
input = (0, helpers_1.getPromptInputByType)({
|
|
30
|
+
ctx: this,
|
|
31
|
+
i,
|
|
32
|
+
inputKey: 'text',
|
|
33
|
+
promptTypeKey: 'promptType',
|
|
74
34
|
});
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
signal: this.getExecutionCancelSignal(),
|
|
89
|
-
chatHistory,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
if ((_f = error.message) === null || _f === void 0 ? void 0 : _f.output) {
|
|
94
|
-
response = error.message;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: i });
|
|
98
|
-
}
|
|
35
|
+
}
|
|
36
|
+
if (input === undefined) {
|
|
37
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The ‘prompt’ parameter is empty.');
|
|
38
|
+
}
|
|
39
|
+
const options = this.getNodeParameter('options', i, {});
|
|
40
|
+
const selectedDataSource = this.getNodeParameter('dataSource', i, 'sqlite');
|
|
41
|
+
const includedSampleRows = options.includedSampleRows;
|
|
42
|
+
const includedTablesArray = parseTablesString((_a = options.includedTables) !== null && _a !== void 0 ? _a : '');
|
|
43
|
+
const ignoredTablesArray = parseTablesString((_b = options.ignoredTables) !== null && _b !== void 0 ? _b : '');
|
|
44
|
+
let dataSource = null;
|
|
45
|
+
if (selectedDataSource === 'sqlite') {
|
|
46
|
+
if (!item.binary) {
|
|
47
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No binary data found, please connect a binary to the input if you want to use SQLite as data source');
|
|
99
48
|
}
|
|
100
|
-
|
|
49
|
+
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i, 'data');
|
|
50
|
+
dataSource = await sqlite_1.getSqliteDataSource.call(this, item.binary, binaryPropertyName);
|
|
51
|
+
}
|
|
52
|
+
if (selectedDataSource === 'postgres') {
|
|
53
|
+
dataSource = await postgres_1.getPostgresDataSource.call(this);
|
|
54
|
+
}
|
|
55
|
+
if (selectedDataSource === 'mysql') {
|
|
56
|
+
dataSource = await mysql_1.getMysqlDataSource.call(this);
|
|
57
|
+
}
|
|
58
|
+
if (!dataSource) {
|
|
59
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No data source found, please configure data source');
|
|
60
|
+
}
|
|
61
|
+
const agentOptions = {
|
|
62
|
+
topK: (_c = options.topK) !== null && _c !== void 0 ? _c : 10,
|
|
63
|
+
prefix: (_d = options.prefixPrompt) !== null && _d !== void 0 ? _d : prompts_1.SQL_PREFIX,
|
|
64
|
+
suffix: (_e = options.suffixPrompt) !== null && _e !== void 0 ? _e : prompts_1.SQL_SUFFIX,
|
|
65
|
+
inputVariables: ['chatHistory', 'input', 'agent_scratchpad'],
|
|
66
|
+
};
|
|
67
|
+
const dbInstance = await sql_db_1.SqlDatabase.fromDataSourceParams({
|
|
68
|
+
appDataSource: dataSource,
|
|
69
|
+
includesTables: includedTablesArray.length > 0 ? includedTablesArray : undefined,
|
|
70
|
+
ignoreTables: ignoredTablesArray.length > 0 ? ignoredTablesArray : undefined,
|
|
71
|
+
sampleRowsInTableInfo: includedSampleRows !== null && includedSampleRows !== void 0 ? includedSampleRows : 3,
|
|
72
|
+
});
|
|
73
|
+
const toolkit = new sql_1.SqlToolkit(dbInstance, model);
|
|
74
|
+
const agentExecutor = (0, sql_1.createSqlAgent)(model, toolkit, agentOptions);
|
|
75
|
+
const memory = (await this.getInputConnectionData("ai_memory", 0));
|
|
76
|
+
agentExecutor.memory = memory;
|
|
77
|
+
let chatHistory = '';
|
|
78
|
+
if (memory) {
|
|
79
|
+
const messages = await memory.chatHistory.getMessages();
|
|
80
|
+
chatHistory = (0, helpers_1.serializeChatHistory)(messages);
|
|
81
|
+
}
|
|
82
|
+
let response;
|
|
83
|
+
try {
|
|
84
|
+
response = await agentExecutor.call({
|
|
85
|
+
input,
|
|
86
|
+
signal: this.getExecutionCancelSignal(),
|
|
87
|
+
chatHistory,
|
|
88
|
+
});
|
|
101
89
|
}
|
|
102
90
|
catch (error) {
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
91
|
+
if ((_f = error.message) === null || _f === void 0 ? void 0 : _f.output) {
|
|
92
|
+
response = error.message;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: i });
|
|
106
96
|
}
|
|
107
|
-
throw error;
|
|
108
97
|
}
|
|
98
|
+
returnData.push({ json: response });
|
|
109
99
|
}
|
|
110
100
|
return await this.prepareOutputData(returnData);
|
|
111
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/SqlAgent/execute.ts"],"names":[],"mappings":";;;AAAA,+CAMsB;AAEtB,6CAA+C;AAE/C,uDAA2E;AAK3E,0DAA0F;AAC1F,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../nodes/agents/Agent/agents/SqlAgent/execute.ts"],"names":[],"mappings":"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"}
|