diff --git a/src/backend/base/langflow/components/langchain_utilities/sql_database.py b/src/backend/base/langflow/components/langchain_utilities/sql_database.py index 057bb1a7be00..fd86af2b7bf5 100644 --- a/src/backend/base/langflow/components/langchain_utilities/sql_database.py +++ b/src/backend/base/langflow/components/langchain_utilities/sql_database.py @@ -2,26 +2,33 @@ from sqlalchemy import create_engine from sqlalchemy.pool import StaticPool -from langflow.custom import CustomComponent +from langflow.custom import Component +from langflow.io import ( + Output, + StrInput, +) -class SQLDatabaseComponent(CustomComponent): +class SQLDatabaseComponent(Component): display_name = "SQLDatabase" description = "SQL Database" name = "SQLDatabase" - def build_config(self): - return { - "uri": {"display_name": "URI", "info": "URI to the database."}, - } + inputs = [ + StrInput(name="uri", display_name="URI", info="URI to the database.", required=True), + ] + + outputs = [ + Output(display_name="SQLDatabase", name="SQLDatabase", method="build_sqldatabase"), + ] def clean_up_uri(self, uri: str) -> str: if uri.startswith("postgres://"): uri = uri.replace("postgres://", "postgresql://") return uri.strip() - def build(self, uri: str) -> SQLDatabase: - uri = self.clean_up_uri(uri) + def build_sqldatabase(self) -> SQLDatabase: + uri = self.clean_up_uri(self.uri) # Create an engine using SQLAlchemy with StaticPool engine = create_engine(uri, poolclass=StaticPool) return SQLDatabase(engine)