|
@@ -23,6 +23,8 @@ class PGVectorConfig(BaseModel):
|
|
|
user: str
|
|
|
password: str
|
|
|
database: str
|
|
|
+ min_connection: int
|
|
|
+ max_connection: int
|
|
|
|
|
|
@model_validator(mode="before")
|
|
|
@classmethod
|
|
@@ -37,6 +39,12 @@ class PGVectorConfig(BaseModel):
|
|
|
raise ValueError("config PGVECTOR_PASSWORD is required")
|
|
|
if not values["database"]:
|
|
|
raise ValueError("config PGVECTOR_DATABASE is required")
|
|
|
+ if not values["min_connection"]:
|
|
|
+ raise ValueError("config PGVECTOR_MIN_CONNECTION is required")
|
|
|
+ if not values["max_connection"]:
|
|
|
+ raise ValueError("config PGVECTOR_MAX_CONNECTION is required")
|
|
|
+ if values["min_connection"] > values["max_connection"]:
|
|
|
+ raise ValueError("config PGVECTOR_MIN_CONNECTION should less than PGVECTOR_MAX_CONNECTION")
|
|
|
return values
|
|
|
|
|
|
|
|
@@ -61,8 +69,8 @@ class PGVector(BaseVector):
|
|
|
|
|
|
def _create_connection_pool(self, config: PGVectorConfig):
|
|
|
return psycopg2.pool.SimpleConnectionPool(
|
|
|
- 1,
|
|
|
- 5,
|
|
|
+ config.min_connection,
|
|
|
+ config.max_connection,
|
|
|
host=config.host,
|
|
|
port=config.port,
|
|
|
user=config.user,
|
|
@@ -213,5 +221,7 @@ class PGVectorFactory(AbstractVectorFactory):
|
|
|
user=dify_config.PGVECTOR_USER,
|
|
|
password=dify_config.PGVECTOR_PASSWORD,
|
|
|
database=dify_config.PGVECTOR_DATABASE,
|
|
|
+ min_connection=dify_config.PGVECTOR_MIN_CONNECTION,
|
|
|
+ max_connection=dify_config.PGVECTOR_MAX_CONNECTION,
|
|
|
),
|
|
|
)
|