From dfec4bfe3ab2f0c2adb60cab5a6b12a1e99a6181 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Wed, 14 Jun 2023 13:50:00 -0400 Subject: [PATCH] refactor(ChatAgent.js, handlers.js): stringify toolInput object in logs The `toolInput` object was not being properly logged in the `ChatAgent.js` and `handlers.js` files. The `JSON.stringify()` method was added to properly log the object. --- api/app/langchain/ChatAgent.js | 4 ++-- api/server/routes/ask/handlers.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/app/langchain/ChatAgent.js b/api/app/langchain/ChatAgent.js index b17c55ae7e..d784106256 100644 --- a/api/app/langchain/ChatAgent.js +++ b/api/app/langchain/ChatAgent.js @@ -53,7 +53,7 @@ class ChatAgent { if (actions[0]?.action && this.functionsAgent) { actions = actions.map((step) => ({ - log: `Action: ${step.action?.tool || ''}\nInput: ${step.action?.toolInput?.input || ''}\nObservation: ${step.observation}` + log: `Action: ${step.action?.tool || ''}\nInput: ${JSON.stringify(step.action?.toolInput) || ''}\nObservation: ${step.observation}` })); } else if (actions[0]?.action) { actions = actions.map((step) => ({ @@ -494,7 +494,7 @@ Only respond with your conversational reply to the following User Message: }; // initialize agent - const initializer = this.options.agentOptions?.agent === 'functions' ? initializeFunctionsAgent : initializeCustomAgent; + const initializer = this.functionsAgent ? initializeFunctionsAgent : initializeCustomAgent; this.executor = await initializer({ model, signal, diff --git a/api/server/routes/ask/handlers.js b/api/server/routes/ask/handlers.js index 925807e665..f415ac0d06 100644 --- a/api/server/routes/ask/handlers.js +++ b/api/server/routes/ask/handlers.js @@ -99,14 +99,14 @@ function formatSteps(steps) { for (let i = 0; i < steps.length; i++) { const step = steps[i]; - const actionInput = step.action.toolInput; + const actionInput = getString(step.action.toolInput); const observation = step.observation; if (actionInput === 'N/A' || observation?.trim()?.length === 0) { continue; } - output += `Input: ${actionInput?.input || actionInput}\nOutput: ${getString(observation)}`; + output += `Input: ${actionInput}\nOutput: ${getString(observation)}`; if (steps.length > 1 && i !== steps.length - 1) { output += '\n---\n'; @@ -131,7 +131,7 @@ function formatAction(action) { const formattedAction = { plugin: capitalizeWords(action.tool) || action.tool, - input: action.toolInput?.input || action.toolInput, + input: getString(action.toolInput), thought: action.log.includes('Thought: ') ? action.log.split('\n')[0].replace('Thought: ', '') : action.log.split('\n')[0]