From 34098e8950bd85c1436b55a5710cf5f97d1d2f92 Mon Sep 17 00:00:00 2001 From: jialin Date: Fri, 29 May 2026 13:18:22 +0800 Subject: [PATCH] fix: orgname not be shown in playground --- src/access.extensions.ts | 1 - src/atoms/user.ts | 15 +++++++++++++++ src/pages/llmodels/components/table-list.tsx | 3 ++- src/pages/llmodels/config/types.ts | 1 + .../model-routes/hooks/use-open-playground.ts | 14 +++++++++++--- 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/access.extensions.ts b/src/access.extensions.ts index 5f69d543..d05da612 100644 --- a/src/access.extensions.ts +++ b/src/access.extensions.ts @@ -4,7 +4,6 @@ export type AccessPredicates = { canSeeAdmin: boolean; canSeeOrgAdmin: boolean; - canSeeGpuService: boolean; canManageCurrentOrg: boolean; canSeeUser: boolean; canDelete: boolean; diff --git a/src/atoms/user.ts b/src/atoms/user.ts index 7826aa2d..f16bab40 100644 --- a/src/atoms/user.ts +++ b/src/atoms/user.ts @@ -110,3 +110,18 @@ const lookupOrgNamespace = (id: number | null): string | null => { } return null; }; + +export const getAllOrganizations = (): Array<{ id: number; name?: string }> => { + const allOrganizations = localStorage.getItem('allOrganizations'); + if (!allOrganizations) return []; + try { + const list = JSON.parse(allOrganizations) as Array<{ + id: number; + name?: string; + }>; + if (!Array.isArray(list)) return []; + return list; + } catch { + return []; + } +}; diff --git a/src/pages/llmodels/components/table-list.tsx b/src/pages/llmodels/components/table-list.tsx index 58c95538..b91bb984 100644 --- a/src/pages/llmodels/components/table-list.tsx +++ b/src/pages/llmodels/components/table-list.tsx @@ -415,7 +415,8 @@ const Models: React.FC = ({ handleOpenPlayGround({ categories: row.categories || [], - name: targetRoute?.route_name || '' + name: targetRoute?.route_name || '', + owner_principal_id: row.owner_principal_id }); } if (val === 'metrics') { diff --git a/src/pages/llmodels/config/types.ts b/src/pages/llmodels/config/types.ts index 398cc52b..cd56571d 100644 --- a/src/pages/llmodels/config/types.ts +++ b/src/pages/llmodels/config/types.ts @@ -28,6 +28,7 @@ export interface ListItem { path: string; source: string; }>; + owner_principal_id?: number; name: string; description: string; id: number; diff --git a/src/pages/model-routes/hooks/use-open-playground.ts b/src/pages/model-routes/hooks/use-open-playground.ts index 236d1d0b..8c6cc283 100644 --- a/src/pages/model-routes/hooks/use-open-playground.ts +++ b/src/pages/model-routes/hooks/use-open-playground.ts @@ -1,3 +1,4 @@ +import { getAllOrganizations } from '@/atoms/user'; import { useNavigate } from '@umijs/max'; import { modelCategoriesMap } from '../../llmodels/config'; import { categoryToPathMap } from '../../llmodels/config/button-actions'; @@ -6,6 +7,13 @@ const useOpenPlayground = () => { const navigate = useNavigate(); const handleOpenPlayGround = (row: any) => { + const allOrganizations = getAllOrganizations(); + const orgName = allOrganizations.find( + (org) => org.id === row.owner_principal_id + )?.name; + const rawModel = orgName ? `${orgName}/${row.name}` : row.name; + const modelName = encodeURIComponent(rawModel); + for (const [category, path] of Object.entries(categoryToPathMap)) { if ( row.categories?.includes(category) && @@ -14,15 +22,15 @@ const useOpenPlayground = () => { modelCategoriesMap.speech_to_text ].includes(category) ) { - navigate(`${path}&model=${row.name}`); + navigate(`${path}&model=${modelName}`); return; } if (row.categories?.includes(category)) { - navigate(`${path}?model=${row.name}`); + navigate(`${path}?model=${modelName}`); return; } } - navigate(`/playground/chat?model=${row.name}`); + navigate(`/playground/chat?model=${modelName}`); }; return { handleOpenPlayGround