LangChain / app /core /config.py
dcd018's picture
Initial commit.
b88c922
Raw
History Blame Contribute Delete
1.26 kB
from typing import Any, Dict, Optional
from pydantic import BaseSettings, PostgresDsn, HttpUrl, validator
class Settings(BaseSettings):
API_V1_STR: str = "/api/v1"
POSTGRES_SERVER: str
POSTGRES_USER: str
POSTGRES_PASSWORD: str
POSTGRES_DB: str
LABEL_STUDIO_URL: str
LABEL_STUDIO_API_KEY: str
LABEL_STUDIO_PROJECT_ID: str
PROJECT_NAME: Optional[str] = "LangChain"
DESCRIPTION: Optional[str] = "LLM chain"
SQLALCHEMY_DATABASE_URI: Optional[PostgresDsn] = None
SENTRY_DSN: Optional[HttpUrl] = None
@validator("SENTRY_DSN", pre=True)
def sentry_dsn_can_be_blank(cls, v: str) -> Optional[str]:
if len(v) == 0:
return None
return v
@validator("SQLALCHEMY_DATABASE_URI", pre=True)
def assemble_db_connection(cls, v: Optional[str], values: Dict[str, Any]) -> Any:
if isinstance(v, str):
return v
return PostgresDsn.build(
scheme="postgresql",
user=values.get("POSTGRES_USER"),
password=values.get("POSTGRES_PASSWORD"),
host=values.get("POSTGRES_SERVER"),
path=f"/{values.get('POSTGRES_DB') or ''}",
)
class Config:
case_sensitive = True
settings = Settings()