from typing import Optional from pydantic import Field, PositiveInt from pydantic_settings import BaseSettings class PGVectorConfig(BaseSettings): """ Configuration settings for PGVector (PostgreSQL with vector extension) """ PGVECTOR_HOST: Optional[str] = Field( description="Hostname or IP address of the PostgreSQL server with PGVector extension (e.g., 'localhost')", default=None, ) PGVECTOR_PORT: PositiveInt = Field( description="Port number on which the PostgreSQL server is listening (default is 5433)", default=5433, ) PGVECTOR_USER: Optional[str] = Field( description="Username for authenticating with the PostgreSQL database", default=None, ) PGVECTOR_PASSWORD: Optional[str] = Field( description="Password for authenticating with the PostgreSQL database", default=None, ) PGVECTOR_DATABASE: Optional[str] = Field( description="Name of the PostgreSQL database to connect to", default=None, ) PGVECTOR_MIN_CONNECTION: PositiveInt = Field( description="Min connection of the PostgreSQL database", default=1, ) PGVECTOR_MAX_CONNECTION: PositiveInt = Field( description="Max connection of the PostgreSQL database", default=5, )