diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-09-18 16:29:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-18 16:29:37 -0700 |
commit | a280933161001785f900d381357e6802ee274ada (patch) | |
tree | 178f5a9c637df755e1ca2930119b3f1e39662b23 /config-model | |
parent | b38fc011d4a5cdcdbdb5d71ca77252502957fa92 (diff) | |
parent | a172868b098df9cf7e49a177544b59529202b71d (diff) |
Merge pull request #6981 from vespa-engine/lesters/add-model-eval-rest-api
Lesters/add model eval rest api
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java | 20 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java | 5 |
2 files changed, 24 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java index 09990c7b9de..11736256d1b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java @@ -2,9 +2,12 @@ package com.yahoo.vespa.model.container; import ai.vespa.models.evaluation.ModelsEvaluator; +import ai.vespa.models.handler.ModelsEvaluationHandler; +import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.searchdefinition.derived.RankProfileList; import com.yahoo.vespa.config.search.RankProfilesConfig; import com.yahoo.vespa.config.search.core.RankingConstantsConfig; +import com.yahoo.vespa.model.container.component.Handler; import java.util.List; import java.util.Objects; @@ -16,12 +19,17 @@ import java.util.Objects; */ public class ContainerModelEvaluation implements RankProfilesConfig.Producer, RankingConstantsConfig.Producer { + private final static String EVALUATOR_NAME = ModelsEvaluator.class.getName(); + private final static String REST_HANDLER_NAME = ModelsEvaluationHandler.class.getName(); + private final static String BUNDLE_NAME = "model-evaluation"; + /** Global rank profiles, aka models */ private final RankProfileList rankProfileList; public ContainerModelEvaluation(ContainerCluster cluster, RankProfileList rankProfileList) { this.rankProfileList = Objects.requireNonNull(rankProfileList, "rankProfileList cannot be null"); - cluster.addSimpleComponent(ModelsEvaluator.class.getName(), null, "model-evaluation"); + cluster.addSimpleComponent(EVALUATOR_NAME, null, BUNDLE_NAME); + cluster.addComponent(ContainerModelEvaluation.getHandler()); } public void prepare(List<Container> containers) { @@ -38,4 +46,14 @@ public class ContainerModelEvaluation implements RankProfilesConfig.Producer, Ra rankProfileList.getConfig(builder); } + public static Handler<?> getHandler() { + Handler<?> handler = new Handler<>(new ComponentModel(REST_HANDLER_NAME, null, BUNDLE_NAME)); + String binding = ModelsEvaluationHandler.API_ROOT + "/" + ModelsEvaluationHandler.VERSION_V1; + handler.addServerBindings("http://*/" + binding, + "https://*/" + binding, + "http://*/" + binding + "/*", + "https://*/" + binding + "/*"); + return handler; + } + } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java b/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java index b7b3fc99e20..9e26caf2cb4 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.model.ml; import ai.vespa.models.evaluation.Model; import ai.vespa.models.evaluation.ModelsEvaluator; import ai.vespa.models.evaluation.RankProfilesConfigImporter; +import ai.vespa.models.handler.ModelsEvaluationHandler; import com.yahoo.component.ComponentId; import com.yahoo.config.FileReference; import com.yahoo.config.application.api.ApplicationPackage; @@ -80,6 +81,10 @@ public class ModelEvaluationTest { ContainerCluster cluster = model.getContainerClusters().get("container"); assertNotNull(cluster.getComponentsMap().get(new ComponentId(ModelsEvaluator.class.getName()))); + assertNotNull(cluster.getComponentsMap().get(new ComponentId(ModelsEvaluationHandler.class.getName()))); + assertTrue(cluster.getHandlers().stream() + .anyMatch(h -> h.getComponentId().toString().equals(ModelsEvaluationHandler.class.getName()))); + RankProfilesConfig.Builder b = new RankProfilesConfig.Builder(); cluster.getConfig(b); RankProfilesConfig config = new RankProfilesConfig(b); |