Programmer-RD-AI
feat: remove environment variables from configuration and set default endpoint directly
5dfb055
| import { create } from 'zustand' | |
| import { persist, createJSONStorage } from 'zustand/middleware' | |
| import { | |
| type PlaygroundChatMessage, | |
| type SessionEntry | |
| } from '@/types/playground' | |
| interface Agent { | |
| value: string | |
| label: string | |
| model: { | |
| provider: string | |
| } | |
| storage?: boolean | |
| } | |
| interface PlaygroundStore { | |
| hydrated: boolean | |
| setHydrated: () => void | |
| streamingErrorMessage: string | |
| setStreamingErrorMessage: (streamingErrorMessage: string) => void | |
| endpoints: { | |
| endpoint: string | |
| id_playground_endpoint: string | |
| }[] | |
| setEndpoints: ( | |
| endpoints: { | |
| endpoint: string | |
| id_playground_endpoint: string | |
| }[] | |
| ) => void | |
| isStreaming: boolean | |
| setIsStreaming: (isStreaming: boolean) => void | |
| isEndpointActive: boolean | |
| setIsEndpointActive: (isActive: boolean) => void | |
| isEndpointLoading: boolean | |
| setIsEndpointLoading: (isLoading: boolean) => void | |
| messages: PlaygroundChatMessage[] | |
| setMessages: ( | |
| messages: | |
| | PlaygroundChatMessage[] | |
| | ((prevMessages: PlaygroundChatMessage[]) => PlaygroundChatMessage[]) | |
| ) => void | |
| hasStorage: boolean | |
| setHasStorage: (hasStorage: boolean) => void | |
| chatInputRef: React.RefObject<HTMLTextAreaElement | null> | |
| selectedEndpoint: string | |
| setSelectedEndpoint: (selectedEndpoint: string) => void | |
| agents: Agent[] | |
| setAgents: (agents: Agent[]) => void | |
| selectedModel: string | |
| setSelectedModel: (model: string) => void | |
| sessionsData: SessionEntry[] | null | |
| setSessionsData: ( | |
| sessionsData: | |
| | SessionEntry[] | |
| | ((prevSessions: SessionEntry[] | null) => SessionEntry[] | null) | |
| ) => void | |
| isSessionsLoading: boolean | |
| setIsSessionsLoading: (isSessionsLoading: boolean) => void | |
| } | |
| export const usePlaygroundStore = create<PlaygroundStore>()( | |
| persist( | |
| (set) => ({ | |
| hydrated: false, | |
| setHydrated: () => set({ hydrated: true }), | |
| streamingErrorMessage: '', | |
| setStreamingErrorMessage: (streamingErrorMessage) => | |
| set(() => ({ streamingErrorMessage })), | |
| endpoints: [], | |
| setEndpoints: (endpoints) => set(() => ({ endpoints })), | |
| isStreaming: false, | |
| setIsStreaming: (isStreaming) => set(() => ({ isStreaming })), | |
| isEndpointActive: false, | |
| setIsEndpointActive: (isActive) => | |
| set(() => ({ isEndpointActive: isActive })), | |
| isEndpointLoading: true, | |
| setIsEndpointLoading: (isLoading) => | |
| set(() => ({ isEndpointLoading: isLoading })), | |
| messages: [], | |
| setMessages: (messages) => | |
| set((state) => ({ | |
| messages: | |
| typeof messages === 'function' ? messages(state.messages) : messages | |
| })), | |
| hasStorage: false, | |
| setHasStorage: (hasStorage) => set(() => ({ hasStorage })), | |
| chatInputRef: { current: null }, | |
| selectedEndpoint: | |
| 'https://sifa-classification-agentic-rag-99329044472.asia-south1.run.app', | |
| setSelectedEndpoint: (selectedEndpoint) => | |
| set(() => ({ selectedEndpoint })), | |
| agents: [], | |
| setAgents: (agents) => set({ agents }), | |
| selectedModel: '', | |
| setSelectedModel: (selectedModel) => set(() => ({ selectedModel })), | |
| sessionsData: null, | |
| setSessionsData: (sessionsData) => | |
| set((state) => ({ | |
| sessionsData: | |
| typeof sessionsData === 'function' | |
| ? sessionsData(state.sessionsData) | |
| : sessionsData | |
| })), | |
| isSessionsLoading: false, | |
| setIsSessionsLoading: (isSessionsLoading) => | |
| set(() => ({ isSessionsLoading })) | |
| }), | |
| { | |
| name: 'endpoint-storage', | |
| storage: createJSONStorage(() => localStorage), | |
| partialize: (state) => ({ | |
| selectedEndpoint: state.selectedEndpoint | |
| }), | |
| onRehydrateStorage: () => (state) => { | |
| state?.setHydrated?.() | |
| } | |
| } | |
| ) | |
| ) | |