mirror of
https://github.com/mudler/LocalAI.git
synced 2026-06-04 23:06:22 -04:00
feat(ui): route /app/cluster, redirect /app/p2p and /app/nodes, single sidebar entry
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
@@ -58,5 +58,21 @@
|
||||
"explorer": {
|
||||
"title": "Explorer",
|
||||
"subtitle": "Dateien und Konfiguration durchsuchen"
|
||||
},
|
||||
"cluster": {
|
||||
"title": "Cluster",
|
||||
"subtitle": "Verteilte und Peer-to-Peer-Knoten, die diese Instanz bedienen",
|
||||
"empty": "Es ist kein verteiltes oder p2p-Clustering aktiviert. Starte LocalAI im verteilten oder föderierten/p2p-Modus, um hier Cluster-Knoten zu verwalten.",
|
||||
"distributed": {
|
||||
"title": "Verteilt (NATS)"
|
||||
},
|
||||
"swarm": {
|
||||
"title": "Swarm (p2p)"
|
||||
},
|
||||
"summary": {
|
||||
"nodes": "Verteilte Knoten",
|
||||
"inFlight": "Laufende Anfragen",
|
||||
"peers": "Swarm-Peers online"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"traces": "Traces",
|
||||
"nodes": "Knoten",
|
||||
"swarm": "Swarm",
|
||||
"cluster": "Cluster",
|
||||
"system": "System",
|
||||
"settings": "Einstellungen",
|
||||
"api": "API"
|
||||
|
||||
@@ -81,5 +81,21 @@
|
||||
"explorer": {
|
||||
"title": "Explorer",
|
||||
"subtitle": "Browse files and configuration"
|
||||
},
|
||||
"cluster": {
|
||||
"title": "Cluster",
|
||||
"subtitle": "Distributed and peer-to-peer nodes serving this instance",
|
||||
"empty": "No distributed or p2p clustering is enabled. Start LocalAI in distributed or federated/p2p mode to manage cluster nodes here.",
|
||||
"distributed": {
|
||||
"title": "Distributed (NATS)"
|
||||
},
|
||||
"swarm": {
|
||||
"title": "Swarm (p2p)"
|
||||
},
|
||||
"summary": {
|
||||
"nodes": "Distributed nodes",
|
||||
"inFlight": "In-flight requests",
|
||||
"peers": "Swarm peers online"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"traces": "Traces",
|
||||
"nodes": "Nodes",
|
||||
"swarm": "Swarm",
|
||||
"cluster": "Cluster",
|
||||
"system": "System",
|
||||
"settings": "Settings",
|
||||
"api": "API"
|
||||
|
||||
@@ -58,5 +58,21 @@
|
||||
"explorer": {
|
||||
"title": "Explorador",
|
||||
"subtitle": "Explora archivos y configuración"
|
||||
},
|
||||
"cluster": {
|
||||
"title": "Clúster",
|
||||
"subtitle": "Nodos distribuidos y entre pares que sirven a esta instancia",
|
||||
"empty": "No hay clustering distribuido ni p2p habilitado. Inicia LocalAI en modo distribuido o federado/p2p para gestionar aquí los nodos del clúster.",
|
||||
"distributed": {
|
||||
"title": "Distribuido (NATS)"
|
||||
},
|
||||
"swarm": {
|
||||
"title": "Swarm (p2p)"
|
||||
},
|
||||
"summary": {
|
||||
"nodes": "Nodos distribuidos",
|
||||
"inFlight": "Solicitudes en curso",
|
||||
"peers": "Pares de Swarm en línea"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"traces": "Trazas",
|
||||
"nodes": "Nodos",
|
||||
"swarm": "Swarm",
|
||||
"cluster": "Clúster",
|
||||
"system": "Sistema",
|
||||
"settings": "Configuración",
|
||||
"api": "API"
|
||||
|
||||
@@ -58,5 +58,21 @@
|
||||
"explorer": {
|
||||
"title": "Esplora risorse",
|
||||
"subtitle": "Sfoglia file e configurazioni"
|
||||
},
|
||||
"cluster": {
|
||||
"title": "Cluster",
|
||||
"subtitle": "Nodi distribuiti e peer-to-peer al servizio di questa istanza",
|
||||
"empty": "Nessun clustering distribuito o p2p è abilitato. Avvia LocalAI in modalità distribuita o federata/p2p per gestire qui i nodi del cluster.",
|
||||
"distributed": {
|
||||
"title": "Distribuito (NATS)"
|
||||
},
|
||||
"swarm": {
|
||||
"title": "Swarm (p2p)"
|
||||
},
|
||||
"summary": {
|
||||
"nodes": "Nodi distribuiti",
|
||||
"inFlight": "Richieste in corso",
|
||||
"peers": "Peer Swarm online"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"traces": "Tracce",
|
||||
"nodes": "Nodi",
|
||||
"swarm": "Swarm",
|
||||
"cluster": "Cluster",
|
||||
"system": "Sistema",
|
||||
"settings": "Impostazioni",
|
||||
"api": "API"
|
||||
|
||||
@@ -58,5 +58,21 @@
|
||||
"explorer": {
|
||||
"title": "资源浏览器",
|
||||
"subtitle": "浏览文件和配置"
|
||||
},
|
||||
"cluster": {
|
||||
"title": "集群",
|
||||
"subtitle": "为此实例提供服务的分布式和点对点节点",
|
||||
"empty": "未启用分布式或 p2p 集群。请以分布式或联邦/p2p 模式启动 LocalAI,以便在此管理集群节点。",
|
||||
"distributed": {
|
||||
"title": "分布式 (NATS)"
|
||||
},
|
||||
"swarm": {
|
||||
"title": "Swarm (p2p)"
|
||||
},
|
||||
"summary": {
|
||||
"nodes": "分布式节点",
|
||||
"inFlight": "进行中的请求",
|
||||
"peers": "在线 Swarm 节点"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"traces": "追踪",
|
||||
"nodes": "节点",
|
||||
"swarm": "Swarm",
|
||||
"cluster": "集群",
|
||||
"system": "系统",
|
||||
"settings": "设置",
|
||||
"api": "API"
|
||||
|
||||
@@ -75,8 +75,7 @@ const sections = [
|
||||
{ path: '/app/middleware', icon: 'fas fa-shield-halved', labelKey: 'items.middleware', adminOnly: true },
|
||||
{ path: '/app/backends', icon: 'fas fa-server', labelKey: 'items.backends', adminOnly: true },
|
||||
{ path: '/app/traces', icon: 'fas fa-chart-line', labelKey: 'items.traces', adminOnly: true },
|
||||
{ path: '/app/nodes', icon: 'fas fa-network-wired', labelKey: 'items.nodes', adminOnly: true, feature: 'distributed' },
|
||||
{ path: '/app/p2p', icon: 'fas fa-circle-nodes', labelKey: 'items.swarm', adminOnly: true },
|
||||
{ path: '/app/cluster', icon: 'fas fa-network-wired', labelKey: 'items.cluster', adminOnly: true },
|
||||
{ path: '/app/manage', icon: 'fas fa-desktop', labelKey: 'items.system', adminOnly: true },
|
||||
{ path: '/app/settings', icon: 'fas fa-cog', labelKey: 'items.settings', adminOnly: true },
|
||||
],
|
||||
|
||||
@@ -45,7 +45,7 @@ const Talk = page('talk', () => import('./pages/Talk'))
|
||||
const Backends = page('backends', () => import('./pages/Backends'))
|
||||
const Settings = page('settings', () => import('./pages/Settings'))
|
||||
const Traces = page('traces', () => import('./pages/Traces'))
|
||||
const P2P = page('p2p', () => import('./pages/P2P'))
|
||||
const Cluster = page('cluster', () => import('./pages/Cluster'))
|
||||
const Agents = page('agents', () => import('./pages/Agents'))
|
||||
const AgentCreate = page(null, () => import('./pages/AgentCreate'))
|
||||
const AgentChat = page(null, () => import('./pages/AgentChat'))
|
||||
@@ -68,7 +68,6 @@ const Quantize = page('quantize', () => import('./pages/Quantize'))
|
||||
const Studio = page('studio', () => import('./pages/Studio'))
|
||||
const FaceRecognition = page('face', () => import('./pages/FaceRecognition'))
|
||||
const VoiceRecognition = page('voice', () => import('./pages/VoiceRecognition'))
|
||||
const Nodes = page('nodes', () => import('./pages/Nodes'))
|
||||
const NodeBackendLogs = page(null, () => import('./pages/NodeBackendLogs'))
|
||||
const NotFound = page(null, () => import('./pages/NotFound'))
|
||||
const Usage = page('usage', () => import('./pages/Usage'))
|
||||
@@ -120,8 +119,9 @@ const appChildren = [
|
||||
{ path: 'settings', element: <Admin><Settings /></Admin> },
|
||||
{ path: 'traces', element: <Admin><Traces /></Admin> },
|
||||
{ path: 'backend-logs/:modelId', element: <Admin><BackendLogs /></Admin> },
|
||||
{ path: 'p2p', element: <Admin><P2P /></Admin> },
|
||||
{ path: 'nodes', element: <Admin><Nodes /></Admin> },
|
||||
{ path: 'cluster', element: <Admin><Cluster /></Admin> },
|
||||
{ path: 'p2p', element: <Navigate to="/app/cluster" replace /> },
|
||||
{ path: 'nodes', element: <Navigate to="/app/cluster" replace /> },
|
||||
{ path: 'node-backend-logs/:nodeId/:modelId', element: <Admin><NodeBackendLogs /></Admin> },
|
||||
{ path: 'agents', element: <Feature feature="agents"><Agents /></Feature> },
|
||||
{ path: 'agents/new', element: <Feature feature="agents"><AgentCreate /></Feature> },
|
||||
|
||||
Reference in New Issue
Block a user