| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- """配置管理模块,使用 pydantic-settings 从.env文件加载环境变量"""
- from pydantic_settings import BaseSettings, SettingsConfigDict
- from pydantic import Field
- class AppSettings(BaseSettings):
- """应用配置类"""
- log_level: str = Field(default="INFO", alias="LOG_LEVEL")
-
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- class ModelSettings(BaseSettings):
- """模型配置类"""
- model_provider: str = Field(default="openai", alias="MODEL_PROVIDER")
- model_name: str = Field(default="Qwen/Qwen3-VL-8B-Instruct", alias="MODEL_NAME")
- chat_model_name: str = Field(default="deepseek-ai/DeepSeek-V3.2", alias="CHAT_MODEL_NAME")
- embedding_model_name: str = Field(default="Qwen/Qwen3-Embedding-0.6B", alias="EMBEDDING_MODEL_NAME")
- base_url: str = Field(default="https://api.openai.com/v1", alias="BASE_URL")
- api_key: str = Field(default="", alias="API_KEY")
- rank_model_name: str = Field(default="Qwen/Qwen3-Reranker-0.6B", alias="RANK_MODEL_NAME")
- multimodal_embedding_model_name: str = Field(default="qwen2.5-vl-embedding", alias="MULTIMODAL_EMBEDDING_MODEL_NAME")
- dashscope_api_key: str = Field(default="", alias="DASHSCOPE_API_KEY")
-
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- class RagflowSettings(BaseSettings):
- """RAGFLOW配置类"""
- ragflow_api_url: str = Field(default="http://192.168.16.134/", alias="RAGFLOW_API_URL")
- ragflow_api_key: str = Field(default="", alias="RAGFLOW_API_KEY")
- dataset_id: str = Field(default="", alias="DATASET_ID")
- ragflow_user_name: str = Field(default="", alias="RAGFLOW_USER_NAME")
- ragflow_passwd: str = Field(default="", alias="RAGFLOW_PASSWD")
-
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- class MinioSettings(BaseSettings):
- """MinIO配置类"""
- minio_endpoint: str = Field(default="http://localhost:9000", alias="MINIO_ENDPOINT")
- minio_access_key: str = Field(default="minioadmin", alias="MINIO_ACCESS_KEY")
- minio_secret_key: str = Field(default="minioadmin", alias="MINIO_SECRET_KEY")
- minio_bucket_name: str = Field(default="ragflow", alias="MINIO_BUCKET_NAME")
- minio_secure: bool = Field(default=False, alias="MINIO_SECURE")
-
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- class VectorDBSettings(BaseSettings):
- """向量数据库配置类"""
- vector_db_type: str = Field(default="es", alias="VECTOR_DB_TYPE")
- infinity_host: str = Field(default="192.168.16.134", alias="INFINITY_HOST")
- infinity_port: int = Field(default=23820, alias="INFINITY_PORT")
- infinity_sdk_port: int = Field(default=23817, alias="INFINITY_SDK_PORT")
- infinity_user: str = Field(default="admin", alias="INFINITY_USER")
- infinity_password: str = Field(default="admin", alias="INFINITY_PASSWORD")
- infinity_database: str = Field(default="test", alias="INFINITY_DATABASE")
- infinity_table_name: str = Field(default="test", alias="INFINITY_TABLE_NAME")
- infinity_page_dataset_id: str = Field(default="", alias="INFINITY_PAGE_DATASET_ID")
-
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- class MysqlSettings(BaseSettings):
- """MySQL配置类"""
- mysql_host: str = Field(default="localhost", alias="MYSQL_HOST")
- mysql_port: int = Field(default=3306, alias="MYSQL_PORT")
- mysql_user: str = Field(default="root", alias="MYSQL_USER")
- mysql_password: str = Field(default="", alias="MYSQL_PASSWORD")
- mysql_database: str = Field(default="", alias="MYSQL_DATABASE")
- mysql_charset: str = Field(default="utf8mb4", alias="MYSQL_CHARSET")
- mysql_pool_size: int = Field(default=5, alias="MYSQL_POOL_SIZE")
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- class TagSearchSettings(BaseSettings):
- """标签搜索配置类"""
- tag_db_name: str = Field(default="tag_db", alias="TAG_DB_NAME")
- tag_table_name: str = Field(default="tag_table", alias="TAG_TABLE_NAME")
- tag_document_id: str = Field(default="", alias="TAG_DOCUMENT_ID")
- tag_dataset_id: str = Field(default="", alias="TAG_DATASET_ID")
-
- model_config = SettingsConfigDict(
- env_file=".env",
- env_file_encoding="utf-8",
- case_sensitive=False,
- extra="ignore"
- )
- # 创建配置实例
- model_settings = ModelSettings()
- ragflow_settings = RagflowSettings()
- app_settings = AppSettings()
- minio_settings = MinioSettings()
- vector_db_settings = VectorDBSettings()
- mysql_settings = MysqlSettings()
- tag_search_settings = TagSearchSettings()
|