From 0aaf456c663870d59f5e66ccec41b62863867c84 Mon Sep 17 00:00:00 2001 From: JeshuaRen <270813223@qq.com> Date: Thu, 29 May 2025 08:55:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=84=E4=B8=AA=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E7=9A=84=E8=BE=93=E5=87=BA=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdks/pcmscheduler/job.go | 1 + sdks/pcmscheduler/models.go | 4 +- sdks/scheduler/models.go | 87 +++++++++++++++++++++++++------------ 3 files changed, 63 insertions(+), 29 deletions(-) diff --git a/sdks/pcmscheduler/job.go b/sdks/pcmscheduler/job.go index 3a5d291..898a3fa 100644 --- a/sdks/pcmscheduler/job.go +++ b/sdks/pcmscheduler/job.go @@ -21,4 +21,5 @@ type PCMJobDataReturn struct { JobID string `gorm:"column:job_id" json:"jobID"` ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"` + Output string `gorm:"column:result_output" json:"output"` } diff --git a/sdks/pcmscheduler/models.go b/sdks/pcmscheduler/models.go index 34c0c3e..f2ba47e 100644 --- a/sdks/pcmscheduler/models.go +++ b/sdks/pcmscheduler/models.go @@ -74,6 +74,8 @@ const ( PlatformCloud = "CLOUD" // 云算 PlatformCloudInference = "PCM_Inference" PlatformHPC = "HPCSlurm" //超算 + PlatformHPCArm = "HPCArm" + PlatformHPCX86 = "HPCX86" URL = "url" ID = "id" @@ -88,7 +90,7 @@ const ( NodeTypeBinding = "binding" NodeTypeUpload = "upload" - NodeTypeDataReturn = "data_return" + NodeTypeDataReturn = "DataReturn" NodeTypeHPCCreate = "hpc_create" NodeTypeInference = "inference" NodeTypeInferenceStop = "inference_stop" diff --git a/sdks/scheduler/models.go b/sdks/scheduler/models.go index adfcd42..328e0c0 100644 --- a/sdks/scheduler/models.go +++ b/sdks/scheduler/models.go @@ -14,6 +14,7 @@ const ( JobTypeFinetuning = "Finetuning" JobTypeDataPreprocess = "DataPreprocess" JobTypeDataReturn = "DataReturn" + JobTypeReport = "Report" FileInfoTypePackage = "Package" FileInfoTypeLocalFile = "LocalFile" @@ -209,7 +210,10 @@ type BindingJobInfo struct { JobInfoBase Type string `json:"type"` Info DataBinding `json:"info"` - Name string `json:"name"` // 临时使用 + // 下面参数用于工作流输入 + PackageID cdssdk.PackageID `json:"packageID"` + ClusterID ClusterID `json:"clusterID"` + Output string `json:"output"` } type DataBinding interface { @@ -230,15 +234,16 @@ func (d *DataBindingBase) Noop() {} type ModelBinding struct { serder.Metadata `union:"model"` DataBindingBase - Type string `json:"type"` - Name string `json:"name"` - Description string `json:"description"` - ClusterIDs []ClusterID `json:"clusterIDs"` - Category string `json:"category"` - ModelType string `json:"modelType"` - Env string `json:"env"` - Version string `json:"version"` - RepositoryName string `json:"repositoryName"` + Type string `json:"type"` + Name string `json:"name"` + Description string `json:"description"` + ClusterIDs []ClusterID `json:"clusterIDs"` + Category string `json:"category"` + ModelType string `json:"modelType"` + Env string `json:"env"` + Version string `json:"version"` + RepositoryName string `json:"repositoryName"` + PackageID cdssdk.PackageID `json:"packageID"` } type DatasetBinding struct { @@ -250,9 +255,9 @@ type DatasetBinding struct { ClusterIDs []ClusterID `json:"clusterIDs"` Description string `json:"description"` Category string `json:"category"` - PackageID cdssdk.PackageID `json:"packageID"` RepositoryName string `json:"repositoryName"` ConsumptionPoints int64 `json:"points"` + PackageID cdssdk.PackageID `json:"packageID"` } type HPCJobInfo struct { @@ -455,10 +460,14 @@ type DataPreprocessJobInfo struct { type DataReturnJobInfo struct { serder.Metadata `union:"DataReturn"` JobInfoBase - Type string `json:"type"` - BucketID cdssdk.BucketID `json:"bucketID"` - TargetLocalJobID string `json:"targetLocalJobID"` - ReportMessage TrainJobStatusReport `json:"report"` + Type string `json:"type"` + BucketID cdssdk.BucketID `json:"bucketID"` + TargetLocalJobID string `json:"targetLocalJobID"` + + // 下面是工作流的参数 + ClusterID ClusterID `json:"clusterID"` + Output string `json:"output"` + PackageName string `json:"packageName"` } // MultiInstanceJobInfo 多实例(推理任务) @@ -684,6 +693,9 @@ var JobOutputTypeUnion = types.NewTypeUnion[JobOutput]( (*UploadJobOutput)(nil), (*HPCJobOutput)(nil), (*NotifyJobOutput)(nil), + (*DataReturnJobOutput)(nil), + (*PublicOutput)(nil), + (*PCMInferenceJobOutput)(nil), ) var _ = serder.UseTypeUnionInternallyTagged(&JobOutputTypeUnion, "type") @@ -699,6 +711,17 @@ type PublicOutput struct { Output string `json:"output"` } +type PCMInferenceJobOutput struct { + serder.Metadata `union:"PCM_Inference"` + JobOutputBase + Type string `json:"type"` + URL string `json:"url"` + ID string `json:"id"` + AdapterID string `json:"adapterId"` + ClusterID ClusterID `json:"clusterId"` + InstanceID string `json:"instanceId"` +} + type NotifyJobOutput struct { serder.Metadata `union:"Notify"` JobOutputBase @@ -709,15 +732,19 @@ type NotifyJobOutput struct { type HPCJobOutput struct { serder.Metadata `union:"HPCSlurm"` JobOutputBase - Type string `json:"type"` - Output string `json:"output"` + Type string `json:"type"` + Name string `json:"name"` + Output string `json:"output"` + ClusterID ClusterID `json:"clusterID"` } type AIJobOutput struct { serder.Metadata `union:"AI"` JobOutputBase - Type string `json:"type"` - Output string `json:"output"` + Type string `json:"type"` + Name string `json:"name"` + Output string `json:"output"` + ClusterID ClusterID `json:"clusterID"` } type BindingJobOutput struct { @@ -737,9 +764,9 @@ type UploadJobOutput struct { type DataReturnJobOutput struct { serder.Metadata `union:"DataReturn"` JobOutputBase - Type string `json:"type"` - ReportMessage TrainJobStatusReport `json:"report"` - PackageID cdssdk.PackageID `json:"packageID"` + Type string `json:"type"` + //ReportMessage TrainJobStatusReport `json:"report"` + PackageID cdssdk.PackageID `json:"packageID"` } type JobStatusReport interface { @@ -772,10 +799,14 @@ type TrainJobStatusReport struct { type InferenceJobStatusReport struct { serder.Metadata `union:"Inference"` JobStatusReportBase - Type string `json:"type"` - TaskName string `json:"taskName"` - TaskID string `json:"taskID"` - Status bool `json:"status"` - Message string `json:"message"` - URL string `json:"url"` + Type string `json:"type"` + TaskName string `json:"taskName"` + TaskID string `json:"taskID"` + Status bool `json:"status"` + Message string `json:"message"` + URL string `json:"url"` + ID string `json:"id"` + AdapterID string `json:"adapterId"` + ClusterID ClusterID `json:"clusterId"` + InstanceID string `json:"instanceId"` }