+
LLM 网关管理
+
+ {/* Dashboard Summary Cards */}
+
+
+
+ }
+ />
+
+
+
+
+
+
+
+
+
+ {
+ const n = Number(val);
+ return n >= 1000000 ? `${(n / 1000000).toFixed(1)}M` : n >= 1000 ? `${(n / 1000).toFixed(1)}K` : String(n);
+ }}
+ />
+
+
+
+
+
+
+
+
+
+ {/* Tabs */}
+
+ API Key,
+ children: ,
+ },
+ {
+ key: 'injection',
+ label: 注入规则,
+ children: ,
+ },
+ {
+ key: 'content',
+ label: 内容审查,
+ children: ,
+ },
+ {
+ key: 'usage',
+ label: 用量统计,
+ children: ,
+ },
+ {
+ key: 'audit',
+ label: 审计日志,
+ children: ,
+ },
+ ]}
+ />
+
+
+ );
+}
diff --git a/packages/admin-client/src/shared/components/MainLayout.tsx b/packages/admin-client/src/shared/components/MainLayout.tsx
index 2fe41b5..ab4e1b7 100644
--- a/packages/admin-client/src/shared/components/MainLayout.tsx
+++ b/packages/admin-client/src/shared/components/MainLayout.tsx
@@ -22,6 +22,7 @@ import {
ExperimentOutlined,
FormOutlined,
EyeOutlined,
+ GatewayOutlined,
} from '@ant-design/icons';
import { useAuth } from '../hooks/useAuth';
@@ -59,6 +60,11 @@ const menuItems: MenuProps['items'] = [
icon: