mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-01 15:46:39 +08:00
optimize mask
This commit is contained in:
parent
1ac9325f31
commit
e2f78ede72
@ -92,8 +92,8 @@ import {
|
||||
UNFINISHED_INPUT,
|
||||
} from "../constant";
|
||||
import { Avatar } from "./emoji";
|
||||
import { ContextPrompts, MaskAvatar, MaskConfig } from "./mask";
|
||||
import { useMaskStore } from "../store/mask";
|
||||
// import { ContextPrompts, MaskAvatar, MaskConfig } from "./mask";
|
||||
// import { useMaskStore } from "../store/mask";
|
||||
import { ChatCommandPrefix, useChatCommand, useCommand } from "../command";
|
||||
import { prettyObject } from "../utils/format";
|
||||
import { ExportMessageModal } from "./exporter";
|
||||
@ -114,7 +114,7 @@ const Markdown = dynamic(async () => (await import("./markdown")).Markdown, {
|
||||
export function SessionConfigModel(props: { onClose: () => void }) {
|
||||
const chatStore = useChatStore();
|
||||
const session = chatStore.currentSession();
|
||||
const maskStore = useMaskStore();
|
||||
// const maskStore = useMaskStore();
|
||||
const navigate = useNavigate();
|
||||
|
||||
return (
|
||||
@ -136,40 +136,40 @@ export function SessionConfigModel(props: { onClose: () => void }) {
|
||||
}
|
||||
}}
|
||||
/>,
|
||||
<IconButton
|
||||
key="copy"
|
||||
icon={<CopyIcon />}
|
||||
bordered
|
||||
text={Locale.Chat.Config.SaveAs}
|
||||
onClick={() => {
|
||||
navigate(Path.Masks);
|
||||
setTimeout(() => {
|
||||
maskStore.create(session.mask);
|
||||
}, 500);
|
||||
}}
|
||||
/>,
|
||||
// <IconButton
|
||||
// key="copy"
|
||||
// icon={<CopyIcon />}
|
||||
// bordered
|
||||
// text={Locale.Chat.Config.SaveAs}
|
||||
// onClick={() => {
|
||||
// navigate(Path.Masks);
|
||||
// setTimeout(() => {
|
||||
// maskStore.create(session.mask);
|
||||
// }, 500);
|
||||
// }}
|
||||
// />,
|
||||
]}
|
||||
>
|
||||
<MaskConfig
|
||||
mask={session.mask}
|
||||
updateMask={(updater) => {
|
||||
const mask = { ...session.mask };
|
||||
updater(mask);
|
||||
chatStore.updateCurrentSession((session) => (session.mask = mask));
|
||||
}}
|
||||
shouldSyncFromGlobal
|
||||
extraListItems={
|
||||
session.mask.modelConfig.sendMemory ? (
|
||||
<ListItem
|
||||
className="copyable"
|
||||
title={`${Locale.Memory.Title} (${session.lastSummarizeIndex} of ${session.messages.length})`}
|
||||
subTitle={session.memoryPrompt || Locale.Memory.EmptyContent}
|
||||
></ListItem>
|
||||
) : (
|
||||
<></>
|
||||
)
|
||||
}
|
||||
></MaskConfig>
|
||||
{/*<MaskConfig*/}
|
||||
{/* mask={session.mask}*/}
|
||||
{/* updateMask={(updater) => {*/}
|
||||
{/* const mask = { ...session.mask };*/}
|
||||
{/* updater(mask);*/}
|
||||
{/* chatStore.updateCurrentSession((session) => (session.mask = mask));*/}
|
||||
{/* }}*/}
|
||||
{/* shouldSyncFromGlobal*/}
|
||||
{/* extraListItems={*/}
|
||||
{/* session.mask.modelConfig.sendMemory ? (*/}
|
||||
{/* <ListItem*/}
|
||||
{/* className="copyable"*/}
|
||||
{/* title={`${Locale.Memory.Title} (${session.lastSummarizeIndex} of ${session.messages.length})`}*/}
|
||||
{/* subTitle={session.memoryPrompt || Locale.Memory.EmptyContent}*/}
|
||||
{/* ></ListItem>*/}
|
||||
{/* ) : (*/}
|
||||
{/* <></>*/}
|
||||
{/* )*/}
|
||||
{/* }*/}
|
||||
{/*></MaskConfig>*/}
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
@ -680,14 +680,14 @@ export function EditMessageModal(props: { onClose: () => void }) {
|
||||
></input>
|
||||
</ListItem>
|
||||
</List>
|
||||
<ContextPrompts
|
||||
context={messages}
|
||||
updateContext={(updater) => {
|
||||
const newMessages = messages.slice();
|
||||
updater(newMessages);
|
||||
setMessages(newMessages);
|
||||
}}
|
||||
/>
|
||||
{/*<ContextPrompts*/}
|
||||
{/* context={messages}*/}
|
||||
{/* updateContext={(updater) => {*/}
|
||||
{/* const newMessages = messages.slice();*/}
|
||||
{/* updater(newMessages);*/}
|
||||
{/* setMessages(newMessages);*/}
|
||||
{/* }}*/}
|
||||
{/*/>*/}
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
@ -867,10 +867,10 @@ function _Chat() {
|
||||
});
|
||||
|
||||
// auto sync mask config from global config
|
||||
if (session.mask.syncGlobalConfig) {
|
||||
console.log("[Mask] syncing from global, name = ", session.mask.name);
|
||||
session.mask.modelConfig = { ...config.modelConfig };
|
||||
}
|
||||
// if (session.mask.syncGlobalConfig) {
|
||||
// console.log("[Mask] syncing from global, name = ", session.mask.name);
|
||||
// session.mask.modelConfig = { ...config.modelConfig };
|
||||
// }
|
||||
});
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
@ -1411,16 +1411,16 @@ function _Chat() {
|
||||
<Avatar avatar={config.avatar} />
|
||||
) : (
|
||||
<>
|
||||
{["system"].includes(message.role) ? (
|
||||
<Avatar avatar="2699-fe0f" />
|
||||
) : (
|
||||
<MaskAvatar
|
||||
avatar={session.mask.avatar}
|
||||
model={
|
||||
message.model || session.mask.modelConfig.model
|
||||
}
|
||||
/>
|
||||
)}
|
||||
{/*{["system"].includes(message.role) ? (*/}
|
||||
{/* <Avatar avatar="2699-fe0f" />*/}
|
||||
{/*) : (*/}
|
||||
{/* <MaskAvatar*/}
|
||||
{/* avatar={session.mask.avatar}*/}
|
||||
{/* model={*/}
|
||||
{/* message.model || session.mask.modelConfig.model*/}
|
||||
{/* }*/}
|
||||
{/* />*/}
|
||||
{/*)}*/}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
@ -159,7 +159,7 @@ function Screen() {
|
||||
<Routes>
|
||||
<Route path={Path.Home} element={<Chat />} />
|
||||
<Route path={Path.NewChat} element={<NewChat />} />
|
||||
<Route path={Path.Masks} element={<MaskPage />} />
|
||||
{/*<Route path={Path.Masks} element={<MaskPage />} />*/}
|
||||
<Route path={Path.Chat} element={<Chat />} />
|
||||
<Route path={Path.Settings} element={<Settings />} />
|
||||
<Route path={Path.Reward} element={<Reward />} />
|
||||
|
@ -148,13 +148,13 @@ export function NewChat() {
|
||||
<div className={styles["sub-title"]}>{Locale.NewChat.SubTitle}</div>
|
||||
|
||||
<div className={styles["actions"]}>
|
||||
<IconButton
|
||||
text={Locale.NewChat.More}
|
||||
onClick={() => navigate(Path.Masks)}
|
||||
icon={<EyeIcon />}
|
||||
bordered
|
||||
shadow
|
||||
/>
|
||||
{/*<IconButton*/}
|
||||
{/* text={Locale.NewChat.More}*/}
|
||||
{/* onClick={() => navigate(Path.Masks)}*/}
|
||||
{/* icon={<EyeIcon />}*/}
|
||||
{/* bordered*/}
|
||||
{/* shadow*/}
|
||||
{/*/>*/}
|
||||
|
||||
<IconButton
|
||||
text={Locale.NewChat.Skip}
|
||||
|
@ -8,7 +8,7 @@ import ChatGptIcon from "../icons/chatgpt.svg";
|
||||
import AddIcon from "../icons/add.svg";
|
||||
import CloseIcon from "../icons/close.svg";
|
||||
import DeleteIcon from "../icons/clear.svg";
|
||||
import MaskIcon from "../icons/mask.svg";
|
||||
// import MaskIcon from "../icons/mask.svg";
|
||||
import CoffeeIcon from "../icons/coffee.svg";
|
||||
import DragIcon from "../icons/drag.svg";
|
||||
|
||||
@ -171,19 +171,19 @@ export function SideBar(props: { className?: string }) {
|
||||
</div>
|
||||
|
||||
<div className={styles["sidebar-header-bar"]}>
|
||||
<IconButton
|
||||
icon={<MaskIcon />}
|
||||
text={shouldNarrow ? undefined : Locale.Mask.Name}
|
||||
className={styles["sidebar-bar-button"]}
|
||||
onClick={() => {
|
||||
if (config.dontShowMaskSplashScreen !== true) {
|
||||
navigate(Path.NewChat, { state: { fromHome: true } });
|
||||
} else {
|
||||
navigate(Path.Masks, { state: { fromHome: true } });
|
||||
}
|
||||
}}
|
||||
shadow
|
||||
/>
|
||||
{/*<IconButton*/}
|
||||
{/* icon={<MaskIcon />}*/}
|
||||
{/* text={shouldNarrow ? undefined : Locale.Mask.Name}*/}
|
||||
{/* className={styles["sidebar-bar-button"]}*/}
|
||||
{/* onClick={() => {*/}
|
||||
{/* if (config.dontShowMaskSplashScreen !== true) {*/}
|
||||
{/* navigate(Path.NewChat, { state: { fromHome: true } });*/}
|
||||
{/* } else {*/}
|
||||
{/* navigate(Path.Masks, { state: { fromHome: true } });*/}
|
||||
{/* }*/}
|
||||
{/* }}*/}
|
||||
{/* shadow*/}
|
||||
{/*/>*/}
|
||||
<IconButton
|
||||
icon={<CoffeeIcon />}
|
||||
text={shouldNarrow ? undefined : "赏杯咖啡️"}
|
||||
|
@ -1,10 +1,9 @@
|
||||
import bcrypt from "bcryptjs";
|
||||
import {get_encoding} from "tiktoken";
|
||||
import { get_encoding } from "tiktoken";
|
||||
|
||||
|
||||
export function getTokenLength(input: string): number {
|
||||
const encoding = get_encoding("cl100k_base");
|
||||
// console.log('tokens: ', input, encoding.countTokens())
|
||||
return encoding.encode(input).length;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user