mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-11-03 00:04:53 +00:00
fix(ai): improve GPU capability hints and separate engine logs (#14263)
This commit is contained in:
@@ -1052,7 +1052,7 @@ const message = {
|
||||
gpuCountRequired: 'Enter an integer greater than 0',
|
||||
gpuDevices: 'GPU devices',
|
||||
gpuCapabilitiesHelper:
|
||||
'GPU access is required; enable monitoring and management (utility) and computing support (compute) as needed.',
|
||||
'Configure NVIDIA GPU capabilities for the container. Keeping the default options is generally recommended.\n• gpu: Allows the container to access the GPU. Required.\n• utility: Supports GPU status queries and monitoring, such as nvidia-smi.\n• compute: Supports GPU computing, including CUDA. Usually needed for model inference.',
|
||||
gpuSelectRequired: 'Select at least one available GPU device.',
|
||||
gpuUnsupported: 'Unsupported',
|
||||
gpuNotDetected: 'No supported accelerators detected',
|
||||
|
||||
@@ -1054,7 +1054,7 @@ const message = {
|
||||
gpuCountRequired: 'Introduzca un entero mayor que 0',
|
||||
gpuDevices: 'Dispositivos GPU',
|
||||
gpuCapabilitiesHelper:
|
||||
'El acceso a la GPU es obligatorio; active la supervisión y gestión (utility) y el cálculo (compute) según sea necesario.',
|
||||
'Configure las capacidades de NVIDIA GPU del contenedor. Se recomienda mantener las opciones predeterminadas.\n• gpu: Permite al contenedor acceder a la GPU. Obligatorio.\n• utility: Permite consultar y supervisar el estado de la GPU, por ejemplo, con nvidia-smi.\n• compute: Permite realizar cálculos en la GPU, como CUDA. Suele ser necesario para la inferencia de modelos.',
|
||||
gpuSelectRequired: 'Seleccione al menos un dispositivo GPU disponible.',
|
||||
gpuUnsupported: 'No compatible',
|
||||
gpuNotDetected: 'No se detectaron aceleradores compatibles',
|
||||
|
||||
@@ -1035,7 +1035,7 @@ const message = {
|
||||
gpuCountRequired: 'یک عدد صحیح بزرگتر از صفر وارد کنید',
|
||||
gpuDevices: 'دستگاههای GPU',
|
||||
gpuCapabilitiesHelper:
|
||||
'دسترسی به GPU الزامی است؛ نظارت و مدیریت (utility) و پشتیبانی محاسباتی (compute) را در صورت نیاز فعال کنید.',
|
||||
'قابلیتهای NVIDIA GPU را برای کانتینر تنظیم کنید. معمولاً توصیه میشود گزینههای پیشفرض را حفظ کنید.\n• gpu: دسترسی کانتینر به GPU را مجاز میکند. انتخاب آن الزامی است.\n• utility: از بررسی وضعیت و پایش GPU، مانند nvidia-smi، پشتیبانی میکند.\n• compute: از محاسبات GPU، از جمله CUDA، پشتیبانی میکند. معمولاً برای استنتاج مدل لازم است.',
|
||||
gpuSelectRequired: 'حداقل یک دستگاه GPU موجود را انتخاب کنید.',
|
||||
gpuUnsupported: 'پشتیبانی نمیشود',
|
||||
gpuNotDetected: 'هیچ شتابدهنده پشتیبانیشدهای شناسایی نشد',
|
||||
|
||||
@@ -1039,7 +1039,7 @@ const message = {
|
||||
gpuCountRequired: '0 より大きい整数を入力してください',
|
||||
gpuDevices: 'GPU デバイス',
|
||||
gpuCapabilitiesHelper:
|
||||
'GPU アクセスは必須です。必要に応じて監視と管理(utility)や計算サポート(compute)を有効にしてください。',
|
||||
'コンテナーで使用する NVIDIA GPU の機能を設定します。通常は既定の設定を維持することを推奨します。\n• gpu:コンテナーによる GPU へのアクセスを許可します。必須です。\n• utility:nvidia-smi などによる GPU の状態確認と監視をサポートします。\n• compute:CUDA などの GPU 計算をサポートします。通常、モデル推論に必要です。',
|
||||
gpuSelectRequired: '使用可能な GPU を少なくとも 1 つ選択してください。',
|
||||
gpuUnsupported: '非対応',
|
||||
gpuNotDetected: '対応するアクセラレーターが検出されませんでした',
|
||||
|
||||
@@ -1029,7 +1029,7 @@ const message = {
|
||||
gpuCountRequired: '0보다 큰 정수를 입력하세요',
|
||||
gpuDevices: 'GPU 장치',
|
||||
gpuCapabilitiesHelper:
|
||||
'GPU 접근은 필수이며, 필요에 따라 모니터링 및 관리(utility)와 연산 지원(compute)을 활성화할 수 있습니다.',
|
||||
'컨테이너에서 사용할 NVIDIA GPU 기능을 설정합니다. 일반적으로 기본 옵션을 유지하는 것이 좋습니다.\n• gpu: 컨테이너의 GPU 접근을 허용합니다. 필수 항목입니다.\n• utility: nvidia-smi 등을 통한 GPU 상태 조회 및 모니터링을 지원합니다.\n• compute: CUDA 등의 GPU 연산을 지원합니다. 일반적으로 모델 추론에 필요합니다.',
|
||||
gpuSelectRequired: '사용 가능한 GPU 장치를 하나 이상 선택하세요.',
|
||||
gpuUnsupported: '지원 안 됨',
|
||||
gpuNotDetected: '지원되는 가속기가 감지되지 않았습니다',
|
||||
|
||||
@@ -1026,7 +1026,7 @@ const message = {
|
||||
gpuCountRequired: 'ກະລຸນາປ້ອນຈຳນວນເຕັມທີ່ຫຼາຍກວ່າ 0',
|
||||
gpuDevices: 'ອຸປະກອນ GPU',
|
||||
gpuCapabilitiesHelper:
|
||||
'ຕ້ອງເປີດການເຂົ້າເຖິງ GPU ແລະ ສາມາດເປີດການຕິດຕາມແລະຈັດການ (utility) ແລະ ການຄຳນວນ (compute) ໄດ້ຕາມຕ້ອງການ.',
|
||||
'ຕັ້ງຄ່າຄວາມສາມາດ NVIDIA GPU ສຳລັບຄອນເທນເນີ. ໂດຍທົ່ວໄປແນະນຳໃຫ້ຮັກສາຕົວເລືອກເລີ່ມຕົ້ນ.\n• gpu: ອະນຸຍາດໃຫ້ຄອນເທນເນີເຂົ້າເຖິງ GPU. ຈຳເປັນຕ້ອງເລືອກ.\n• utility: ຮອງຮັບການກວດສອບແລະຕິດຕາມສະຖານະ GPU ເຊັ່ນ nvidia-smi.\n• compute: ຮອງຮັບການຄຳນວນດ້ວຍ GPU ເຊັ່ນ CUDA. ໂດຍທົ່ວໄປຈຳເປັນສຳລັບການອະນຸມານຂອງໂມເດວ.',
|
||||
gpuSelectRequired: 'ກະລຸນາເລືອກ GPU ທີ່ພ້ອມໃຊ້ຢ່າງໜ້ອຍໜຶ່ງອຸປະກອນ',
|
||||
gpuUnsupported: 'ບໍ່ຮອງຮັບ',
|
||||
gpuNotDetected: 'ບໍ່ພົບຕົວເລັ່ງທີ່ຮອງຮັບ',
|
||||
|
||||
@@ -1062,7 +1062,7 @@ const message = {
|
||||
gpuCountRequired: 'Masukkan integer yang lebih besar daripada 0',
|
||||
gpuDevices: 'Peranti GPU',
|
||||
gpuCapabilitiesHelper:
|
||||
'Akses GPU diperlukan; dayakan pemantauan dan pengurusan (utility) serta sokongan pengiraan (compute) mengikut keperluan.',
|
||||
'Konfigurasikan keupayaan NVIDIA GPU untuk bekas. Biasanya disyorkan untuk mengekalkan pilihan lalai.\n• gpu: Membenarkan bekas mengakses GPU. Wajib dipilih.\n• utility: Menyokong semakan status dan pemantauan GPU, seperti nvidia-smi.\n• compute: Menyokong pengiraan GPU, termasuk CUDA. Biasanya diperlukan untuk inferens model.',
|
||||
gpuSelectRequired: 'Pilih sekurang-kurangnya satu peranti GPU yang tersedia.',
|
||||
gpuUnsupported: 'Tidak disokong',
|
||||
gpuNotDetected: 'Tiada pemecut yang disokong dikesan',
|
||||
|
||||
@@ -1058,7 +1058,7 @@ const message = {
|
||||
gpuCountRequired: 'Insira um número inteiro maior que 0',
|
||||
gpuDevices: 'Dispositivos GPU',
|
||||
gpuCapabilitiesHelper:
|
||||
'O acesso à GPU é obrigatório; habilite o monitoramento e gerenciamento (utility) e o suporte a cálculos (compute) conforme necessário.',
|
||||
'Configure os recursos da NVIDIA GPU para o contêiner. Em geral, recomenda-se manter as opções padrão.\n• gpu: Permite que o contêiner acesse a GPU. Obrigatório.\n• utility: Permite consultar e monitorar o estado da GPU, por exemplo, com nvidia-smi.\n• compute: Permite cálculos na GPU, incluindo CUDA. Geralmente necessário para a inferência de modelos.',
|
||||
gpuSelectRequired: 'Selecione pelo menos um dispositivo GPU disponível.',
|
||||
gpuUnsupported: 'Não suportado',
|
||||
gpuNotDetected: 'Nenhum acelerador compatível detectado',
|
||||
|
||||
@@ -1051,7 +1051,7 @@ const message = {
|
||||
gpuCountRequired: 'Введите целое число больше 0',
|
||||
gpuDevices: 'Устройства GPU',
|
||||
gpuCapabilitiesHelper:
|
||||
'Доступ к GPU обязателен; при необходимости включите мониторинг и управление (utility) и поддержку вычислений (compute).',
|
||||
'Настройте возможности NVIDIA GPU для контейнера. Обычно рекомендуется сохранить параметры по умолчанию.\n• gpu: Разрешает контейнеру доступ к GPU. Обязательный параметр.\n• utility: Обеспечивает запрос состояния и мониторинг GPU, например через nvidia-smi.\n• compute: Обеспечивает вычисления на GPU, включая CUDA. Обычно требуется для выполнения моделей.',
|
||||
gpuSelectRequired: 'Выберите хотя бы одно доступное устройство GPU.',
|
||||
gpuUnsupported: 'Не поддерживается',
|
||||
gpuNotDetected: 'Поддерживаемые ускорители не обнаружены',
|
||||
|
||||
@@ -1060,7 +1060,7 @@ const message = {
|
||||
gpuCountRequired: '0’dan büyük bir tam sayı girin',
|
||||
gpuDevices: 'GPU aygıtları',
|
||||
gpuCapabilitiesHelper:
|
||||
'GPU erişimi zorunludur; izleme ve yönetimi (utility) ve hesaplama desteğini (compute) gerektiğinde etkinleştirin.',
|
||||
'Kapsayıcı için NVIDIA GPU yeteneklerini yapılandırın. Genellikle varsayılan seçenekleri korumanız önerilir.\n• gpu: Kapsayıcının GPU erişimine izin verir. Zorunludur.\n• utility: nvidia-smi gibi araçlarla GPU durum sorgularını ve izlemeyi destekler.\n• compute: CUDA dahil GPU hesaplamalarını destekler. Genellikle model çıkarımı için gereklidir.',
|
||||
gpuSelectRequired: 'En az bir kullanılabilir GPU aygıtı seçin.',
|
||||
gpuUnsupported: 'Desteklenmiyor',
|
||||
gpuNotDetected: 'Desteklenen hızlandırıcı algılanmadı',
|
||||
|
||||
@@ -989,7 +989,8 @@ const message = {
|
||||
gpuSpecificHelper: '手動選擇特定加速卡。',
|
||||
gpuCountRequired: '請輸入大於 0 的整數',
|
||||
gpuDevices: 'GPU 裝置',
|
||||
gpuCapabilitiesHelper: 'GPU 存取為必選項,可依需求啟用監控管理(utility)和運算支援(compute)。',
|
||||
gpuCapabilitiesHelper:
|
||||
'設定容器使用 NVIDIA GPU 的能力,通常建議保留預設選項。\n• gpu:允許容器存取 GPU,必選。\n• utility:支援 GPU 狀態查詢和監控,例如 nvidia-smi。\n• compute:支援 CUDA 等 GPU 運算,模型推論通常需要啟用。',
|
||||
gpuSelectRequired: '請選擇至少一個目前可用的 GPU 裝置',
|
||||
gpuUnsupported: '不支援',
|
||||
gpuNotDetected: '未偵測到可用加速卡',
|
||||
|
||||
@@ -1002,7 +1002,8 @@ const message = {
|
||||
gpuSpecificHelper: '手动选择具体加速卡。',
|
||||
gpuCountRequired: '请输入大于 0 的整数',
|
||||
gpuDevices: 'GPU 设备',
|
||||
gpuCapabilitiesHelper: 'GPU 访问为必选项,可按需启用监控管理(utility)和计算支持(compute)。',
|
||||
gpuCapabilitiesHelper:
|
||||
'配置容器使用 NVIDIA GPU 的能力,通常建议保留默认选项。\n• gpu:允许容器访问 GPU,必选。\n• utility:支持 GPU 状态查询和监控,例如 nvidia-smi。\n• compute:支持 CUDA 等 GPU 计算,模型推理通常需要启用。',
|
||||
gpuSelectRequired: '请选择至少一个当前可用的 GPU 设备',
|
||||
gpuUnsupported: '不支持',
|
||||
gpuNotDetected: '未检测到可用加速卡',
|
||||
|
||||
@@ -104,12 +104,26 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="imageType === 'nvidia'" label="Capabilities" prop="gpu.capabilities">
|
||||
<template #label>
|
||||
<span class="gpu-capabilities-label">
|
||||
Capabilities
|
||||
<el-tooltip placement="top">
|
||||
<template #content>
|
||||
<div class="gpu-capabilities-help">
|
||||
{{ $t('aiTools.model.gpuCapabilitiesHelper') }}
|
||||
</div>
|
||||
</template>
|
||||
<el-icon tabindex="0" :aria-label="$t('aiTools.model.gpuCapabilitiesHelper')">
|
||||
<InfoFilled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</span>
|
||||
</template>
|
||||
<el-checkbox-group v-model="model.capabilities">
|
||||
<el-checkbox value="gpu" disabled>gpu</el-checkbox>
|
||||
<el-checkbox value="utility">utility</el-checkbox>
|
||||
<el-checkbox value="compute">compute</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<span class="input-help">{{ $t('aiTools.model.gpuCapabilitiesHelper') }}</span>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<span v-if="selectingDevices && gpuWarnings.length" class="input-help">{{ gpuWarnings.join('; ') }}</span>
|
||||
@@ -119,6 +133,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed, ref } from 'vue';
|
||||
import { InfoFilled } from '@element-plus/icons-vue';
|
||||
import { AI } from '@/api/interface/ai';
|
||||
import { loadModelGPUDevices } from '@/api/modules/ai';
|
||||
import i18n from '@/lang';
|
||||
@@ -244,6 +259,21 @@ defineExpose({ init, loading });
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@use '@/views/ai/model/components/form-section.scss';
|
||||
.gpu-capabilities-label {
|
||||
display: inline-flex;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
|
||||
.el-icon {
|
||||
font-size: 12px;
|
||||
color: var(--el-text-color-secondary);
|
||||
cursor: help;
|
||||
}
|
||||
}
|
||||
.gpu-capabilities-help {
|
||||
max-width: 360px;
|
||||
white-space: pre-line;
|
||||
}
|
||||
:global(.model-gpu-device-select .el-select-dropdown__item.is-selected::after) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -276,6 +276,13 @@
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('commons.button.log')" min-width="90">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="manageRef.open(row, 'log', true)" link type="primary">
|
||||
{{ $t('website.check') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('container.source')" min-width="170">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.status === 'Running' && row.containerName">
|
||||
@@ -667,10 +674,6 @@ const deploymentButtons = [
|
||||
disabled: operationDisabled,
|
||||
click: (row: Deployment) => syncRef.value.open(row),
|
||||
},
|
||||
{
|
||||
label: i18n.global.t('commons.button.log'),
|
||||
click: (row: Deployment) => manageRef.value.open(row, 'log', true),
|
||||
},
|
||||
{
|
||||
label: i18n.global.t('commons.button.delete'),
|
||||
permission: true,
|
||||
|
||||
Reference in New Issue
Block a user