| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import os
- from dotenv import load_dotenv
- load_dotenv()
- from pathlib import Path
- from typing import Optional
- from pydantic import BaseModel
- import yaml
- WORK_DIR = Path(__file__).resolve().parent.parent
- OUTPUT_DIR=WORK_DIR / "output"
- DB_URL = os.environ.get('DB_URL') or "postgresql+psycopg2://user:password@sv-v2.lan:5435/copywriting_production"
- MONGO_URL = os.environ.get('MONGO_URL', 'mongodb://sv-v2:27017')
- MONGO_DB_NAME = os.environ.get('MONGO_DB_NAME', 'amazone')
- LOG_LEVEL = 'DEBUG'
- LOG_DIR = Path(__file__).resolve().parent.parent/'output/logs'
- CONFIG_DIR = Path(__file__).resolve().parent.parent/'config'
- BROWSER_CONFIG_DIR = CONFIG_DIR / 'dp_conf'
- TEMP_PAGE_DIR = OUTPUT_DIR / 'page' / 'temp'
- TEMP_PAGE_DIR.mkdir(parents=True, exist_ok=True)
- LITELLM_API_KEY = os.environ.get('LITELLM_API_KEY')
- LITELLM_API_BASE=os.environ.get('LITELLM_API_BASE')
- OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
- OPENAI_API_BASE=os.environ.get('OPENAI_API_BASE')
- class Config(BaseModel):
- storage: str = "local"
- s3_access_key: Optional[str] = os.environ.get("S3_ACCESS_KEY", 'bh9LbfsPHRJgQ44wXIlv')
- s3_secret_key: Optional[str] = os.environ.get("S3_SECRET_KEY", 'N744RZ60T1b4zlcWG2MROCzjEE2mPTdNQCc7Pk3M')
- s3_endpoint: Optional[str] = os.environ.get("S3_ENDPOINT", 'http://s3.vs1.lan')
- s3_prefix: Optional[str] = 's3://public/amazone/copywriting_production'
- chrome_config_ini: Optional[str] = r'G:\code\amazone\copywriting_production\config\dp_conf\9322.ini'
- redis_url: Optional[str] = os.environ.get("REDIS_URL", 'redis://localhost:6379/0')
- celery_reulst_url: Optional[str] = os.environ.get("REDIS_URL", 'redis://localhost:6379/1')
- version: Optional[str] = "0.0.1-alpha"
- def save(self, config_path: Path = None):
- config_path = config_path or get_config_path()
- with open(config_path, "w", encoding="utf-8") as file:
- yaml.dump(self.model_dump(), file)
- return self
-
- def get_config_path():
- return os.environ.get('CONFIG_PATH',CONFIG_DIR / "config.yaml")
- def read_config(config_path: Path):
- if isinstance(config_path, str):
- config_path = Path(config_path)
- if not config_path.exists():
- config = Config()
- config.save(config_path)
- return config
- with open(config_path, "r", encoding="utf-8") as file:
- config_dict = yaml.safe_load(file)
- return Config(**config_dict)
- CFG = read_config(get_config_path())
- def main():
- print(CFG)
- CFG.save()
- if __name__ == "__main__":
- main()
|