@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
37 lines (30 loc) • 1.22 kB
text/typescript
import { shallow } from 'zustand/shallow';
import { createWithEqualityFn } from 'zustand/traditional';
import { StateCreator } from 'zustand/vanilla';
import { createDevtools } from '../middleware/createDevtools';
import { KnowledgeBaseStoreState, initialState } from './initialState';
import { KnowledgeBaseContentAction, createContentSlice } from './slices/content';
import { KnowledgeBaseCrudAction, createCrudSlice } from './slices/crud';
import { RAGEvalAction, createRagEvalSlice } from './slices/ragEval';
// =============== 聚合 createStoreFn ============ //
export interface KnowledgeBaseStore
extends KnowledgeBaseStoreState,
KnowledgeBaseCrudAction,
KnowledgeBaseContentAction,
RAGEvalAction {
// empty
}
const createStore: StateCreator<KnowledgeBaseStore, [['zustand/devtools', never]]> = (
...parameters
) => ({
...initialState,
...createCrudSlice(...parameters),
...createContentSlice(...parameters),
...createRagEvalSlice(...parameters),
});
// =============== 实装 useStore ============ //
const devtools = createDevtools('knowledgeBase');
export const useKnowledgeBaseStore = createWithEqualityFn<KnowledgeBaseStore>()(
devtools(createStore),
shallow,
);