chore: clear backend parameters、backend_version、env on change backend
This commit is contained in:
+2
-2
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"concurrent": 2,
|
||||||
"*.{md,json}": ["prettier --cache --write"],
|
"*.{md,json}": ["prettier --cache --write"],
|
||||||
"*.{js,jsx}": ["max lint --fix --eslint-only", "prettier --cache --write"],
|
"*.{js,jsx}": ["max lint --fix --eslint-only", "prettier --cache --write"],
|
||||||
"*.{css,less}": [
|
"*.{css,less}": [
|
||||||
@@ -8,6 +9,5 @@
|
|||||||
"*.ts?(x)": [
|
"*.ts?(x)": [
|
||||||
"max lint --fix --eslint-only",
|
"max lint --fix --eslint-only",
|
||||||
"prettier --cache --parser=typescript --write"
|
"prettier --cache --parser=typescript --write"
|
||||||
],
|
]
|
||||||
"src/locales/**/*.ts": ["npx tsx src/locales/check.ts"]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export default {
|
|||||||
'resources.modelfiles.selecttarget': 'Select Target',
|
'resources.modelfiles.selecttarget': 'Select Target',
|
||||||
'resources.modelfiles.form.localdir': 'Local Directory',
|
'resources.modelfiles.form.localdir': 'Local Directory',
|
||||||
'resources.modelfiles.form.localdir.tips':
|
'resources.modelfiles.form.localdir.tips':
|
||||||
'The default storage directory is <span class="desc-block">/var/lib/gpustack/cache</span> or the directory specified with <span class="desc-block">--cache-dir</span>.',
|
'The default storage directory is <span class="desc-block">/var/lib/gpustack/cache</span>, or the directory specified by <span class="desc-block">--cache-dir</span> (preferred) or <span class="desc-block">--data-dir</span>.',
|
||||||
'resources.modelfiles.retry.download': 'Retry Download',
|
'resources.modelfiles.retry.download': 'Retry Download',
|
||||||
'resources.modelfiles.storagePath.holder':
|
'resources.modelfiles.storagePath.holder':
|
||||||
'Waiting for the download to complete...',
|
'Waiting for the download to complete...',
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default {
|
|||||||
'resources.modelfiles.selecttarget': 'Select Target',
|
'resources.modelfiles.selecttarget': 'Select Target',
|
||||||
'resources.modelfiles.form.localdir': 'Local Directory',
|
'resources.modelfiles.form.localdir': 'Local Directory',
|
||||||
'resources.modelfiles.form.localdir.tips':
|
'resources.modelfiles.form.localdir.tips':
|
||||||
'The default storage directory is <span class="desc-block">/var/lib/gpustack/cache</span> or the directory specified with <span class="desc-block">--cache-dir</span>.',
|
'The default storage directory is <span class="desc-block">/var/lib/gpustack/cache</span>, or the directory specified by <span class="desc-block">--cache-dir</span> (preferred) or <span class="desc-block">--data-dir</span>.',
|
||||||
'resources.modelfiles.retry.download': 'Retry Download',
|
'resources.modelfiles.retry.download': 'Retry Download',
|
||||||
'resources.modelfiles.storagePath.holder':
|
'resources.modelfiles.storagePath.holder':
|
||||||
'Waiting for download to complete...',
|
'Waiting for download to complete...',
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export default {
|
|||||||
'resources.modelfiles.selecttarget': 'Выбрать назначение',
|
'resources.modelfiles.selecttarget': 'Выбрать назначение',
|
||||||
'resources.modelfiles.form.localdir': 'Локальный каталог',
|
'resources.modelfiles.form.localdir': 'Локальный каталог',
|
||||||
'resources.modelfiles.form.localdir.tips':
|
'resources.modelfiles.form.localdir.tips':
|
||||||
'Каталог по умолчанию <span class="desc-block>/var/lib/gpustack/cache</span> или каталог, указанный через <span class="desc-block">--cache-dir</span>.',
|
'The default storage directory is <span class="desc-block">/var/lib/gpustack/cache</span>, or the directory specified by <span class="desc-block">--cache-dir</span> (preferred) or <span class="desc-block">--data-dir</span>.',
|
||||||
'resources.modelfiles.retry.download': 'Повторить загрузку',
|
'resources.modelfiles.retry.download': 'Повторить загрузку',
|
||||||
'resources.modelfiles.storagePath.holder': 'Ожидание завершения загрузки...',
|
'resources.modelfiles.storagePath.holder': 'Ожидание завершения загрузки...',
|
||||||
'resources.filter.worker': 'Фильтровать по узлу',
|
'resources.filter.worker': 'Фильтровать по узлу',
|
||||||
@@ -77,5 +77,6 @@ export default {
|
|||||||
// ========== To-Do: Translate Keys (Remove After Translation) ==========
|
// ========== To-Do: Translate Keys (Remove After Translation) ==========
|
||||||
// 1. 'resources.worker.cann.tips',
|
// 1. 'resources.worker.cann.tips',
|
||||||
// 2. 'resources.worker.add.step2.tips',
|
// 2. 'resources.worker.add.step2.tips',
|
||||||
// 3. 'resources.worker.driver.install'
|
// 3. 'resources.worker.driver.install',
|
||||||
|
// 4. 'resources.modelfiles.form.localdir.tips',
|
||||||
// ========== End of To-Do List ==========
|
// ========== End of To-Do List ==========
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ export default {
|
|||||||
'resources.modelfiles.selecttarget': '选择目标位置',
|
'resources.modelfiles.selecttarget': '选择目标位置',
|
||||||
'resources.modelfiles.form.localdir': '本地目录',
|
'resources.modelfiles.form.localdir': '本地目录',
|
||||||
'resources.modelfiles.form.localdir.tips':
|
'resources.modelfiles.form.localdir.tips':
|
||||||
'默认存储目录为 <span class="desc-block">/var/lib/gpustack/cache</span>,或使用 <span class="desc-block">--cache-dir</span> 指定的目录',
|
'默认存储目录为 <span class="desc-block">/var/lib/gpustack/cache</span>,或使用 <span class="desc-block">--cache-dir</span>(优先)、<span class="desc-block">--data-dir</span> 指定的目录。',
|
||||||
'resources.modelfiles.retry.download': '重新下载',
|
'resources.modelfiles.retry.download': '重新下载',
|
||||||
'resources.modelfiles.storagePath.holder': '等待下载完成...',
|
'resources.modelfiles.storagePath.holder': '等待下载完成...',
|
||||||
'resources.filter.worker': '按 Worker 筛选',
|
'resources.filter.worker': '按 Worker 筛选',
|
||||||
|
|||||||
@@ -82,7 +82,9 @@ const DataForm: React.FC<DataFormProps> = forwardRef((props, ref) => {
|
|||||||
|
|
||||||
const handleBackendChange = async (val: string) => {
|
const handleBackendChange = async (val: string) => {
|
||||||
const updates = {
|
const updates = {
|
||||||
backend_version: ''
|
backend_version: '',
|
||||||
|
backend_parameters: [],
|
||||||
|
env: {}
|
||||||
};
|
};
|
||||||
if (val === backendOptionsMap.llamaBox) {
|
if (val === backendOptionsMap.llamaBox) {
|
||||||
Object.assign(updates, {
|
Object.assign(updates, {
|
||||||
|
|||||||
@@ -126,7 +126,9 @@ const UpdateModal: React.FC<AddModalProps> = (props) => {
|
|||||||
|
|
||||||
const handleBackendChange = (backend: string) => {
|
const handleBackendChange = (backend: string) => {
|
||||||
const updates = {
|
const updates = {
|
||||||
backend_version: ''
|
backend_version: '',
|
||||||
|
backend_parameters: [],
|
||||||
|
env: {}
|
||||||
};
|
};
|
||||||
if (backend === backendOptionsMap.llamaBox) {
|
if (backend === backendOptionsMap.llamaBox) {
|
||||||
Object.assign(updates, {
|
Object.assign(updates, {
|
||||||
|
|||||||
@@ -353,14 +353,12 @@ export const useCheckCompatibility = () => {
|
|||||||
const isOllamaModel = localPath?.includes('ollama');
|
const isOllamaModel = localPath?.includes('ollama');
|
||||||
const isGGUFFile = localPath.endsWith('.gguf');
|
const isGGUFFile = localPath.endsWith('.gguf');
|
||||||
|
|
||||||
|
const isOllamaModelFile = isBlobFile || isOllamaModel;
|
||||||
|
|
||||||
let warningMessage = '';
|
let warningMessage = '';
|
||||||
if (isBlobFile && isOllamaModel && backend === backendOptionsMap.llamaBox) {
|
if (isOllamaModelFile && backend === backendOptionsMap.llamaBox) {
|
||||||
warningMessage = '';
|
warningMessage = '';
|
||||||
} else if (
|
} else if (isOllamaModelFile && backend !== backendOptionsMap.llamaBox) {
|
||||||
isBlobFile &&
|
|
||||||
isOllamaModel &&
|
|
||||||
backend !== backendOptionsMap.llamaBox
|
|
||||||
) {
|
|
||||||
warningMessage = intl.formatMessage({
|
warningMessage = intl.formatMessage({
|
||||||
id: 'models.form.ollama.warning'
|
id: 'models.form.ollama.warning'
|
||||||
});
|
});
|
||||||
@@ -488,9 +486,7 @@ export const useCheckCompatibility = () => {
|
|||||||
source: source
|
source: source
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res.show) {
|
setWarningStatus?.(res);
|
||||||
setWarningStatus?.(res);
|
|
||||||
}
|
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -137,13 +137,19 @@ const AddWorker: React.FC<ViewModalProps> = (props) => {
|
|||||||
>
|
>
|
||||||
<HighlightCode
|
<HighlightCode
|
||||||
theme="dark"
|
theme="dark"
|
||||||
code={code}
|
code={code.replace(/\\/g, '')}
|
||||||
|
copyValue={code}
|
||||||
lang="bash"
|
lang="bash"
|
||||||
copyable={false}
|
copyable={false}
|
||||||
></HighlightCode>
|
></HighlightCode>
|
||||||
</EditorWrap>
|
</EditorWrap>
|
||||||
) : (
|
) : (
|
||||||
<HighlightCode theme="dark" code={code} lang="bash"></HighlightCode>
|
<HighlightCode
|
||||||
|
theme="dark"
|
||||||
|
code={code.replace(/\\/g, '')}
|
||||||
|
copyValue={code}
|
||||||
|
lang="bash"
|
||||||
|
></HighlightCode>
|
||||||
)}
|
)}
|
||||||
<h3 className="m-b-0 m-t-10 font-size-14 font-600">
|
<h3 className="m-b-0 m-t-10 font-size-14 font-600">
|
||||||
3. {intl.formatMessage({ id: 'resources.worker.add.step3' })}
|
3. {intl.formatMessage({ id: 'resources.worker.add.step3' })}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.code-pre {
|
.code-pre {
|
||||||
white-space: pre-line !important;
|
white-space: normal !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-radio-button-wrapper {
|
.ant-radio-button-wrapper {
|
||||||
|
|||||||
@@ -41,13 +41,13 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--gpus all \
|
--gpus all \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
--ipc=host \
|
--ipc=host \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag} \
|
gpustack/gpustack:${params.tag} \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -60,22 +60,22 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--device /dev/davinci0 \
|
--device /dev/davinci0 \\
|
||||||
--device /dev/davinci1 \
|
--device /dev/davinci1 \\
|
||||||
--device /dev/davinci_manager \
|
--device /dev/davinci_manager \\
|
||||||
--device /dev/devmm_svm \
|
--device /dev/devmm_svm \\
|
||||||
--device /dev/hisi_hdc \
|
--device /dev/hisi_hdc \\
|
||||||
-v /usr/local/dcmi:/usr/local/dcmi \
|
-v /usr/local/dcmi:/usr/local/dcmi \\
|
||||||
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
|
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \\
|
||||||
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
|
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \\
|
||||||
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
|
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \\
|
||||||
-v /etc/ascend_install.info:/etc/ascend_install.info \
|
-v /etc/ascend_install.info:/etc/ascend_install.info \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
--ipc=host \
|
--ipc=host \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag} \
|
gpustack/gpustack:${params.tag} \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -88,22 +88,22 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--device /dev/davinci0 \
|
--device /dev/davinci0 \\
|
||||||
--device /dev/davinci1 \
|
--device /dev/davinci1 \\
|
||||||
--device /dev/davinci_manager \
|
--device /dev/davinci_manager \\
|
||||||
--device /dev/devmm_svm \
|
--device /dev/devmm_svm \\
|
||||||
--device /dev/hisi_hdc \
|
--device /dev/hisi_hdc \\
|
||||||
-v /usr/local/dcmi:/usr/local/dcmi \
|
-v /usr/local/dcmi:/usr/local/dcmi \\
|
||||||
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
|
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \\
|
||||||
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
|
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \\
|
||||||
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
|
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \\
|
||||||
-v /etc/ascend_install.info:/etc/ascend_install.info \
|
-v /etc/ascend_install.info:/etc/ascend_install.info \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
--ipc=host \
|
--ipc=host \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag}-310p \
|
gpustack/gpustack:${params.tag}-310p \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -116,12 +116,12 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
--ipc=host \
|
--ipc=host \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag} \
|
gpustack/gpustack:${params.tag} \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -134,11 +134,11 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag} \
|
gpustack/gpustack:${params.tag} \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -149,17 +149,17 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--device=/dev/kfd \
|
--device=/dev/kfd \\
|
||||||
--device=/dev/dri \
|
--device=/dev/dri \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
--ipc=host \
|
--ipc=host \\
|
||||||
--group-add video \
|
--group-add video \\
|
||||||
--cap-add=SYS_PTRACE \
|
--cap-add=SYS_PTRACE \\
|
||||||
--security-opt seccomp=unconfined \
|
--security-opt seccomp=unconfined \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag} \
|
gpustack/gpustack:${params.tag} \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -170,19 +170,19 @@ export const addWorkerGuide: Record<string, any> = {
|
|||||||
token: string;
|
token: string;
|
||||||
workerip: string;
|
workerip: string;
|
||||||
}) {
|
}) {
|
||||||
return `docker run -d --name gpustack \
|
return `docker run -d --name gpustack \\
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \\
|
||||||
--device=/dev/kfd \
|
--device=/dev/kfd \\
|
||||||
--device=/dev/mkfd \
|
--device=/dev/mkfd \\
|
||||||
--device=/dev/dri \
|
--device=/dev/dri \\
|
||||||
-v /opt/hyhal:/opt/hyhal:ro \
|
-v /opt/hyhal:/opt/hyhal:ro \\
|
||||||
--network=host \
|
--network=host \\
|
||||||
--ipc=host \
|
--ipc=host \\
|
||||||
--group-add video \
|
--group-add video \\
|
||||||
--cap-add=SYS_PTRACE \
|
--cap-add=SYS_PTRACE \\
|
||||||
--security-opt seccomp=unconfined \
|
--security-opt seccomp=unconfined \\
|
||||||
-v gpustack-data:/var/lib/gpustack \
|
-v gpustack-data:/var/lib/gpustack \\
|
||||||
gpustack/gpustack:${params.tag} \
|
gpustack/gpustack:${params.tag} \\
|
||||||
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
--server-url ${params.server} --token ${params.token} --worker-ip ${params.workerip}`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user