|
|
|
@ -11,8 +11,9 @@ import { ActiveState } from '../models/misc';
|
|
|
|
|
interface Preference {
|
|
|
|
|
apiKey: string;
|
|
|
|
|
prompt: { name: string; id: string; type: string };
|
|
|
|
|
selectedDocs: Doc | null;
|
|
|
|
|
chunks: string;
|
|
|
|
|
token_limit: number;
|
|
|
|
|
selectedDocs: Doc | null;
|
|
|
|
|
sourceDocs: Doc[] | null;
|
|
|
|
|
conversations: { name: string; id: string }[] | null;
|
|
|
|
|
modalState: ActiveState;
|
|
|
|
@ -22,6 +23,7 @@ const initialState: Preference = {
|
|
|
|
|
apiKey: 'xxx',
|
|
|
|
|
prompt: { name: 'default', id: 'default', type: 'public' },
|
|
|
|
|
chunks: '2',
|
|
|
|
|
token_limit: 2000,
|
|
|
|
|
selectedDocs: {
|
|
|
|
|
name: 'default',
|
|
|
|
|
language: 'default',
|
|
|
|
@ -60,6 +62,9 @@ export const prefSlice = createSlice({
|
|
|
|
|
setChunks: (state, action) => {
|
|
|
|
|
state.chunks = action.payload;
|
|
|
|
|
},
|
|
|
|
|
setTokenLimit: (state, action) => {
|
|
|
|
|
state.token_limit = action.payload;
|
|
|
|
|
},
|
|
|
|
|
setModalStateDeleteConv: (state, action: PayloadAction<ActiveState>) => {
|
|
|
|
|
state.modalState = action.payload;
|
|
|
|
|
},
|
|
|
|
@ -73,6 +78,7 @@ export const {
|
|
|
|
|
setConversations,
|
|
|
|
|
setPrompt,
|
|
|
|
|
setChunks,
|
|
|
|
|
setTokenLimit,
|
|
|
|
|
setModalStateDeleteConv,
|
|
|
|
|
} = prefSlice.actions;
|
|
|
|
|
export default prefSlice.reducer;
|
|
|
|
@ -115,6 +121,18 @@ prefListenerMiddleware.startListening({
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
prefListenerMiddleware.startListening({
|
|
|
|
|
matcher: isAnyOf(setTokenLimit),
|
|
|
|
|
effect: (action, listenerApi) => {
|
|
|
|
|
localStorage.setItem(
|
|
|
|
|
'DocsGPTTokenLimit',
|
|
|
|
|
JSON.stringify(
|
|
|
|
|
(listenerApi.getState() as RootState).preference.token_limit,
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export const selectApiKey = (state: RootState) => state.preference.apiKey;
|
|
|
|
|
export const selectApiKeyStatus = (state: RootState) =>
|
|
|
|
|
!!state.preference.apiKey;
|
|
|
|
@ -132,3 +150,5 @@ export const selectConversationId = (state: RootState) =>
|
|
|
|
|
state.conversation.conversationId;
|
|
|
|
|
export const selectPrompt = (state: RootState) => state.preference.prompt;
|
|
|
|
|
export const selectChunks = (state: RootState) => state.preference.chunks;
|
|
|
|
|
export const selectTokenLimit = (state: RootState) =>
|
|
|
|
|
state.preference.token_limit;
|
|
|
|
|