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 Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected final Stringprotected static final Stringprotected static final Stringprotected static final Stringstatic final Stringprotected com.azure.search.documents.SearchClientprotected static final Stringprotected static final Stringprotected static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd(dev.langchain4j.data.embedding.Embedding embedding) Add an embedding to the store.add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment) Add an embedding and the related content to the store.voidAdd an embedding to the store.Add a list of embeddings to the store.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.voidcreateOrUpdateIndex(int dimensions) Creates or updates the index using a ready-made index.voidList<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>> findRelevant(dev.langchain4j.data.embedding.Embedding referenceEmbedding, int maxResults, double minScore) protected static doublefromAzureScoreToRelevanceScore(double score) Calculates LangChain4j's RelevanceScore from Azure AI Search's score.protected voidinitialize(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) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface dev.langchain4j.store.embedding.EmbeddingStore
findRelevant, findRelevant, findRelevant, remove, removeAll, removeAll, removeAll, search
-
Field Details
-
DEFAULT_INDEX_NAME
- See Also:
-
DEFAULT_FIELD_CONTENT
- See Also:
-
DEFAULT_FIELD_CONTENT_VECTOR
- See Also:
-
DEFAULT_FIELD_METADATA
- See Also:
-
DEFAULT_FIELD_METADATA_SOURCE
- See Also:
-
DEFAULT_FIELD_METADATA_ATTRS
- See Also:
-
SEMANTIC_SEARCH_CONFIG_NAME
- See Also:
-
VECTOR_ALGORITHM_NAME
- See Also:
-
VECTOR_SEARCH_PROFILE_NAME
- See Also:
-
searchClient
protected com.azure.search.documents.SearchClient searchClient
-
-
Constructor Details
-
AbstractAzureAiSearchEmbeddingStore
public AbstractAzureAiSearchEmbeddingStore()
-
-
Method Details
-
initialize
-
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
Add an embedding to the store.- Specified by:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
add
Add an embedding to the store.- Specified by:
addin interfacedev.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:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
addAll
Add a list of embeddings to the store.- Specified by:
addAllin interfacedev.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:
addAllin interfacedev.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:
findRelevantin interfacedev.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.
-