From ded21876e6a2a51366837d7f6230d0dc93d0127b Mon Sep 17 00:00:00 2001 From: coolgo0811 Date: Fri, 5 Jan 2024 17:44:24 +0800 Subject: [PATCH 1/2] Fix vectorstores/PGVector missing output issue. --- .../components/vectorstores/pgvector.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/backend/langflow/components/vectorstores/pgvector.py b/src/backend/langflow/components/vectorstores/pgvector.py index 4e0c2eb4d..337ea2271 100644 --- a/src/backend/langflow/components/vectorstores/pgvector.py +++ b/src/backend/langflow/components/vectorstores/pgvector.py @@ -1,13 +1,13 @@ -from typing import Optional, List +from typing import Optional, Union from langflow import CustomComponent from langchain.vectorstores.pgvector import PGVector from langchain.schema import Document from langchain.vectorstores.base import VectorStore from langchain.embeddings.base import Embeddings +from langchain.schema import BaseRetriever - -class PostgresqlVectorComponent(CustomComponent): +class PGVectorComponent(CustomComponent): """ A custom component for implementing a Vector Store using PostgreSQL. """ @@ -15,7 +15,6 @@ class PostgresqlVectorComponent(CustomComponent): display_name: str = "PGVector" description: str = "Implementation of Vector Store using PostgreSQL" documentation = "https://python.langchain.com/docs/integrations/vectorstores/pgvector" - beta = True def build_config(self): """ @@ -25,8 +24,7 @@ class PostgresqlVectorComponent(CustomComponent): - dict: A dictionary containing the configuration options for the component. """ return { - "index_name": {"display_name": "Index Name", "value": "your_index"}, - "code": {"show": True, "display_name": "Code"}, + "code": {"show": False}, "documents": {"display_name": "Documents", "is_list": True}, "embedding": {"display_name": "Embedding"}, "pg_server_url": { @@ -41,8 +39,8 @@ class PostgresqlVectorComponent(CustomComponent): embedding: Embeddings, pg_server_url: str, collection_name: str, - documents: Optional[List[Document]] = None, - ) -> VectorStore: + documents: Optional[Document] = None, + ) -> Union[VectorStore, BaseRetriever]: """ Builds the Vector Store or BaseRetriever object. @@ -58,13 +56,13 @@ class PostgresqlVectorComponent(CustomComponent): try: if documents is None: - return PGVector.from_existing_index( + embedding = PGVector.from_existing_index( embedding=embedding, collection_name=collection_name, connection_string=pg_server_url, ) - return PGVector.from_documents( + embedding = PGVector.from_documents( embedding=embedding, documents=documents, collection_name=collection_name, @@ -72,3 +70,4 @@ class PostgresqlVectorComponent(CustomComponent): ) except Exception as e: raise RuntimeError(f"Failed to build PGVector: {e}") + return embedding From 96ebc115f3610d1a0ebc95054bfc16aef1d6d198 Mon Sep 17 00:00:00 2001 From: coolgo0811 Date: Sun, 7 Jan 2024 12:12:06 +0800 Subject: [PATCH 2/2] Rename the component's output. --- src/backend/langflow/components/vectorstores/pgvector.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/langflow/components/vectorstores/pgvector.py b/src/backend/langflow/components/vectorstores/pgvector.py index 337ea2271..22e16e460 100644 --- a/src/backend/langflow/components/vectorstores/pgvector.py +++ b/src/backend/langflow/components/vectorstores/pgvector.py @@ -56,13 +56,13 @@ class PGVectorComponent(CustomComponent): try: if documents is None: - embedding = PGVector.from_existing_index( + vector_store = PGVector.from_existing_index( embedding=embedding, collection_name=collection_name, connection_string=pg_server_url, ) - embedding = PGVector.from_documents( + vector_store = PGVector.from_documents( embedding=embedding, documents=documents, collection_name=collection_name, @@ -70,4 +70,4 @@ class PGVectorComponent(CustomComponent): ) except Exception as e: raise RuntimeError(f"Failed to build PGVector: {e}") - return embedding + return vector_store