diff --git a/ui/litellm-dashboard/src/components/public_model_hub.tsx b/ui/litellm-dashboard/src/components/public_model_hub.tsx index 0e42b658e5..21974ad972 100644 --- a/ui/litellm-dashboard/src/components/public_model_hub.tsx +++ b/ui/litellm-dashboard/src/components/public_model_hub.tsx @@ -136,7 +136,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded setLoading(true); const _modelHubData = await modelHubPublicModelsCall(); console.log("ModelHubData:", _modelHubData); - setModelHubData(_modelHubData); + setModelHubData(Array.isArray(_modelHubData) ? _modelHubData : []); } catch (error) { console.error("There was an error fetching the public model data", error); setServiceStatus("Service unavailable"); @@ -150,7 +150,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded setAgentLoading(true); const _agentHubData = await agentHubPublicModelsCall(); console.log("AgentHubData:", _agentHubData); - setAgentHubData(_agentHubData); + setAgentHubData(Array.isArray(_agentHubData) ? _agentHubData : []); } catch (error) { console.error("There was an error fetching the public agent data", error); } finally { @@ -163,7 +163,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded setMcpLoading(true); const _mcpHubData = await mcpHubPublicServersCall(); console.log("MCPHubData:", _mcpHubData); - setMcpHubData(_mcpHubData); + setMcpHubData(Array.isArray(_mcpHubData) ? _mcpHubData : []); } catch (error) { console.error("There was an error fetching the public MCP server data", error); } finally { @@ -199,7 +199,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded const getUniqueProviders = (data: ModelGroupInfo[]) => { const providers = new Set(); data.forEach((model) => { - model.providers.forEach((provider) => providers.add(provider)); + (model.providers ?? []).forEach((provider) => providers.add(provider)); }); return Array.from(providers); }; @@ -532,7 +532,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded accessorKey: "providers", enableSorting: true, cell: ({ row }) => { - const providers = row.original.providers; + const providers = row.original.providers ?? []; return (
@@ -760,7 +760,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded accessorKey: "description", enableSorting: false, cell: ({ row }) => { - const description = row.original.description; + const description = row.original.description ?? ""; const truncated = description.length > 80 ? description.substring(0, 80) + "..." : description; return ( @@ -897,7 +897,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded accessorKey: "mcp_info.description", enableSorting: false, cell: ({ row }) => { - const description = row.original.mcp_info?.description || "-"; + const description = String(row.original.mcp_info?.description ?? "-"); const truncated = description.length > 80 ? description.substring(0, 80) + "..." : description; return ( @@ -912,7 +912,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded accessorKey: "url", enableSorting: false, cell: ({ row }) => { - const url = row.original.url; + const url = row.original.url ?? ""; const truncated = url.length > 40 ? url.substring(0, 40) + "..." : url; return ( @@ -1336,7 +1336,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded
Providers:
- {selectedModel.providers.map((provider) => { + {(selectedModel.providers ?? []).map((provider) => { const { logo } = getProviderLogoAndName(provider); return ( @@ -1460,7 +1460,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded )} {/* Supported OpenAI Parameters */} - {selectedModel.supported_openai_params && ( + {selectedModel.supported_openai_params && selectedModel.supported_openai_params.length > 0 && (
Supported OpenAI Parameters
@@ -1634,7 +1634,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded
Input Modes:
- {selectedAgent.defaultInputModes?.map((mode) => ( + {(selectedAgent.defaultInputModes ?? []).map((mode) => ( {mode} @@ -1644,7 +1644,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded
Output Modes:
- {selectedAgent.defaultOutputModes?.map((mode) => ( + {(selectedAgent.defaultOutputModes ?? []).map((mode) => ( {mode}