from pydantic_settings import BaseSettings from pydantic import ConfigDict import pathlib APP_DIR = pathlib.Path(__file__).parent class Settings(BaseSettings): # LLM配置 model_name: str api_key: str base_url: str dashscope_model_name:str # 本地部署qwen3-14b模型配置 local_model_name: str local_api_key: str local_base_url: str # 向量模型配置 bge_m3_model_name: str bge_m3_base_url: str bge_m3_api_key: str # 排序模型配置 bge_reranker_model_name: str bge_reranker_base_url: str # Mysql配置 mysql_host: str mysql_port: str mysql_user: str mysql_password: str mysql_database: str # ES配置 es_host: str es_username: str es_password: str # ES配置 milvus_host: str milvus_port: str milvus_user: str milvus_password: str # Redis配置 redis_host: str redis_port: str redis_password: str rag_cache_expire: int # 其他配置 max_doc_length: int faq_threshold: float recall_threshold: float # 映射配置文件的配置 model_config = ConfigDict( extra='allow', env_file=str(APP_DIR / '.env'), case_sensitive=False, ) # @property # def url(self): # mysql_url = f"mysql+pymysql://{settings.mysql_user}:{self.mysql_password}@{self.mysql_host}:{self.mysql_port}/{self.mysql_database}" # return mysql_url settings = Settings() if __name__ == '__main__': print(APP_DIR) print(settings.model_name) print(settings.api_key) print(settings.base_url)