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