summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/ranking/RankingExpressionEvaluatorProxy.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/ranking/RankingExpressionEvaluatorProxy.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/ranking/RankingExpressionEvaluatorProxy.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/ranking/RankingExpressionEvaluatorProxy.java b/container-search/src/main/java/com/yahoo/search/ranking/RankingExpressionEvaluatorProxy.java
new file mode 100644
index 00000000000..b4ee33263f1
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/search/ranking/RankingExpressionEvaluatorProxy.java
@@ -0,0 +1,53 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+package com.yahoo.search.ranking;
+
+import ai.vespa.models.evaluation.FunctionEvaluator;
+import ai.vespa.models.evaluation.Model;
+import ai.vespa.models.evaluation.ModelsEvaluator;
+import com.yahoo.api.annotations.Beta;
+import com.yahoo.component.AbstractComponent;
+import com.yahoo.component.annotation.Inject;
+import com.yahoo.filedistribution.fileacquirer.FileAcquirer;
+import com.yahoo.vespa.config.search.RankProfilesConfig;
+import com.yahoo.vespa.config.search.core.OnnxModelsConfig;
+import com.yahoo.vespa.config.search.core.RankingConstantsConfig;
+import com.yahoo.vespa.config.search.core.RankingExpressionsConfig;
+
+/**
+ * proxy for model-evaluation components
+ * @author arnej
+ */
+@Beta
+public class RankingExpressionEvaluatorProxy extends AbstractComponent {
+
+ private final ModelsEvaluator evaluator;
+
+ @Inject
+ public RankingExpressionEvaluatorProxy(
+ RankProfilesConfig rankProfilesConfig,
+ RankingConstantsConfig constantsConfig,
+ RankingExpressionsConfig expressionsConfig,
+ OnnxModelsConfig onnxModelsConfig,
+ FileAcquirer fileAcquirer)
+ {
+ this.evaluator = new ModelsEvaluator(
+ rankProfilesConfig,
+ constantsConfig,
+ expressionsConfig,
+ onnxModelsConfig,
+ fileAcquirer);
+ }
+
+ public Model modelForRankProfile(String rankProfile) {
+ var m = evaluator.models().get(rankProfile);
+ if (m == null) {
+ throw new IllegalArgumentException("unknown rankprofile: " + rankProfile);
+ }
+ return m;
+ }
+
+ public FunctionEvaluator evaluatorForFunction(String rankProfile, String functionName) {
+ return modelForRankProfile(rankProfile).evaluatorOf(functionName);
+ }
+}