Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions agent/app/api/v2/file.go
Original file line number Diff line number Diff line change
Expand Up @@ -969,16 +969,6 @@ func (b *BaseApi) BatchChangeModeAndOwner(c *gin.Context) {
helper.Success(c)
}

func (b *BaseApi) GetPathByType(c *gin.Context) {
pathType, ok := c.Params.Get("type")
if !ok {
helper.BadRequest(c, errors.New("error pathType id in path"))
return
}
resPath := fileService.GetPathByType(pathType)
helper.SuccessWithData(c, resPath)
}

// @Tags File
// @Summary system mount
// @Accept json
Expand Down
10 changes: 10 additions & 0 deletions agent/app/api/v2/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,16 @@ func (b *BaseApi) UpdateFileHistorySetting(c *gin.Context) {
helper.Success(c)
}

// @Tags System Setting
// @Summary Load website dir
// @Success 200 {string} path
// @Security ApiKeyAuth
// @Security Timestamp
// @Router /settings/website/dir [get]
func (b *BaseApi) LoadWebsiteDir(c *gin.Context) {
helper.SuccessWithData(c, settingService.GetWebsiteDir())
}

// @Tags System Setting
// @Summary Load local backup dir
// @Success 200 {string} path
Expand Down
12 changes: 0 additions & 12 deletions agent/app/service/file.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ type IFileService interface {
BatchChangeModeAndOwner(op request.FileRoleReq) error
ReadLogByLine(req request.FileReadByLineReq) (*response.FileLineContent, error)

GetPathByType(pathType string) string
BatchCheckFiles(req request.FilePathsCheck) []response.ExistFileInfo
GetHostMount() []dto.DiskInfo
GetUsersAndGroups() (*response.UserGroupResponse, error)
Expand Down Expand Up @@ -921,17 +920,6 @@ func (f *FileService) ReadLogByLine(req request.FileReadByLineReq) (*response.Fi
return res, nil
}

func (f *FileService) GetPathByType(pathType string) string {
if pathType == "websiteDir" {
value, _ := settingRepo.GetValueByKey("WEBSITE_DIR")
if value == "" {
return path.Join(global.Dir.BaseDir, "1panel", "www")
}
return value
}
return ""
}

func (f *FileService) BatchCheckFiles(req request.FilePathsCheck) []response.ExistFileInfo {
fileList := make([]response.ExistFileInfo, 0, len(req.Paths))
for _, filePath := range req.Paths {
Expand Down
11 changes: 11 additions & 0 deletions agent/app/service/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"encoding/base64"
"encoding/json"
"errors"
"path"
"strconv"
"strings"
"time"
Expand All @@ -15,6 +16,7 @@ import (
"github.com/1Panel-dev/1Panel/agent/app/repo"
"github.com/1Panel-dev/1Panel/agent/buserr"
"github.com/1Panel-dev/1Panel/agent/constant"
"github.com/1Panel-dev/1Panel/agent/global"
"github.com/1Panel-dev/1Panel/agent/utils/encrypt"
"github.com/1Panel-dev/1Panel/agent/utils/ssh"
terminalai "github.com/1Panel-dev/1Panel/agent/utils/terminal/ai"
Expand All @@ -28,6 +30,7 @@ type ISettingService interface {
GetTerminalAIInfo() (*dto.TerminalAIInfo, error)
GetFileManageAIInfo() (*dto.FileManageAIInfo, error)
GetFileHistorySettingInfo() (*response.FileHistorySettingInfo, error)
GetWebsiteDir() string
Update(key, value string) error
UpdateTerminalAI(req dto.TerminalAIInfo) error
UpdateFileManageAI(req dto.FileManageAIInfo) error
Expand Down Expand Up @@ -112,6 +115,14 @@ func (u *SettingService) GetFileHistorySettingInfo() (*response.FileHistorySetti
return historyService.GetSettingInfo()
}

func (u *SettingService) GetWebsiteDir() string {
value, _ := settingRepo.GetValueByKey("WEBSITE_DIR")
if value == "" {
return path.Join(global.Dir.BaseDir, "1panel", "www")
}
return value
}

func (u *SettingService) Update(key, value string) error {
return settingRepo.UpdateOrCreate(key, value)
}
Expand Down
1 change: 1 addition & 0 deletions agent/i18n/lang/zh-Hant.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,7 @@ Clamscan: 'ๆŽƒๆ {{ .name }}'
TaskScan: 'ๆŽƒๆ'
OllamaModelPull: 'ๆ‹‰ๅ– Ollama ๆจกๅž‹{{ .name }}'
OllamaModelSize: 'ๅ–ๅพ— Ollama ๆจกๅž‹{{ .name }} ๅคงๅฐ'
AIBenchmarkRun: 'ๅŸท่กŒ AI ๅŸบๆบ–ๆธฌ่ฉฆ'
Snapshot: 'ๅฟซ็…ง'
SnapDBInfo: 'ๅฏซๅ…ฅ1Panel ่ณ‡ๆ–™ๅบซ่ณ‡่จŠ'
SnapCopy: '่ค‡่ฃฝๆช”ๆกˆ&็›ฎ้Œ„{{ .name }}'
Expand Down
1 change: 0 additions & 1 deletion agent/router/ro_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ func (f *FileRouter) InitRouter(Router *gin.RouterGroup) {
fileRouter.POST("/favorite", baseApi.CreateFavorite)
fileRouter.POST("/favorite/del", baseApi.DeleteFavorite)

fileRouter.GET("/path/:type", baseApi.GetPathByType)
fileRouter.POST("/mount", baseApi.GetHostMount)
fileRouter.POST("/user/group", baseApi.GetUsersAndGroups)
fileRouter.POST("/convert", baseApi.ConvertFile)
Expand Down
1 change: 1 addition & 0 deletions agent/router/ro_setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func (s *SettingRouter) InitRouter(Router *gin.RouterGroup) {
settingRouter.POST("/terminal/ai/search", baseApi.GetTerminalAISettingInfo)
settingRouter.POST("/files/ai/search", baseApi.GetFileManageAISettingInfo)
settingRouter.POST("/file-history/search", baseApi.GetFileHistorySettingInfo)
settingRouter.GET("/website/dir", baseApi.LoadWebsiteDir)
settingRouter.GET("/search/available", baseApi.GetSystemAvailable)
settingRouter.POST("/update", baseApi.UpdateSetting)
settingRouter.POST("/terminal/ai/update", baseApi.UpdateTerminalAISetting)
Expand Down
1 change: 1 addition & 0 deletions core/i18n/lang/zh-Hant.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ TaskUpgrade: "ๅ‡็ดš"
TaskSync: "ๅŒๆญฅ"
TaskSyncForNode: "ๅŒๆญฅ็ฏ€้ปž่ณ‡ๆ–™"
TaskBackup: "ๅ‚™ไปฝ"
AIBenchmarkRun: "ๅŸท่กŒ AI ๅŸบๆบ–ๆธฌ่ฉฆ"
SuccessStatus: "{{ .name }} ๆˆๅŠŸ"
FailedStatus: "{{ .name }} ๅคฑๆ•— {{ .err }}"
Start: "้–‹ๅง‹"
Expand Down
4 changes: 0 additions & 4 deletions frontend/src/api/modules/files.ts
Original file line number Diff line number Diff line change
Expand Up @@ -214,10 +214,6 @@ export const getRecycleStatusByNode = (node: string) => {
return http.get<string>('files/recycle/status?operateNode=' + node);
};

export const getPathByType = (pathType: string) => {
return http.get<string>(`files/path/${pathType}`);
};

export const searchHostMount = () => {
return http.post<Dashboard.DiskInfo[]>(`/files/mount`);
};
Expand Down
3 changes: 3 additions & 0 deletions frontend/src/api/modules/setting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ export const loadBaseDir = (node?: string) => {
const query = node ? `?operateNode=${node}` : '';
return http.get<string>(`/settings/basedir${query}`);
};
export const loadWebsiteDir = () => {
return http.get<string>(`/settings/website/dir`);
};
export const loadDaemonJsonPath = () => {
return http.get<string>(`/settings/daemonjson`, {});
};
Expand Down
3 changes: 3 additions & 0 deletions frontend/src/lang/modules/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ const message = {
conn: 'Connect',
disConn: 'Disconnect',
clean: 'Clear',
cleanAll: 'Clear all',
selectAll: 'Select all',
login: 'Sign in',
close: 'Close',
Expand Down Expand Up @@ -3783,6 +3784,8 @@ const message = {
ai_mcp_view: 'MCP View',
ai_mcp_manage: 'MCP Manage',
ai_gpu_view: 'GPU View',
ai_benchmark_view: 'AI Benchmark View',
ai_benchmark_manage: 'AI Benchmark Manage',
website_view: 'Website View',
website_manage: 'Website Manage',
website_cert_view: 'Certificate View',
Expand Down
56 changes: 56 additions & 0 deletions frontend/src/lang/modules/es-es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ const message = {
conn: 'Conectar',
disconn: 'Desconectar',
clean: 'Limpiar',
cleanAll: 'Limpiar todo',
selectAll: 'Seleccionar todo',
login: 'Iniciar sesiรณn',
close: 'Cerrar',
Expand Down Expand Up @@ -971,6 +972,59 @@ const message = {
validationModelMapEmpty: 'Los nombres del mapeo de modelos no pueden estar vacรญos',
validationModelMapDuplicate: 'El modelo solicitado {0} estรก duplicado',
},
benchmark: {
title: 'Benchmark',
create: 'Crear',
launchCommand: 'Comando de inicio',
retest: 'Volver a probar',
statusRunning: 'En ejecuciรณn',
statusWaiting: 'En espera',
base: 'Informaciรณn bรกsica',
backend: 'Backend',
baseUrl: 'URL base',
endpoint: 'Endpoint',
tokenizer: 'Tokenizador',
tokenizerPlaceholder:
'Seleccione o introduzca un directorio local de tokenizador, p. ej. /opt/1panel/tokenizers/DeepSeek-V3',
runConfig: 'Configuraciรณn de ejecuciรณn',
rawResult: 'Resultado bruto',
resultMetrics: 'Mรฉtricas de resultado',
contextTokens: 'Longitud de contexto',
contextTokensHelper: 'Suma del lรญmite de tokens de entrada y salida de este benchmark.',
outputThroughput: 'Rendimiento de salida',
outputThroughputHelper: 'Tokens de salida generados por segundo. Un valor mayor indica mรกs velocidad.',
totalThroughput: 'Rendimiento total',
totalThroughputHelper:
'Tokens de entrada y salida procesados por segundo. Se usa para medir la capacidad general.',
firstTokenLatency: 'Latencia del primer token',
firstTokenLatencyHelper:
'Tiempo desde el envรญo de la solicitud hasta recibir el primer token. Un valor menor indica respuesta mรกs rรกpida.',
inputTokens: 'Tokens de entrada',
outputTokens: 'Tokens de salida',
tokenValueHelper: 'Introduzca un entero positivo o valor con k, p. ej. 512, 1k, 32k',
numPrompts: 'Prompts',
concurrency: 'Concurrencia',
requestRate: 'Tasa de solicitudes',
requestRateUnlimited: 'Ilimitado (mรกximo rendimiento)',
requestRateCustom: 'QPS personalizado',
requestRateCustomPlaceholder: 'Solicitudes por segundo, p. ej. 2.5',
successfulRequests: 'Solicitudes correctas',
failedRequests: 'Solicitudes fallidas',
requestThroughput: 'Rendimiento de solicitudes',
ttftMean: 'TTFT promedio',
ttftMedian: 'TTFT mediana',
ttftP99: 'TTFT P99',
tpotMean: 'TPOT promedio',
tpotMedian: 'TPOT mediana',
tpotP99: 'TPOT P99',
itlMean: 'ITL promedio',
itlMedian: 'ITL mediana',
itlP99: 'ITL P99',
timeout: 'Tiempo de espera (segundos)',
image: 'Imagen vLLM',
ignoreEos: 'Ignorar EOS',
extraHeaders: 'Encabezados adicionales',
},
gpu: {
gpu: 'Monitoreo de GPU',
gpuHelper: 'El sistema no detectรณ comandos NVIDIA-SMI o XPU-SMI. ยกCompruebe e intรฉntelo de nuevo!',
Expand Down Expand Up @@ -3770,6 +3824,8 @@ const message = {
ai_mcp_view: 'Vista de MCP',
ai_mcp_manage: 'Gestiรณn de MCP',
ai_gpu_view: 'Vista de GPU',
ai_benchmark_view: 'Vista de benchmark de IA',
ai_benchmark_manage: 'Gestiรณn de benchmark de IA',
website_view: 'Vista del sitio web',
website_manage: 'Gestiรณn del sitio web',
website_cert_view: 'Vista de certificados',
Expand Down
54 changes: 54 additions & 0 deletions frontend/src/lang/modules/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const message = {
conn: 'ๆŽฅ็ถš',
disConn: 'ๅˆ‡ๆ–ญ',
clean: 'ใ‚ฏใƒชใ‚ข',
cleanAll: 'ใ™ในใฆใ‚ฏใƒชใ‚ข',
selectAll: 'ใ™ในใฆ้ธๆŠž',
login: 'ใ‚ตใ‚คใƒณใ‚คใƒณ',
close: '้–‰ใ˜ใ‚‹',
Expand Down Expand Up @@ -961,6 +962,57 @@ const message = {
validationModelMapEmpty: 'ใƒขใƒ‡ใƒซใƒžใƒƒใƒ”ใƒณใ‚ฐใฎใƒขใƒ‡ใƒซๅใฏ็ฉบใซใงใใพใ›ใ‚“',
validationModelMapDuplicate: 'ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒขใƒ‡ใƒซ {0} ใŒ้‡่ค‡ใ—ใฆใ„ใพใ™',
},
benchmark: {
title: 'ใƒ™ใƒณใƒใƒžใƒผใ‚ฏ',
create: 'ไฝœๆˆ',
launchCommand: '่ตทๅ‹•ใ‚ณใƒžใƒณใƒ‰',
retest: 'ๅ†ใƒ†ใ‚นใƒˆ',
statusRunning: 'ๅฎŸ่กŒไธญ',
statusWaiting: 'ๅพ…ๆฉŸไธญ',
base: 'ๅŸบๆœฌๆƒ…ๅ ฑ',
backend: 'ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰',
baseUrl: 'Base URL',
endpoint: 'ใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆ',
tokenizer: 'ใƒˆใƒผใ‚ฏใƒŠใ‚คใ‚ถใƒผ',
tokenizerPlaceholder:
'ใƒญใƒผใ‚ซใƒซใƒˆใƒผใ‚ฏใƒŠใ‚คใ‚ถใƒผใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’้ธๆŠžใพใŸใฏๅ…ฅๅŠ›ใ—ใฆใใ ใ•ใ„ใ€‚ไพ‹: /opt/1panel/tokenizers/DeepSeek-V3',
runConfig: 'ๅฎŸ่กŒ่จญๅฎš',
rawResult: '็”Ÿใƒ‡ใƒผใ‚ฟ',
resultMetrics: '็ตๆžœๆŒ‡ๆจ™',
contextTokens: 'ใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆ้•ท',
contextTokensHelper: 'ใ“ใฎใƒ™ใƒณใƒใƒžใƒผใ‚ฏใฎๅ…ฅๅŠ› Token ไธŠ้™ใจๅ‡บๅŠ› Token ไธŠ้™ใฎๅˆ่จˆใงใ™ใ€‚',
outputThroughput: 'ๅ‡บๅŠ›ใ‚นใƒซใƒผใƒ—ใƒƒใƒˆ',
outputThroughputHelper: '1 ็ง’ใ‚ใŸใ‚Šใซ็”Ÿๆˆใ•ใ‚Œใ‚‹ๅ‡บๅŠ› Token ๆ•ฐใงใ™ใ€‚้ซ˜ใ„ใปใฉ็”ŸๆˆใŒ้€Ÿใใชใ‚Šใพใ™ใ€‚',
totalThroughput: 'ๅˆ่จˆใ‚นใƒซใƒผใƒ—ใƒƒใƒˆ',
totalThroughputHelper: '1 ็ง’ใ‚ใŸใ‚Šใซๅ‡ฆ็†ใ•ใ‚Œใ‚‹ๅ…ฅๅŠ›ใจๅ‡บๅŠ› Token ใฎๅˆ่จˆใงใ€ๅ…จไฝ“ๆ€ง่ƒฝใฎๆธฌๅฎšใซไฝฟใ„ใพใ™ใ€‚',
firstTokenLatency: 'ๅˆๅ›ž Token ใƒฌใ‚คใƒ†ใƒณใ‚ท',
firstTokenLatencyHelper: 'ใƒชใ‚ฏใ‚จใ‚นใƒˆ้€ไฟกใ‹ใ‚‰ๆœ€ๅˆใฎ Token ๅ—ไฟกใพใงใฎๆ™‚้–“ใงใ™ใ€‚ไฝŽใ„ใปใฉๅฟœ็ญ”ใŒ้€Ÿใใชใ‚Šใพใ™ใ€‚',
inputTokens: 'ๅ…ฅๅŠ› Token',
outputTokens: 'ๅ‡บๅŠ› Token',
tokenValueHelper: 'ๆญฃใฎๆ•ดๆ•ฐใพใŸใฏ k ๅ˜ไฝใ‚’ๅ…ฅๅŠ›ใ—ใฆใใ ใ•ใ„ใ€‚ไพ‹: 512ใ€1kใ€32k',
numPrompts: 'ใƒ—ใƒญใƒณใƒ—ใƒˆๆ•ฐ',
concurrency: 'ๅŒๆ™‚ๅฎŸ่กŒๆ•ฐ',
requestRate: 'ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒฌใƒผใƒˆ',
requestRateUnlimited: '็„กๅˆถ้™๏ผˆๆœ€ๅคงใ‚นใƒซใƒผใƒ—ใƒƒใƒˆ๏ผ‰',
requestRateCustom: 'ใ‚ซใ‚นใ‚ฟใƒ  QPS',
requestRateCustomPlaceholder: '1 ็ง’ใ‚ใŸใ‚Šใฎใƒชใ‚ฏใ‚จใ‚นใƒˆๆ•ฐใ€‚ไพ‹: 2.5',
successfulRequests: 'ๆˆๅŠŸใƒชใ‚ฏใ‚จใ‚นใƒˆ',
failedRequests: 'ๅคฑๆ•—ใƒชใ‚ฏใ‚จใ‚นใƒˆ',
requestThroughput: 'ใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚นใƒซใƒผใƒ—ใƒƒใƒˆ',
ttftMean: 'ๅนณๅ‡ TTFT',
ttftMedian: 'ไธญๅคฎๅ€ค TTFT',
ttftP99: 'P99 TTFT',
tpotMean: 'ๅนณๅ‡ TPOT',
tpotMedian: 'ไธญๅคฎๅ€ค TPOT',
tpotP99: 'P99 TPOT',
itlMean: 'ๅนณๅ‡ ITL',
itlMedian: 'ไธญๅคฎๅ€ค ITL',
itlP99: 'P99 ITL',
timeout: 'ใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆ๏ผˆ็ง’๏ผ‰',
image: 'vLLM ใ‚คใƒกใƒผใ‚ธ',
ignoreEos: 'EOS ใ‚’็„ก่ฆ–',
extraHeaders: '่ฟฝๅŠ ใƒ˜ใƒƒใƒ€ใƒผ',
},
gpu: {
gpu: 'GPU ็›ฃ่ฆ–',
gpuHelper:
Expand Down Expand Up @@ -3755,6 +3807,8 @@ const message = {
ai_mcp_view: 'MCP ่กจ็คบ',
ai_mcp_manage: 'MCP ็ฎก็†',
ai_gpu_view: 'GPU ่กจ็คบ',
ai_benchmark_view: 'AI ใƒ™ใƒณใƒใƒžใƒผใ‚ฏ่กจ็คบ',
ai_benchmark_manage: 'AI ใƒ™ใƒณใƒใƒžใƒผใ‚ฏ็ฎก็†',
website_view: 'ใ‚ตใ‚คใƒˆ่กจ็คบ',
website_manage: 'ใ‚ตใ‚คใƒˆ็ฎก็†',
website_cert_view: '่จผๆ˜Žๆ›ธ่กจ็คบ',
Expand Down
54 changes: 54 additions & 0 deletions frontend/src/lang/modules/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const message = {
conn: '์—ฐ๊ฒฐ',
disConn: '์—ฐ๊ฒฐ ํ•ด์ œ',
clean: '์ง€์šฐ๊ธฐ',
cleanAll: '๋ชจ๋‘ ์ง€์šฐ๊ธฐ',
selectAll: '์ „์ฒด ์„ ํƒ',
login: '๋กœ๊ทธ์ธ',
close: '๋‹ซ๊ธฐ',
Expand Down Expand Up @@ -945,6 +946,57 @@ const message = {
validationModelMapEmpty: '๋ชจ๋ธ ๋งคํ•‘์˜ ๋ชจ๋ธ ์ด๋ฆ„์€ ๋น„์›Œ ๋‘˜ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค',
validationModelMapDuplicate: '์š”์ฒญ ๋ชจ๋ธ {0}์ด(๊ฐ€) ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค',
},
benchmark: {
title: '๋ฒค์น˜๋งˆํฌ',
create: '์ƒ์„ฑ',
launchCommand: '์‹œ์ž‘ ๋ช…๋ น',
retest: '๋‹ค์‹œ ํ…Œ์ŠคํŠธ',
statusRunning: '์‹คํ–‰ ์ค‘',
statusWaiting: '๋Œ€๊ธฐ ์ค‘',
base: '๊ธฐ๋ณธ ์ •๋ณด',
backend: '๋ฐฑ์—”๋“œ',
baseUrl: 'Base URL',
endpoint: '์—”๋“œํฌ์ธํŠธ',
tokenizer: 'ํ† ํฌ๋‚˜์ด์ €',
tokenizerPlaceholder:
'๋กœ์ปฌ ํ† ํฌ๋‚˜์ด์ € ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ž…๋ ฅํ•˜์„ธ์š”. ์˜ˆ: /opt/1panel/tokenizers/DeepSeek-V3',
runConfig: '์‹คํ–‰ ๊ตฌ์„ฑ',
rawResult: '์›์‹œ ๊ฒฐ๊ณผ',
resultMetrics: '๊ฒฐ๊ณผ ์ง€ํ‘œ',
contextTokens: '์ปจํ…์ŠคํŠธ ๊ธธ์ด',
contextTokensHelper: '์ด ๋ฒค์น˜๋งˆํฌ์˜ ์ž…๋ ฅ Token ์ œํ•œ๊ณผ ์ถœ๋ ฅ Token ์ œํ•œ์˜ ํ•ฉ๊ณ„์ž…๋‹ˆ๋‹ค.',
outputThroughput: '์ถœ๋ ฅ ์ฒ˜๋ฆฌ๋Ÿ‰',
outputThroughputHelper: '์ดˆ๋‹น ์ƒ์„ฑ๋œ ์ถœ๋ ฅ Token ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋†’์„์ˆ˜๋ก ์ƒ์„ฑ ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค.',
totalThroughput: '์ด ์ฒ˜๋ฆฌ๋Ÿ‰',
totalThroughputHelper: '์ดˆ๋‹น ์ฒ˜๋ฆฌ๋œ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ Token ์ˆ˜๋กœ ์ „์ฒด ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.',
firstTokenLatency: '์ฒซ Token ์ง€์—ฐ ์‹œ๊ฐ„',
firstTokenLatencyHelper: '์š”์ฒญ ์ „์†ก๋ถ€ํ„ฐ ์ฒซ Token ์ˆ˜์‹ ๊นŒ์ง€์˜ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋‚ฎ์„์ˆ˜๋ก ์‘๋‹ต์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.',
inputTokens: '์ž…๋ ฅ Token',
outputTokens: '์ถœ๋ ฅ Token',
tokenValueHelper: '์–‘์˜ ์ •์ˆ˜ ๋˜๋Š” k ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”. ์˜ˆ: 512, 1k, 32k',
numPrompts: 'ํ”„๋กฌํ”„ํŠธ ์ˆ˜',
concurrency: '๋™์‹œ์„ฑ',
requestRate: '์š”์ฒญ ์†๋„',
requestRateUnlimited: '๋ฌด์ œํ•œ(์ตœ๋Œ€ ์ฒ˜๋ฆฌ๋Ÿ‰)',
requestRateCustom: '์‚ฌ์šฉ์ž ์ง€์ • QPS',
requestRateCustomPlaceholder: '์ดˆ๋‹น ์š”์ฒญ ์ˆ˜, ์˜ˆ: 2.5',
successfulRequests: '์„ฑ๊ณตํ•œ ์š”์ฒญ',
failedRequests: '์‹คํŒจํ•œ ์š”์ฒญ',
requestThroughput: '์š”์ฒญ ์ฒ˜๋ฆฌ๋Ÿ‰',
ttftMean: 'ํ‰๊ท  TTFT',
ttftMedian: '์ค‘์•™๊ฐ’ TTFT',
ttftP99: 'P99 TTFT',
tpotMean: 'ํ‰๊ท  TPOT',
tpotMedian: '์ค‘์•™๊ฐ’ TPOT',
tpotP99: 'P99 TPOT',
itlMean: 'ํ‰๊ท  ITL',
itlMedian: '์ค‘์•™๊ฐ’ ITL',
itlP99: 'P99 ITL',
timeout: '์‹œ๊ฐ„ ์ดˆ๊ณผ(์ดˆ)',
image: 'vLLM ์ด๋ฏธ์ง€',
ignoreEos: 'EOS ๋ฌด์‹œ',
extraHeaders: '์ถ”๊ฐ€ ํ—ค๋”',
},
gpu: {
gpu: 'GPU ๋ชจ๋‹ˆํ„ฐ๋ง',
gpuHelper: '์‹œ์Šคํ…œ์—์„œ NVIDIA-SMI ๋˜๋Š” XPU-SMI ๋ช…๋ น์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”!',
Expand Down Expand Up @@ -3670,6 +3722,8 @@ const message = {
ai_mcp_view: 'MCP ๋ณด๊ธฐ',
ai_mcp_manage: 'MCP ๊ด€๋ฆฌ',
ai_gpu_view: 'GPU ๋ณด๊ธฐ',
ai_benchmark_view: 'AI ๋ฒค์น˜๋งˆํฌ ๋ณด๊ธฐ',
ai_benchmark_manage: 'AI ๋ฒค์น˜๋งˆํฌ ๊ด€๋ฆฌ',
website_view: '์›น์‚ฌ์ดํŠธ ๋ณด๊ธฐ',
website_manage: '์›น์‚ฌ์ดํŠธ ๊ด€๋ฆฌ',
website_cert_view: '์ธ์ฆ์„œ ๋ณด๊ธฐ',
Expand Down
Loading
Loading