Skip to content

Commit fe947a7

Browse files
fix: use self.embeddings.aembed_* in async methods (#97)
using sync methods of embeddings in PGVector async methods harms performance. --------- Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
1 parent 9bb387a commit fe947a7

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

langchain_postgres/vectorstores.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ def similarity_search(
939939
List of Documents most similar to the query.
940940
"""
941941
assert not self._async_engine, "This method must be called without async_mode"
942-
embedding = self.embedding_function.embed_query(text=query)
942+
embedding = self.embeddings.embed_query(query)
943943
return self.similarity_search_by_vector(
944944
embedding=embedding,
945945
k=k,
@@ -964,7 +964,7 @@ async def asimilarity_search(
964964
List of Documents most similar to the query.
965965
"""
966966
await self.__apost_init__() # Lazy async init
967-
embedding = self.embedding_function.embed_query(text=query)
967+
embedding = await self.embeddings.aembed_query(query)
968968
return await self.asimilarity_search_by_vector(
969969
embedding=embedding,
970970
k=k,
@@ -988,7 +988,7 @@ def similarity_search_with_score(
988988
List of Documents most similar to the query and score for each.
989989
"""
990990
assert not self._async_engine, "This method must be called without async_mode"
991-
embedding = self.embedding_function.embed_query(query)
991+
embedding = self.embeddings.embed_query(query)
992992
docs = self.similarity_search_with_score_by_vector(
993993
embedding=embedding, k=k, filter=filter
994994
)
@@ -1011,7 +1011,7 @@ async def asimilarity_search_with_score(
10111011
List of Documents most similar to the query and score for each.
10121012
"""
10131013
await self.__apost_init__() # Lazy async init
1014-
embedding = self.embedding_function.embed_query(query)
1014+
embedding = await self.embeddings.aembed_query(query)
10151015
docs = await self.asimilarity_search_with_score_by_vector(
10161016
embedding=embedding, k=k, filter=filter
10171017
)
@@ -1065,7 +1065,7 @@ def _results_to_docs_and_scores(self, results: Any) -> List[Tuple[Document, floa
10651065
page_content=result.EmbeddingStore.document,
10661066
metadata=result.EmbeddingStore.cmetadata,
10671067
),
1068-
result.distance if self.embedding_function is not None else None,
1068+
result.distance if self.embeddings is not None else None,
10691069
)
10701070
for result in results
10711071
]
@@ -1569,7 +1569,7 @@ async def afrom_texts(
15691569
**kwargs: Any,
15701570
) -> PGVector:
15711571
"""Return VectorStore initialized from documents and embeddings."""
1572-
embeddings = embedding.embed_documents(list(texts))
1572+
embeddings = await embedding.aembed_documents(list(texts))
15731573
return await cls.__afrom(
15741574
texts,
15751575
embeddings,
@@ -1992,7 +1992,7 @@ def max_marginal_relevance_search(
19921992
Returns:
19931993
List[Document]: List of Documents selected by maximal marginal relevance.
19941994
"""
1995-
embedding = self.embedding_function.embed_query(query)
1995+
embedding = self.embeddings.embed_query(query)
19961996
return self.max_marginal_relevance_search_by_vector(
19971997
embedding,
19981998
k=k,
@@ -2031,7 +2031,7 @@ async def amax_marginal_relevance_search(
20312031
List[Document]: List of Documents selected by maximal marginal relevance.
20322032
"""
20332033
await self.__apost_init__() # Lazy async init
2034-
embedding = self.embedding_function.embed_query(query)
2034+
embedding = await self.embeddings.aembed_query(query)
20352035
return await self.amax_marginal_relevance_search_by_vector(
20362036
embedding,
20372037
k=k,
@@ -2070,7 +2070,7 @@ def max_marginal_relevance_search_with_score(
20702070
List[Tuple[Document, float]]: List of Documents selected by maximal marginal
20712071
relevance to the query and score for each.
20722072
"""
2073-
embedding = self.embedding_function.embed_query(query)
2073+
embedding = self.embeddings.embed_query(query)
20742074
docs = self.max_marginal_relevance_search_with_score_by_vector(
20752075
embedding=embedding,
20762076
k=k,
@@ -2111,7 +2111,7 @@ async def amax_marginal_relevance_search_with_score(
21112111
relevance to the query and score for each.
21122112
"""
21132113
await self.__apost_init__() # Lazy async init
2114-
embedding = self.embedding_function.embed_query(query)
2114+
embedding = await self.embeddings.aembed_query(query)
21152115
docs = await self.amax_marginal_relevance_search_with_score_by_vector(
21162116
embedding=embedding,
21172117
k=k,

0 commit comments

Comments
 (0)