aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2023-08-04 13:33:13 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2023-08-04 13:52:27 +0200
commit3ddce3c158941cb8eabdb391d207fe004095c434 (patch)
treedb8121fe016fa7bb5a0ad345af9f1bd58fbbfb6d /container-search
parent0f46015e498ecb622473cd3e2403283c99f9f5d5 (diff)
Add generic metrics for embedders
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java b/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java
index 2370513dba2..3d9d28ee199 100644
--- a/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java
@@ -52,11 +52,12 @@ public class TensorConverter {
throw new IllegalArgumentException("Expected any string enclosed in embed(), but the argument does not end by ')'");
String argument = s.substring("embed(".length(), s.length() - 1);
Embedder embedder;
+ String embedderId;
// Check if arguments specifies an embedder with the format embed(embedder, "text to encode")
Matcher matcher = embedderArgumentRegexp.matcher(argument);
if (matcher.matches()) {
- String embedderId = matcher.group(1);
+ embedderId = matcher.group(1);
argument = matcher.group(2);
if ( ! embedders.containsKey(embedderId)) {
throw new IllegalArgumentException("Can't find embedder '" + embedderId + "'. " +
@@ -69,10 +70,11 @@ public class TensorConverter {
throw new IllegalArgumentException("Multiple embedders are provided but no embedder id is given. " +
"Valid embedders are " + validEmbedders(embedders));
} else {
- embedder = embedders.entrySet().stream().findFirst().get().getValue();
+ var entry = embedders.entrySet().stream().findFirst().get();
+ embedderId = entry.getKey();
+ embedder = entry.getValue();
}
-
- return embedder.embed(removeQuotes(argument), embedderContext, type);
+ return embedder.embed(removeQuotes(argument), embedderContext.copy().setEmbedderId(embedderId), type);
}
private static String removeQuotes(String s) {