Class AbstractAzureAiSearchEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.azure.search.AbstractAzureAiSearchEmbeddingStore
All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Direct Known Subclasses:
AzureAiSearchContentRetriever, AzureAiSearchEmbeddingStore

public abstract class AbstractAzureAiSearchEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
  • Field Details

  • Constructor Details

    • AbstractAzureAiSearchEmbeddingStore

      public AbstractAzureAiSearchEmbeddingStore()
  • Method Details

    • initialize

      protected void initialize(String endpoint, com.azure.core.credential.AzureKeyCredential keyCredential, com.azure.core.credential.TokenCredential tokenCredential, boolean createOrUpdateIndex, int dimensions, com.azure.search.documents.indexes.models.SearchIndex index, String indexName)
    • createOrUpdateIndex

      public void createOrUpdateIndex(int dimensions)
      Creates or updates the index using a ready-made index.
      Parameters:
      dimensions - The number of dimensions of the embeddings.
    • deleteIndex

      public void deleteIndex()
    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding)
      Add an embedding to the store.
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • add

      public void add(String id, dev.langchain4j.data.embedding.Embedding embedding)
      Add an embedding to the store.
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment)
      Add an embedding and the related content to the store.
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • addAll

      public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)
      Add a list of embeddings to the store.
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • addAll

      public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded)
      Add a list of embeddings, and the list of related content, to the store.
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • findRelevant

      public List<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>> findRelevant(dev.langchain4j.data.embedding.Embedding referenceEmbedding, int maxResults, double minScore)
      Specified by:
      findRelevant in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • fromAzureScoreToRelevanceScore

      protected static double fromAzureScoreToRelevanceScore(double score)
      Calculates LangChain4j's RelevanceScore from Azure AI Search's score.

      Score in Azure AI Search is transformed into a cosine similarity as described here: https://learn.microsoft.com/en-us/azure/search/vector-search-ranking#scores-in-a-vector-search-results

      RelevanceScore in LangChain4j is a derivative of cosine similarity, but it compresses it into 0..1 range (instead of -1..1) for ease of use.