From 6e52d14180345446abf61e933368eccbebad8694 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Tue, 7 Nov 2023 23:30:09 +0800 Subject: [PATCH 1/2] fix: #3016 disable sidebar transition on ios --- app/components/sidebar.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/components/sidebar.tsx b/app/components/sidebar.tsx index 6212d05d9..85af3ed2e 100644 --- a/app/components/sidebar.tsx +++ b/app/components/sidebar.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef, useCallback } from "react"; +import { useEffect, useRef, useCallback, useMemo } from "react"; import styles from "./home.module.scss"; @@ -26,7 +26,7 @@ import { } from "../constant"; import { Link, useNavigate } from "react-router-dom"; -import { useMobileScreen } from "../utils"; +import { isIOS, useMobileScreen } from "../utils"; import dynamic from "next/dynamic"; import { showConfirm, showToast } from "./ui-lib"; @@ -134,6 +134,11 @@ export function SideBar(props: { className?: string }) { const { onDragStart, shouldNarrow } = useDragSideBar(); const navigate = useNavigate(); const config = useAppConfig(); + const isMobileScreen = useMobileScreen(); + const isIOSMobile = useMemo( + () => isIOS() && isMobileScreen, + [isMobileScreen], + ); useHotKey(); @@ -142,6 +147,10 @@ export function SideBar(props: { className?: string }) { className={`${styles.sidebar} ${props.className} ${ shouldNarrow && styles["narrow-sidebar"] }`} + style={{ + // #3016 disable transition on ios mobile screen + transition: isMobileScreen && isIOSMobile ? "none" : undefined, + }} >
From 836bf836d37b0d704eab132b7849447214b93d8c Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Tue, 7 Nov 2023 23:54:30 +0800 Subject: [PATCH 2/2] fix: #3152 system prompt should be injected --- app/constant.ts | 9 ++++++++- app/store/chat.ts | 39 ++++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/app/constant.ts b/app/constant.ts index 95de35627..635fbeaea 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -69,13 +69,20 @@ export const OpenaiPath = { export const DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang export const DEFAULT_SYSTEM_TEMPLATE = ` You are ChatGPT, a large language model trained by OpenAI. -Knowledge cutoff: {{knowledgeCutoff}} +Knowledge cutoff: {{cutoff}} Current model: {{model}} Current time: {{time}} `; export const SUMMARIZE_MODEL = "gpt-3.5-turbo"; +export const KnowledgeCutOffDate: Record = { + default: "2021-09", + "gpt-3.5-turbo-1106": "2023-04", + "gpt-4-1106-preview": "2023-04", + "gpt-4-vision-preview": "2023-04", +}; + export const DEFAULT_MODELS = [ { name: "gpt-4", diff --git a/app/store/chat.ts b/app/store/chat.ts index 9f73fdf26..95822c191 100644 --- a/app/store/chat.ts +++ b/app/store/chat.ts @@ -7,6 +7,7 @@ import { createEmptyMask, Mask } from "./mask"; import { DEFAULT_INPUT_TEMPLATE, DEFAULT_SYSTEM_TEMPLATE, + KnowledgeCutOffDate, StoreKey, SUMMARIZE_MODEL, } from "../constant"; @@ -116,7 +117,11 @@ function countMessages(msgs: ChatMessage[]) { } function fillTemplateWith(input: string, modelConfig: ModelConfig) { + let cutoff = + KnowledgeCutOffDate[modelConfig.model] ?? KnowledgeCutOffDate.default; + const vars = { + cutoff, model: modelConfig.model, time: new Date().toLocaleString(), lang: getLang(), @@ -401,26 +406,22 @@ export const useChatStore = createPersistStore( // system prompts, to get close to OpenAI Web ChatGPT const shouldInjectSystemPrompts = modelConfig.enableInjectSystemPrompts; - let systemPrompts = shouldInjectSystemPrompts ? [] : []; - + const systemPrompts = shouldInjectSystemPrompts + ? [ + createMessage({ + role: "system", + content: fillTemplateWith("", { + ...modelConfig, + template: DEFAULT_SYSTEM_TEMPLATE, + }), + }), + ] + : []; if (shouldInjectSystemPrompts) { - const model = modelConfig.model; - let systemTemplate = DEFAULT_SYSTEM_TEMPLATE; - - if (model === "gpt-4-1106-preview" || model === "gpt-4-vision-preview") { - systemTemplate = systemTemplate.replace("{{knowledgeCutoff}}", "2023-04"); - } else { - systemTemplate = systemTemplate.replace("{{knowledgeCutoff}}", "2021-09"); - } - - const systemPrompt = createMessage({ - role: "system", - content: fillTemplateWith("", { - ...modelConfig, - template: systemTemplate, - }), - }); - console.log("[Global System Prompt] ", systemPrompt.content); + console.log( + "[Global System Prompt] ", + systemPrompts.at(0)?.content ?? "empty", + ); } // long term memory