public class dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore extends java.lang.Object implements dev.langchain4j.store.embedding.EmbeddingStore
{
private static final org.slf4j.Logger log;
public static final java.lang.String KEY_ATTRIBUTES_BLOB;
public static final java.lang.String KEY_SIMILARITY;
private final com.dtsx.astra.sdk.AstraDBCollection astraDBCollection;
private final int itemsPerChunk;
private final int concurrentThreads;
public void <init>(com.dtsx.astra.sdk.AstraDBCollection)
{
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
java.lang.NullPointerException v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: com.dtsx.astra.sdk.AstraDBCollection;
specialinvoke v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: void <init>(com.dtsx.astra.sdk.AstraDBCollection,int,int)>(v, 20, 8);
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("client is marked non-null but is null");
throw v;
label:
return;
}
public void <init>(com.dtsx.astra.sdk.AstraDBCollection, int, int)
{
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
int v, v;
java.lang.IllegalArgumentException v, v;
java.lang.NullPointerException v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: com.dtsx.astra.sdk.AstraDBCollection;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("client is marked non-null but is null");
throw v;
label:
if v > 20 goto label;
if v >= 1 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("\'itemsPerChunk\' should be in between 1 and 20");
throw v;
label:
if v >= 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("\'concurrentThreads\' should be at least 1");
throw v;
label:
v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection> = v;
v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int itemsPerChunk> = v;
v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int concurrentThreads> = v;
return;
}
public void clear()
{
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
virtualinvoke v.<com.dtsx.astra.sdk.AstraDBCollection: int deleteAll()>();
return;
}
public java.lang.String add(dev.langchain4j.data.embedding.Embedding)
{
java.lang.String v;
dev.langchain4j.data.embedding.Embedding v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v = virtualinvoke v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: java.lang.String add(dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(v, null);
return v;
}
public java.lang.String add(dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment)
{
dev.langchain4j.data.embedding.Embedding v;
io.stargate.sdk.data.domain.JsonDocumentMutationResult v;
io.stargate.sdk.data.domain.JsonDocument v, v;
dev.langchain4j.data.segment.TextSegment v;
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
java.lang.String v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: dev.langchain4j.data.segment.TextSegment;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
v = specialinvoke v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: io.stargate.sdk.data.domain.JsonDocument mapRecord(dev.langchain4j.data.embedding.Embedding,dev.langchain4j.data.segment.TextSegment)>(v, v);
v = virtualinvoke v.<com.dtsx.astra.sdk.AstraDBCollection: io.stargate.sdk.data.domain.JsonDocumentMutationResult insertOne(io.stargate.sdk.data.domain.JsonDocument)>(v);
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocumentMutationResult: io.stargate.sdk.data.domain.JsonDocument getDocument()>();
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocument: java.lang.String getId()>();
return v;
}
public void add(java.lang.String, dev.langchain4j.data.embedding.Embedding)
{
dev.langchain4j.data.embedding.Embedding v;
float[] v;
io.stargate.sdk.data.domain.JsonDocument v, v, v;
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
java.lang.String v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: java.lang.String;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
v = new io.stargate.sdk.data.domain.JsonDocument;
specialinvoke v.<io.stargate.sdk.data.domain.JsonDocument: void <init>()>();
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocument: io.stargate.sdk.data.domain.JsonDocument id(java.lang.String)>(v);
v = virtualinvoke v.<dev.langchain4j.data.embedding.Embedding: float[] vector()>();
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocument: io.stargate.sdk.data.domain.JsonDocument vector(float[])>(v);
virtualinvoke v.<com.dtsx.astra.sdk.AstraDBCollection: io.stargate.sdk.data.domain.JsonDocumentMutationResult upsertOne(io.stargate.sdk.data.domain.JsonDocument)>(v);
return;
}
public java.util.List addAll(java.util.List)
{
java.util.function.Function v, v, v;
com.dtsx.astra.sdk.AstraDBCollection v;
int v, v;
java.util.stream.Collector v, v;
java.util.List v, v;
java.util.stream.Stream v, v, v, v, v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
java.lang.Object v, v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: java.util.List;
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$lambda_addAll_0__1: java.util.function.Function bootstrap$(dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore)>(v);
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);
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int itemsPerChunk>;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int concurrentThreads>;
v = virtualinvoke v.<com.dtsx.astra.sdk.AstraDBCollection: java.util.List insertManyChunkedJsonDocuments(java.util.List,int,int)>(v, v, v);
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$getDocument__2: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$getId__3: 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);
return v;
}
public java.util.List addAll(java.util.List, java.util.List)
{
io.stargate.sdk.data.domain.JsonDocument v;
java.util.function.Function v, v;
java.util.ArrayList v;
com.dtsx.astra.sdk.AstraDBCollection v;
int v, v, v, v, v, v;
java.util.stream.Collector v;
java.lang.IllegalArgumentException v;
java.util.List v, v, v;
java.util.stream.Stream v, v, v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
java.lang.Object v, v, v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
if v == null goto label;
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;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("embeddingList and textSegmentList must not be null and have the same size");
throw v;
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);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = specialinvoke v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: io.stargate.sdk.data.domain.JsonDocument mapRecord(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 = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int itemsPerChunk>;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int concurrentThreads>;
v = virtualinvoke v.<com.dtsx.astra.sdk.AstraDBCollection: java.util.List insertManyChunkedJsonDocuments(java.util.List,int,int)>(v, v, v);
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$getDocument__4: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$getId__5: 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);
return v;
}
public java.util.List findRelevant(dev.langchain4j.data.embedding.Embedding, int, double)
{
java.util.List v;
dev.langchain4j.data.embedding.Embedding v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
int v;
io.stargate.sdk.data.domain.query.Filter v;
double v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: int;
v := @parameter: double;
v = null;
v = virtualinvoke v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: java.util.List findRelevant(dev.langchain4j.data.embedding.Embedding,io.stargate.sdk.data.domain.query.Filter,int,double)>(v, v, v, v);
return v;
}
public java.util.List findRelevant(dev.langchain4j.data.embedding.Embedding, io.stargate.sdk.data.domain.query.Filter, int, double)
{
dev.langchain4j.data.embedding.Embedding v;
java.util.function.Predicate v;
float[] v;
java.util.function.Function v;
java.util.stream.Stream v, v, v;
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
int v;
java.lang.Object v;
java.util.stream.Collector v;
io.stargate.sdk.data.domain.query.Filter v;
double v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: io.stargate.sdk.data.domain.query.Filter;
v := @parameter: int;
v := @parameter: double;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
v = virtualinvoke v.<dev.langchain4j.data.embedding.Embedding: float[] vector()>();
v = virtualinvoke v.<com.dtsx.astra.sdk.AstraDBCollection: java.util.stream.Stream findVector(float[],io.stargate.sdk.data.domain.query.Filter,int)>(v, v, v);
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$lambda_findRelevant_1__6: java.util.function.Predicate bootstrap$(double)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$mapJsonResult__7: java.util.function.Function bootstrap$(dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore)>(v);
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);
return v;
}
public dev.langchain4j.store.embedding.EmbeddingMatch mapJsonResult(io.stargate.sdk.data.domain.JsonDocumentResult)
{
java.lang.Float v;
java.lang.Double v;
float[] v;
dev.langchain4j.data.segment.TextSegment v, v;
java.util.function.Function v, v;
io.stargate.sdk.data.domain.JsonDocumentResult v;
java.util.Map v;
dev.langchain4j.data.document.Metadata v;
java.lang.String v, v;
java.util.stream.Collector v;
dev.langchain4j.data.embedding.Embedding v;
dev.langchain4j.store.embedding.EmbeddingMatch v;
java.util.Set v;
java.util.stream.Stream v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
float v;
java.lang.Object v, v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: io.stargate.sdk.data.domain.JsonDocumentResult;
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocumentResult: java.lang.Float getSimilarity()>();
v = virtualinvoke v.<java.lang.Float: float floatValue()>();
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocumentResult: java.lang.String getId()>();
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocumentResult: float[] getVector()>();
v = staticinvoke <dev.langchain4j.data.embedding.Embedding: dev.langchain4j.data.embedding.Embedding 'from'(float[])>(v);
v = null;
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocumentResult: java.util.Map getData()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("body_blob");
if v == null goto label;
v = new dev.langchain4j.data.document.Metadata;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$getKey__8: java.util.function.Function bootstrap$()>();
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$lambda_mapJsonResult_2__9: java.util.function.Function bootstrap$()>();
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toMap(java.util.function.Function,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
specialinvoke v.<dev.langchain4j.data.document.Metadata: void <init>(java.util.Map)>(v);
virtualinvoke v.<dev.langchain4j.data.document.Metadata: dev.langchain4j.data.document.Metadata remove(java.lang.String)>("body_blob");
virtualinvoke v.<dev.langchain4j.data.document.Metadata: dev.langchain4j.data.document.Metadata remove(java.lang.String)>("$similarity");
v = new dev.langchain4j.data.segment.TextSegment;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
specialinvoke v.<dev.langchain4j.data.segment.TextSegment: void <init>(java.lang.String,dev.langchain4j.data.document.Metadata)>(v, v);
v = v;
label:
v = new dev.langchain4j.store.embedding.EmbeddingMatch;
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 io.stargate.sdk.data.domain.JsonDocument mapRecord(dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.segment.TextSegment)
{
dev.langchain4j.data.embedding.Embedding v;
float[] v;
io.stargate.sdk.data.domain.JsonDocument v, v;
dev.langchain4j.data.segment.TextSegment v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
java.util.Map v;
java.util.function.BiConsumer v;
dev.langchain4j.data.document.Metadata v;
java.lang.String v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v := @parameter: dev.langchain4j.data.embedding.Embedding;
v := @parameter: dev.langchain4j.data.segment.TextSegment;
v = new io.stargate.sdk.data.domain.JsonDocument;
specialinvoke v.<io.stargate.sdk.data.domain.JsonDocument: void <init>()>();
v = virtualinvoke v.<dev.langchain4j.data.embedding.Embedding: float[] vector()>();
v = virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocument: io.stargate.sdk.data.domain.JsonDocument vector(float[])>(v);
if v == null goto label;
v = virtualinvoke v.<dev.langchain4j.data.segment.TextSegment: java.lang.String text()>();
virtualinvoke v.<io.stargate.sdk.data.domain.JsonDocument: io.stargate.sdk.data.domain.JsonDocument put(java.lang.String,java.lang.Object)>("body_blob", v);
v = virtualinvoke v.<dev.langchain4j.data.segment.TextSegment: dev.langchain4j.data.document.Metadata metadata()>();
v = virtualinvoke v.<dev.langchain4j.data.document.Metadata: java.util.Map asMap()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore$put__10: java.util.function.BiConsumer bootstrap$(io.stargate.sdk.data.domain.JsonDocument)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
label:
return v;
}
public com.dtsx.astra.sdk.AstraDBCollection astraDBCollection()
{
com.dtsx.astra.sdk.AstraDBCollection v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: com.dtsx.astra.sdk.AstraDBCollection astraDBCollection>;
return v;
}
public int itemsPerChunk()
{
int v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int itemsPerChunk>;
return v;
}
public int concurrentThreads()
{
int v;
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore v;
v := @this: dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore;
v = v.<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: int concurrentThreads>;
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Ldev/langchain4j/store/embedding/astradb/AstraDbEmbeddingStore;");
<dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore: org.slf4j.Logger log> = v;
return;
}
}