diff --git a/core/http/react-ui/public/locales/de/admin.json b/core/http/react-ui/public/locales/de/admin.json index 88582b5a2..767131bea 100644 --- a/core/http/react-ui/public/locales/de/admin.json +++ b/core/http/react-ui/public/locales/de/admin.json @@ -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" + } } } diff --git a/core/http/react-ui/public/locales/de/nav.json b/core/http/react-ui/public/locales/de/nav.json index 891a15cae..ddc1520a9 100644 --- a/core/http/react-ui/public/locales/de/nav.json +++ b/core/http/react-ui/public/locales/de/nav.json @@ -40,6 +40,7 @@ "traces": "Traces", "nodes": "Knoten", "swarm": "Swarm", + "cluster": "Cluster", "system": "System", "settings": "Einstellungen", "api": "API" diff --git a/core/http/react-ui/public/locales/en/admin.json b/core/http/react-ui/public/locales/en/admin.json index f4a380ae3..c88e4c225 100644 --- a/core/http/react-ui/public/locales/en/admin.json +++ b/core/http/react-ui/public/locales/en/admin.json @@ -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" + } } } diff --git a/core/http/react-ui/public/locales/en/nav.json b/core/http/react-ui/public/locales/en/nav.json index ac85d4979..6d6f31492 100644 --- a/core/http/react-ui/public/locales/en/nav.json +++ b/core/http/react-ui/public/locales/en/nav.json @@ -41,6 +41,7 @@ "traces": "Traces", "nodes": "Nodes", "swarm": "Swarm", + "cluster": "Cluster", "system": "System", "settings": "Settings", "api": "API" diff --git a/core/http/react-ui/public/locales/es/admin.json b/core/http/react-ui/public/locales/es/admin.json index fee37c1ab..85141ef11 100644 --- a/core/http/react-ui/public/locales/es/admin.json +++ b/core/http/react-ui/public/locales/es/admin.json @@ -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" + } } } diff --git a/core/http/react-ui/public/locales/es/nav.json b/core/http/react-ui/public/locales/es/nav.json index 0c831a599..ab91f2072 100644 --- a/core/http/react-ui/public/locales/es/nav.json +++ b/core/http/react-ui/public/locales/es/nav.json @@ -40,6 +40,7 @@ "traces": "Trazas", "nodes": "Nodos", "swarm": "Swarm", + "cluster": "Clúster", "system": "Sistema", "settings": "Configuración", "api": "API" diff --git a/core/http/react-ui/public/locales/it/admin.json b/core/http/react-ui/public/locales/it/admin.json index 2bd575b66..90b05e8cc 100644 --- a/core/http/react-ui/public/locales/it/admin.json +++ b/core/http/react-ui/public/locales/it/admin.json @@ -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" + } } } diff --git a/core/http/react-ui/public/locales/it/nav.json b/core/http/react-ui/public/locales/it/nav.json index e3d3ec434..f9ef6f11c 100644 --- a/core/http/react-ui/public/locales/it/nav.json +++ b/core/http/react-ui/public/locales/it/nav.json @@ -40,6 +40,7 @@ "traces": "Tracce", "nodes": "Nodi", "swarm": "Swarm", + "cluster": "Cluster", "system": "Sistema", "settings": "Impostazioni", "api": "API" diff --git a/core/http/react-ui/public/locales/zh-CN/admin.json b/core/http/react-ui/public/locales/zh-CN/admin.json index d55487e69..1e938c950 100644 --- a/core/http/react-ui/public/locales/zh-CN/admin.json +++ b/core/http/react-ui/public/locales/zh-CN/admin.json @@ -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 节点" + } } } diff --git a/core/http/react-ui/public/locales/zh-CN/nav.json b/core/http/react-ui/public/locales/zh-CN/nav.json index 84fff7c91..9ff29d370 100644 --- a/core/http/react-ui/public/locales/zh-CN/nav.json +++ b/core/http/react-ui/public/locales/zh-CN/nav.json @@ -40,6 +40,7 @@ "traces": "追踪", "nodes": "节点", "swarm": "Swarm", + "cluster": "集群", "system": "系统", "settings": "设置", "api": "API" diff --git a/core/http/react-ui/src/components/Sidebar.jsx b/core/http/react-ui/src/components/Sidebar.jsx index c75ed377d..453b7bada 100644 --- a/core/http/react-ui/src/components/Sidebar.jsx +++ b/core/http/react-ui/src/components/Sidebar.jsx @@ -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 }, ], diff --git a/core/http/react-ui/src/router.jsx b/core/http/react-ui/src/router.jsx index 6fbfd1d31..317ad8df8 100644 --- a/core/http/react-ui/src/router.jsx +++ b/core/http/react-ui/src/router.jsx @@ -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: }, { path: 'traces', element: }, { path: 'backend-logs/:modelId', element: }, - { path: 'p2p', element: }, - { path: 'nodes', element: }, + { path: 'cluster', element: }, + { path: 'p2p', element: }, + { path: 'nodes', element: }, { path: 'node-backend-logs/:nodeId/:modelId', element: }, { path: 'agents', element: }, { path: 'agents/new', element: },