diff --git a/ui/litellm-dashboard/src/components/vector_store_management/index.tsx b/ui/litellm-dashboard/src/components/vector_store_management/index.tsx index 9cb57b8b9f6..74af0a6c365 100644 --- a/ui/litellm-dashboard/src/components/vector_store_management/index.tsx +++ b/ui/litellm-dashboard/src/components/vector_store_management/index.tsx @@ -1,7 +1,14 @@ -import React, { useState, useEffect } from "react"; -import { Icon, Button as TremorButton, Col, Text, Grid, TabGroup, TabList, Tab, TabPanels, TabPanel } from "@tremor/react"; -import { RefreshIcon } from "@heroicons/react/outline"; -import { vectorStoreListCall, vectorStoreDeleteCall, credentialListCall, CredentialItem } from "../networking"; +import React, { useCallback, useState, useEffect } from "react"; +// eslint-disable-next-line litellm-ui/no-banned-ui-imports +import { TabGroup, TabList, Tab, TabPanels, TabPanel } from "@tremor/react"; +import { RefreshCcw } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { + vectorStoreListCall, + vectorStoreDeleteCall, + credentialListCall, + CredentialItem, +} from "../networking"; import { VectorStore } from "./types"; import VectorStoreTable from "./VectorStoreTable"; import VectorStoreForm from "./VectorStoreForm"; @@ -29,29 +36,29 @@ const VectorStoreManagement: React.FC = ({ accessToken, userID const [editVectorStore, setEditVectorStore] = useState(false); const [isDeleting, setIsDeleting] = useState(false); - const fetchVectorStores = async () => { + const fetchVectorStores = useCallback(async () => { if (!accessToken) return; try { const response = await vectorStoreListCall(accessToken); - console.log("List vector stores response:", response); setVectorStores(response.data || []); } catch (error) { console.error("Error fetching vector stores:", error); - NotificationsManager.fromBackend("Error fetching vector stores: " + error); + NotificationsManager.fromBackend( + "Error fetching vector stores: " + error, + ); } - }; + }, [accessToken]); - const fetchCredentials = async () => { + const fetchCredentials = useCallback(async () => { if (!accessToken) return; try { const response = await credentialListCall(accessToken); - console.log("List credentials response:", response); setCredentials(response.credentials || []); } catch (error) { console.error("Error fetching credentials:", error); NotificationsManager.fromBackend("Error fetching credentials: " + error); } - }; + }, [accessToken]); const handleRefreshClick = () => { fetchVectorStores(); @@ -112,7 +119,7 @@ const VectorStoreManagement: React.FC = ({ accessToken, userID useEffect(() => { fetchVectorStores(); fetchCredentials(); - }, [accessToken]); + }, [fetchVectorStores, fetchCredentials]); return selectedVectorStoreId ? (
@@ -130,20 +137,25 @@ const VectorStoreManagement: React.FC = ({ accessToken, userID

Vector Store Management

- {lastRefreshed && Last Refreshed: {lastRefreshed}} - + Last Refreshed: {lastRefreshed} + + )} +
- -

You can use vector stores to store and retrieve LLM embeddings.

-
+

+ You can use vector stores to store and retrieve LLM embeddings. +

@@ -160,20 +172,23 @@ const VectorStoreManagement: React.FC = ({ accessToken, userID {/* Tab 2: Manage Vector Stores */} - setIsCreateModalVisible(true)}> + - - +
+
- - +
+
{/* Tab 3: Test Vector Store */}