Class AstraDbEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.astradb.AstraDbEmbeddingStore
All Implemented Interfaces:
EmbeddingStore<TextSegment>

public class AstraDbEmbeddingStore extends Object implements EmbeddingStore<TextSegment>
Implementation of EmbeddingStore using AstraDB.
See Also:
  • Field Details

  • Constructor Details

    • AstraDbEmbeddingStore

      public AstraDbEmbeddingStore(@NonNull @NonNull com.dtsx.astra.sdk.AstraDBCollection client)
      Initialization of the store with an EXISTING collection.
      Parameters:
      client - astra db collection client
    • AstraDbEmbeddingStore

      public AstraDbEmbeddingStore(@NonNull @NonNull com.dtsx.astra.sdk.AstraDBCollection client, int itemsPerChunk, int concurrentThreads)
      Initialization of the store with an EXISTING collection.
      Parameters:
      client - astra db collection client
      itemsPerChunk - size of 1 chunk in between 1 and 20
  • Method Details

    • clear

      public void clear()
      Delete all records from the table.
    • add

      public String add(Embedding embedding)
      Adds a given embedding to the store.
      Specified by:
      add in interface EmbeddingStore<TextSegment>
      Parameters:
      embedding - The embedding to be added to the store.
      Returns:
      The auto-generated ID associated with the added embedding.
    • add

      public String add(Embedding embedding, TextSegment textSegment)
      Adds a given embedding and the corresponding content that has been embedded to the store.
      Specified by:
      add in interface EmbeddingStore<TextSegment>
      Parameters:
      embedding - The embedding to be added to the store.
      textSegment - Original content that was embedded.
      Returns:
      The auto-generated ID associated with the added embedding.
    • add

      public void add(String id, Embedding embedding)
      Adds a given embedding to the store.
      Specified by:
      add in interface EmbeddingStore<TextSegment>
      Parameters:
      id - The unique identifier for the embedding to be added.
      embedding - The embedding to be added to the store.
    • addAll

      public List<String> addAll(List<Embedding> embeddings)
      Adds multiple embeddings to the store.
      Specified by:
      addAll in interface EmbeddingStore<TextSegment>
      Parameters:
      embeddings - A list of embeddings to be added to the store.
      Returns:
      A list of auto-generated IDs associated with the added embeddings.
    • addAll

      public List<String> addAll(List<Embedding> embeddingList, List<TextSegment> textSegmentList)
      Add multiple embeddings as a single action.
      Specified by:
      addAll in interface EmbeddingStore<TextSegment>
      Parameters:
      embeddingList - list of embeddings
      textSegmentList - list of text segment
      Returns:
      list of new row if (same order as the input)
    • findRelevant

      public List<EmbeddingMatch<TextSegment>> findRelevant(Embedding referenceEmbedding, int maxResults, double minScore)
      Finds the most relevant (closest in space) embeddings to the provided reference embedding.
      Specified by:
      findRelevant in interface EmbeddingStore<TextSegment>
      Parameters:
      referenceEmbedding - The embedding used as a reference. Returned embeddings should be relevant (closest) to this one.
      maxResults - The maximum number of embeddings to be returned.
      minScore - The minimum relevance score, ranging from 0 to 1 (inclusive). Only embeddings with a score of this value or higher will be returned.
      Returns:
      A list of embedding matches. Each embedding match includes a relevance score (derivative of cosine distance), ranging from 0 (not relevant) to 1 (highly relevant).
    • findRelevant

      public List<EmbeddingMatch<TextSegment>> findRelevant(Embedding referenceEmbedding, io.stargate.sdk.data.domain.query.Filter metaDatafilter, int maxResults, double minScore)
      Semantic search with metadata filtering.
      Parameters:
      referenceEmbedding - vector
      metaDatafilter - fileter for metadata
      maxResults - limit
      minScore - threshold
      Returns:
      records