فهرست منبع

Update configs/__init__: singleton

StrayWarrior 1 ماه پیش
والد
کامیت
ddcaca46a7
1فایلهای تغییر یافته به همراه11 افزوده شده و 5 حذف شده
  1. 11 5
      pqai_agent/configs/__init__.py

+ 11 - 5
pqai_agent/configs/__init__.py

@@ -8,12 +8,18 @@ import pyapollos
 
 APOLLO_PROJECT_NAME = 'ai-agent'
 
+_config_cache = None
+
 def get():
-    dirname = os.path.dirname(os.path.abspath(__file__))
-    env = os.environ.get('AI_AGENT_ENV', 'dev')
-    if env not in ('dev', 'pre', 'prod'):
-        raise ValueError(f"Invalid environment: {env}. Expected one of ('dev', 'pre', 'prod').")
-    return yaml.safe_load(open(f'{dirname}/{env}.yaml').read())
+    global _config_cache
+    if _config_cache is None:
+        dir_name = os.path.dirname(os.path.abspath(__file__))
+        env = os.environ.get('AI_AGENT_ENV', 'dev')
+        if env not in ('dev', 'pre', 'prod'):
+            raise ValueError(f"Invalid environment: {env}. Expected one of ('dev', 'pre', 'prod').")
+        with open(f'{dir_name}/{env}.yaml', 'r') as f:
+            _config_cache = yaml.safe_load(f.read())
+    return _config_cache
 
 def get_env():
     env = os.environ.get('AI_AGENT_ENV', 'dev')