import { create } from "zustand"; import type { OtherParameters, Store } from "./types.js"; import type { ConversationsId } from "./database/generated/public/Conversations.js"; export const defaultSystemPrompt = `You are a helpful assistant that answers questions based on the provided context. If you don't know the answer, just say that you don't know, don't try to make up an answer.`; export const defaultParameters = { temperature: 0.5, max_tokens: 100, } as OtherParameters; export const useStore = create()((set) => ({ conversationId: 0 as ConversationsId, conversationTitle: "", conversations: [], messages: [], message: "", systemPrompt: defaultSystemPrompt, parameters: defaultParameters, loading: false, setConversationId: (conversationId) => set({ conversationId }), setConversationTitle: (conversationTitle) => set({ conversationTitle }), setConversations: (conversations) => set({ conversations }), addConversation: (conversation) => set((state) => ({ conversations: [...state.conversations, conversation], })), removeConversation: (conversationId) => set((state) => ({ conversations: state.conversations.filter( (conversation) => conversation.id !== conversationId, ), })), setMessages: (messages) => set({ messages }), setMessage: (message) => set({ message }), setSystemPrompt: (systemPrompt) => set({ systemPrompt }), setParameters: (parameters) => set({ parameters }), setLoading: (loading) => set({ loading }), }));