From 82d132427cc7dea00546d6891f5be2353f4aa3eb Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Mon, 26 Jun 2023 17:54:55 -0700 Subject: [PATCH] dump error message to frontend instead of generic error (#114) --- .../components/WorkspaceChat/ChatContainer/index.jsx | 5 ----- frontend/src/utils/chat/index.js | 1 - server/endpoints/chat.js | 11 +++++++++-- server/utils/openAi/index.js | 12 +++++++++++- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx index f8b1fc9b..627afe6e 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/index.jsx @@ -54,11 +54,6 @@ export default function ChatContainer({ workspace, knownHistory = [] }) { window.localStorage.getItem(`workspace_chat_mode_${workspace.slug}`) ?? "chat" ); - if (!chatResult) { - alert("Could not send chat."); - setLoadingResponse(false); - return; - } handleChat( chatResult, setLoadingResponse, diff --git a/frontend/src/utils/chat/index.js b/frontend/src/utils/chat/index.js index e5f129ab..539e22c7 100644 --- a/frontend/src/utils/chat/index.js +++ b/frontend/src/utils/chat/index.js @@ -10,7 +10,6 @@ export default function handleChat( if (type === "abort") { setLoadingResponse(false); - alert(error); setChatHistory([ ...remHistory, { diff --git a/server/endpoints/chat.js b/server/endpoints/chat.js index bf13041c..7c303643 100644 --- a/server/endpoints/chat.js +++ b/server/endpoints/chat.js @@ -1,3 +1,4 @@ +const { v4: uuidv4 } = require("uuid"); const { reqBody } = require("../utils/http"); const { Workspace } = require("../models/workspace"); const { chatWithWorkspace } = require("../utils/chats"); @@ -18,8 +19,14 @@ function chatEndpoints(app) { const result = await chatWithWorkspace(workspace, message, mode); response.status(200).json({ ...result }); } catch (e) { - console.log(e.message, e); - response.sendStatus(500).end(); + response.status(500).json({ + id: uuidv4(), + type: "abort", + textResponse: null, + sources: [], + close: true, + error: e.message, + }); } }); } diff --git a/server/utils/openAi/index.js b/server/utils/openAi/index.js index 00ec1326..b4ce75ba 100644 --- a/server/utils/openAi/index.js +++ b/server/utils/openAi/index.js @@ -3,7 +3,6 @@ class OpenAi { constructor() { const config = new Configuration({ apiKey: process.env.OPEN_AI_KEY, - // organization: "org-123xyz", // Optional }); const openai = new OpenAIApi(config); this.openai = openai; @@ -23,6 +22,11 @@ class OpenAi { if (res.results.length === 0) throw new Error("OpenAI moderation: No results length!"); return res.results[0]; + }) + .catch((error) => { + throw new Error( + `OpenAI::CreateModeration failed with: ${error.message}` + ); }); if (!flagged) return { safe: true, reasons: [] }; @@ -65,6 +69,12 @@ class OpenAi { if (res.choices.length === 0) throw new Error("OpenAI chat: No results length!"); return res.choices[0].message.content; + }) + .catch((error) => { + console.log(error); + throw new Error( + `OpenAI::createChatCompletion failed with: ${error.message}` + ); }); return textResponse;