🛠️ refactor: Improve Logging and Error Handling in ToolService and useSSE (#2922)

* refactor(ToolService): streamline logging and tool error handling, also ensure generated outputs always have `output` field

* refactor(useSSE): error message for server connection issue

* refactor: add back capture group of sensitive information.js

* hotfix: cohere chinese character unicode issue, return aggregated reply
This commit is contained in:
Danny Avila 2024-05-30 12:58:43 -04:00 committed by GitHub
parent a6058c5669
commit 08d6bea359
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 34 additions and 30 deletions

View file

@ -340,29 +340,26 @@ async function processRequiredActions(client, requiredActions) {
currentAction.toolInput = currentAction.toolInput.input;
}
try {
const promise = tool
._call(currentAction.toolInput)
.then(handleToolOutput)
.catch((error) => {
logger.error(`Error processing tool ${currentAction.tool}`, error);
return {
tool_call_id: currentAction.toolCallId,
output: `Error processing tool ${currentAction.tool}: ${redactMessage(error.message)}`,
};
});
promises.push(promise);
} catch (error) {
const handleToolError = (error) => {
logger.error(
`tool_call_id: ${currentAction.toolCallId} | Error processing tool ${currentAction.tool}`,
error,
);
promises.push(
Promise.resolve({
tool_call_id: currentAction.toolCallId,
error: error.message,
}),
);
return {
tool_call_id: currentAction.toolCallId,
output: `Error processing tool ${currentAction.tool}: ${redactMessage(error.message, 256)}`,
};
};
try {
const promise = tool
._call(currentAction.toolInput)
.then(handleToolOutput)
.catch(handleToolError);
promises.push(promise);
} catch (error) {
const toolOutputError = handleToolError(error);
promises.push(Promise.resolve(toolOutputError));
}
}