add query settings

This commit is contained in:
ArnoChen
2025-02-16 21:43:14 +08:00
parent d1358c30f3
commit fc3ca2777f
15 changed files with 757 additions and 102 deletions

View File

@@ -2,6 +2,7 @@ import { create } from 'zustand'
import { persist, createJSONStorage } from 'zustand/middleware'
import { createSelectors } from '@/lib/utils'
import { defaultQueryLabel } from '@/lib/constants'
import { Message, QueryRequest } from '@/api/lightrag'
type Theme = 'dark' | 'light' | 'system'
type Tab = 'documents' | 'knowledge-graph' | 'retrieval'
@@ -32,8 +33,11 @@ interface SettingsState {
currentTab: Tab
setCurrentTab: (tab: Tab) => void
retrievalHistory: any[]
setRetrievalHistory: (history: any[]) => void
retrievalHistory: Message[]
setRetrievalHistory: (history: Message[]) => void
querySettings: Omit<QueryRequest, 'query'>
updateQuerySettings: (settings: Partial<QueryRequest>) => void
}
const useSettingsStoreBase = create<SettingsState>()(
@@ -60,6 +64,21 @@ const useSettingsStoreBase = create<SettingsState>()(
retrievalHistory: [],
querySettings: {
mode: 'global',
response_type: 'Multiple Paragraphs',
top_k: 10,
max_token_for_text_unit: 4000,
max_token_for_global_context: 4000,
max_token_for_local_context: 4000,
only_need_context: false,
only_need_prompt: false,
stream: true,
history_turns: 3,
hl_keywords: [],
ll_keywords: []
},
setTheme: (theme: Theme) => set({ theme }),
setQueryLabel: (queryLabel: string) =>
@@ -73,15 +92,17 @@ const useSettingsStoreBase = create<SettingsState>()(
setCurrentTab: (tab: Tab) => set({ currentTab: tab }),
setRetrievalHistory: (history: any[]) => set({ retrievalHistory: history })
setRetrievalHistory: (history: Message[]) => set({ retrievalHistory: history }),
updateQuerySettings: (settings: Partial<QueryRequest>) =>
set((state) => ({
querySettings: { ...state.querySettings, ...settings }
}))
}),
{
name: 'settings-storage',
storage: createJSONStorage(() => localStorage),
version: 5,
partialize(state) {
return { ...state, retrievalHistory: undefined }
},
version: 6,
migrate: (state: any, version: number) => {
if (version < 2) {
state.showEdgeLabel = false
@@ -99,6 +120,24 @@ const useSettingsStoreBase = create<SettingsState>()(
if (version < 5) {
state.currentTab = 'documents'
}
if (version < 6) {
state.querySettings = {
mode: 'global',
response_type: 'Multiple Paragraphs',
top_k: 10,
max_token_for_text_unit: 4000,
max_token_for_global_context: 4000,
max_token_for_local_context: 4000,
only_need_context: false,
only_need_prompt: false,
stream: true,
history_turns: 3,
hl_keywords: [],
ll_keywords: []
}
state.retrievalHistory = []
}
return state
}
}
)