From f998ff239a42766701192c17c8b056759431dd6c Mon Sep 17 00:00:00 2001 From: josc146 Date: Wed, 21 Jun 2023 00:26:50 +0800 Subject: [PATCH] add chat and completion error messages --- frontend/src/pages/Chat.tsx | 14 +++++++++++++- frontend/src/pages/Completion.tsx | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/Chat.tsx b/frontend/src/pages/Chat.tsx index d9aabd5..b67ae97 100644 --- a/frontend/src/pages/Chat.tsx +++ b/frontend/src/pages/Chat.tsx @@ -96,7 +96,7 @@ const ChatPanel: FC = observer(() => { e.stopPropagation(); if (e.type === 'click' || (e.keyCode === 13 && !e.shiftKey)) { e.preventDefault(); - if (commonStore.status.status === ModelStatus.Offline) { + if (commonStore.status.status === ModelStatus.Offline && !commonStore.settings.apiUrl) { toast(t('Please click the button in the top right corner to start the model'), { type: 'warning' }); return; } @@ -194,14 +194,26 @@ const ChatPanel: FC = observer(() => { commonStore.setConversationOrder([...commonStore.conversationOrder]); } }, + async onopen(response) { + if (response.status !== 200) { + commonStore.conversation[answerId].content += '\n[ERROR]\n```\n' + response.statusText + '\n' + (await response.text()) + '\n```'; + commonStore.setConversation(commonStore.conversation); + commonStore.setConversationOrder([...commonStore.conversationOrder]); + setTimeout(scrollToBottom); + } + }, onclose() { console.log('Connection closed'); }, onerror(err) { commonStore.conversation[answerId].type = MessageType.Error; commonStore.conversation[answerId].done = true; + err = err.message || err; + if (err && !err.includes('ReadableStreamDefaultReader')) + commonStore.conversation[answerId].content += '\n[ERROR]\n```\n' + err + '\n```'; commonStore.setConversation(commonStore.conversation); commonStore.setConversationOrder([...commonStore.conversationOrder]); + setTimeout(scrollToBottom); throw err; } }); diff --git a/frontend/src/pages/Completion.tsx b/frontend/src/pages/Completion.tsx index ce48fc9..08b19f1 100644 --- a/frontend/src/pages/Completion.tsx +++ b/frontend/src/pages/Completion.tsx @@ -180,7 +180,7 @@ const CompletionPanel: FC = observer(() => { }; const onSubmit = (prompt: string) => { - if (commonStore.status.status === ModelStatus.Offline) { + if (commonStore.status.status === ModelStatus.Offline && !commonStore.settings.apiUrl) { toast(t('Please click the button in the top right corner to start the model'), { type: 'warning' }); commonStore.setCompletionGenerating(false); return; @@ -231,10 +231,22 @@ const CompletionPanel: FC = observer(() => { setPrompt(prompt + answer.trim() + params.injectEnd.replaceAll('\\n', '\n')); } }, + async onopen(response) { + if (response.status !== 200) { + toast(response.statusText + '\n' + (await response.text()), { + type: 'error' + }); + } + }, onclose() { console.log('Connection closed'); }, onerror(err) { + err = err.message || err; + if (err && !err.includes('ReadableStreamDefaultReader')) + toast(err, { + type: 'error' + }); commonStore.setCompletionGenerating(false); throw err; }