UNPKG

@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
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, );