import PreLoader from "@/components/Preloader"; import useProviderEndpointAutoDiscovery from "@/hooks/useProviderEndpointAutoDiscovery"; import System from "@/models/system"; import { NVIDIA_NIM_COMMON_URLS } from "@/utils/constants"; import { useState, useEffect } from "react"; /** * This component is used to select a remote NVIDIA NIM model endpoint * This is the default component and way to connect to NVIDIA NIM * as the "managed" provider can only work in the Desktop context. */ export default function RemoteNvidiaNimOptions({ settings }) { const { autoDetecting: loading, basePath, basePathValue, handleAutoDetectClick, } = useProviderEndpointAutoDiscovery({ provider: "nvidia-nim", initialBasePath: settings?.NvidiaNimLLMBasePath, ENDPOINTS: NVIDIA_NIM_COMMON_URLS, }); return (
{loading ? ( ) : ( <> {!basePathValue.value && ( )} )}

Enter the URL where NVIDIA NIM is running.

{!settings?.credentialsOnly && ( )}
); } function NvidiaNimModelSelection({ settings, basePath }) { const [models, setModels] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { async function findCustomModels() { setLoading(true); const { models } = await System.customModels( "nvidia-nim", null, basePath ); setModels(models); setLoading(false); } findCustomModels(); }, [basePath]); if (loading || models.length === 0) { return (
); } return (
); }