from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict from typing import List class ElasticsearchConfig(BaseSettings): """Elasticsearch 配置""" hosts: List[str] = Field(default_factory=lambda: ["http://localhost:9200"]) username: str = "" password: str = "" index: str = "articles" # ES mappings 和 settings(从 elastic_search_mappings.py 迁移) mappings: dict = Field(default_factory=dict) settings: dict = Field(default_factory=dict) model_config = SettingsConfigDict( env_prefix="ES_", env_file=".env", case_sensitive=False, extra="ignore" )