| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """
- 统一配置模块:环境变量、数据库连接、LLM 实例。
- 其他模块直接 `from config import llm, db, engine` 即可,
- 无需重复写 load_dotenv 和 db_uri 构造逻辑。
- """
- import os
- from dotenv import load_dotenv
- from langchain_openai import ChatOpenAI
- from langchain_community.utilities import SQLDatabase
- from sqlalchemy import create_engine
- # ============================================================
- # 1. 加载 .env(整个项目只调用一次)
- # ============================================================
- load_dotenv(os.path.join(os.path.dirname(__file__), "..", ".env"))
- # ============================================================
- # 2. 数据库配置
- # ============================================================
- DB_HOST = os.getenv("DB_HOST", "127.0.0.1")
- DB_PORT = os.getenv("DB_PORT", "3306")
- DB_USER = os.getenv("DB_USER", "root")
- DB_PASSWORD = os.getenv("DB_PASSWORD", "")
- DB_NAME = os.getenv("DB_NAME", "analytics_demo")
- DB_URI = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
- # SQLAlchemy 引擎(DataFrame 加载用)
- engine = create_engine(DB_URI)
- # LangChain SQLDatabase 实例(Agent 工具包用)
- db = SQLDatabase.from_uri(DB_URI)
- # ============================================================
- # 3. LLM 配置
- # ============================================================
- DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
- DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
- llm = ChatOpenAI(
- model="deepseek-v4-flash",
- api_key=DEEPSEEK_API_KEY,
- base_url=DEEPSEEK_BASE_URL,
- temperature=0,
- )
- print("✅ 配置加载完成(LLM + 数据库连接)")
|