Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
195cfd4f
Commit
195cfd4f
authored
Dec 11, 2023
by
Rohit Das
Browse files
wip: displaying error in a toast
parent
a7bec01d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
140 additions
and
120 deletions
+140
-120
src/routes/(app)/+page.svelte
src/routes/(app)/+page.svelte
+70
-60
src/routes/(app)/c/[id]/+page.svelte
src/routes/(app)/c/[id]/+page.svelte
+70
-60
No files found.
src/routes/(app)/+page.svelte
View file @
195cfd4f
...
@@ -191,80 +191,90 @@
...
@@ -191,80 +191,90 @@
})
})
});
});
const reader = res.body
if (!res.ok) {
.pipeThrough(new TextDecoderStream())
const error = await res.json();
.pipeThrough(splitStream('\n'))
console.log(error);
.getReader();
if ('detail' in error) {
toast.error(error.detail);
while (true) {
} else {
const { value, done } = await reader.read();
toast.error(error.error);
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
break;
}
}
} else {
const reader = res.body
.pipeThrough(new TextDecoderStream())
.pipeThrough(splitStream('\n'))
.getReader();
while (true) {
const { value, done } = await reader.read();
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
break;
}
try {
try {
let lines = value.split('\n');
let lines = value.split('\n');
for (const line of lines) {
for (const line of lines) {
if (line !== '') {
if (line !== '') {
console.log(line);
console.log(line);
let data = JSON.parse(line);
let data = JSON.parse(line);
if ('detail' in data) {
if ('detail' in data) {
throw data;
throw data;
}
}
if (data.done == false) {
if (data.done == false) {
if (responseMessage.content == '' && data.message.content == '\n') {
if (responseMessage.content == '' && data.message.content == '\n') {
continue;
continue;
} else {
responseMessage.content += data.message.content;
messages = messages;
}
} else {
} else {
responseMessage.content += data.message.content;
responseMessage.done = true;
responseMessage.context = data.context ?? null;
responseMessage.info = {
total_duration: data.total_duration,
prompt_eval_count: data.prompt_eval_count,
prompt_eval_duration: data.prompt_eval_duration,
eval_count: data.eval_count,
eval_duration: data.eval_duration
};
messages = messages;
messages = messages;
}
}
} else {
responseMessage.done = true;
responseMessage.context = data.context ?? null;
responseMessage.info = {
total_duration: data.total_duration,
prompt_eval_count: data.prompt_eval_count,
prompt_eval_duration: data.prompt_eval_duration,
eval_count: data.eval_count,
eval_duration: data.eval_duration
};
messages = messages;
}
}
}
}
} catch (error) {
console.log(error);
if ('detail' in error) {
toast.error(error.detail);
}
break;
}
}
} catch (error) {
console.log(error);
if (autoScroll) {
if ('detail' in error) {
window.scrollTo({ top: document.body.scrollHeight });
toast.error(error.detail);
}
}
break;
}
if (autoScroll) {
await $db.updateChatById(_chatId, {
window.scrollTo({ top: document.body.scrollHeight });
title: title === '' ? 'New Chat' : title,
models: selectedModels,
system: $settings.system ?? undefined,
options: {
seed: $settings.seed ?? undefined,
temperature: $settings.temperature ?? undefined,
repeat_penalty: $settings.repeat_penalty ?? undefined,
top_k: $settings.top_k ?? undefined,
top_p: $settings.top_p ?? undefined,
num_ctx: $settings.num_ctx ?? undefined,
...($settings.options ?? {})
},
messages: messages,
history: history
});
}
}
await $db.updateChatById(_chatId, {
title: title === '' ? 'New Chat' : title,
models: selectedModels,
system: $settings.system ?? undefined,
options: {
seed: $settings.seed ?? undefined,
temperature: $settings.temperature ?? undefined,
repeat_penalty: $settings.repeat_penalty ?? undefined,
top_k: $settings.top_k ?? undefined,
top_p: $settings.top_p ?? undefined,
num_ctx: $settings.num_ctx ?? undefined,
...($settings.options ?? {})
},
messages: messages,
history: history
});
}
}
stopResponseFlag = false;
stopResponseFlag = false;
...
...
src/routes/(app)/c/[id]/+page.svelte
View file @
195cfd4f
...
@@ -218,80 +218,90 @@
...
@@ -218,80 +218,90 @@
})
})
});
});
const reader = res.body
if (!res.ok) {
.pipeThrough(new TextDecoderStream())
const error = await res.json();
.pipeThrough(splitStream('\n'))
console.log(error);
.getReader();
if ('detail' in error) {
toast.error(error.detail);
while (true) {
} else {
const { value, done } = await reader.read();
toast.error(error.error);
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
break;
}
}
} else {
const reader = res.body
.pipeThrough(new TextDecoderStream())
.pipeThrough(splitStream('\n'))
.getReader();
while (true) {
const { value, done } = await reader.read();
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
break;
}
try {
try {
let lines = value.split('\n');
let lines = value.split('\n');
for (const line of lines) {
for (const line of lines) {
if (line !== '') {
if (line !== '') {
console.log(line);
console.log(line);
let data = JSON.parse(line);
let data = JSON.parse(line);
if ('detail' in data) {
if ('detail' in data) {
throw data;
throw data;
}
}
if (data.done == false) {
if (data.done == false) {
if (responseMessage.content == '' && data.message.content == '\n') {
if (responseMessage.content == '' && data.message.content == '\n') {
continue;
continue;
} else {
responseMessage.content += data.message.content;
messages = messages;
}
} else {
} else {
responseMessage.content += data.message.content;
responseMessage.done = true;
responseMessage.context = data.context ?? null;
responseMessage.info = {
total_duration: data.total_duration,
prompt_eval_count: data.prompt_eval_count,
prompt_eval_duration: data.prompt_eval_duration,
eval_count: data.eval_count,
eval_duration: data.eval_duration
};
messages = messages;
messages = messages;
}
}
} else {
responseMessage.done = true;
responseMessage.context = data.context ?? null;
responseMessage.info = {
total_duration: data.total_duration,
prompt_eval_count: data.prompt_eval_count,
prompt_eval_duration: data.prompt_eval_duration,
eval_count: data.eval_count,
eval_duration: data.eval_duration
};
messages = messages;
}
}
}
}
} catch (error) {
console.log(error);
if ('detail' in error) {
toast.error(error.detail);
}
break;
}
}
} catch (error) {
console.log(error);
if (autoScroll) {
if ('detail' in error) {
window.scrollTo({ top: document.body.scrollHeight });
toast.error(error.detail);
}
}
break;
}
if (autoScroll) {
await $db.updateChatById(_chatId, {
window.scrollTo({ top: document.body.scrollHeight });
title: title === '' ? 'New Chat' : title,
models: selectedModels,
system: $settings.system ?? undefined,
options: {
seed: $settings.seed ?? undefined,
temperature: $settings.temperature ?? undefined,
repeat_penalty: $settings.repeat_penalty ?? undefined,
top_k: $settings.top_k ?? undefined,
top_p: $settings.top_p ?? undefined,
num_ctx: $settings.num_ctx ?? undefined,
...($settings.options ?? {})
},
messages: messages,
history: history
});
}
}
await $db.updateChatById(_chatId, {
title: title === '' ? 'New Chat' : title,
models: selectedModels,
system: $settings.system ?? undefined,
options: {
seed: $settings.seed ?? undefined,
temperature: $settings.temperature ?? undefined,
repeat_penalty: $settings.repeat_penalty ?? undefined,
top_k: $settings.top_k ?? undefined,
top_p: $settings.top_p ?? undefined,
num_ctx: $settings.num_ctx ?? undefined,
...($settings.options ?? {})
},
messages: messages,
history: history
});
}
}
stopResponseFlag = false;
stopResponseFlag = false;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment