aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo/vespa/model/container/xml
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2023-06-02 12:10:32 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2023-06-02 12:10:32 +0200
commita67788f2b7786a2cfcb9244d1e72a7fb1815425b (patch)
treefa34be2f0f13ef4ea116dd12853c734de3bc2eca /config-model/src/test/java/com/yahoo/vespa/model/container/xml
parente757e5ff2e6dadbe31389c7dfeb3f52827a1668b (diff)
Introduce services.xml syntax for configuring HuggingFace embedders
Diffstat (limited to 'config-model/src/test/java/com/yahoo/vespa/model/container/xml')
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/EmbedderTestCase.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/EmbedderTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/EmbedderTestCase.java
index 50416d50fe5..69981233c3f 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/EmbedderTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/EmbedderTestCase.java
@@ -5,6 +5,8 @@ import com.yahoo.component.ComponentId;
import com.yahoo.config.model.application.provider.FilesApplicationPackage;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
+import com.yahoo.embedding.huggingface.HuggingFaceEmbedderConfig;
+import com.yahoo.language.huggingface.config.HuggingFaceTokenizerConfig;
import com.yahoo.path.Path;
import com.yahoo.text.XML;
import com.yahoo.vespa.config.ConfigDefinitionKey;
@@ -12,6 +14,9 @@ import com.yahoo.vespa.config.ConfigPayloadBuilder;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.container.ApplicationContainerCluster;
import com.yahoo.vespa.model.container.component.Component;
+import com.yahoo.vespa.model.container.component.HuggingFaceEmbedder;
+import com.yahoo.vespa.model.container.component.HuggingFaceTokenizer;
+import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithFilePkg;
import com.yahoo.yolean.Exceptions;
import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;
@@ -108,6 +113,28 @@ public class EmbedderTestCase {
assertEquals("minilm-l6-v2 application-url \"\"", config.getObject("transformerModel").getValue());
assertEquals("\"\" \"\" files/vocab.txt", config.getObject("tokenizerVocab").getValue());
assertEquals("4", config.getObject("onnxIntraOpThreads").getValue());
+
+ {
+ var hfEmbedder = (HuggingFaceEmbedder)containerCluster.getComponentsMap().get(new ComponentId("hf-embedder"));
+ assertEquals("ai.vespa.embedding.huggingface.HuggingFaceEmbedder", hfEmbedder.getClassId().getName());
+ var cfgBuilder = new HuggingFaceEmbedderConfig.Builder();
+ hfEmbedder.getConfig(cfgBuilder);
+ var cfg = cfgBuilder.build();
+ assertEquals("my_input_ids", cfg.transformerInputIds());
+ }
+ {
+ var hfTokenizer = (HuggingFaceTokenizer)containerCluster.getComponentsMap().get(new ComponentId("hf-tokenizer"));
+ assertEquals("com.yahoo.language.huggingface.HuggingFaceTokenizer", hfTokenizer.getClassId().getName());
+ var cfgBuilder = new HuggingFaceTokenizerConfig.Builder();
+ hfTokenizer.getConfig(cfgBuilder);
+ var cfg = cfgBuilder.build();
+ assertEquals(768, cfg.maxLength());
+ }
+ }
+
+ @Test
+ void passesXmlValdiation() {
+ new VespaModelCreatorWithFilePkg("src/test/cfg/application/embed/").create();
}
@Test