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) 990 B
import { StateCreator } from 'zustand/vanilla'; import { ragService } from '@/services/rag'; import { FileStore } from '../../store'; export interface FileChunkAction { closeChunkDrawer: () => void; highlightChunks: (ids: string[]) => void; openChunkDrawer: (id: string) => void; semanticSearch: (text: string, fileId: string) => Promise<void>; } export const createFileChunkSlice: StateCreator< FileStore, [['zustand/devtools', never]], [], FileChunkAction > = (set) => ({ closeChunkDrawer: () => { set({ chunkDetailId: null, isSimilaritySearch: false, similaritySearchChunks: [] }); }, highlightChunks: (ids) => { set({ highlightChunkIds: ids }); }, openChunkDrawer: (id) => { set({ chunkDetailId: id }); }, semanticSearch: async (text, fileId) => { set({ isSimilaritySearching: true }); const data = await ragService.semanticSearch(text, [fileId]); set({ isSimilaritySearching: false, similaritySearchChunks: data }); }, });