|
@@ -47,6 +47,28 @@ const DEFAULT_PLUGIN = {
|
|
|
web_reader: true,
|
|
|
wikipedia: true,
|
|
|
}
|
|
|
+const CONFIG_KEY = 'universal-chat-config'
|
|
|
+type CONFIG = {
|
|
|
+ modelId: string
|
|
|
+ plugin: {
|
|
|
+ google_search: boolean
|
|
|
+ web_reader: boolean
|
|
|
+ wikipedia: boolean
|
|
|
+ }
|
|
|
+}
|
|
|
+let prevConfig: null | CONFIG = localStorage.getItem(CONFIG_KEY) ? JSON.parse(localStorage.getItem(CONFIG_KEY) as string) as CONFIG : null
|
|
|
+const setPrevConfig = (config: CONFIG) => {
|
|
|
+ prevConfig = config
|
|
|
+ localStorage.setItem(CONFIG_KEY, JSON.stringify(prevConfig))
|
|
|
+}
|
|
|
+const getInitConfig = (type: 'model' | 'plugin') => {
|
|
|
+ if (type === 'model')
|
|
|
+ return prevConfig?.modelId || DEFAULT_MODEL_ID
|
|
|
+
|
|
|
+ if (type === 'plugin')
|
|
|
+ return prevConfig?.plugin || DEFAULT_PLUGIN
|
|
|
+}
|
|
|
+
|
|
|
export type IMainProps = {}
|
|
|
|
|
|
const Main: FC<IMainProps> = () => {
|
|
@@ -415,6 +437,13 @@ const Main: FC<IMainProps> = () => {
|
|
|
const [errorHappened, setErrorHappened] = useState(false)
|
|
|
const [isResponsingConIsCurrCon, setIsResponsingConCurrCon, getIsResponsingConIsCurrCon] = useGetState(true)
|
|
|
const handleSend = async (message: string) => {
|
|
|
+ if (isNewConversation) {
|
|
|
+ setPrevConfig({
|
|
|
+ modelId,
|
|
|
+ plugin: plugins as any,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
if (isResponsing) {
|
|
|
notify({ type: 'info', message: t('appDebug.errorMessage.waitForResponse') })
|
|
|
return
|
|
@@ -598,10 +627,10 @@ const Main: FC<IMainProps> = () => {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
- const [modelId, setModeId] = useState(DEFAULT_MODEL_ID)
|
|
|
+ const [modelId, setModeId] = useState<string>(getInitConfig('model') as string)
|
|
|
// const currModel = MODEL_LIST.find(item => item.id === modelId)
|
|
|
|
|
|
- const [plugins, setPlugins] = useState<Record<string, boolean>>(DEFAULT_PLUGIN)
|
|
|
+ const [plugins, setPlugins] = useState<Record<string, boolean>>(getInitConfig('plugin') as Record<string, boolean>)
|
|
|
const handlePluginsChange = (key: string, value: boolean) => {
|
|
|
setPlugins({
|
|
|
...plugins,
|
|
@@ -610,8 +639,8 @@ const Main: FC<IMainProps> = () => {
|
|
|
}
|
|
|
const [dataSets, setDateSets] = useState<DataSet[]>([])
|
|
|
const configSetDefaultValue = () => {
|
|
|
- setModeId(DEFAULT_MODEL_ID)
|
|
|
- setPlugins(DEFAULT_PLUGIN)
|
|
|
+ setModeId(getInitConfig('model') as string)
|
|
|
+ setPlugins(getInitConfig('plugin') as any)
|
|
|
setDateSets([])
|
|
|
}
|
|
|
const isCurrConversationPinned = !!pinnedConversationList.find(item => item.id === currConversationId)
|