config.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. """
  2. 统一配置模块:环境变量、数据库连接、LLM 实例。
  3. 其他模块直接 `from config import llm, db, engine` 即可,
  4. 无需重复写 load_dotenv 和 db_uri 构造逻辑。
  5. """
  6. import os
  7. from dotenv import load_dotenv
  8. from langchain_openai import ChatOpenAI
  9. from langchain_community.utilities import SQLDatabase
  10. from sqlalchemy import create_engine
  11. # ============================================================
  12. # 1. 加载 .env(整个项目只调用一次)
  13. # ============================================================
  14. load_dotenv(os.path.join(os.path.dirname(__file__), "..", ".env"))
  15. # ============================================================
  16. # 2. 数据库配置
  17. # ============================================================
  18. DB_HOST = os.getenv("DB_HOST", "127.0.0.1")
  19. DB_PORT = os.getenv("DB_PORT", "3306")
  20. DB_USER = os.getenv("DB_USER", "root")
  21. DB_PASSWORD = os.getenv("DB_PASSWORD", "")
  22. DB_NAME = os.getenv("DB_NAME", "analytics_demo")
  23. DB_URI = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
  24. # SQLAlchemy 引擎(DataFrame 加载用)
  25. engine = create_engine(DB_URI)
  26. # LangChain SQLDatabase 实例(Agent 工具包用)
  27. db = SQLDatabase.from_uri(DB_URI)
  28. # ============================================================
  29. # 3. LLM 配置
  30. # ============================================================
  31. DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
  32. DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
  33. llm = ChatOpenAI(
  34. model="deepseek-v4-flash",
  35. api_key=DEEPSEEK_API_KEY,
  36. base_url=DEEPSEEK_BASE_URL,
  37. temperature=0,
  38. )
  39. print("✅ 配置加载完成(LLM + 数据库连接)")