perf: 记录上下文设定保存到本地

This commit is contained in:
ChenZhaoYu 2023-03-17 08:40:45 +08:00
parent 0b13846861
commit b3cfe7a976
6 changed files with 20 additions and 5 deletions

View File

@ -4,7 +4,12 @@ const LOCAL_NAME = 'chatStorage'
export function defaultState(): Chat.ChatState {
const uuid = 1002
return { active: uuid, history: [{ uuid, title: 'New Chat', isEdit: false }], chat: [{ uuid, data: [] }] }
return {
active: uuid,
usingContext: true,
history: [{ uuid, title: 'New Chat', isEdit: false }],
chat: [{ uuid, data: [] }],
}
}
export function getLocalState(): Chat.ChatState {

View File

@ -23,6 +23,11 @@ export const useChatStore = defineStore('chat-store', {
},
actions: {
setUsingContext(context: boolean) {
this.usingContext = context
this.recordState()
},
addHistory(history: Chat.History, chatData: Chat.Chat[] = []) {
this.history.unshift(history)
this.chat.unshift({ uuid: history.uuid, data: chatData })

View File

@ -18,6 +18,7 @@ declare namespace Chat {
interface ChatState {
active: number | null
usingContext: boolean;
history: History[]
chat: { uuid: number; data: Chat[] }[]
}

View File

@ -1,13 +1,15 @@
import { ref } from 'vue'
import { computed } from 'vue'
import { useMessage } from 'naive-ui'
import { t } from '@/locales'
import { useChatStore } from '@/store'
export function useUsingContext() {
const ms = useMessage()
const usingContext = ref<boolean>(true)
const chatStore = useChatStore()
const usingContext = computed<boolean>(() => chatStore.usingContext)
function toggleUsingContext() {
usingContext.value = !usingContext.value
chatStore.setUsingContext(!usingContext.value)
if (usingContext.value)
ms.success(t('chat.turnOnContext'))
else

View File

@ -416,6 +416,7 @@ const searchOptions = computed(() => {
return []
}
})
// valuekey
const renderOption = (option: { label: string }) => {
for (const i of promptTemplate.value) {

View File

@ -12,7 +12,8 @@ const show = ref(false)
<div class="flex-1 flex-shrink-0 overflow-hidden">
<UserAvatar />
</div>
<HoverButton :tooltip="$t('setting.setting')" @click="show = true">
<HoverButton @click="show = true">
<span class="text-xl text-[#4f555e] dark:text-white">
<SvgIcon icon="ri:settings-4-line" />
</span>