From aacd26c7db7d87953d14f3c0cf841cf422a2e027 Mon Sep 17 00:00:00 2001 From: Fred Date: Mon, 26 Feb 2024 18:14:10 +0800 Subject: [PATCH 1/5] feat: bump version --- src-tauri/tauri.conf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index d88194020..405d267ff 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -9,7 +9,7 @@ }, "package": { "productName": "NextChat", - "version": "2.10.3" + "version": "2.11.2" }, "tauri": { "allowlist": { From 069766d5818dafad32cda7d07eefafd95b126a3a Mon Sep 17 00:00:00 2001 From: Algorithm5838 <108630393+Algorithm5838@users.noreply.github.com> Date: Tue, 27 Feb 2024 05:28:54 +0300 Subject: [PATCH 2/5] Correct cutoff dates (#4118) --- app/constant.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/constant.ts b/app/constant.ts index 74b030c55..c1f91d31c 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -108,9 +108,9 @@ export const GEMINI_SUMMARIZE_MODEL = "gemini-pro"; export const KnowledgeCutOffDate: Record = { default: "2021-09", - "gpt-4-turbo-preview": "2023-04", + "gpt-4-turbo-preview": "2023-12", "gpt-4-1106-preview": "2023-04", - "gpt-4-0125-preview": "2023-04", + "gpt-4-0125-preview": "2023-12", "gpt-4-vision-preview": "2023-04", // After improvements, // it's now easier to add "KnowledgeCutOffDate" instead of stupid hardcoding it, as was done previously. From 410a22dc634816b13848977d037506fbe2ad4957 Mon Sep 17 00:00:00 2001 From: Fred Date: Tue, 27 Feb 2024 11:43:40 +0800 Subject: [PATCH 3/5] feat: auto detach scrolling --- app/components/chat.tsx | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/app/components/chat.tsx b/app/components/chat.tsx index 369d84c33..ba1e94b9c 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -6,6 +6,7 @@ import React, { useMemo, useCallback, Fragment, + RefObject, } from "react"; import SendWhiteIcon from "../icons/send-white.svg"; @@ -382,11 +383,13 @@ function ChatAction(props: { ); } -function useScrollToBottom() { +function useScrollToBottom( + scrollRef: RefObject, + detach: boolean = false, +) { // for auto-scroll - const scrollRef = useRef(null); - const [autoScroll, setAutoScroll] = useState(true); + const [autoScroll, setAutoScroll] = useState(true); function scrollDomToBottom() { const dom = scrollRef.current; if (dom) { @@ -399,7 +402,7 @@ function useScrollToBottom() { // auto scroll useEffect(() => { - if (autoScroll) { + if (autoScroll && !detach) { scrollDomToBottom(); } }); @@ -658,7 +661,17 @@ function _Chat() { const [userInput, setUserInput] = useState(""); const [isLoading, setIsLoading] = useState(false); const { submitKey, shouldSubmit } = useSubmitHandler(); - const { scrollRef, setAutoScroll, scrollDomToBottom } = useScrollToBottom(); + const scrollRef = useRef(null); + const isScrolledToBottom = scrollRef?.current + ? Math.abs( + scrollRef.current.scrollHeight - + (scrollRef.current.scrollTop + scrollRef.current.clientHeight), + ) <= 1 + : false; + const { setAutoScroll, scrollDomToBottom } = useScrollToBottom( + scrollRef, + isScrolledToBottom, + ); const [hitBottom, setHitBottom] = useState(true); const isMobileScreen = useMobileScreen(); const navigate = useNavigate(); @@ -1003,7 +1016,6 @@ function _Chat() { setHitBottom(isHitBottom); setAutoScroll(isHitBottom); }; - function scrollToBottom() { setMsgRenderIndex(renderMessages.length - CHAT_PAGE_SIZE); scrollDomToBottom(); @@ -1151,6 +1163,13 @@ function _Chat() { )}
+

+ {JSON.stringify({ + scrollHeight: scrollRef?.current?.scrollHeight, + scrollTop: scrollRef?.current?.scrollTop, + clientHeight: scrollRef?.current?.clientHeight, + })} +

setIsEditingMessage(true)} From e3b3ae97bc3edb660104ca8f414ecf021837e3a5 Mon Sep 17 00:00:00 2001 From: Fred Date: Tue, 27 Feb 2024 11:49:44 +0800 Subject: [PATCH 4/5] chore: clear scroll info --- app/components/chat.tsx | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/components/chat.tsx b/app/components/chat.tsx index ba1e94b9c..9144f9a5f 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -1163,13 +1163,6 @@ function _Chat() { )}
-

- {JSON.stringify({ - scrollHeight: scrollRef?.current?.scrollHeight, - scrollTop: scrollRef?.current?.scrollTop, - clientHeight: scrollRef?.current?.clientHeight, - })} -

setIsEditingMessage(true)} From 08fa22749aea8f497811f684bd9c7ef68d698666 Mon Sep 17 00:00:00 2001 From: fred-bf <157469842+fred-bf@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:28:01 +0800 Subject: [PATCH 5/5] fix: add max_tokens when using vision model (#4157) --- app/client/platforms/openai.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index 919716bfb..437aff582 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -110,6 +110,16 @@ export class ChatGPTApi implements LLMApi { // Please do not ask me why not send max_tokens, no reason, this param is just shit, I dont want to explain anymore. }; + // add max_tokens to vision model + if (visionModel) { + Object.defineProperty(requestPayload, "max_tokens", { + enumerable: true, + configurable: true, + writable: true, + value: Math.max(modelConfig.max_tokens, 4096), + }); + } + console.log("[Request] openai payload: ", requestPayload); const shouldStream = !!options.config.stream;