From 45ffa62f0ff0365701e5ea8100446cd9c84c77e9 Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Sat, 5 Aug 2023 18:22:05 +0800 Subject: [PATCH 1/2] add additional systemMessagePrompt into CSV Agent --- .../components/nodes/agents/CSVAgent/CSVAgent.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/components/nodes/agents/CSVAgent/CSVAgent.ts b/packages/components/nodes/agents/CSVAgent/CSVAgent.ts index 9224a4c1..4a42592f 100644 --- a/packages/components/nodes/agents/CSVAgent/CSVAgent.ts +++ b/packages/components/nodes/agents/CSVAgent/CSVAgent.ts @@ -37,6 +37,16 @@ class CSV_Agents implements INode { label: 'Language Model', name: 'model', type: 'BaseLanguageModel' + }, + { + label: 'System Message', + name: 'systemMessagePrompt', + type: 'string', + rows: 4, + additionalParams: true, + optional: true, + placeholder: + 'I want you to act as a document that I am having a conversation with. Your name is "AI Assistant". You will provide me with answers from the given info. If the answer is not included, say exactly "Hmm, I am not sure." and stop after that. Refuse to answer any question not about the info. Never break character.' } ] } @@ -49,6 +59,7 @@ class CSV_Agents implements INode { async run(nodeData: INodeData, input: string, options: ICommonObject): Promise { const csvFileBase64 = nodeData.inputs?.csvFile as string const model = nodeData.inputs?.model as BaseLanguageModel + const systemMessagePrompt = nodeData.inputs?.systemMessagePrompt as string const loggerHandler = new ConsoleCallbackHandler(options.logger) const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId) @@ -127,7 +138,9 @@ json.dumps(my_dict)` if (finalResult) { const chain = new LLMChain({ llm: model, - prompt: PromptTemplate.fromTemplate(finalSystemPrompt), + prompt: PromptTemplate.fromTemplate( + systemMessagePrompt ? `${systemMessagePrompt}\n${finalSystemPrompt}` : finalSystemPrompt + ), verbose: process.env.DEBUG === 'true' ? true : false }) const inputs = { From bb10d18c881c12d58d359fe2f11b241100a24a02 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 5 Aug 2023 23:37:51 +0100 Subject: [PATCH 2/2] add appdatasource and databaseEntities to run method --- packages/server/src/ChildProcess.ts | 9 +++++++-- packages/server/src/index.ts | 12 +++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/server/src/ChildProcess.ts b/packages/server/src/ChildProcess.ts index 2eae90f8..45509938 100644 --- a/packages/server/src/ChildProcess.ts +++ b/packages/server/src/ChildProcess.ts @@ -7,7 +7,8 @@ import { getStartingNodes, getUserHome, replaceInputsWithConfig, - resolveVariables + resolveVariables, + databaseEntities } from './utils' import { DataSource } from 'typeorm' import { ChatFlow } from './entity/ChatFlow' @@ -137,7 +138,11 @@ export class ChildProcess { const nodeInstance = new nodeModule.nodeClass() logger.debug(`[server] [mode:child]: Running ${nodeToExecuteData.label} (${nodeToExecuteData.id})`) - const result = await nodeInstance.run(nodeToExecuteData, incomingInput.question, { chatHistory: incomingInput.history }) + const result = await nodeInstance.run(nodeToExecuteData, incomingInput.question, { + chatHistory: incomingInput.history, + appDataSource: childAppDataSource, + databaseEntities + }) logger.debug(`[server] [mode:child]: Finished running ${nodeToExecuteData.label} (${nodeToExecuteData.id})`) await sendToParentProcess('finish', { result, addToChatFlowPool }) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 545c75a7..178218dc 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -993,10 +993,16 @@ export class App { chatHistory: incomingInput.history, socketIO, socketIOClientId: incomingInput.socketIOClientId, - logger + logger, + appDataSource: this.AppDataSource, + databaseEntities + }) + : await nodeInstance.run(nodeToExecuteData, incomingInput.question, { + chatHistory: incomingInput.history, + logger, + appDataSource: this.AppDataSource, + databaseEntities }) - : await nodeInstance.run(nodeToExecuteData, incomingInput.question, { chatHistory: incomingInput.history, logger }) - logger.debug(`[server]: Finished running ${nodeToExecuteData.label} (${nodeToExecuteData.id})`) return res.json(result) }