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 AzureAiSearchFilterMapperprotected 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.voidaddAll(List<String> ids, List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded) voidcreateOrUpdateIndex(int dimensions) Creates or updates the index using a ready-made index.voidprotected static doublefromAzureScoreToRelevanceScore(double score) Calculates LangChain4j's RelevanceScore from Azure AI Search's score.static doublefromAzureScoreToRelevanceScore(com.azure.search.documents.models.SearchResult searchResult, AzureAiSearchQueryType azureAiSearchQueryType) Calculates LangChain4j's RelevanceScore from Azure AI Search's score, for the 4 types of search.protected List<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>> getEmbeddingMatches(com.azure.search.documents.util.SearchPagedIterable searchResults, Double minScore, AzureAiSearchQueryType azureAiSearchQueryType) 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, AzureAiSearchFilterMapper filterMapper) voidvoidvoidremoveAll(dev.langchain4j.store.embedding.filter.Filter filter) voidremoveAll(Collection<String> ids) dev.langchain4j.store.embedding.EmbeddingSearchResult<dev.langchain4j.data.segment.TextSegment> search(dev.langchain4j.store.embedding.EmbeddingSearchRequest request) 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
addAll, generateIds
-
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 -
filterMapper
-
-
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, AzureAiSearchFilterMapper filterMapper) -
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>
-
remove
- Specified by:
removein interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
removeAll
- Specified by:
removeAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
removeAll
public void removeAll()- Specified by:
removeAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
removeAll
public void removeAll(dev.langchain4j.store.embedding.filter.Filter filter) - Specified by:
removeAllin interfacedev.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:
searchin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
getEmbeddingMatches
protected List<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>> getEmbeddingMatches(com.azure.search.documents.util.SearchPagedIterable searchResults, Double minScore, AzureAiSearchQueryType azureAiSearchQueryType) -
addAll
public void addAll(List<String> ids, List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded) - Specified by:
addAllin 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.
-
fromAzureScoreToRelevanceScore
public static double fromAzureScoreToRelevanceScore(com.azure.search.documents.models.SearchResult searchResult, AzureAiSearchQueryType azureAiSearchQueryType) Calculates LangChain4j's RelevanceScore from Azure AI Search's score, for the 4 types of search.
-