Skip to content

Commit 4c86319

Browse files
authored
refactor: Update vectorstore search to support inline embedding (#201)
refactor: Update vectorstore search to support inline embedding While using inline embedding functions in the current select sql query, due to parameterization, sql throws an error( The parameter has to already be in vector datatype). This change is to support inline embedding functions.
1 parent 164810f commit 4c86319

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

langchain_postgres/v2/async_vectorstore.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -561,10 +561,12 @@ async def __query_collection(
561561
inline_embed_func = getattr(self.embedding_service, "embed_query_inline", None)
562562
if not embedding and callable(inline_embed_func) and "query" in kwargs:
563563
query_embedding = self.embedding_service.embed_query_inline(kwargs["query"]) # type: ignore
564+
embedding_data_string = f"{query_embedding}"
564565
else:
565566
query_embedding = f"{[float(dimension) for dimension in embedding]}"
566-
stmt = f"""SELECT {column_names}, {search_function}("{self.embedding_column}", :query_embedding) as distance
567-
FROM "{self.schema_name}"."{self.table_name}" {param_filter} ORDER BY "{self.embedding_column}" {operator} :query_embedding LIMIT :k;
567+
embedding_data_string = ":query_embedding"
568+
stmt = f"""SELECT {column_names}, {search_function}("{self.embedding_column}", {embedding_data_string}) as distance
569+
FROM "{self.schema_name}"."{self.table_name}" {param_filter} ORDER BY "{self.embedding_column}" {operator} {embedding_data_string} LIMIT :k;
568570
"""
569571
param_dict = {"query_embedding": query_embedding, "k": k}
570572
if filter_dict:

0 commit comments

Comments
 (0)