Class AzureCosmosDbNoSqlEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.azure.cosmos.nosql.AzureCosmosDbNoSqlEmbeddingStore
All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>

public class AzureCosmosDbNoSqlEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Implementation of EmbeddingStore that uses Azure Cosmos DB NoSQL API for storing and retrieving embeddings. This store provides vector search capabilities using Cosmos DB's vector search functionality.

You can read more about vector search using Azure Cosmos DB NoSQL here.

  • Constructor Details

    • AzureCosmosDbNoSqlEmbeddingStore

      public AzureCosmosDbNoSqlEmbeddingStore(com.azure.cosmos.CosmosClient cosmosClient, String databaseName, String containerName, com.azure.cosmos.models.CosmosVectorEmbeddingPolicy cosmosVectorEmbeddingPolicy, List<com.azure.cosmos.models.CosmosVectorIndexSpec> cosmosVectorIndexes, com.azure.cosmos.models.CosmosContainerProperties containerProperties)
      Creates a new instance of AzureCosmosDbNoSqlEmbeddingStore.
      Parameters:
      cosmosClient - The Cosmos DB client
      databaseName - The name of the database
      containerName - The name of the container
      cosmosVectorEmbeddingPolicy - The vector embedding policy
      cosmosVectorIndexes - The vector indexes
      containerProperties - The container properties
      Throws:
      IllegalArgumentException - if any of the required parameters is null or empty
  • Method Details

    • builder

      Creates a new builder for AzureCosmosDbNoSqlEmbeddingStore.
      Returns:
      a new builder instance
    • add

      public String add(dev.langchain4j.data.embedding.Embedding embedding)
      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)
      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)
      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)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • search

      public dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment> search(dev.langchain4j.store.embedding.EmbeddingSearchRequest request)
      Specified by:
      search 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)
      Finds embeddings relevant to the reference embedding.
      Parameters:
      referenceEmbedding - The reference embedding to compare against
      maxResults - The maximum number of results to return
      minScore - The minimum similarity score required
      Returns:
      A list of embedding matches ordered by relevance
    • addAll

      public void addAll(List<String> ids, List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded)
      Specified by:
      addAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>