From 6a357c5bb4d16498ac8a3a344db475dd445fb891 Mon Sep 17 00:00:00 2001 From: cp3hnu Date: Tue, 26 Nov 2024 09:50:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E9=9B=86=E6=88=90=E6=9C=8D=E5=8A=A1=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/ParameterSelect/config.tsx | 22 +++++++++++++ .../ModelDeployment/CreateVersion/index.tsx | 33 +++++++++---------- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/react-ui/src/components/ParameterSelect/config.tsx b/react-ui/src/components/ParameterSelect/config.tsx index 757e2a11..2548f44c 100644 --- a/react-ui/src/components/ParameterSelect/config.tsx +++ b/react-ui/src/components/ParameterSelect/config.tsx @@ -1,7 +1,10 @@ +import { ServiceData } from '@/pages/ModelDeployment/types'; import { getDatasetList, getModelList } from '@/services/dataset/index.js'; +import { getServiceListReq } from '@/services/modelDeployment'; import { getComputingResourceReq } from '@/services/pipeline'; import { ComputingResource } from '@/types'; import { type SelectProps } from 'antd'; +import { pick } from 'lodash'; // 过滤资源规格 const filterResourceStandard: SelectProps['filterOption'] = ( @@ -62,6 +65,25 @@ export const paramSelectConfig: Record = { }, optionFilterProp: 'name', }, + service: { + getOptions: async () => { + const res = await getServiceListReq({ + page: 0, + size: 1000, + }); + return ( + res?.data?.content?.map((item: ServiceData) => ({ + label: item.service_name, + value: JSON.stringify(pick(item, ['id', 'service_name'])), + })) ?? [] + ); + }, + fieldNames: { + label: 'label', + value: 'value', + }, + optionFilterProp: 'label', + }, resource: { getOptions: async () => { const res = await getComputingResourceReq({ diff --git a/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx b/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx index 60ac8fe8..56aeb333 100644 --- a/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx +++ b/react-ui/src/pages/ModelDeployment/CreateVersion/index.tsx @@ -24,7 +24,7 @@ import SessionStorage from '@/utils/sessionStorage'; import { modalConfirm } from '@/utils/ui'; import { PlusOutlined } from '@ant-design/icons'; import { useNavigate, useParams } from '@umijs/max'; -import { App, Button, Col, Flex, Form, Input, Row, Select } from 'antd'; +import { App, Button, Col, Flex, Form, Input, InputNumber, Row, Select } from 'antd'; import { omit, pick } from 'lodash'; import { useEffect, useState } from 'react'; import { @@ -120,11 +120,11 @@ function CreateServiceVersion() { // 创建版本 const createServiceVersion = async (formData: FormData) => { - const envList = formData['env_variables'] ?? []; + const envList = formData['env_variables']; const image = formData['image']; const model = formData['model']; const codeConfig = formData['code_config']; - const envVariables = envList.reduce((acc, cur) => { + const envVariables = envList?.reduce((acc, cur) => { acc[cur.key] = cur.value; return acc; }, {} as Record); @@ -139,9 +139,11 @@ function CreateServiceVersion() { pick(model, ['id', 'name', 'version', 'path', 'identifier', 'owner', 'showValue']), { showValue: 'show_value' }, ), - code_config: changePropertyName(pick(codeConfig, ['code_path', 'branch', 'showValue']), { - showValue: 'show_value', - }), + code_config: codeConfig + ? changePropertyName(pick(codeConfig, ['code_path', 'branch', 'showValue']), { + showValue: 'show_value', + }) + : undefined, service_id: serviceInfo?.id, }; @@ -334,17 +336,7 @@ function CreateServiceVersion() { - + - + From 07d906b8572b98b8371a67159a6efbc5f51a42aa Mon Sep 17 00:00:00 2001 From: cp3hnu Date: Wed, 27 Nov 2024 14:32:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E6=B5=81=E6=B0=B4=E7=BA=BF=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=BF=9D=E6=8C=81=E8=BE=93=E5=85=A5=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/images/component-icon-9-Failed.png | Bin 0 -> 3952 bytes .../images/component-icon-9-Omitted.png | Bin 0 -> 3821 bytes .../images/component-icon-9-Pending.png | Bin 0 -> 3962 bytes .../images/component-icon-9-Running.png | Bin 0 -> 3844 bytes .../images/component-icon-9-Skipped.png | Bin 0 -> 3821 bytes .../images/component-icon-9-Succeeded.png | Bin 0 -> 4095 bytes .../public/assets/images/component-icon-9.png | Bin 0 -> 2280 bytes .../ModelDeployment/ServiceInfo/index.tsx | 5 ++++ .../components/BasicInfo/index.tsx | 4 +-- .../components/PipelineNodeDrawer/index.tsx | 28 +++++++++++++----- 10 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 react-ui/public/assets/images/component-icon-9-Failed.png create mode 100644 react-ui/public/assets/images/component-icon-9-Omitted.png create mode 100644 react-ui/public/assets/images/component-icon-9-Pending.png create mode 100644 react-ui/public/assets/images/component-icon-9-Running.png create mode 100644 react-ui/public/assets/images/component-icon-9-Skipped.png create mode 100644 react-ui/public/assets/images/component-icon-9-Succeeded.png create mode 100644 react-ui/public/assets/images/component-icon-9.png diff --git a/react-ui/public/assets/images/component-icon-9-Failed.png b/react-ui/public/assets/images/component-icon-9-Failed.png new file mode 100644 index 0000000000000000000000000000000000000000..64fae87aa375ec26346e2a9af0a19f80e4ef81bd GIT binary patch literal 3952 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 KMNUMnLSTYZk%3|W literal 0 HcmV?d00001 diff --git a/react-ui/public/assets/images/component-icon-9-Omitted.png b/react-ui/public/assets/images/component-icon-9-Omitted.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2911c62f6620b01d7cf8ff119064008e87e891 GIT binary patch literal 3821 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 jh7MUgU^&(PS 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 U)-g#?L;wH)07*qoM6N<$f=Tyv(f|Me literal 0 HcmV?d00001 diff --git a/react-ui/public/assets/images/component-icon-9-Running.png b/react-ui/public/assets/images/component-icon-9-Running.png new file mode 100644 index 0000000000000000000000000000000000000000..b96deabe7bfb346a9778089def259edc5778a927 GIT binary patch literal 3844 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 jh7MUgU^9qP)nzmu6T8RpH~ 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 literal 0 HcmV?d00001 diff --git a/react-ui/public/assets/images/component-icon-9.png b/react-ui/public/assets/images/component-icon-9.png new file mode 100644 index 0000000000000000000000000000000000000000..92dae0647914e416f15d4a0b8212557f4b5ff688 GIT binary patch literal 2280 zcmVP)rXj6{@@Np*T|ry15R>7vvC>7$pQf zeH{>{=S|_eJ4a#vq-9vn* zm+38l8DYv;=}}D6qqSnEsr&M5>>QvlcL*eDHjJD>g4*S(H#2>oNK&|dlQ^8K3^VsR z0tj(t6gpZBuj#3wTmuu;3MLtxhXLY!I#cic1~1LOP$lAK3^v==RzSXS{Gi7}8({3i zYKp-l5MpR6g7K{XgE0$Vkb)jTZ{ogy#=Ylo^K0>A^e%lXn#~$-q`fVGI*sN)`(j!F z1;)T@RQrI({KN?g$2WoHjVhULR~q7HJWLzml>=1a6I})JbxEd0@mg`gY#-U} z^9Iy?91rq(v7aG&Qgd{fc3vf#b}k}*&r9j2xX9n1UWSZC0M%7vFk*l-FW#FXXqn8l z&zu2u4s!QmqBkHQ3`M;f3LJu0g`?Hthg_9Zx=;4s4nZ72zTD3K%>x?2UVoRC5hUuS zVRRfLI6r!tvuVgS*4+%!-t2H@Iy93vK55d(}G z6A1Azv|WX7U#%DjZ(bSo&@!Vj&=4S_s|a?<`w)aD#3JIDQNt{4cWo7&2AOj-S5cxr zF@Uo$fZO!?*9GJY@icgi92xb2VLHYhs*G2QJ$fBFaorc@UI@#}VB8oTz4teIX}H#I zToVx7_C0hkL1Q{yM37t~dzvALHG5sK$(AnR1jpe7eKLe!j@F2dhCB#>J_ewX znT@%aN@5$tMO(CWK_~!i1E5ivUE`ow`cFjEXa1kE2L<^vxZv>2hSBrXfp&-n7i_Vm zOE^I-j31XJyeGWq^ld;Oa2t@0-`z5R63FGm2_8^w&PmIpTTLKV_9EtPa_Vi<2 zJa*lMEWb+A!)iFL0%|!e|Caei)l6*224n{u zR{`NE-V`h&H#}j?1(IEGTm_VxULM+y>2~Go^HiQ0yNtvvBS#B`?L%QbQPd3FG7V25 z6U{C-1?NHO(bIyIJ;HXvDOf;y(=83jZa4)ENDq<|a0(uf8YHLS+!TPMlBH$56luPb z@y|9$0R6z|!>(Lbt%6_0tT4(-8Ljq_t5uNl0)+S0RXB^6XDZXwOnuL77RRkp&}})$ zfBF(SJeR45(i;)w^p_CNz>Tt$;J**v7_7yUL77E=(|=In@DO6(kJlN(REPAJ{@KPU z0_qm#-ffbkl<<8B2~-tG(%gSDQqsz;MtaW*r1#7+1Squ(26+#*|IaIdfH!@5m1$<) zS@RB3MoCsByg_E?cUJ0FEre+0DE5G$U-9*+*l{IQci}J^zgn*{OBXg&U`hYQh-QWXrG?39S1eMmb=1>L z94_USCFYnfRnX~P4Wm!Mb7q=-iD?>8S^=zbPhccAXewoMDYwBAb6L2zBHB#LX|rfF z;x(CVat4$V0=EvFr12QN*Rk_1)pBb~OSxrIcp_D>GF_*{d^;+AXPPa6vJOy-By23Z z6eUTPE>tLG=cj@=Qvx1Wja1ut*{QZ>MioK$MZ9y9Wd(O=49G!5;qaM=IABJ$QrrAI zC`%%gzXvObEFO7QL;0Laxeb<>|Bb%q#%gG@Ra*{A0i~h%%6SONk>t-$s2AU&fW$~C zx1kbqrY3mIT5l6AKD|X;%GYZwpJIv%g}F^2L6fm^EKu9tw@kgglt7A1b}6?kj=P*H zJeiA8R4p-wjNKTFsi$j2ot0qHvTX67Ohr45V}E-OtpKF4ng%ef!B0&rksG&Ec_q_o zz`0xX9;U-MU`|8{(>Hd2aSTwpBN%-@0=4`(oa?J>%v#4(k6rS@*m>HB(ujoF+s(GO z-Gj0flCPN2seIPd+l;c9s?G4Kjm`K$le1OgyqSCRY3n$kl(J*FU7(2MvzM9pcF;2b zaK6JEkMWpJNA%iSecc^EEmp{#FiIMwH@%=_7^dVAtaP*Rqb0koHr%K@R{^D!l;=Bu zdI|Aq5dNhNi_C9R%b{RFqu66|h$S&iokozyJTdRdVLEaAl0000 { + if (item.model && !item.model.show_value) { + item.model.show_value = `${item.model.name}:${item.model.version}`; + } + }); setTableData(content); setTotal(totalElements); } diff --git a/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx b/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx index f741f750..32497e13 100644 --- a/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx +++ b/react-ui/src/pages/ModelDeployment/components/BasicInfo/index.tsx @@ -27,7 +27,7 @@ function BasicInfo({ info }: BasicInfoProps) { }; const formatCodeConfig = () => { - if (info && info.code_config) { + if (info && info.code_config && info.code_config.code_path) { const { code_path, branch } = info.code_config; const url = getGitUrl(code_path, branch); return ( @@ -36,7 +36,7 @@ function BasicInfo({ info }: BasicInfoProps) { ); } - return undefined; + return '--'; }; const formatResource = () => { diff --git a/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx b/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx index 2eae5c64..8cc9f441 100644 --- a/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx +++ b/react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx @@ -43,22 +43,34 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete if (!open) { // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_values, error] = await to(form.validateFields()); + // 不管是否验证成功,都需要获取表单数据 const fields = form.getFieldsValue(); - const control_strategy = JSON.stringify(fields.control_strategy); - const in_parameters = JSON.stringify(fields.in_parameters); - const out_parameters = JSON.stringify(fields.out_parameters); + + // 保存字段顺序 + const control_strategy = { + ...stagingItem.control_strategy, + ...fields.control_strategy, + }; + const in_parameters = { + ...stagingItem.in_parameters, + ...fields.in_parameters, + }; + const out_parameters = { + ...stagingItem.out_parameters, + ...fields.out_parameters, + }; + // console.log('getFieldsValue', fields); const res = { ...stagingItem, ...fields, - control_strategy: control_strategy, - in_parameters: in_parameters, - out_parameters: out_parameters, + control_strategy: JSON.stringify(control_strategy), + in_parameters: JSON.stringify(in_parameters), + out_parameters: JSON.stringify(out_parameters), formError: !!error, }; - - console.log('res', res); + // console.log('res', res); onFormChange(res); } };