From 5b76f2cde01e063dfdf6ed645cae5341ffb78026 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Mon, 16 Dec 2024 19:07:41 +0100 Subject: Fix docker build and fix api_base issue in OpenaiAPI providers --- g4f/gui/client/static/css/style.css | 6 ++-- g4f/gui/client/static/js/chat.v1.js | 56 ++++++++++++++++++++----------------- 2 files changed, 34 insertions(+), 28 deletions(-) (limited to 'g4f/gui/client') diff --git a/g4f/gui/client/static/css/style.css b/g4f/gui/client/static/css/style.css index a499779a..16e92ae4 100644 --- a/g4f/gui/client/static/css/style.css +++ b/g4f/gui/client/static/css/style.css @@ -93,8 +93,9 @@ body { height: 100vh; } -a:-webkit-any-link { - color: var(--accent); +body:not(.white) a:link, +body:not(.white) a:visited{ + color: var(--colour-3); } .row { @@ -380,7 +381,6 @@ body.white .gradient{ .message .content_inner a:visited{ font-size: 15px; line-height: 1.3; - color: var(--colour-3); } .message .content_inner pre{ white-space: pre-wrap; diff --git a/g4f/gui/client/static/js/chat.v1.js b/g4f/gui/client/static/js/chat.v1.js index 222886e9..daebef2f 100644 --- a/g4f/gui/client/static/js/chat.v1.js +++ b/g4f/gui/client/static/js/chat.v1.js @@ -513,21 +513,7 @@ async function add_message_chunk(message, message_id) { content_map.inner.innerHTML = markdown_render(message.preview); } else if (message.type == "content") { message_storage[message_id] += message.content; - html = markdown_render(message_storage[message_id]); - let lastElement, lastIndex = null; - for (element of ['

', '', '

\n\n', '\n', '\n']) { - const index = html.lastIndexOf(element) - if (index - element.length > lastIndex) { - lastElement = element; - lastIndex = index; - } - } - if (lastIndex) { - html = html.substring(0, lastIndex) + '' + lastElement; - } - content_map.inner.innerHTML = html; - content_map.count.innerText = count_words_and_tokens(message_storage[message_id], provider_storage[message_id]?.model); - highlight(content_map.inner); + update_message(content_map, message_id); content_map.inner.style.height = ""; } else if (message.type == "log") { let p = document.createElement("p"); @@ -536,16 +522,6 @@ async function add_message_chunk(message, message_id) { } else if (message.type == "synthesize") { synthesize_storage[message_id] = message.synthesize; } - let scroll_down = ()=>{ - if (message_box.scrollTop >= message_box.scrollHeight - message_box.clientHeight - 100) { - window.scrollTo(0, 0); - message_box.scrollTo({ top: message_box.scrollHeight, behavior: "auto" }); - } - } - if (!content_map.container.classList.contains("regenerate")) { - scroll_down(); - setTimeout(scroll_down, 200); - } } const ask_gpt = async (message_id, message_index = -1, regenerate = false, provider = null, model = null) => { @@ -1233,6 +1209,36 @@ function count_words_and_tokens(text, model) { return `(${count_words(text)} words, ${count_chars(text)} chars, ${count_tokens(model, text)} tokens)`; } +function update_message(content_map, message_id) { + content_map.inner.dataset.timeout = setTimeout(() => { + html = markdown_render(message_storage[message_id]); + let lastElement, lastIndex = null; + for (element of ['

', '', '

\n\n', '\n', '\n']) { + const index = html.lastIndexOf(element) + if (index - element.length > lastIndex) { + lastElement = element; + lastIndex = index; + } + } + if (lastIndex) { + html = html.substring(0, lastIndex) + '' + lastElement; + } + if (error_storage[message_id]) { + content_map.inner.innerHTML += markdown_render(`**An error occured:** ${error_storage[message_id]}`); + } + content_map.inner.innerHTML = html; + content_map.count.innerText = count_words_and_tokens(message_storage[message_id], provider_storage[message_id]?.model); + highlight(content_map.inner); + if (!content_map.container.classList.contains("regenerate")) { + if (message_box.scrollTop >= message_box.scrollHeight - message_box.clientHeight - 200) { + window.scrollTo(0, 0); + message_box.scrollTo({ top: message_box.scrollHeight, behavior: "auto" }); + } + } + if (content_map.inner.dataset.timeout) clearTimeout(content_map.inner.dataset.timeout); + }, 100); +}; + let countFocus = messageInput; let timeoutId; const count_input = async () => { -- cgit v1.2.3