Spaces:
Paused
Paused
Improve error handling when posting new messages (#892)
Browse files* send an error or if no text was written
* fix loading indicator
* fix lastIsError code
src/lib/components/chat/ChatMessage.svelte
CHANGED
|
@@ -106,7 +106,7 @@
|
|
| 106 |
clearTimeout(pendingTimeout);
|
| 107 |
|
| 108 |
// Add loading animation to the last message if update takes more than 600ms
|
| 109 |
-
if (
|
| 110 |
pendingTimeout = setTimeout(() => {
|
| 111 |
if (contentEl) {
|
| 112 |
loadingEl = new IconLoading({
|
|
|
|
| 106 |
clearTimeout(pendingTimeout);
|
| 107 |
|
| 108 |
// Add loading animation to the last message if update takes more than 600ms
|
| 109 |
+
if (isLast && loading && emptyLoad) {
|
| 110 |
pendingTimeout = setTimeout(() => {
|
| 111 |
if (contentEl) {
|
| 112 |
loadingEl = new IconLoading({
|
src/lib/components/chat/ChatWindow.svelte
CHANGED
|
@@ -86,7 +86,10 @@
|
|
| 86 |
const convTreeStore = useConvTreeStore();
|
| 87 |
|
| 88 |
$: lastMessage = browser && (messages.find((m) => m.id == $convTreeStore.leaf) as Message);
|
| 89 |
-
$: lastIsError =
|
|
|
|
|
|
|
|
|
|
| 90 |
|
| 91 |
$: sources = files.map((file) => file2base64(file));
|
| 92 |
|
|
@@ -242,7 +245,7 @@
|
|
| 242 |
on:click={() => {
|
| 243 |
if (lastMessage && lastMessage.ancestors) {
|
| 244 |
dispatch("retry", {
|
| 245 |
-
id: lastMessage.
|
| 246 |
});
|
| 247 |
}
|
| 248 |
}}
|
|
|
|
| 86 |
const convTreeStore = useConvTreeStore();
|
| 87 |
|
| 88 |
$: lastMessage = browser && (messages.find((m) => m.id == $convTreeStore.leaf) as Message);
|
| 89 |
+
$: lastIsError =
|
| 90 |
+
lastMessage &&
|
| 91 |
+
((lastMessage.from === "user" && !loading) ||
|
| 92 |
+
lastMessage.updates?.findIndex((u) => u.type === "status" && u.status === "error") !== -1);
|
| 93 |
|
| 94 |
$: sources = files.map((file) => file2base64(file));
|
| 95 |
|
|
|
|
| 245 |
on:click={() => {
|
| 246 |
if (lastMessage && lastMessage.ancestors) {
|
| 247 |
dispatch("retry", {
|
| 248 |
+
id: lastMessage.id,
|
| 249 |
});
|
| 250 |
}
|
| 251 |
}}
|
src/routes/conversation/[id]/+server.ts
CHANGED
|
@@ -377,6 +377,15 @@ export async function POST({ request, locals, params, getClientAddress }) {
|
|
| 377 |
}
|
| 378 |
} catch (e) {
|
| 379 |
update({ type: "status", status: "error", message: (e as Error).message });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 380 |
}
|
| 381 |
|
| 382 |
await collections.conversations.updateOne(
|
|
|
|
| 377 |
}
|
| 378 |
} catch (e) {
|
| 379 |
update({ type: "status", status: "error", message: (e as Error).message });
|
| 380 |
+
} finally {
|
| 381 |
+
// check if no output was generated
|
| 382 |
+
if (messageToWriteTo.content === previousText) {
|
| 383 |
+
update({
|
| 384 |
+
type: "status",
|
| 385 |
+
status: "error",
|
| 386 |
+
message: "No output was generated. Something went wrong.",
|
| 387 |
+
});
|
| 388 |
+
}
|
| 389 |
}
|
| 390 |
|
| 391 |
await collections.conversations.updateOne(
|