Przeglądaj źródła

refactor: 统一使用find_dotenv加载环境变量

修改多处文件中的环境变量加载方式,统一使用find_dotenv自动查找.env文件
设置override=False避免覆盖已存在的环境变量
max_liu 2 dni temu
rodzic
commit
5931148b31
4 zmienionych plików z 8 dodań i 10 usunięć
  1. 2 3
      main.py
  2. 2 2
      src/models/database.py
  3. 2 2
      src/utils/llm_invoker.py
  4. 2 3
      utils/sync_mysql_help.py

+ 2 - 3
main.py

@@ -5,7 +5,7 @@ from fastapi import FastAPI, HTTPException, Request
 from fastapi.responses import JSONResponse
 from pydantic import BaseModel
 from utils.params import TaskStatusParam, DecodeListParam,EvaluateListParam,EvaluateStatusParam
-from dotenv import load_dotenv
+from dotenv import load_dotenv, find_dotenv
 
 
 from decode_task.decodeTask import get_decode_result_by_id as get_decode_result_by_id_db
@@ -24,7 +24,7 @@ import sys
 
 logger.add(sink=sys.stderr, level="ERROR", backtrace=True, diagnose=True)
 
-load_dotenv()
+load_dotenv(find_dotenv(), override=False)
 app = FastAPI()
 
 scheduler = TaskScheduler()
@@ -153,4 +153,3 @@ def get_evaluate_result(param: EvaluateStatusParam):
         } 
     }
 
-

+ 2 - 2
src/models/database.py

@@ -5,7 +5,7 @@
 """
 
 import os
-from dotenv import load_dotenv
+from dotenv import load_dotenv, find_dotenv
 from typing import Generator
 from sqlalchemy import create_engine
 from sqlalchemy.ext.declarative import declarative_base
@@ -37,7 +37,7 @@ def get_database_url() -> str:
         DB_PASSWORD: 数据库密码 (必需)
         DB_NAME: 数据库名称 (默认: content-deconstruction)
     """
-    load_dotenv()
+    load_dotenv(find_dotenv(), override=False)
     env = (os.getenv("APP_ENV") or os.getenv("ENV") or "local").lower()
     host = os.getenv("DB_HOST", "rm-t4nh1xx6o2a6vj8qu3o.mysql.singapore.rds.aliyuncs.com")
     port = os.getenv("DB_PORT", "3306")

+ 2 - 2
src/utils/llm_invoker.py

@@ -12,7 +12,7 @@ import time
 from typing import Any, List, Dict, Optional
 
 from google import genai
-from dotenv import load_dotenv
+from dotenv import load_dotenv, find_dotenv
 
 from src.utils.logger import get_logger
 from src.utils.json_extractor import JSONExtractor
@@ -31,7 +31,7 @@ def _get_client():
     """获取 Gemini Client 实例"""
     global _client
     if _client is None:
-        load_dotenv()
+        load_dotenv(find_dotenv(), override=False)
         api_key = os.getenv("GEMINI_API_KEY") or os.getenv("GOOGLE_API_KEY")
         if not api_key:
             raise ValueError("GEMINI_API_KEY or GOOGLE_API_KEY not found in environment")

+ 2 - 3
utils/sync_mysql_help.py

@@ -2,7 +2,7 @@ import os
 from loguru import logger
 
 import pymysql
-from dotenv import load_dotenv
+from dotenv import load_dotenv, find_dotenv
 
 
 from typing import Tuple, Any, Dict, Literal, Optional
@@ -24,7 +24,7 @@ class SyncMySQLHelper(object):
     def get_pool(self):
         if self._pool is None:
             # 加载环境变量,允许通过 .env 配置本机调试数据库
-            load_dotenv()
+            load_dotenv(find_dotenv(), override=False)
             env = (os.getenv('APP_ENV') or os.getenv('ENV') or 'local').lower()
             logger.info(f"✅ env = {env}")
             host = os.getenv('DB_HOST', 'rm-t4nh1xx6o2a6vj8qu3o.mysql.singapore.rds.aliyuncs.com')
@@ -97,4 +97,3 @@ class SyncMySQLHelper(object):
 
 
 mysql = SyncMySQLHelper()
-