""" 统一配置模块:环境变量、数据库连接、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 from langchain_community.embeddings import DashScopeEmbeddings from langchain_community.chat_models import ChatTongyi # ============================================================ # 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. DEEPSEEK 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 + 数据库连接)") # ============================================================ # 4. ALI LLM 配置 # ============================================================ # 初始化 Embedding 模型 # 需要先在 https://dashscope.console.aliyun.com/ 获取 API Key DASHSCOPE_API_KEY=os.getenv("DASHSCOPE_API_KEY") embedding_model = DashScopeEmbeddings( model="text-embedding-v3", # 模型名称 dashscope_api_key=DASHSCOPE_API_KEY # 从 .env 读取 ) # ============================================================ # 5. ChatTongyi LLM 配置 # ============================================================ ChatTongyillm = ChatTongyi( model="qwen-plus", dashscope_api_key=DASHSCOPE_API_KEY )