Browse Source

Update configs/__init__: singleton

StrayWarrior 1 tháng trước cách đây
mục cha
commit
ddcaca46a7
1 tập tin đã thay đổi với 11 bổ sung5 xóa
  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')