diff --git a/src/locales/en-US/models.ts b/src/locales/en-US/models.ts
index 5e90203b..348a84aa 100644
--- a/src/locales/en-US/models.ts
+++ b/src/locales/en-US/models.ts
@@ -48,9 +48,9 @@ export default {
'models.form.scheduletype.manual': 'Specify GPU',
'models.form.scheduletype.gpuType': 'Specify GPU Type',
'models.form.scheduletype.auto.tips':
- 'Automatically deploys model instances to appropriate GPUs/Workers based on current resource conditions.',
+ 'Automatically deploys model instances to appropriate GPUs based on current resource conditions.',
'models.form.scheduletype.manual.tips':
- 'Allows you to manually specify the GPUs/Workers to deploy the model instances to.',
+ 'Allows you to manually specify the GPUs to deploy the model instances to.',
'models.form.manual.schedule': 'Manual Schedule',
'models.table.gpuindex': 'GPU Index',
'models.table.backend': 'Backends',
diff --git a/src/locales/en-US/resources.ts b/src/locales/en-US/resources.ts
index 2c49f7a6..45099d64 100644
--- a/src/locales/en-US/resources.ts
+++ b/src/locales/en-US/resources.ts
@@ -1,6 +1,7 @@
export default {
'resources.title': 'Resources',
- 'resources.nodes': 'Nodes',
+ 'resources.nodes': 'Workers',
+ 'resources.worker': 'Worker',
'resources.button.create': 'Add Worker',
'resources.button.edit': 'Edit Worker',
'resources.button.edittags': 'Edit Labels',
diff --git a/src/locales/ja-JP/models.ts b/src/locales/ja-JP/models.ts
index b6e173e5..c76a7ef3 100644
--- a/src/locales/ja-JP/models.ts
+++ b/src/locales/ja-JP/models.ts
@@ -50,9 +50,9 @@ export default {
'models.form.scheduletype.manual': 'GPUを指定',
'models.form.scheduletype.gpuType': 'GPUタイプを指定',
'models.form.scheduletype.auto.tips':
- '現在のリソース状況に基づいて、モデルインスタンスを適切なGPU/ワーカーに自動的にデプロイします。',
+ '現在のリソース状況に基づいて、モデルインスタンスを適切なGPUに自動的にデプロイします。',
'models.form.scheduletype.manual.tips':
- 'モデルインスタンスをデプロイするGPU/ワーカーを手動で指定できます。',
+ 'モデルインスタンスをデプロイするGPUを手動で指定できます。',
'models.form.manual.schedule': '手動スケジュール',
'models.table.gpuindex': 'GPUインデックス',
'models.table.backend': 'バックエンド',
diff --git a/src/locales/ja-JP/resources.ts b/src/locales/ja-JP/resources.ts
index dc5f9041..f098f584 100644
--- a/src/locales/ja-JP/resources.ts
+++ b/src/locales/ja-JP/resources.ts
@@ -94,7 +94,8 @@ export default {
'resource.register.maos.support': 'Apple Silicon (M series), macOS 14+',
'resource.register.windows.support': 'win 10, win 11',
'resources.model.instance': 'Model Instance',
- 'resources.worker.download.privatekey': 'Download Private Key'
+ 'resources.worker.download.privatekey': 'Download Private Key',
+ 'resources.worker': 'Worker'
};
// ========== To-Do: Translate Keys (Remove After Translation) ==========
@@ -111,5 +112,6 @@ export default {
// 11. 'resource.register.windows.support': 'win 10, win 11',
// 12. 'resources.filter.status': 'Filter by Status',
// 13. 'resources.model.instance': 'Model Instance',
-// 14. 'resources.worker.download.privatekey': 'Download Private Key'
+// 14. 'resources.worker.download.privatekey': 'Download Private Key',
+// 15. 'resources.worker': 'Worker',
// ========== End of To-Do List ==========
diff --git a/src/locales/ru-RU/models.ts b/src/locales/ru-RU/models.ts
index 133e9246..e687a004 100644
--- a/src/locales/ru-RU/models.ts
+++ b/src/locales/ru-RU/models.ts
@@ -48,9 +48,9 @@ export default {
'models.form.scheduletype.manual': 'Указать GPU',
'models.form.scheduletype.gpuType': 'Указать тип GPU',
'models.form.scheduletype.auto.tips':
- 'Автоматическое развертывание инстансов модели на подходящие GPU/воркеры в зависимости от текущих ресурсов.',
+ 'Автоматическое развертывание инстансов модели на подходящие GPU в зависимости от текущих ресурсов.',
'models.form.scheduletype.manual.tips':
- 'Позволяет вручную указать GPU/воркеры для развертывания инстансов модели.',
+ 'Позволяет вручную указать GPU для развертывания инстансов модели.',
'models.form.manual.schedule': 'Ручное распределение',
'models.table.gpuindex': 'Индекс GPU',
'models.table.backend': 'Бэкенды',
diff --git a/src/locales/ru-RU/resources.ts b/src/locales/ru-RU/resources.ts
index 6d4ea136..c140da9b 100644
--- a/src/locales/ru-RU/resources.ts
+++ b/src/locales/ru-RU/resources.ts
@@ -92,9 +92,10 @@ export default {
'resource.register.maos.support': 'Apple Silicon (серия M), macOS 14+',
'resource.register.windows.support': 'Windows 10, Windows 11',
'resources.model.instance': 'Модель экземпляра',
- 'resources.worker.download.privatekey': 'Скачать приватный ключ'
+ 'resources.worker.download.privatekey': 'Скачать приватный ключ',
+ 'resources.worker': 'Worker'
};
// ========== To-Do: Translate Keys (Remove After Translation) ==========
-
+// 1. 'resources.worker': 'Worker',
// ========== End of To-Do List ==========
diff --git a/src/locales/zh-CN/clusters.ts b/src/locales/zh-CN/clusters.ts
index 899c0d6e..5755e2e5 100644
--- a/src/locales/zh-CN/clusters.ts
+++ b/src/locales/zh-CN/clusters.ts
@@ -10,7 +10,7 @@ export default {
'clusters.edit.cluster': '编辑 {cluster}',
'clusters.provider.custom': '自定义',
'clusters.button.register': '注册集群',
- 'clusters.button.addNodePool': '添加 Worker Pool',
+ 'clusters.button.addNodePool': '添加节点池',
'clusters.button.add.credential': '添加 {provider} 凭证',
'clusters.credential.title': '凭证',
'clusters.credential.token': '访问令牌',
@@ -23,7 +23,7 @@ export default {
'clusters.workerpool.volumes': '存储卷',
'clusters.workerpool.format': '文件系统格式',
'clusters.workerpool.size': '容量(GiB)',
- 'clusters.workerpool.title': 'Worker Pools',
+ 'clusters.workerpool.title': '节点池',
'clusters.workerpool.cloudOptions': '添加云配置',
'clusters.workerpool.volumes.add': '添加存储卷',
'clusters.create.provider.self': '自建环境',
@@ -36,11 +36,11 @@ export default {
'clusters.create.noImages': '无可用的镜像',
'clusters.create.noInstanceTypes': '无可用的实例类型',
'clusters.create.noRegions': '无可用的区域',
- 'clusters.workerpool.batchSize.desc': 'Worker 池中同时创建的 worker 数量',
+ 'clusters.workerpool.batchSize.desc': '节点池中同时创建的节点数量',
'clusters.create.addworker.tips':
'在执行以下命令之前,请确保已满足 {label} 的先决条件。',
'clusters.create.addCommand.tips':
- ' 在需要添加的 Worker 上运行以下命令,将其加入到集群中',
+ ' 在需要添加的节点上运行以下命令,将其加入到集群中',
'clusters.create.register.tips':
' 在需要添加的 Kubernetes 集群上运行以下命令,将其中的节点加入到集群中',
'cluster.create.checkEnv.tips': '使用以下命令检查环境是否准备妥当',
diff --git a/src/locales/zh-CN/dashboard.ts b/src/locales/zh-CN/dashboard.ts
index 25c364a7..93bd096e 100644
--- a/src/locales/zh-CN/dashboard.ts
+++ b/src/locales/zh-CN/dashboard.ts
@@ -1,6 +1,6 @@
export default {
'dashboard.title': '概览',
- 'dashboard.workers': 'Workers',
+ 'dashboard.workers': '节点',
'dashboard.models': '模型',
'dashboard.totalgpus': 'GPUs',
'dashboard.allocategpus': '已分配 GPU 数量',
diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts
index b8699fb3..cb1bf0aa 100644
--- a/src/locales/zh-CN/menu.ts
+++ b/src/locales/zh-CN/menu.ts
@@ -21,7 +21,7 @@ export default {
'menu.login': '登录',
'menu.usage': '使用量',
'menu.404': '404',
- 'menu.resources.workers': 'Workers',
+ 'menu.resources.workers': '节点',
'menu.resources.gpus': 'GPUs',
'menu.resources.modelfiles': '模型文件',
'menu.accessControl': '访问控制',
diff --git a/src/locales/zh-CN/models.ts b/src/locales/zh-CN/models.ts
index 6969ab42..a442d33a 100644
--- a/src/locales/zh-CN/models.ts
+++ b/src/locales/zh-CN/models.ts
@@ -16,7 +16,7 @@ export default {
'models.form.partialoffload.tips':
'启用 CPU 卸载时,如果 GPU 资源不足,则模型的一部分层将被卸载到 CPU 上,在没有 GPU 可用时,会使用纯 CPU 推理。',
'models.form.distribution.tips':
- '允许在单个 Worker 资源不足时,将部分计算卸载到一个或多个远程 Worker。',
+ '允许在单个节点资源不足时,将部分计算卸载到一个或多个远程节点',
'models.openinplayground': '在 Playground 中打开',
'models.instances': '实例',
'models.table.replicas.edit': '调整副本数',
@@ -49,13 +49,12 @@ export default {
'models.form.scheduletype.manual': '指定 GPU',
'models.form.scheduletype.gpuType': '指定 GPU 类型',
'models.form.scheduletype.auto.tips':
- '自动根据当前资源情况部署模型实例到合适的 GPU/Worker。',
- 'models.form.scheduletype.manual.tips':
- '手动调度可指定模型实例部署的 GPU/Worker。',
+ '自动根据当前资源情况部署模型实例到合适的 GPU 上。',
+ 'models.form.scheduletype.manual.tips': '手动调度可指定模型实例部署的 GPU。',
'models.form.manual.schedule': '手动调度',
'models.table.gpuindex': 'GPU 序号',
'models.table.backend': '后端',
- 'models.table.acrossworker': '跨 Worker 推理',
+ 'models.table.acrossworker': '跨节点推理',
'models.table.cpuoffload': 'CPU 卸载',
'models.table.layers': '层',
'models.form.backend': '后端',
@@ -90,7 +89,7 @@ export default {
'models.form.backend.mindie':
'用于非 GGUF 格式模型,仅支持昇腾 910B 和 310P。',
'models.form.search.gguftips':
- '当 macOS 或 Windows 作 Worker 时勾选 GGUF(搜索语音模型时取消勾选)',
+ '当 macOS 或 Windows 作节点时勾选 GGUF(搜索语音模型时取消勾选)',
'models.form.button.addlabel': '添加标签',
'models.filter.category': '按类别筛选',
'models.list.more.logs': '查看更多',
diff --git a/src/locales/zh-CN/no-result.ts b/src/locales/zh-CN/no-result.ts
index 1e235f3f..5f8c68ed 100644
--- a/src/locales/zh-CN/no-result.ts
+++ b/src/locales/zh-CN/no-result.ts
@@ -7,12 +7,12 @@ export default {
'noresult.deployments.subTitle':
'您还没有部署任何模型,点击下方按钮即可开始。',
'noresult.gpus.title': '当前未检测到 GPU 设备',
- 'noresult.gpus.subTitle': '请确认 Worker 状态是否正常。',
+ 'noresult.gpus.subTitle': '请确认节点状态是否正常。',
'noresult.gpus.nofound': '未找到匹配的 GPU 设备',
- 'noresult.workers.title': '暂无 Worker',
- 'noresult.workers.subTitle': '当前集群中没有任何 Worker。',
- 'noresult.workers.nofound': '未找到匹配的 Worker',
- 'noresult.workers.button.add': '前往添加 Worker',
+ 'noresult.workers.title': '暂无节点',
+ 'noresult.workers.subTitle': '当前集群中没有任何节点',
+ 'noresult.workers.nofound': '未找到匹配的节点',
+ 'noresult.workers.button.add': '前往添加节点',
'noresult.modelfiles.title': '暂无模型文件',
'noresult.modelfiles.subTitle': '尚未添加任何模型文件。',
'noresult.modelfiles.nofound': '未找到匹配的模型文件',
diff --git a/src/locales/zh-CN/resources.ts b/src/locales/zh-CN/resources.ts
index b412d60c..5c5674d5 100644
--- a/src/locales/zh-CN/resources.ts
+++ b/src/locales/zh-CN/resources.ts
@@ -1,10 +1,11 @@
export default {
'resources.title': '资源',
- 'resources.button.create': '添加 Worker',
- 'resources.button.edit': '编辑 Worker',
+ 'resources.button.create': '添加节点',
+ 'resources.button.edit': '编辑节点',
'resources.button.edittags': '编辑标签',
'resources.button.update': '更新标签',
'resources.nodes': '节点',
+ 'resources.worker': '节点',
'resources.table.hostname': '主机名',
'resources.table.key.tips': '存在相同的 key.',
'resources.form.label': '标签',
@@ -12,15 +13,15 @@ export default {
'resources.form.advanced': '高级',
'resources.form.enablePartialOffload': '允许 CPU 卸载',
'resources.form.placementStrategy': '放置策略',
- 'resources.form.workerSelector': 'Worker 选择器',
+ 'resources.form.workerSelector': '节点选择器',
'resources.form.enableDistributedInferenceAcrossWorkers':
- '允许跨 Worker 分布式推理',
+ '允许跨节点分布式推理',
'resources.form.spread.tips':
- '使得集群整体的资源在所有 Worker 之间分配得相对均匀。可能会在单个 Worker 上产生较多资源碎片。',
+ '使得集群整体的资源在所有节点之间分配得相对均匀。可能会在单个节点上产生较多资源碎片。',
'resources.form.binpack.tips':
- '优先考虑整体集群的资源最大化利用,减少 GPU/Worker 上的资源碎片。',
+ '优先考虑整体集群的资源最大化利用,减少 GPU/节点 上的资源碎片。',
'resources.form.workerSelector.description':
- '系统在部署模型实例时,会根据预定义的标签来选择最符合要求的 Worker。',
+ '系统在部署模型实例时,会根据预定义的标签来选择最符合要求的节点。',
'resources.table.ip': 'IP',
'resources.table.cpu': 'CPU',
'resources.table.memory': '内存',
@@ -38,14 +39,14 @@ export default {
'resources.table.total': '总量',
'resources.table.used': '已用',
'resources.table.allocated': '已分配',
- 'resources.table.wokers': 'workers',
+ 'resources.table.wokers': '节点',
'resources.table.unified': '统一内存',
'resources.worker.linuxormaxos': 'Linux 或 macOS',
'resources.worker.add.step1':
'获取 Token(在 Server 上运行)',
- 'resources.worker.add.step2': '注册 Worker',
- 'resources.worker.add.step2.tips': '(在需要添加的 Worker 上运行。)',
- 'resources.worker.add.step3': '成功后,刷新 Worker 列表即可看到新的 Worker',
+ 'resources.worker.add.step2': '注册节点',
+ 'resources.worker.add.step2.tips': '(在需要添加的节点上运行。)',
+ 'resources.worker.add.step3': '成功后,刷新节点列表即可看到新的节点。',
'resources.worker.container.supported': '不支持 macOS 和 Windows',
'resources.worker.current.version': '当前版本为 {version}',
'resources.worker.select.command': '选择一个标签生成命令并使用复制按钮复制',
@@ -65,7 +66,7 @@ export default {
'默认存储目录为 /var/lib/gpustack/cache,或使用 --cache-dir(优先)、--data-dir 指定的目录。',
'resources.modelfiles.retry.download': '重新下载',
'resources.modelfiles.storagePath.holder': '等待下载完成...',
- 'resources.filter.worker': '按 Worker 筛选',
+ 'resources.filter.worker': '按节点筛选',
'resources.filter.source': '按来源筛选',
'resources.filter.status': '按状态筛选',
'resources.modelfiles.delete.tips': '同时从磁盘删除文件',
@@ -78,7 +79,7 @@ export default {
'resources.register.worker.step3':
'点击页签通用。',
'resources.register.worker.step4':
- '选择服务角色 Worker。',
+ '选择服务角色 节点。',
'resources.register.worker.step5':
'输入 Server URL:{url}。',
'resources.register.worker.step6':
diff --git a/src/pages/_components/identicon.tsx b/src/pages/_components/identicon.tsx
index 1db67b36..44f0b410 100644
--- a/src/pages/_components/identicon.tsx
+++ b/src/pages/_components/identicon.tsx
@@ -1,4 +1,4 @@
-import jdenticon from 'jdenticon';
+import { update } from 'jdenticon';
import React, { useEffect, useRef } from 'react';
interface IdenticonProps {
@@ -13,7 +13,7 @@ const Identicon: React.FC = ({
const icon = useRef(null);
useEffect(() => {
- jdenticon?.update(icon.current, 'value');
+ update(icon.current, value);
}, [value]);
return (
diff --git a/src/pages/backends/config/index.ts b/src/pages/backends/config/index.ts
index f014497c..44db5d50 100644
--- a/src/pages/backends/config/index.ts
+++ b/src/pages/backends/config/index.ts
@@ -107,7 +107,19 @@ export const getGpuColor = (gpuType: string) => {
return 'default';
};
-export const customIcons = ['∑', '∏', '∫', '∂', '∞', 'θ', '∆', '∇'];
+export const customIcons = [
+ '∑',
+ '∏',
+ '∫',
+ '∂',
+ '∞',
+ 'π',
+ 'θ',
+ '∆',
+ '∇',
+ '≤',
+ '≥'
+];
export const backendFields = [
'description',
diff --git a/src/pages/cluster-management/config/providers.ts b/src/pages/cluster-management/config/providers.ts
index 18a0e414..bb348cc4 100644
--- a/src/pages/cluster-management/config/providers.ts
+++ b/src/pages/cluster-management/config/providers.ts
@@ -35,6 +35,16 @@ export default [
}),
group: 'clusters.create.provider.cloud'
},
+ {
+ label: 'AWS',
+ locale: false,
+ disabled: true,
+ value: ProviderValueMap.AWS,
+ key: ProviderValueMap.AWS,
+ icon: icons.AWS,
+ description: 'cluster.provider.comingsoon',
+ group: 'clusters.create.provider.cloud'
+ },
{
label: 'Alibaba Cloud',
locale: false,
@@ -54,15 +64,5 @@ export default [
icon: icons.TencentCloud,
description: 'cluster.provider.comingsoon',
group: 'clusters.create.provider.cloud'
- },
- {
- label: 'AWS',
- locale: false,
- disabled: true,
- value: ProviderValueMap.AWS,
- key: ProviderValueMap.AWS,
- icon: icons.AWS,
- description: 'cluster.provider.comingsoon',
- group: 'clusters.create.provider.cloud'
}
];
diff --git a/src/pages/cluster-management/hooks/use-cluster-columns.tsx b/src/pages/cluster-management/hooks/use-cluster-columns.tsx
index cc8537e6..45a186ca 100644
--- a/src/pages/cluster-management/hooks/use-cluster-columns.tsx
+++ b/src/pages/cluster-management/hooks/use-cluster-columns.tsx
@@ -67,7 +67,7 @@ const useClusterColumns = (
render: (value: number) => {value}
},
{
- title: 'Workers',
+ title: intl.formatMessage({ id: 'resources.nodes' }),
dataIndex: 'workers',
span: 3,
render: (value: number, record: ClusterListItem) => (
diff --git a/src/pages/cluster-management/hooks/use-pools-columns.tsx b/src/pages/cluster-management/hooks/use-pools-columns.tsx
index a8310b31..0821d896 100644
--- a/src/pages/cluster-management/hooks/use-pools-columns.tsx
+++ b/src/pages/cluster-management/hooks/use-pools-columns.tsx
@@ -122,7 +122,7 @@ const usePoolsColumns = (
)
},
{
- title: 'Workers',
+ title: intl.formatMessage({ id: 'resources.nodes' }),
dataIndex: 'replicas',
span: 6,
key: 'replicas',
diff --git a/src/pages/llmodels/download/target-form.tsx b/src/pages/llmodels/download/target-form.tsx
index 85992761..c33a9e77 100644
--- a/src/pages/llmodels/download/target-form.tsx
+++ b/src/pages/llmodels/download/target-form.tsx
@@ -118,7 +118,7 @@ const TargetForm: React.FC = forwardRef((props, ref) => {
rules={[
{
required: true,
- message: getRuleMessage('select', 'worker', false)
+ message: getRuleMessage('select', 'resources.worker')
}
]}
>
@@ -133,7 +133,7 @@ const TargetForm: React.FC = forwardRef((props, ref) => {
}
}}
maxTagCount={1}
- label="Worker"
+ label={intl.formatMessage({ id: 'resources.worker' })}
options={workerOptions}
showCheckedStrategy="SHOW_CHILD"
getPopupContainer={(triggerNode) => triggerNode.parentNode}
diff --git a/src/pages/resources/components/workers.tsx b/src/pages/resources/components/workers.tsx
index fd7d0072..15bbe11e 100644
--- a/src/pages/resources/components/workers.tsx
+++ b/src/pages/resources/components/workers.tsx
@@ -40,7 +40,7 @@ const Workers: React.FC = () => {
} = useTableFetch({
fetchAPI: queryWorkersList,
deleteAPI: deleteWorker,
- contentForDelete: 'worker',
+ contentForDelete: 'resources.worker',
watch: true,
API: WORKERS_API
});
@@ -240,7 +240,7 @@ const Workers: React.FC = () => {
/>
]}
header={{
- title: 'Workers',
+ title: intl.formatMessage({ id: 'resources.nodes' }),
style: {
paddingInline: 'var(--layout-content-header-inlinepadding)'
},
diff --git a/src/pages/resources/hooks/use-files-columns.tsx b/src/pages/resources/hooks/use-files-columns.tsx
index eb536a2e..8609cb6a 100644
--- a/src/pages/resources/hooks/use-files-columns.tsx
+++ b/src/pages/resources/hooks/use-files-columns.tsx
@@ -286,7 +286,7 @@ const useFilesColumns = (props: {
}
},
{
- title: 'Worker',
+ title: intl.formatMessage({ id: 'resources.worker' }),
dataIndex: 'worker_name',
ellipsis: {
showTitle: false
diff --git a/src/pages/resources/hooks/use-gpu-columns.tsx b/src/pages/resources/hooks/use-gpu-columns.tsx
index b2ceca29..cc92c1cd 100644
--- a/src/pages/resources/hooks/use-gpu-columns.tsx
+++ b/src/pages/resources/hooks/use-gpu-columns.tsx
@@ -73,7 +73,7 @@ const useGPUColumns = (props: {
)
},
{
- title: 'Worker',
+ title: intl.formatMessage({ id: 'resources.worker' }),
dataIndex: 'worker_name',
ellipsis: {
showTitle: false
diff --git a/src/pages/resources/hooks/use-instances-columns.tsx b/src/pages/resources/hooks/use-instances-columns.tsx
index 9abd4357..26cec11d 100644
--- a/src/pages/resources/hooks/use-instances-columns.tsx
+++ b/src/pages/resources/hooks/use-instances-columns.tsx
@@ -60,7 +60,8 @@ const renderGpuIndexs = (gpuIndexes: number[]) => {
const distributeCols: ColumnProps[] = [
{
- title: 'Worker',
+ title: 'resources.worker',
+ locale: true,
key: 'worker_name',
style: {
wordBreak: 'break-word'
@@ -310,7 +311,7 @@ const useInstanceColumns = (props: {
)
},
{
- title: 'Worker',
+ title: intl.formatMessage({ id: 'resources.worker' }),
dataIndex: 'worker_name',
render: (text: string, record: ListItem) => (
{text}
diff --git a/src/pages/resources/index.tsx b/src/pages/resources/index.tsx
index 026f1280..3505e50d 100644
--- a/src/pages/resources/index.tsx
+++ b/src/pages/resources/index.tsx
@@ -29,7 +29,7 @@ const Resources = () => {
const items: TabsProps['items'] = [
{
key: 'workers',
- label: 'Workers',
+ label: 'resources.nodes',
children:
},
{