public class dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore extends java.lang.Object implements dev.langchain4j.store.embedding.EmbeddingStore
{
private static final java.time.Duration DEFAULT_TIMEOUT;
private static final java.lang.String DEFAULT_NAMESPACE;
private static final java.lang.String DEFAULT_DOCUMENT_TYPE;
private static final boolean DEFAULT_AVOID_DUPS;
private static final java.lang.String FIELD_NAME_TEXT_SEGMENT;
private static final java.lang.String FIELD_NAME_VECTOR;
private static final java.lang.String FIELD_NAME_DOCUMENT_ID;
private static final java.lang.String DEFAULT_RANK_PROFILE;
private static final int DEFAULT_TARGET_HITS;
private final java.lang.String url;
private final java.nio.file.Path keyPath;
private final java.nio.file.Path certPath;
private final java.time.Duration timeout;
private final java.lang.String namespace;
private final java.lang.String documentType;
private final java.lang.String rankProfile;
private final int targetHits;
private final boolean avoidDups;
private dev.langchain4j.store.embedding.vespa.VespaQueryApi queryApi;
public void <init>(java.lang.String, java.lang.String, java.lang.String, java.time.Duration, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Boolean)
{
java.lang.String[] v, v;
java.lang.Integer v;
java.time.Duration v, v;
int v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.nio.file.Path v, v;
boolean v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.time.Duration;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.Boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String url> = v;
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.nio.file.Path keyPath> = v;
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.nio.file.Path certPath> = v;
if v == null goto label;
v = v;
goto label;
label:
v = <dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.time.Duration DEFAULT_TIMEOUT>;
label:
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.time.Duration timeout> = v;
if v == null goto label;
v = v;
goto label;
label:
v = "namespace";
label:
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String namespace> = v;
if v == null goto label;
v = v;
goto label;
label:
v = "langchain4j";
label:
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String documentType> = v;
if v == null goto label;
v = v;
goto label;
label:
v = "cosine_similarity";
label:
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String rankProfile> = v;
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
goto label;
label:
v = 10;
label:
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: int targetHits> = v;
if v == null goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
goto label;
label:
v = 1;
label:
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: boolean avoidDups> = v;
return;
}
public java.lang.String add(dev.langchain4j.data.embedding.Embedding)
{
java.lang.String v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
dev.langchain4j.data.embedding.Embedding v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String add(java.lang.String,dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(null, v, null);
return v;
}
public void add(java.lang.String, dev.langchain4j.data.embedding.Embedding)
{
java.lang.String v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
dev.langchain4j.data.embedding.Embedding v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: java.lang.String;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String add(java.lang.String,dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(v, v, null);
return;
}
public java.lang.String add(dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment)
{
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
dev.langchain4j.data.embedding.Embedding v;
java.lang.String v;
dev.langchain4j.data.segment.TextSegment v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: dev.langchain4j.data.segment.TextSegment;
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String add(java.lang.String,dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(null, v, v);
return v;
}
public java.util.List addAll(java.util.List)
{
java.util.List v, v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: java.util.List;
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.util.List addAll(java.util.List,java.util.List)>(v, null);
return v;
}
public java.util.List addAll(java.util.List, java.util.List)
{
java.lang.Throwable v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$1 v;
java.util.ArrayList v, v;
dev.langchain4j.store.embedding.vespa.Record v;
int v, v, v, v;
java.io.IOException v;
java.lang.RuntimeException v;
java.lang.IllegalArgumentException v;
java.util.List v, v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
ai.vespa.feed.client.JsonFeeder v;
java.lang.Object v, v;
java.io.InputStream v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<java.util.List: int size()>();
if v == v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("The list of embeddings and embedded must have the same size");
throw v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
label:
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: ai.vespa.feed.client.JsonFeeder buildJsonFeeder()>();
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
goto label;
label:
v = null;
label:
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.Record buildRecord(dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <dev.langchain4j.internal.Json: java.io.InputStream toInputStream(java.lang.Object,java.lang.Class)>(v, class "Ljava/util/List;");
v = new dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$1;
specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$1: void <init>(dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore,java.util.List)>(v, v);
virtualinvoke v.<ai.vespa.feed.client.JsonFeeder: java.util.concurrent.CompletableFuture feedMany(java.io.InputStream,ai.vespa.feed.client.JsonFeeder$ResultCallback)>(v, v);
label:
virtualinvoke v.<ai.vespa.feed.client.JsonFeeder: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
public java.util.List findRelevant(dev.langchain4j.data.embedding.Embedding, int, double)
{
dev.langchain4j.store.embedding.vespa.QueryResponse$RootNode v;
ai.vespa.client.dsl.FixedQuery v, v, v, v, v;
java.util.stream.Collector v;
boolean v;
java.lang.Exception v;
java.util.List v, v;
java.util.stream.Stream v, v;
ai.vespa.client.dsl.Select v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
retrofit.Call v;
java.lang.Throwable v;
ai.vespa.client.dsl.Query v;
java.lang.String[] v;
retrofit.Response v;
java.util.function.Function v;
int v;
dev.langchain4j.store.embedding.vespa.VespaQueryApi v;
java.lang.String v, v, v, v, v;
double v;
dev.langchain4j.data.embedding.Embedding v;
java.lang.RuntimeException v, v;
ai.vespa.client.dsl.Sources v;
ai.vespa.client.dsl.NearestNeighbor v;
java.lang.Object v, v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: int;
v := @parameter: double;
label:
v = newarray (java.lang.String)[2];
v[0] = "text_segment";
v[1] = "vector";
v = staticinvoke <ai.vespa.client.dsl.Q: ai.vespa.client.dsl.Select select(java.lang.String,java.lang.String[])>("documentid", v);
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String documentType>;
v = virtualinvoke v.<ai.vespa.client.dsl.Select: ai.vespa.client.dsl.Sources 'from'(java.lang.String)>(v);
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: ai.vespa.client.dsl.NearestNeighbor buildNearestNeighbor()>();
v = virtualinvoke v.<ai.vespa.client.dsl.Sources: ai.vespa.client.dsl.Query where(ai.vespa.client.dsl.QueryChain)>(v);
v = virtualinvoke v.<ai.vespa.client.dsl.Query: ai.vespa.client.dsl.FixedQuery fix()>();
v = virtualinvoke v.<ai.vespa.client.dsl.FixedQuery: ai.vespa.client.dsl.FixedQuery hits(int)>(v);
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String rankProfile>;
v = virtualinvoke v.<ai.vespa.client.dsl.FixedQuery: ai.vespa.client.dsl.FixedQuery ranking(java.lang.String)>(v);
v = virtualinvoke v.<dev.langchain4j.data.embedding.Embedding: java.util.List vectorAsList()>();
v = staticinvoke <dev.langchain4j.internal.Json: java.lang.String toJson(java.lang.Object)>(v);
v = virtualinvoke v.<ai.vespa.client.dsl.FixedQuery: ai.vespa.client.dsl.FixedQuery param(java.lang.String,java.lang.String)>("input.query(q)", v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(double)>(v);
v = virtualinvoke v.<ai.vespa.client.dsl.FixedQuery: ai.vespa.client.dsl.FixedQuery param(java.lang.String,java.lang.String)>("input.query(threshold)", v);
v = virtualinvoke v.<ai.vespa.client.dsl.FixedQuery: java.lang.String build()>();
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.VespaQueryApi getQueryApi()>();
v = interfaceinvoke v.<dev.langchain4j.store.embedding.vespa.VespaQueryApi: retrofit.Call search(java.lang.String)>(v);
v = interfaceinvoke v.<retrofit.Call: retrofit.Response execute()>();
v = virtualinvoke v.<retrofit.Response: boolean isSuccessful()>();
if v == 0 goto label;
v = virtualinvoke v.<retrofit.Response: java.lang.Object body()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.QueryResponse: dev.langchain4j.store.embedding.vespa.QueryResponse$RootNode getRoot()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.QueryResponse$RootNode: java.util.List getChildren()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$toEmbeddingMatch__1: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
label:
return v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Request failed");
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
throw v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.lang.String add(java.lang.String, dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment)
{
java.lang.Throwable v;
dev.langchain4j.data.embedding.Embedding v;
java.util.concurrent.CompletableFuture v;
java.lang.RuntimeException v;
dev.langchain4j.data.segment.TextSegment v;
java.util.concurrent.atomic.AtomicReference v;
java.lang.Exception v;
dev.langchain4j.store.embedding.vespa.Record v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
ai.vespa.feed.client.JsonFeeder v;
java.util.function.BiConsumer v;
java.lang.Object v;
java.lang.String v, v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: java.lang.String;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: dev.langchain4j.data.segment.TextSegment;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
label:
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: ai.vespa.feed.client.JsonFeeder buildJsonFeeder()>();
label:
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.Record buildRecord(java.lang.String,dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(v, v, v);
v = staticinvoke <dev.langchain4j.internal.Json: java.lang.String toJson(java.lang.Object)>(v);
v = virtualinvoke v.<ai.vespa.feed.client.JsonFeeder: java.util.concurrent.CompletableFuture feedSingle(java.lang.String)>(v);
v = staticinvoke <dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$lambda_add_0__2: java.util.function.BiConsumer bootstrap$(java.util.concurrent.atomic.AtomicReference)>(v);
virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture whenComplete(java.util.function.BiConsumer)>(v);
label:
virtualinvoke v.<ai.vespa.feed.client.JsonFeeder: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
private ai.vespa.feed.client.JsonFeeder buildJsonFeeder()
{
ai.vespa.feed.client.JsonFeeder$Builder v, v;
ai.vespa.feed.client.FeedClient v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
ai.vespa.feed.client.JsonFeeder v;
java.time.Duration v;
java.lang.String v;
java.net.URI v;
ai.vespa.feed.client.FeedClientBuilder v, v;
java.nio.file.Path v, v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String url>;
v = staticinvoke <java.net.URI: java.net.URI create(java.lang.String)>(v);
v = staticinvoke <ai.vespa.feed.client.FeedClientBuilder: ai.vespa.feed.client.FeedClientBuilder create(java.net.URI)>(v);
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.nio.file.Path certPath>;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.nio.file.Path keyPath>;
v = interfaceinvoke v.<ai.vespa.feed.client.FeedClientBuilder: ai.vespa.feed.client.FeedClientBuilder setCertificate(java.nio.file.Path,java.nio.file.Path)>(v, v);
v = interfaceinvoke v.<ai.vespa.feed.client.FeedClientBuilder: ai.vespa.feed.client.FeedClient build()>();
v = staticinvoke <ai.vespa.feed.client.JsonFeeder: ai.vespa.feed.client.JsonFeeder$Builder builder(ai.vespa.feed.client.FeedClient)>(v);
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.time.Duration timeout>;
v = virtualinvoke v.<ai.vespa.feed.client.JsonFeeder$Builder: ai.vespa.feed.client.JsonFeeder$Builder withTimeout(java.time.Duration)>(v);
v = virtualinvoke v.<ai.vespa.feed.client.JsonFeeder$Builder: ai.vespa.feed.client.JsonFeeder build()>();
return v;
}
private dev.langchain4j.store.embedding.vespa.VespaQueryApi getQueryApi()
{
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
dev.langchain4j.store.embedding.vespa.VespaQueryApi v, v, v;
java.lang.String v;
java.nio.file.Path v, v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.VespaQueryApi queryApi>;
if v != null goto label;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String url>;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.nio.file.Path certPath>;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.nio.file.Path keyPath>;
v = staticinvoke <dev.langchain4j.store.embedding.vespa.VespaQueryClient: dev.langchain4j.store.embedding.vespa.VespaQueryApi createInstance(java.lang.String,java.nio.file.Path,java.nio.file.Path)>(v, v, v);
v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.VespaQueryApi queryApi> = v;
label:
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.VespaQueryApi queryApi>;
return v;
}
public static dev.langchain4j.store.embedding.EmbeddingMatch toEmbeddingMatch(dev.langchain4j.store.embedding.vespa.Record)
{
dev.langchain4j.store.embedding.vespa.Record$Fields v, v, v;
dev.langchain4j.data.embedding.Embedding v;
java.lang.Double v;
dev.langchain4j.store.embedding.EmbeddingMatch v;
dev.langchain4j.data.segment.TextSegment v;
java.util.List v;
dev.langchain4j.store.embedding.vespa.Record v;
dev.langchain4j.store.embedding.vespa.Record$Fields$Vector v;
java.lang.String v, v;
double v;
v := @parameter: dev.langchain4j.store.embedding.vespa.Record;
v = new dev.langchain4j.store.embedding.EmbeddingMatch;
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record: double getRelevance()>();
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record: dev.langchain4j.store.embedding.vespa.Record$Fields getFields()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record$Fields: java.lang.String getDocumentId()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record: dev.langchain4j.store.embedding.vespa.Record$Fields getFields()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record$Fields: dev.langchain4j.store.embedding.vespa.Record$Fields$Vector getVector()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record$Fields$Vector: java.util.List getValues()>();
v = staticinvoke <dev.langchain4j.data.embedding.Embedding: dev.langchain4j.data.embedding.Embedding 'from'(java.util.List)>(v);
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record: dev.langchain4j.store.embedding.vespa.Record$Fields getFields()>();
v = virtualinvoke v.<dev.langchain4j.store.embedding.vespa.Record$Fields: java.lang.String getTextSegment()>();
v = staticinvoke <dev.langchain4j.data.segment.TextSegment: dev.langchain4j.data.segment.TextSegment 'from'(java.lang.String)>(v);
specialinvoke v.<dev.langchain4j.store.embedding.EmbeddingMatch: void <init>(java.lang.Double,java.lang.String,dev.langchain4j.data.embedding.Embedding,java.lang.Object)>(v, v, v, v);
return v;
}
private dev.langchain4j.store.embedding.vespa.Record buildRecord(java.lang.String, dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment)
{
dev.langchain4j.data.embedding.Embedding v;
dev.langchain4j.data.segment.TextSegment v;
java.util.List v;
dev.langchain4j.store.embedding.vespa.Record v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
java.lang.String v, v, v, v, v, v, v;
ai.vespa.feed.client.DocumentId v;
boolean v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: java.lang.String;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: dev.langchain4j.data.segment.TextSegment;
if v == null goto label;
v = v;
goto label;
label:
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: boolean avoidDups>;
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<dev.langchain4j.data.segment.TextSegment: java.lang.String text()>();
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.String generateUUIDFrom(java.lang.String)>(v);
goto label;
label:
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.String randomUUID()>();
label:
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String namespace>;
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.lang.String documentType>;
v = staticinvoke <ai.vespa.feed.client.DocumentId: ai.vespa.feed.client.DocumentId of(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
if v == null goto label;
v = virtualinvoke v.<dev.langchain4j.data.segment.TextSegment: java.lang.String text()>();
goto label;
label:
v = null;
label:
v = new dev.langchain4j.store.embedding.vespa.Record;
v = virtualinvoke v.<ai.vespa.feed.client.DocumentId: java.lang.String toString()>();
v = virtualinvoke v.<dev.langchain4j.data.embedding.Embedding: java.util.List vectorAsList()>();
specialinvoke v.<dev.langchain4j.store.embedding.vespa.Record: void <init>(java.lang.String,java.lang.String,java.util.List)>(v, v, v);
return v;
}
private dev.langchain4j.store.embedding.vespa.Record buildRecord(dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment)
{
dev.langchain4j.store.embedding.vespa.Record v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
dev.langchain4j.data.embedding.Embedding v;
dev.langchain4j.data.segment.TextSegment v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: dev.langchain4j.data.segment.TextSegment;
v = specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: dev.langchain4j.store.embedding.vespa.Record buildRecord(java.lang.String,dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(null, v, v);
return v;
}
private ai.vespa.client.dsl.NearestNeighbor buildNearestNeighbor() throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
{
java.lang.Object[] v;
java.lang.Class[] v;
java.lang.Integer v;
ai.vespa.client.dsl.NearestNeighbor v;
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore v;
int v;
java.lang.Class v;
java.lang.reflect.Method v;
ai.vespa.client.dsl.Annotation v;
v := @this: dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore;
v = staticinvoke <ai.vespa.client.dsl.Q: ai.vespa.client.dsl.NearestNeighbor nearestNeighbor(java.lang.String,java.lang.String)>("vector", "q");
v = class "Lai/vespa/client/dsl/NearestNeighbor;";
v = newarray (java.lang.Class)[1];
v[0] = class "Lai/vespa/client/dsl/Annotation;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>("annotate", v);
virtualinvoke v.<java.lang.reflect.Method: void setAccessible(boolean)>(1);
v = newarray (java.lang.Object)[1];
v = v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: int targetHits>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <ai.vespa.client.dsl.A: ai.vespa.client.dsl.Annotation a(java.lang.String,java.lang.Object)>("targetHits", v);
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
return v;
}
public static dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$VespaEmbeddingStoreBuilder builder()
{
dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$VespaEmbeddingStoreBuilder v;
v = new dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$VespaEmbeddingStoreBuilder;
specialinvoke v.<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore$VespaEmbeddingStoreBuilder: void <init>()>();
return v;
}
static void <clinit>()
{
java.time.Duration v;
v = staticinvoke <java.time.Duration: java.time.Duration ofSeconds(long)>(5L);
<dev.langchain4j.store.embedding.vespa.VespaEmbeddingStore: java.time.Duration DEFAULT_TIMEOUT> = v;
return;
}
}