|
|
|
@ -851,7 +851,11 @@ const artifactsLoading = ref(false);
|
|
|
|
<v-window v-model="mainTab">
|
|
|
|
<v-window v-model="mainTab">
|
|
|
|
<!-- ========= Details ========= -->
|
|
|
|
<!-- ========= Details ========= -->
|
|
|
|
<v-window-item value="details">
|
|
|
|
<v-window-item value="details">
|
|
|
|
<v-card flat class="bordered-box mb-6 w-100 rounded-lg pa-8">
|
|
|
|
<v-card
|
|
|
|
|
|
|
|
flat
|
|
|
|
|
|
|
|
class="bordered-box mb-6 w-100 rounded-lg pa-8"
|
|
|
|
|
|
|
|
color="grey-lighten-3"
|
|
|
|
|
|
|
|
>
|
|
|
|
<v-card-title class="grey lighten-4 py-2 px-4">
|
|
|
|
<v-card-title class="grey lighten-4 py-2 px-4">
|
|
|
|
<span class="font-weight-bold">Execution Information</span>
|
|
|
|
<span class="font-weight-bold">Execution Information</span>
|
|
|
|
</v-card-title>
|
|
|
|
</v-card-title>
|
|
|
|
@ -959,15 +963,15 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-row>
|
|
|
|
</v-row>
|
|
|
|
</v-card-text>
|
|
|
|
</v-card-text>
|
|
|
|
|
|
|
|
|
|
|
|
<v-sheet class="d-flex justify-end mb-2">
|
|
|
|
<div class="d-flex justify-end mb-2">
|
|
|
|
<v-btn color="primary" @click="emit('close')">Back to List</v-btn>
|
|
|
|
<v-btn color="primary" @click="emit('close')">Back to List</v-btn>
|
|
|
|
</v-sheet>
|
|
|
|
</div>
|
|
|
|
</v-card>
|
|
|
|
</v-card>
|
|
|
|
</v-window-item>
|
|
|
|
</v-window-item>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ========= Visualizations ========= -->
|
|
|
|
<!-- ========= Visualizations ========= -->
|
|
|
|
<v-window-item value="viz">
|
|
|
|
<v-window-item value="viz">
|
|
|
|
<v-card class="rounded-lg pa-8 w-100">
|
|
|
|
<v-card class="rounded-lg pa-8 w-100" color="grey-lighten-3">
|
|
|
|
<v-window v-model="vizTab">
|
|
|
|
<v-window v-model="vizTab">
|
|
|
|
<v-window-item value="metrics">
|
|
|
|
<v-window-item value="metrics">
|
|
|
|
<v-card-text>
|
|
|
|
<v-card-text>
|
|
|
|
@ -1030,15 +1034,28 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-row>
|
|
|
|
</v-row>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Selected Run -->
|
|
|
|
<!-- Selected Run -->
|
|
|
|
<v-card class="mb-6" variant="tonal">
|
|
|
|
<!-- Selected Run -->
|
|
|
|
<v-card-title class="py-2 px-4">Selected Run</v-card-title>
|
|
|
|
<v-card flat class="mb-6" color="grey-lighten-3">
|
|
|
|
<v-card-text class="px-4 pb-4">
|
|
|
|
<v-card-title
|
|
|
|
|
|
|
|
class="py-2 px-0 text-button text-medium-emphasis"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
Selected Run
|
|
|
|
|
|
|
|
</v-card-title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<v-card-text class="px-0">
|
|
|
|
<v-row>
|
|
|
|
<v-row>
|
|
|
|
|
|
|
|
<!-- 기본 정보 -->
|
|
|
|
<v-col cols="12" md="6">
|
|
|
|
<v-col cols="12" md="6">
|
|
|
|
<v-table density="comfortable">
|
|
|
|
<v-table density="comfortable">
|
|
|
|
|
|
|
|
<thead>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<th style="width: 40%">Field</th>
|
|
|
|
|
|
|
|
<th>Value</th>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
<td style="width: 40%">Run ID</td>
|
|
|
|
<td>Run ID</td>
|
|
|
|
<td>{{ runDetail?.info?.run_id || "—" }}</td>
|
|
|
|
<td>{{ runDetail?.info?.run_id || "—" }}</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
@ -1077,12 +1094,17 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-table>
|
|
|
|
</v-table>
|
|
|
|
</v-col>
|
|
|
|
</v-col>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 파라미터 + 태그 -->
|
|
|
|
<v-col cols="12" md="6">
|
|
|
|
<v-col cols="12" md="6">
|
|
|
|
<div class="text-subtitle-2 mb-2">Parameters</div>
|
|
|
|
<div
|
|
|
|
<v-table density="compact">
|
|
|
|
class="text-subtitle-2 text-medium-emphasis mb-2"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
Parameters
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<v-table density="compact" class="mb-4">
|
|
|
|
<thead>
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
<th>Key</th>
|
|
|
|
<th style="width: 40%">Key</th>
|
|
|
|
<th>Value</th>
|
|
|
|
<th>Value</th>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
</thead>
|
|
|
|
@ -1101,42 +1123,16 @@ const artifactsLoading = ref(false);
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</tbody>
|
|
|
|
</v-table>
|
|
|
|
</v-table>
|
|
|
|
</v-col>
|
|
|
|
|
|
|
|
</v-row>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<v-row class="mt-4">
|
|
|
|
<div
|
|
|
|
<v-col cols="12" md="6">
|
|
|
|
class="text-subtitle-2 text-medium-emphasis mb-2"
|
|
|
|
<div class="text-subtitle-2 mb-2">Metrics</div>
|
|
|
|
>
|
|
|
|
<v-table density="compact">
|
|
|
|
Tags
|
|
|
|
<thead>
|
|
|
|
</div>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<th>Metric</th>
|
|
|
|
|
|
|
|
<th>Value</th>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
<tr v-if="!runDetail?.data?.metrics?.length">
|
|
|
|
|
|
|
|
<td colspan="2" class="text-medium-emphasis">
|
|
|
|
|
|
|
|
No metrics
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr
|
|
|
|
|
|
|
|
v-for="m in runDetail?.data?.metrics || []"
|
|
|
|
|
|
|
|
:key="m.key"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<td>{{ m.key }}</td>
|
|
|
|
|
|
|
|
<td>{{ m.value }}</td>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
</v-table>
|
|
|
|
|
|
|
|
</v-col>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<v-col cols="12" md="6">
|
|
|
|
|
|
|
|
<div class="text-subtitle-2 mb-2">Tags</div>
|
|
|
|
|
|
|
|
<v-table density="compact">
|
|
|
|
<v-table density="compact">
|
|
|
|
<thead>
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
<th>Key</th>
|
|
|
|
<th style="width: 40%">Key</th>
|
|
|
|
<th>Value</th>
|
|
|
|
<th>Value</th>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
</thead>
|
|
|
|
@ -1166,7 +1162,7 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-card>
|
|
|
|
</v-card>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Model Metrics table -->
|
|
|
|
<!-- Model Metrics table -->
|
|
|
|
<v-card flat class="mb-6">
|
|
|
|
<v-card flat class="mb-6" color="grey-lighten-3">
|
|
|
|
<v-card-title
|
|
|
|
<v-card-title
|
|
|
|
class="py-2 px-0 text-button text-medium-emphasis"
|
|
|
|
class="py-2 px-0 text-button text-medium-emphasis"
|
|
|
|
>Model Metrics (selected run)</v-card-title
|
|
|
|
>Model Metrics (selected run)</v-card-title
|
|
|
|
@ -1196,7 +1192,7 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-card>
|
|
|
|
</v-card>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Bar chart -->
|
|
|
|
<!-- Bar chart -->
|
|
|
|
<v-card flat class="mb-6">
|
|
|
|
<v-card flat class="mb-6" color="grey-lighten-3">
|
|
|
|
<v-card-title
|
|
|
|
<v-card-title
|
|
|
|
class="py-2 px-0 text-button text-medium-emphasis"
|
|
|
|
class="py-2 px-0 text-button text-medium-emphasis"
|
|
|
|
>Metrics (bar chart)</v-card-title
|
|
|
|
>Metrics (bar chart)</v-card-title
|
|
|
|
@ -1226,15 +1222,15 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-window-item>
|
|
|
|
</v-window-item>
|
|
|
|
</v-window>
|
|
|
|
</v-window>
|
|
|
|
|
|
|
|
|
|
|
|
<v-sheet class="d-flex justify-end mb-2">
|
|
|
|
<div class="d-flex justify-end mb-2">
|
|
|
|
<v-btn color="primary" @click="emit('close')">Back to List</v-btn>
|
|
|
|
<v-btn color="primary" @click="emit('close')">Back to List</v-btn>
|
|
|
|
</v-sheet>
|
|
|
|
</div>
|
|
|
|
</v-card>
|
|
|
|
</v-card>
|
|
|
|
</v-window-item>
|
|
|
|
</v-window-item>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ========= Artifacts (Two-step, Flat) ========= -->
|
|
|
|
<!-- ========= Artifacts (Two-step, Flat) ========= -->
|
|
|
|
<v-window-item value="artifacts">
|
|
|
|
<v-window-item value="artifacts">
|
|
|
|
<v-card class="rounded-lg pa-8 w-100">
|
|
|
|
<v-card class="rounded-lg pa-8 w-100" color="grey-lighten-3">
|
|
|
|
<v-card-text>
|
|
|
|
<v-card-text>
|
|
|
|
<v-row class="mb-4" align="center">
|
|
|
|
<v-row class="mb-4" align="center">
|
|
|
|
<v-col
|
|
|
|
<v-col
|
|
|
|
@ -1278,6 +1274,7 @@ const artifactsLoading = ref(false);
|
|
|
|
<v-icon start size="16">mdi-check-decagram</v-icon>
|
|
|
|
<v-icon start size="16">mdi-check-decagram</v-icon>
|
|
|
|
{{ externalAuth?.name || externalAuth?.id }}
|
|
|
|
{{ externalAuth?.name || externalAuth?.id }}
|
|
|
|
</v-chip>
|
|
|
|
</v-chip>
|
|
|
|
|
|
|
|
|
|
|
|
<v-btn
|
|
|
|
<v-btn
|
|
|
|
size="small"
|
|
|
|
size="small"
|
|
|
|
color="primary"
|
|
|
|
color="primary"
|
|
|
|
@ -1287,6 +1284,7 @@ const artifactsLoading = ref(false);
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<v-icon start size="16">mdi-rocket-launch</v-icon> Deploy
|
|
|
|
<v-icon start size="16">mdi-rocket-launch</v-icon> Deploy
|
|
|
|
</v-btn>
|
|
|
|
</v-btn>
|
|
|
|
|
|
|
|
|
|
|
|
<v-btn
|
|
|
|
<v-btn
|
|
|
|
v-if="isAuthenticated"
|
|
|
|
v-if="isAuthenticated"
|
|
|
|
size="small"
|
|
|
|
size="small"
|
|
|
|
@ -1325,9 +1323,14 @@ const artifactsLoading = ref(false);
|
|
|
|
{{ twoStepError }}
|
|
|
|
{{ twoStepError }}
|
|
|
|
</v-alert>
|
|
|
|
</v-alert>
|
|
|
|
|
|
|
|
|
|
|
|
<v-card variant="tonal">
|
|
|
|
<!-- 바깥 카드도 flat, 타이틀 톤 통일 -->
|
|
|
|
<v-card-title class="py-2 px-4">Artifacts</v-card-title>
|
|
|
|
<v-card flat color="grey-lighten-3" class="mb-2">
|
|
|
|
<v-divider />
|
|
|
|
<v-card-title
|
|
|
|
|
|
|
|
class="py-2 px-0 text-button text-medium-emphasis"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
Artifacts
|
|
|
|
|
|
|
|
</v-card-title>
|
|
|
|
|
|
|
|
|
|
|
|
<v-card-text class="px-0">
|
|
|
|
<v-card-text class="px-0">
|
|
|
|
<v-table density="comfortable">
|
|
|
|
<v-table density="comfortable">
|
|
|
|
<thead>
|
|
|
|
<thead>
|
|
|
|
@ -1338,6 +1341,7 @@ const artifactsLoading = ref(false);
|
|
|
|
<th style="width: 180px" class="text-right">Actions</th>
|
|
|
|
<th style="width: 180px" class="text-right">Actions</th>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<tbody>
|
|
|
|
<tr v-if="twoStepLoading">
|
|
|
|
<tr v-if="twoStepLoading">
|
|
|
|
<td
|
|
|
|
<td
|
|
|
|
@ -1413,9 +1417,7 @@ const artifactsLoading = ref(false);
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template v-else>
|
|
|
|
<template v-else>
|
|
|
|
<v-btn size="small" variant="text" @click="">
|
|
|
|
<v-btn size="small" variant="text">Open</v-btn>
|
|
|
|
Open
|
|
|
|
|
|
|
|
</v-btn>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</td>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
@ -1427,9 +1429,9 @@ const artifactsLoading = ref(false);
|
|
|
|
</v-card>
|
|
|
|
</v-card>
|
|
|
|
</v-card-text>
|
|
|
|
</v-card-text>
|
|
|
|
|
|
|
|
|
|
|
|
<v-sheet class="d-flex justify-end mb-2">
|
|
|
|
<div class="d-flex justify-end mb-2">
|
|
|
|
<v-btn color="primary" @click="emit('close')">Back to List</v-btn>
|
|
|
|
<v-btn color="primary" @click="emit('close')">Back to List</v-btn>
|
|
|
|
</v-sheet>
|
|
|
|
</div>
|
|
|
|
</v-card>
|
|
|
|
</v-card>
|
|
|
|
</v-window-item>
|
|
|
|
</v-window-item>
|
|
|
|
</v-window>
|
|
|
|
</v-window>
|
|
|
|
|