import dotenv from "dotenv"; dotenv.config(); /** * 统一读取并导出运行时环境变量,供配置层与服务层复用。 */ export const env = { NODE_ENV: process.env.NODE_ENV ?? "production", // 运行环境,默认生产 PORT: Number(process.env.PORT ?? 3000), // 监听端口,默认 3000 APPLICATION_URL: process.env.APPLICATION_URL ?? `http://localhost:${Number(process.env.PORT ?? 3000)}`, WEBUI_URL: process.env.WEBUI_URL ?? "http://localhost:8080", NEO4J_URI: process.env.NEO4J_URI, // Neo4j 连接 URI NEO4J_USER: process.env.NEO4J_USER, // Neo4j 用户名 NEO4J_PASSWORD: process.env.NEO4J_PASSWORD, // Neo4j 密码 QDRANT_URL: process.env.QDRANT_URL, // Qdrant 连接 URL QDRANT_API_KEY: process.env.QDRANT_API_KEY, // Qdrant API 密钥 QDRANT_COLLECTION: process.env.QDRANT_COLLECTION ?? "oncelove_chunks", // Qdrant 集合名称,默认 oncelove_chunks EMBEDDING_DIM: Number(process.env.EMBEDDING_DIM ?? 1024), // 嵌入向量维度,默认 1024 EMBEDDING_BASE_URL: process.env.EMBEDDING_BASE_URL ?? "", EMBEDDING_API_KEY: process.env.EMBEDDING_API_KEY ?? "", EMBEDDING_MODEL: process.env.EMBEDDING_MODEL ?? "", RERANK_BASE_URL: process.env.RERANK_BASE_URL ?? "", RERANK_API_KEY: process.env.RERANK_API_KEY ?? "", RERANK_MODEL: process.env.RERANK_MODEL ?? "", LLM_BASE_URL: process.env.LLM_BASE_URL ?? "", LLM_API_KEY: process.env.LLM_API_KEY ?? "", LLM_MODEL_NAME: process.env.LLM_MODEL_NAME ?? "", LLM_INTENT_MODEL_NAME: process.env.LLM_INTENT_MODEL_NAME ?? "", LLM_IMAGE_MODEL_NAME: process.env.LLM_IMAGE_MODEL_NAME ?? "", LLM_THINKING_MODE: process.env.LLM_THINKING_MODE ?? "auto", ADMIN_PASSWORD: process.env.ADMIN_PASSWORD ?? "oncelove123" };