summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLester Solbakken <lester.solbakken@gmail.com>2024-04-02 09:23:54 +0200
committerLester Solbakken <lester.solbakken@gmail.com>2024-04-02 09:23:54 +0200
commit98ccab8d442bc3b13de47746bbd265a08b319add (patch)
tree6d0120815163943b1d6428585c1fc52efd9dc21d
parentbc79caf0b639bc451c4630d49f6d9ac2a53dcc39 (diff)
Move LLM classes in vespajlib from ai.vespa.llm to ai.vespa.languagemodels
-rw-r--r--container-search/abi-spec.json29
-rw-r--r--container-search/src/main/java/ai/vespa/llm/clients/ConfigurableLanguageModel.java10
-rw-r--r--container-search/src/main/java/ai/vespa/llm/clients/OpenAI.java8
-rwxr-xr-xcontainer-search/src/main/java/ai/vespa/llm/search/LLMSearcher.java35
-rwxr-xr-xcontainer-search/src/main/java/ai/vespa/llm/search/RAGSearcher.java6
-rw-r--r--container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java8
-rw-r--r--container-search/src/test/java/ai/vespa/llm/clients/MockLLMClient.java6
-rw-r--r--container-search/src/test/java/ai/vespa/llm/clients/OpenAITest.java4
-rwxr-xr-xcontainer-search/src/test/java/ai/vespa/llm/search/LLMSearcherTest.java23
-rwxr-xr-xcontainer-search/src/test/java/ai/vespa/llm/search/RAGSearcherTest.java2
-rw-r--r--vespajlib/abi-spec.json78
-rwxr-xr-xvespajlib/src/main/java/ai/vespa/languagemodels/InferenceParameters.java (renamed from vespajlib/src/main/java/ai/vespa/llm/InferenceParameters.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/LanguageModel.java (renamed from vespajlib/src/main/java/ai/vespa/llm/LanguageModel.java)6
-rwxr-xr-xvespajlib/src/main/java/ai/vespa/languagemodels/LanguageModelException.java (renamed from vespajlib/src/main/java/ai/vespa/llm/LanguageModelException.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/client/openai/OpenAiClient.java (renamed from vespajlib/src/main/java/ai/vespa/llm/client/openai/OpenAiClient.java)12
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/client/openai/package-info.java (renamed from vespajlib/src/main/java/ai/vespa/llm/client/openai/package-info.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/completion/Completion.java (renamed from vespajlib/src/main/java/ai/vespa/llm/completion/Completion.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/completion/Prompt.java (renamed from vespajlib/src/main/java/ai/vespa/llm/completion/Prompt.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/completion/StringPrompt.java (renamed from vespajlib/src/main/java/ai/vespa/llm/completion/StringPrompt.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/completion/package-info.java (renamed from vespajlib/src/main/java/ai/vespa/llm/completion/package-info.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/package-info.java (renamed from vespajlib/src/main/java/ai/vespa/llm/package-info.java)2
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/test/MockLanguageModel.java (renamed from vespajlib/src/main/java/ai/vespa/llm/test/MockLanguageModel.java)10
-rw-r--r--vespajlib/src/main/java/ai/vespa/languagemodels/test/package-info.java (renamed from vespajlib/src/main/java/ai/vespa/llm/test/package-info.java)2
-rw-r--r--vespajlib/src/test/java/ai/vespa/languagemodels/client/openai/OpenAiClientCompletionTest.java (renamed from vespajlib/src/test/java/ai/vespa/llm/client/openai/OpenAiClientCompletionTest.java)7
-rw-r--r--vespajlib/src/test/java/ai/vespa/languagemodels/completion/CompletionTest.java (renamed from vespajlib/src/test/java/ai/vespa/llm/completion/CompletionTest.java)6
25 files changed, 136 insertions, 132 deletions
diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json
index 257dd364000..b33509d5bd8 100644
--- a/container-search/abi-spec.json
+++ b/container-search/abi-spec.json
@@ -9152,7 +9152,7 @@
"ai.vespa.llm.clients.ConfigurableLanguageModel" : {
"superClass" : "java.lang.Object",
"interfaces" : [
- "ai.vespa.llm.LanguageModel"
+ "ai.vespa.languagemodels.LanguageModel"
],
"attributes" : [
"public",
@@ -9161,10 +9161,10 @@
"methods" : [
"public void <init>()",
"public void <init>(ai.vespa.llm.LlmClientConfig, com.yahoo.container.jdisc.secretstore.SecretStore)",
- "protected java.lang.String getApiKey(ai.vespa.llm.InferenceParameters)",
- "protected void setApiKey(ai.vespa.llm.InferenceParameters)",
+ "protected java.lang.String getApiKey(ai.vespa.languagemodels.InferenceParameters)",
+ "protected void setApiKey(ai.vespa.languagemodels.InferenceParameters)",
"protected java.lang.String getEndpoint()",
- "protected void setEndpoint(ai.vespa.llm.InferenceParameters)"
+ "protected void setEndpoint(ai.vespa.languagemodels.InferenceParameters)"
],
"fields" : [ ]
},
@@ -9176,8 +9176,8 @@
],
"methods" : [
"public void <init>(ai.vespa.llm.LlmClientConfig, com.yahoo.container.jdisc.secretstore.SecretStore)",
- "public java.util.List complete(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters)",
- "public java.util.concurrent.CompletableFuture completeAsync(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters, java.util.function.Consumer)"
+ "public java.util.List complete(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters)",
+ "public java.util.concurrent.CompletableFuture completeAsync(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters, java.util.function.Consumer)"
],
"fields" : [ ]
},
@@ -9185,10 +9185,19 @@
"superClass" : "com.yahoo.search.Searcher",
"interfaces" : [ ],
"attributes" : [
- "public",
- "abstract"
+ "public"
+ ],
+ "methods" : [
+ "public void <init>(ai.vespa.llm.LlmSearcherConfig, com.yahoo.component.provider.ComponentRegistry)",
+ "public com.yahoo.search.Result search(com.yahoo.search.Query, com.yahoo.search.searchchain.Execution)",
+ "protected com.yahoo.search.Result complete(com.yahoo.search.Query, ai.vespa.languagemodels.completion.Prompt)",
+ "public java.lang.String getPrompt(com.yahoo.search.Query)",
+ "public java.lang.String getPropertyPrefix()",
+ "public java.lang.String lookupProperty(java.lang.String, com.yahoo.search.Query)",
+ "public java.lang.Boolean lookupPropertyBool(java.lang.String, com.yahoo.search.Query, boolean)",
+ "public java.lang.String lookupPropertyWithOrWithoutPrefix(java.lang.String, java.util.function.Function)",
+ "public java.lang.String getApiKeyHeader(com.yahoo.search.Query)"
],
- "methods" : [ ],
"fields" : [ ]
},
"ai.vespa.llm.search.RAGSearcher" : {
@@ -9200,7 +9209,7 @@
"methods" : [
"public void <init>(ai.vespa.llm.LlmSearcherConfig, com.yahoo.component.provider.ComponentRegistry)",
"public com.yahoo.search.Result search(com.yahoo.search.Query, com.yahoo.search.searchchain.Execution)",
- "protected ai.vespa.llm.completion.Prompt buildPrompt(com.yahoo.search.Query, com.yahoo.search.Result)"
+ "protected ai.vespa.languagemodels.completion.Prompt buildPrompt(com.yahoo.search.Query, com.yahoo.search.Result)"
],
"fields" : [ ]
}
diff --git a/container-search/src/main/java/ai/vespa/llm/clients/ConfigurableLanguageModel.java b/container-search/src/main/java/ai/vespa/llm/clients/ConfigurableLanguageModel.java
index 662d73d4e01..f3bb29552d6 100644
--- a/container-search/src/main/java/ai/vespa/llm/clients/ConfigurableLanguageModel.java
+++ b/container-search/src/main/java/ai/vespa/llm/clients/ConfigurableLanguageModel.java
@@ -1,8 +1,8 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.clients;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.LanguageModel;
+import ai.vespa.languagemodels.InferenceParameters;
+import ai.vespa.languagemodels.LanguageModel;
import ai.vespa.llm.LlmClientConfig;
import com.yahoo.api.annotations.Beta;
import com.yahoo.component.annotation.Inject;
@@ -19,7 +19,7 @@ import java.util.logging.Logger;
@Beta
public abstract class ConfigurableLanguageModel implements LanguageModel {
- private static Logger log = Logger.getLogger(ai.vespa.llm.clients.ConfigurableLanguageModel.class.getName());
+ private static Logger log = Logger.getLogger(ConfigurableLanguageModel.class.getName());
private final String apiKey;
private final String endpoint;
@@ -68,7 +68,9 @@ public abstract class ConfigurableLanguageModel implements LanguageModel {
}
protected void setEndpoint(InferenceParameters params) {
- params.setEndpoint(endpoint);
+ if (endpoint != null && ! endpoint.isEmpty()) {
+ params.setEndpoint(endpoint);
+ }
}
}
diff --git a/container-search/src/main/java/ai/vespa/llm/clients/OpenAI.java b/container-search/src/main/java/ai/vespa/llm/clients/OpenAI.java
index f6092f51948..bc99aa51097 100644
--- a/container-search/src/main/java/ai/vespa/llm/clients/OpenAI.java
+++ b/container-search/src/main/java/ai/vespa/llm/clients/OpenAI.java
@@ -1,11 +1,11 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.clients;
-import ai.vespa.llm.InferenceParameters;
+import ai.vespa.languagemodels.InferenceParameters;
import ai.vespa.llm.LlmClientConfig;
-import ai.vespa.llm.client.openai.OpenAiClient;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.Prompt;
+import ai.vespa.languagemodels.client.openai.OpenAiClient;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.completion.Prompt;
import com.yahoo.api.annotations.Beta;
import com.yahoo.component.annotation.Inject;
import com.yahoo.container.jdisc.secretstore.SecretStore;
diff --git a/container-search/src/main/java/ai/vespa/llm/search/LLMSearcher.java b/container-search/src/main/java/ai/vespa/llm/search/LLMSearcher.java
index 6ff40401a8f..040393083b8 100755
--- a/container-search/src/main/java/ai/vespa/llm/search/LLMSearcher.java
+++ b/container-search/src/main/java/ai/vespa/llm/search/LLMSearcher.java
@@ -1,12 +1,13 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.search;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.LanguageModel;
-import ai.vespa.llm.LanguageModelException;
+import ai.vespa.languagemodels.InferenceParameters;
+import ai.vespa.languagemodels.LanguageModel;
+import ai.vespa.languagemodels.LanguageModelException;
import ai.vespa.llm.LlmSearcherConfig;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.Prompt;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.completion.Prompt;
+import ai.vespa.languagemodels.completion.StringPrompt;
import com.yahoo.api.annotations.Beta;
import com.yahoo.component.ComponentId;
import com.yahoo.component.annotation.Inject;
@@ -17,6 +18,7 @@ import com.yahoo.search.Searcher;
import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.result.EventStream;
import com.yahoo.search.result.HitGroup;
+import com.yahoo.search.searchchain.Execution;
import java.util.List;
import java.util.function.Function;
@@ -29,7 +31,7 @@ import java.util.stream.Collectors;
* @author lesters
*/
@Beta
-public abstract class LLMSearcher extends Searcher {
+public class LLMSearcher extends Searcher {
private static Logger log = Logger.getLogger(LLMSearcher.class.getName());
@@ -43,13 +45,18 @@ public abstract class LLMSearcher extends Searcher {
private final String languageModelId;
@Inject
- LLMSearcher(LlmSearcherConfig config, ComponentRegistry<LanguageModel> languageModels) {
+ public LLMSearcher(LlmSearcherConfig config, ComponentRegistry<LanguageModel> languageModels) {
this.stream = config.stream();
this.languageModelId = config.providerId();
this.languageModel = findLanguageModel(languageModelId, languageModels);
this.propertyPrefix = config.propertyPrefix();
}
+ @Override
+ public Result search(Query query, Execution execution) {
+ return complete(query, StringPrompt.from(getPrompt(query)));
+ }
+
private LanguageModel findLanguageModel(String providerId, ComponentRegistry<LanguageModel> languageModels)
throws IllegalArgumentException
{
@@ -74,7 +81,7 @@ public abstract class LLMSearcher extends Searcher {
return languageModel;
}
- Result complete(Query query, Prompt prompt) {
+ protected Result complete(Query query, Prompt prompt) {
var options = new InferenceParameters(getApiKeyHeader(query), s -> lookupProperty(s, query));
var stream = lookupPropertyBool(STREAM_PROPERTY, query, this.stream); // query value overwrites config
return stream ? completeAsync(query, prompt, options) : completeSync(query, prompt, options);
@@ -122,7 +129,7 @@ public abstract class LLMSearcher extends Searcher {
return new Result(query, hitGroup);
}
- String getPrompt(Query query) {
+ public String getPrompt(Query query) {
// Look for prompt with or without prefix
String prompt = lookupPropertyWithOrWithoutPrefix(PROMPT_PROPERTY, p -> query.properties().getString(p));
if (prompt != null)
@@ -138,28 +145,28 @@ public abstract class LLMSearcher extends Searcher {
"'" + propertyPrefix + "." + PROMPT_PROPERTY + "', '" + PROMPT_PROPERTY + "' or '@query'.");
}
- String getPropertyPrefix() {
+ public String getPropertyPrefix() {
return this.propertyPrefix;
}
- String lookupProperty(String property, Query query) {
+ public String lookupProperty(String property, Query query) {
String propertyWithPrefix = this.propertyPrefix + "." + property;
return query.properties().getString(propertyWithPrefix, null);
}
- Boolean lookupPropertyBool(String property, Query query, boolean defaultValue) {
+ public Boolean lookupPropertyBool(String property, Query query, boolean defaultValue) {
String propertyWithPrefix = this.propertyPrefix + "." + property;
return query.properties().getBoolean(propertyWithPrefix, defaultValue);
}
- String lookupPropertyWithOrWithoutPrefix(String property, Function<String, String> lookup) {
+ public String lookupPropertyWithOrWithoutPrefix(String property, Function<String, String> lookup) {
String value = lookup.apply(getPropertyPrefix() + "." + property);
if (value != null)
return value;
return lookup.apply(property);
}
- String getApiKeyHeader(Query query) {
+ public String getApiKeyHeader(Query query) {
return lookupPropertyWithOrWithoutPrefix(API_KEY_HEADER, p -> query.getHttpRequest().getHeader(p));
}
diff --git a/container-search/src/main/java/ai/vespa/llm/search/RAGSearcher.java b/container-search/src/main/java/ai/vespa/llm/search/RAGSearcher.java
index b8e33778ced..ac3cdb04749 100755
--- a/container-search/src/main/java/ai/vespa/llm/search/RAGSearcher.java
+++ b/container-search/src/main/java/ai/vespa/llm/search/RAGSearcher.java
@@ -1,10 +1,10 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.search;
-import ai.vespa.llm.LanguageModel;
+import ai.vespa.languagemodels.LanguageModel;
import ai.vespa.llm.LlmSearcherConfig;
-import ai.vespa.llm.completion.Prompt;
-import ai.vespa.llm.completion.StringPrompt;
+import ai.vespa.languagemodels.completion.Prompt;
+import ai.vespa.languagemodels.completion.StringPrompt;
import com.yahoo.api.annotations.Beta;
import com.yahoo.component.annotation.Inject;
import com.yahoo.component.provider.ComponentRegistry;
diff --git a/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java b/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java
index 1f2a12322a1..ed786a0f372 100644
--- a/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java
+++ b/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java
@@ -1,11 +1,11 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.clients;
-import ai.vespa.llm.InferenceParameters;
+import ai.vespa.languagemodels.InferenceParameters;
import ai.vespa.llm.LlmClientConfig;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.Prompt;
-import ai.vespa.llm.completion.StringPrompt;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.completion.Prompt;
+import ai.vespa.languagemodels.completion.StringPrompt;
import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.container.jdisc.SecretStoreProvider;
import com.yahoo.container.jdisc.secretstore.SecretStore;
diff --git a/container-search/src/test/java/ai/vespa/llm/clients/MockLLMClient.java b/container-search/src/test/java/ai/vespa/llm/clients/MockLLMClient.java
index cfb6a43984f..45a36bd1b6f 100644
--- a/container-search/src/test/java/ai/vespa/llm/clients/MockLLMClient.java
+++ b/container-search/src/test/java/ai/vespa/llm/clients/MockLLMClient.java
@@ -1,10 +1,10 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.clients;
-import ai.vespa.llm.InferenceParameters;
+import ai.vespa.languagemodels.InferenceParameters;
import ai.vespa.llm.LlmClientConfig;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.Prompt;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.completion.Prompt;
import com.yahoo.container.jdisc.secretstore.SecretStore;
import java.util.List;
diff --git a/container-search/src/test/java/ai/vespa/llm/clients/OpenAITest.java b/container-search/src/test/java/ai/vespa/llm/clients/OpenAITest.java
index 1111a9824f5..363833cd0c1 100644
--- a/container-search/src/test/java/ai/vespa/llm/clients/OpenAITest.java
+++ b/container-search/src/test/java/ai/vespa/llm/clients/OpenAITest.java
@@ -1,9 +1,9 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.clients;
-import ai.vespa.llm.InferenceParameters;
+import ai.vespa.languagemodels.InferenceParameters;
import ai.vespa.llm.LlmClientConfig;
-import ai.vespa.llm.completion.StringPrompt;
+import ai.vespa.languagemodels.completion.StringPrompt;
import com.yahoo.container.jdisc.SecretStoreProvider;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
diff --git a/container-search/src/test/java/ai/vespa/llm/search/LLMSearcherTest.java b/container-search/src/test/java/ai/vespa/llm/search/LLMSearcherTest.java
index d4f1dbc00a4..0b4d334e4be 100755
--- a/container-search/src/test/java/ai/vespa/llm/search/LLMSearcherTest.java
+++ b/container-search/src/test/java/ai/vespa/llm/search/LLMSearcherTest.java
@@ -1,14 +1,13 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.search;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.LanguageModel;
+import ai.vespa.languagemodels.InferenceParameters;
+import ai.vespa.languagemodels.LanguageModel;
import ai.vespa.llm.LlmClientConfig;
import ai.vespa.llm.LlmSearcherConfig;
import ai.vespa.llm.clients.ConfigurableLanguageModelTest;
import ai.vespa.llm.clients.MockLLMClient;
-import ai.vespa.llm.completion.Prompt;
-import ai.vespa.llm.completion.StringPrompt;
+import ai.vespa.languagemodels.completion.Prompt;
import com.yahoo.component.ComponentId;
import com.yahoo.component.chain.Chain;
import com.yahoo.component.provider.ComponentRegistry;
@@ -229,26 +228,14 @@ public class LLMSearcherTest {
ComponentRegistry<LanguageModel> models = new ComponentRegistry<>();
llms.forEach((key, value) -> models.register(ComponentId.fromString(key), value));
models.freeze();
- return new LLMSearcherImpl(config, models);
+ return new LLMSearcher(config, models);
}
private static Searcher createLLMSearcher(LlmSearcherConfig config, Map<String, LanguageModel> llms) {
ComponentRegistry<LanguageModel> models = new ComponentRegistry<>();
llms.forEach((key, value) -> models.register(ComponentId.fromString(key), value));
models.freeze();
- return new LLMSearcherImpl(config, models);
- }
-
- public static class LLMSearcherImpl extends LLMSearcher {
-
- public LLMSearcherImpl(LlmSearcherConfig config, ComponentRegistry<LanguageModel> languageModels) {
- super(config, languageModels);
- }
-
- @Override
- public Result search(Query query, Execution execution) {
- return complete(query, StringPrompt.from(getPrompt(query)));
- }
+ return new LLMSearcher(config, models);
}
}
diff --git a/container-search/src/test/java/ai/vespa/llm/search/RAGSearcherTest.java b/container-search/src/test/java/ai/vespa/llm/search/RAGSearcherTest.java
index ccf9a4a6401..41d999794cb 100755
--- a/container-search/src/test/java/ai/vespa/llm/search/RAGSearcherTest.java
+++ b/container-search/src/test/java/ai/vespa/llm/search/RAGSearcherTest.java
@@ -1,7 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.llm.search;
-import ai.vespa.llm.LanguageModel;
+import ai.vespa.languagemodels.LanguageModel;
import ai.vespa.llm.LlmSearcherConfig;
import com.yahoo.component.ComponentId;
import com.yahoo.component.chain.Chain;
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json
index 45e88ac2e94..c92d41edfd9 100644
--- a/vespajlib/abi-spec.json
+++ b/vespajlib/abi-spec.json
@@ -4077,7 +4077,7 @@
],
"fields" : [ ]
},
- "ai.vespa.llm.InferenceParameters" : {
+ "ai.vespa.languagemodels.InferenceParameters" : {
"superClass" : "java.lang.Object",
"interfaces" : [ ],
"attributes" : [
@@ -4097,7 +4097,7 @@
],
"fields" : [ ]
},
- "ai.vespa.llm.LanguageModel" : {
+ "ai.vespa.languagemodels.LanguageModel" : {
"superClass" : "java.lang.Object",
"interfaces" : [ ],
"attributes" : [
@@ -4106,12 +4106,12 @@
"abstract"
],
"methods" : [
- "public abstract java.util.List complete(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters)",
- "public abstract java.util.concurrent.CompletableFuture completeAsync(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters, java.util.function.Consumer)"
+ "public abstract java.util.List complete(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters)",
+ "public abstract java.util.concurrent.CompletableFuture completeAsync(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters, java.util.function.Consumer)"
],
"fields" : [ ]
},
- "ai.vespa.llm.LanguageModelException" : {
+ "ai.vespa.languagemodels.LanguageModelException" : {
"superClass" : "java.lang.RuntimeException",
"interfaces" : [ ],
"attributes" : [
@@ -4123,22 +4123,22 @@
],
"fields" : [ ]
},
- "ai.vespa.llm.client.openai.OpenAiClient" : {
+ "ai.vespa.languagemodels.client.openai.OpenAiClient" : {
"superClass" : "java.lang.Object",
"interfaces" : [
- "ai.vespa.llm.LanguageModel"
+ "ai.vespa.languagemodels.LanguageModel"
],
"attributes" : [
"public"
],
"methods" : [
"public void <init>()",
- "public java.util.List complete(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters)",
- "public java.util.concurrent.CompletableFuture completeAsync(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters, java.util.function.Consumer)"
+ "public java.util.List complete(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters)",
+ "public java.util.concurrent.CompletableFuture completeAsync(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters, java.util.function.Consumer)"
],
"fields" : [ ]
},
- "ai.vespa.llm.completion.Completion$FinishReason" : {
+ "ai.vespa.languagemodels.completion.Completion$FinishReason" : {
"superClass" : "java.lang.Enum",
"interfaces" : [ ],
"attributes" : [
@@ -4147,17 +4147,17 @@
"enum"
],
"methods" : [
- "public static ai.vespa.llm.completion.Completion$FinishReason[] values()",
- "public static ai.vespa.llm.completion.Completion$FinishReason valueOf(java.lang.String)"
+ "public static ai.vespa.languagemodels.completion.Completion$FinishReason[] values()",
+ "public static ai.vespa.languagemodels.completion.Completion$FinishReason valueOf(java.lang.String)"
],
"fields" : [
- "public static final enum ai.vespa.llm.completion.Completion$FinishReason length",
- "public static final enum ai.vespa.llm.completion.Completion$FinishReason stop",
- "public static final enum ai.vespa.llm.completion.Completion$FinishReason none",
- "public static final enum ai.vespa.llm.completion.Completion$FinishReason error"
+ "public static final enum ai.vespa.languagemodels.completion.Completion$FinishReason length",
+ "public static final enum ai.vespa.languagemodels.completion.Completion$FinishReason stop",
+ "public static final enum ai.vespa.languagemodels.completion.Completion$FinishReason none",
+ "public static final enum ai.vespa.languagemodels.completion.Completion$FinishReason error"
]
},
- "ai.vespa.llm.completion.Completion" : {
+ "ai.vespa.languagemodels.completion.Completion" : {
"superClass" : "java.lang.Record",
"interfaces" : [ ],
"attributes" : [
@@ -4166,18 +4166,18 @@
"record"
],
"methods" : [
- "public void <init>(java.lang.String, ai.vespa.llm.completion.Completion$FinishReason)",
+ "public void <init>(java.lang.String, ai.vespa.languagemodels.completion.Completion$FinishReason)",
"public java.lang.String text()",
- "public ai.vespa.llm.completion.Completion$FinishReason finishReason()",
- "public static ai.vespa.llm.completion.Completion from(java.lang.String)",
- "public static ai.vespa.llm.completion.Completion from(java.lang.String, ai.vespa.llm.completion.Completion$FinishReason)",
+ "public ai.vespa.languagemodels.completion.Completion$FinishReason finishReason()",
+ "public static ai.vespa.languagemodels.completion.Completion from(java.lang.String)",
+ "public static ai.vespa.languagemodels.completion.Completion from(java.lang.String, ai.vespa.languagemodels.completion.Completion$FinishReason)",
"public final java.lang.String toString()",
"public final int hashCode()",
"public final boolean equals(java.lang.Object)"
],
"fields" : [ ]
},
- "ai.vespa.llm.completion.Prompt" : {
+ "ai.vespa.languagemodels.completion.Prompt" : {
"superClass" : "java.lang.Object",
"interfaces" : [ ],
"attributes" : [
@@ -4187,53 +4187,53 @@
"methods" : [
"public void <init>()",
"public abstract java.lang.String asString()",
- "public ai.vespa.llm.completion.Prompt append(ai.vespa.llm.completion.Completion)",
- "public abstract ai.vespa.llm.completion.Prompt append(java.lang.String)"
+ "public ai.vespa.languagemodels.completion.Prompt append(ai.vespa.languagemodels.completion.Completion)",
+ "public abstract ai.vespa.languagemodels.completion.Prompt append(java.lang.String)"
],
"fields" : [ ]
},
- "ai.vespa.llm.completion.StringPrompt" : {
- "superClass" : "ai.vespa.llm.completion.Prompt",
+ "ai.vespa.languagemodels.completion.StringPrompt" : {
+ "superClass" : "ai.vespa.languagemodels.completion.Prompt",
"interfaces" : [ ],
"attributes" : [
"public"
],
"methods" : [
"public java.lang.String asString()",
- "public ai.vespa.llm.completion.StringPrompt append(java.lang.String)",
- "public ai.vespa.llm.completion.StringPrompt append(ai.vespa.llm.completion.Completion)",
+ "public ai.vespa.languagemodels.completion.StringPrompt append(java.lang.String)",
+ "public ai.vespa.languagemodels.completion.StringPrompt append(ai.vespa.languagemodels.completion.Completion)",
"public java.lang.String toString()",
- "public static ai.vespa.llm.completion.StringPrompt from(java.lang.String)",
- "public bridge synthetic ai.vespa.llm.completion.Prompt append(java.lang.String)",
- "public bridge synthetic ai.vespa.llm.completion.Prompt append(ai.vespa.llm.completion.Completion)"
+ "public static ai.vespa.languagemodels.completion.StringPrompt from(java.lang.String)",
+ "public bridge synthetic ai.vespa.languagemodels.completion.Prompt append(java.lang.String)",
+ "public bridge synthetic ai.vespa.languagemodels.completion.Prompt append(ai.vespa.languagemodels.completion.Completion)"
],
"fields" : [ ]
},
- "ai.vespa.llm.test.MockLanguageModel$Builder" : {
+ "ai.vespa.languagemodels.test.MockLanguageModel$Builder" : {
"superClass" : "java.lang.Object",
"interfaces" : [ ],
"attributes" : [
"public"
],
"methods" : [
- "public ai.vespa.llm.test.MockLanguageModel$Builder completer(java.util.function.Function)",
+ "public ai.vespa.languagemodels.test.MockLanguageModel$Builder completer(java.util.function.Function)",
"public void <init>()",
- "public ai.vespa.llm.test.MockLanguageModel build()"
+ "public ai.vespa.languagemodels.test.MockLanguageModel build()"
],
"fields" : [ ]
},
- "ai.vespa.llm.test.MockLanguageModel" : {
+ "ai.vespa.languagemodels.test.MockLanguageModel" : {
"superClass" : "java.lang.Object",
"interfaces" : [
- "ai.vespa.llm.LanguageModel"
+ "ai.vespa.languagemodels.LanguageModel"
],
"attributes" : [
"public"
],
"methods" : [
- "public void <init>(ai.vespa.llm.test.MockLanguageModel$Builder)",
- "public java.util.List complete(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters)",
- "public java.util.concurrent.CompletableFuture completeAsync(ai.vespa.llm.completion.Prompt, ai.vespa.llm.InferenceParameters, java.util.function.Consumer)"
+ "public void <init>(ai.vespa.languagemodels.test.MockLanguageModel$Builder)",
+ "public java.util.List complete(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters)",
+ "public java.util.concurrent.CompletableFuture completeAsync(ai.vespa.languagemodels.completion.Prompt, ai.vespa.languagemodels.InferenceParameters, java.util.function.Consumer)"
],
"fields" : [ ]
}
diff --git a/vespajlib/src/main/java/ai/vespa/llm/InferenceParameters.java b/vespajlib/src/main/java/ai/vespa/languagemodels/InferenceParameters.java
index a942e5090e5..dd86db039dc 100755
--- a/vespajlib/src/main/java/ai/vespa/llm/InferenceParameters.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/InferenceParameters.java
@@ -1,5 +1,5 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm;
+package ai.vespa.languagemodels;
import com.yahoo.api.annotations.Beta;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/LanguageModel.java b/vespajlib/src/main/java/ai/vespa/languagemodels/LanguageModel.java
index 059f25fadb4..115a6e21bd6 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/LanguageModel.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/LanguageModel.java
@@ -1,8 +1,8 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm;
+package ai.vespa.languagemodels;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.Prompt;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.completion.Prompt;
import com.yahoo.api.annotations.Beta;
import java.util.List;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/LanguageModelException.java b/vespajlib/src/main/java/ai/vespa/languagemodels/LanguageModelException.java
index b5dbf615c08..f7ae7472d13 100755
--- a/vespajlib/src/main/java/ai/vespa/llm/LanguageModelException.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/LanguageModelException.java
@@ -1,5 +1,5 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm;
+package ai.vespa.languagemodels;
import com.yahoo.api.annotations.Beta;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/client/openai/OpenAiClient.java b/vespajlib/src/main/java/ai/vespa/languagemodels/client/openai/OpenAiClient.java
index 75308a84faa..c83fa4799c8 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/client/openai/OpenAiClient.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/client/openai/OpenAiClient.java
@@ -1,11 +1,11 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.client.openai;
+package ai.vespa.languagemodels.client.openai;
-import ai.vespa.llm.LanguageModelException;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.LanguageModel;
-import ai.vespa.llm.completion.Prompt;
+import ai.vespa.languagemodels.LanguageModelException;
+import ai.vespa.languagemodels.InferenceParameters;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.LanguageModel;
+import ai.vespa.languagemodels.completion.Prompt;
import com.yahoo.api.annotations.Beta;
import com.yahoo.slime.ArrayTraverser;
import com.yahoo.slime.Inspector;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/client/openai/package-info.java b/vespajlib/src/main/java/ai/vespa/languagemodels/client/openai/package-info.java
index 2593d919499..d3f6d9042d8 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/client/openai/package-info.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/client/openai/package-info.java
@@ -1,7 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
@ExportPackage
@PublicApi
-package ai.vespa.llm.client.openai;
+package ai.vespa.languagemodels.client.openai;
import com.yahoo.api.annotations.PublicApi;
import com.yahoo.osgi.annotation.ExportPackage;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/completion/Completion.java b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/Completion.java
index 91d0ad9bd02..68b6dc47bfd 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/completion/Completion.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/Completion.java
@@ -1,5 +1,5 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.completion;
+package ai.vespa.languagemodels.completion;
import com.yahoo.api.annotations.Beta;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/completion/Prompt.java b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/Prompt.java
index 44dfb8499a8..f10a1768b8c 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/completion/Prompt.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/Prompt.java
@@ -1,5 +1,5 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.completion;
+package ai.vespa.languagemodels.completion;
import com.yahoo.api.annotations.Beta;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/completion/StringPrompt.java b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/StringPrompt.java
index 9e702c79a7a..d4bb387cd6c 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/completion/StringPrompt.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/StringPrompt.java
@@ -1,5 +1,5 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.completion;
+package ai.vespa.languagemodels.completion;
import com.yahoo.api.annotations.Beta;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/completion/package-info.java b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/package-info.java
index 57c2b3f3364..fbae8d3a0e9 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/completion/package-info.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/completion/package-info.java
@@ -1,7 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
@ExportPackage
@PublicApi
-package ai.vespa.llm.completion;
+package ai.vespa.languagemodels.completion;
import com.yahoo.api.annotations.PublicApi;
import com.yahoo.osgi.annotation.ExportPackage;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/package-info.java b/vespajlib/src/main/java/ai/vespa/languagemodels/package-info.java
index 8640f652ad4..9ec6a7773e5 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/package-info.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/package-info.java
@@ -1,7 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
@ExportPackage
@PublicApi
-package ai.vespa.llm;
+package ai.vespa.languagemodels;
import com.yahoo.api.annotations.PublicApi;
import com.yahoo.osgi.annotation.ExportPackage;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/test/MockLanguageModel.java b/vespajlib/src/main/java/ai/vespa/languagemodels/test/MockLanguageModel.java
index 0e757a1f1e7..42bfb8b3e93 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/test/MockLanguageModel.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/test/MockLanguageModel.java
@@ -1,10 +1,10 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.test;
+package ai.vespa.languagemodels.test;
-import ai.vespa.llm.LanguageModel;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.Prompt;
+import ai.vespa.languagemodels.LanguageModel;
+import ai.vespa.languagemodels.InferenceParameters;
+import ai.vespa.languagemodels.completion.Completion;
+import ai.vespa.languagemodels.completion.Prompt;
import com.yahoo.api.annotations.Beta;
import java.util.List;
diff --git a/vespajlib/src/main/java/ai/vespa/llm/test/package-info.java b/vespajlib/src/main/java/ai/vespa/languagemodels/test/package-info.java
index ab3b7acc657..ba5cf265408 100644
--- a/vespajlib/src/main/java/ai/vespa/llm/test/package-info.java
+++ b/vespajlib/src/main/java/ai/vespa/languagemodels/test/package-info.java
@@ -1,7 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
@ExportPackage
@PublicApi
-package ai.vespa.llm.test;
+package ai.vespa.languagemodels.test;
/**
* Tools for writing tests when working with large language models.
diff --git a/vespajlib/src/test/java/ai/vespa/llm/client/openai/OpenAiClientCompletionTest.java b/vespajlib/src/test/java/ai/vespa/languagemodels/client/openai/OpenAiClientCompletionTest.java
index 1baab26f496..d6cb4b13f50 100644
--- a/vespajlib/src/test/java/ai/vespa/llm/client/openai/OpenAiClientCompletionTest.java
+++ b/vespajlib/src/test/java/ai/vespa/languagemodels/client/openai/OpenAiClientCompletionTest.java
@@ -1,9 +1,8 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.client.openai;
+package ai.vespa.languagemodels.client.openai;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.completion.Completion;
-import ai.vespa.llm.completion.StringPrompt;
+import ai.vespa.languagemodels.InferenceParameters;
+import ai.vespa.languagemodels.completion.StringPrompt;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
diff --git a/vespajlib/src/test/java/ai/vespa/llm/completion/CompletionTest.java b/vespajlib/src/test/java/ai/vespa/languagemodels/completion/CompletionTest.java
index 24c496a3d2c..304334a0ea2 100644
--- a/vespajlib/src/test/java/ai/vespa/llm/completion/CompletionTest.java
+++ b/vespajlib/src/test/java/ai/vespa/languagemodels/completion/CompletionTest.java
@@ -1,8 +1,8 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package ai.vespa.llm.completion;
+package ai.vespa.languagemodels.completion;
-import ai.vespa.llm.InferenceParameters;
-import ai.vespa.llm.test.MockLanguageModel;
+import ai.vespa.languagemodels.test.MockLanguageModel;
+import ai.vespa.languagemodels.InferenceParameters;
import org.junit.jupiter.api.Test;
import java.util.List;