From 5a4073baeed00856779b196f575e3ac445962a9f Mon Sep 17 00:00:00 2001 From: Jialei <3217223+jialeicui@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:29:25 +0800 Subject: [PATCH] fix(controller): make online eval runable (#2914) --- .../container/ContainerSpecification.java | 2 ++ ...nlineEvaluationContainerSpecification.java | 33 +++++++++++++++---- ...CliModelHandlerContainerSpecification.java | 3 -- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/ContainerSpecification.java b/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/ContainerSpecification.java index 914d0fedac..4bfd78d2f6 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/ContainerSpecification.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/ContainerSpecification.java @@ -20,6 +20,8 @@ public interface ContainerSpecification { String FORMATTER_URI_PROJECT = "%s/project/%s"; + String FORMATTER_URI_ARTIFACT = "%s/project/%s/%s/%s/version/%s"; + String FORMATTER_VERSION_ARTIFACT = "%s/version/%s"; Map getContainerEnvs(); diff --git a/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/OnlineEvaluationContainerSpecification.java b/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/OnlineEvaluationContainerSpecification.java index af806d10ac..cbcc375f5d 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/OnlineEvaluationContainerSpecification.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/OnlineEvaluationContainerSpecification.java @@ -20,7 +20,6 @@ import ai.starwhale.mlops.configuration.RunTimeProperties.Pypi; import ai.starwhale.mlops.configuration.security.TaskTokenValidator; import ai.starwhale.mlops.domain.job.bo.Job; -import ai.starwhale.mlops.domain.job.bo.JobRuntime; import ai.starwhale.mlops.domain.task.bo.Task; import ai.starwhale.mlops.schedule.impl.container.ContainerCommand; import ai.starwhale.mlops.schedule.impl.container.ContainerSpecification; @@ -55,18 +54,40 @@ public OnlineEvaluationContainerSpecification( @Override public Map getContainerEnvs() { Job job = task.getStep().getJob(); - JobRuntime jobRuntime = job.getJobRuntime(); + var model = job.getModel(); + var runtime = job.getJobRuntime(); var envs = new HashMap(); - envs.put("SW_RUNTIME_PYTHON_VERSION", jobRuntime.pythonVersion()); - envs.put("SW_VERSION", jobRuntime.swVersion()); - envs.put("SW_RUNTIME_VERSION", String.format("%s/version/%s", jobRuntime.getName(), jobRuntime.getVersion())); + + envs.put("SW_RUNTIME_PYTHON_VERSION", runtime.pythonVersion()); + envs.put("SW_VERSION", runtime.swVersion()); + envs.put("SW_RUNTIME_VERSION", String.format("%s/version/%s", runtime.getName(), runtime.getVersion())); + envs.put("SW_RUNTIME_URI", + String.format( + FORMATTER_URI_ARTIFACT, + instanceUri, + runtime.getProjectId(), + "runtime", + runtime.getName(), + runtime.getVersion())); envs.put( "SW_MODEL_VERSION", String.format("%s/version/%s", job.getModel().getName(), job.getModel().getVersion()) ); + envs.put("SW_MODEL_URI", + String.format( + FORMATTER_URI_ARTIFACT, + instanceUri, + model.getProjectId(), + "model", + model.getName(), + model.getVersion())); envs.put("SW_INSTANCE_URI", instanceUri); envs.put("SW_TOKEN", taskTokenValidator.getTaskToken(job.getOwner(), task.getId())); envs.put("SW_PROJECT", job.getProject().getName()); + envs.put("SW_PROJECT_URI", String.format( + FORMATTER_URI_PROJECT, + instanceUri, + job.getProject().getId())); setPypiSettings(envs); envs.put("SW_PRODUCTION", "1"); @@ -97,7 +118,7 @@ private String getValue(String s) { @Override public ContainerCommand getCmd() { - return ContainerCommand.builder().cmd(new String[]{"serve"}).build(); + return ContainerCommand.builder().cmd(new String[] {"serve"}).build(); } @Override diff --git a/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/SwCliModelHandlerContainerSpecification.java b/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/SwCliModelHandlerContainerSpecification.java index 7c5fde65dd..56249e2222 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/SwCliModelHandlerContainerSpecification.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/schedule/impl/container/impl/SwCliModelHandlerContainerSpecification.java @@ -36,9 +36,6 @@ @Slf4j public class SwCliModelHandlerContainerSpecification implements ContainerSpecification { - - static final String FORMATTER_URI_ARTIFACT = "%s/project/%s/%s/%s/version/%s"; - static final String FORMATTER_VERSION_ARTIFACT = "%s/version/%s"; final String instanceUri; final int devPort; final int datasetLoadBatchSize;