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 rerank_api_key: str rerank_api_host: str rerank_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 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"), "rerank_api_host": os.getenv("RERANK_API_HOST"), "rerank_api_key": os.getenv("RERANK_API_KEY"), "rerank_model": os.getenv("RERANK_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 "", } config = _read_config() logger.debug("创建全局: config")