from mimetypes import init from typing import TypedDict from dotenv import load_dotenv from src.pipeline.core.utils import logger import os load_dotenv() class Config(TypedDict): logger_level: str version: str port: int host: str llm_api_key: str llm_api_host: str llm_model: str embedding_api_key: str embedding_api_host: str embedding_model: str embedding_dims: int es_host: str es_port: int es_user: str es_password: str qdrant_host: str qdrant_port: int qdrant_api_key: str def _read_config() -> Config: return { "logger_level": os.getenv("LOGGER_LEVEL", "DEBUG"), "host": os.getenv("HOST"), "port": int(os.getenv("PORT")), "version": os.getenv("VERSION"), "llm_api_host": os.getenv("LLM_API_HOST"), "llm_api_key": os.getenv("LLM_API_KEY"), "llm_model": os.getenv("LLM_MODEL"), "embedding_api_host": os.getenv("EMBEDDING_API_HOST"), "embedding_api_key": os.getenv("EMBEDDING_API_KEY"), "embedding_model": os.getenv("EMBEDDING_MODEL"), "embedding_dims": int(os.getenv("EMBEDDING_DIMS")), "es_host": os.getenv("ES_HOST"), "es_port": int(os.getenv("ES_PORT")), "es_user": os.getenv("ES_USER") or "elastic", "es_password": os.getenv("ES_PASSWORD") or "", "qdrant_host": os.getenv("QDRANT_HOST"), "qdrant_port": int(os.getenv("QDRANT_PORT")), "qdrant_api_key": os.getenv("QDRANT_API_KEY") or "", } config = _read_config() logger.debug("创建全局: config")