Browse Source

feat: 启动环境变量

huangzhichao 1 ngày trước cách đây
mục cha
commit
3a36bf609f
5 tập tin đã thay đổi với 14 bổ sung11 xóa
  1. 1 0
      .env
  2. 0 10
      app/core/config.py
  3. 10 0
      app/core/env.py
  4. 2 0
      app/main.py
  5. 1 1
      start.sh

+ 1 - 0
.env

@@ -0,0 +1 @@
+BASE_URL = 'https://dashscope.aliyuncs.com/compatible-mode/v1'

+ 0 - 10
app/core/config.py

@@ -2,16 +2,6 @@ import os
 from typing import Optional
 from dataclasses import dataclass
 
-try:
-    # Load variables from a local .env if present
-    from dotenv import load_dotenv  # type: ignore
-
-    load_dotenv()
-except Exception:
-    # If python-dotenv isn't installed, skip silently. Env vars still work.
-    pass
-
-
 @dataclass
 class Settings:
     airouter_api_key: Optional[str] = os.getenv("AIROUTER_APIKEY")

+ 10 - 0
app/core/env.py

@@ -0,0 +1,10 @@
+import os
+from dotenv import load_dotenv
+
+def load_env(default_env: str = "local") -> None:
+    env = (os.getenv("APP_ENV") or default_env).lower()
+
+    if env == "local":
+      load_dotenv('.env.local')
+    else:
+      load_dotenv('.env')

+ 2 - 0
app/main.py

@@ -1,6 +1,8 @@
 from fastapi import FastAPI
 from .api.routes import router as api_router
+from .core.env import load_env
 
+load_env()
 
 app = FastAPI(title="AI Server", version="0.1.0")
 

+ 1 - 1
start.sh

@@ -11,4 +11,4 @@ fi
 source ./.venv/bin/activate
 
 # 运行主程序
-uvicorn app.main:app --reload --port 8000
+APP_ENV=local uvicorn app.main:app --reload --port 8000