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.

28 lines (20 loc) 1.08 kB
import { shallow } from 'zustand/shallow'; import { createWithEqualityFn } from 'zustand/traditional'; import { StateCreator } from 'zustand/vanilla'; import { createDevtools } from '../middleware/createDevtools'; import { AIProviderStoreState, initialState } from './initialState'; import { AiModelAction, createAiModelSlice } from './slices/aiModel'; import { AiProviderAction, createAiProviderSlice } from './slices/aiProvider'; // =============== 聚合 createStoreFn ============ // export interface AiInfraStore extends AIProviderStoreState, AiProviderAction, AiModelAction { /* empty */ } const createStore: StateCreator<AiInfraStore, [['zustand/devtools', never]]> = (...parameters) => ({ ...initialState, ...createAiModelSlice(...parameters), ...createAiProviderSlice(...parameters), }); // =============== 实装 useStore ============ // const devtools = createDevtools('aiInfra'); export const useAiInfraStore = createWithEqualityFn<AiInfraStore>()(devtools(createStore), shallow); export const getAiInfraStoreState = () => useAiInfraStore.getState();