Class WeaviateEmbeddingStore

java.lang.Object
dev.langchain4j.store.embedding.weaviate.WeaviateEmbeddingStore
All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>

public class WeaviateEmbeddingStore extends Object implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Represents the Weaviate vector database. Current implementation assumes the cosine distance metric is used.
  • Constructor Summary

    Constructors
    Constructor
    Description
    WeaviateEmbeddingStore(String apiKey, String scheme, String host, Integer port, Boolean useGrpcForInserts, Boolean securedGrpc, Integer grpcPort, String objectClass, Boolean avoidDups, String consistencyLevel, Collection<String> metadataKeys)
    Creates a new WeaviateEmbeddingStore instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    add(dev.langchain4j.data.embedding.Embedding embedding)
     
    add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment)
     
    void
    add(String id, dev.langchain4j.data.embedding.Embedding embedding)
    Adds a new embedding with provided ID to the store.
    addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings)
     
    addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded)
     
    List<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>>
    findRelevant(dev.langchain4j.data.embedding.Embedding referenceEmbedding, int maxResults, double minCertainty)
    The score inside EmbeddingMatch is Weaviate's certainty.
    void
     
    void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface dev.langchain4j.store.embedding.EmbeddingStore

    findRelevant, findRelevant, findRelevant, remove, removeAll, search
  • Constructor Details

    • WeaviateEmbeddingStore

      public WeaviateEmbeddingStore(String apiKey, String scheme, String host, Integer port, Boolean useGrpcForInserts, Boolean securedGrpc, Integer grpcPort, String objectClass, Boolean avoidDups, String consistencyLevel, Collection<String> metadataKeys)
      Creates a new WeaviateEmbeddingStore instance.
      Parameters:
      apiKey - Your Weaviate API key. Not required for local deployment.
      scheme - The scheme, e.g. "https" of cluster URL. Find in under Details of your Weaviate cluster.
      host - The host, e.g. "langchain4j-4jw7ufd9.weaviate.network" of cluster URL. Find in under Details of your Weaviate cluster.
      port - The port, e.g. 8080. This parameter is optional.
      useGrpcForInserts - Use GRPC instead of HTTP for batch inserts only. You still need HTTP configured for search
      securedGrpc - The GRPC connection is secured
      grpcPort - The port, e.g. 50051. This parameter is optional.
      objectClass - The object class you want to store, e.g. "MyGreatClass". Must start from an uppercase letter.
      avoidDups - If true (default), then WeaviateEmbeddingStore will generate a hashed ID based on provided text segment, which avoids duplicated entries in DB. If false, then random ID will be generated.
      consistencyLevel - Consistency level: ONE, QUORUM (default) or ALL. Find more details here.
      metadataKeys - Metadata keys that should be persisted (optional)
  • Method Details

    • 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)
      Adds a new embedding with provided ID to the store.
      Specified by:
      add in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
      Parameters:
      id - the ID of the embedding to add in UUID format, since it's Weaviate requirement. See Weaviate docs and UUID on Wikipedia
      embedding - the embedding to add
    • 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>
    • addAll

      public List<String> addAll(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>
    • removeAll

      public void removeAll(Collection<String> ids)
      Specified by:
      removeAll in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
    • removeAll

      public void removeAll()
      Specified by:
      removeAll 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 minCertainty)
      The score inside EmbeddingMatch is Weaviate's certainty.
      Specified by:
      findRelevant in interface dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>