from dataclasses import dataclass, field from ask_candid.base.config.base import _load_value @dataclass class BaseElasticSearchConnection: """Elasticsearch connection dataclass """ url: str | None = field(default_factory=str) username: str | None = field(default_factory=str) password: str | None = field(default_factory=str) @dataclass class BaseElasticAPIKeyCredential: """Cloud ID/API key data class """ cloud_id: str | None = field(default_factory=str) api_key: str | None = field(default_factory=str) SEMANTIC_ELASTIC = BaseElasticAPIKeyCredential( cloud_id=_load_value("SEMANTIC_ELASTIC_CLOUD_ID"), api_key=_load_value("SEMANTIC_ELASTIC_API_KEY"), ) ELSER_INFERENCE_ID = _load_value("ELSER_INFERENCE_ID") or "elser_model_2_linux-x86_64_search" SEMANTIC_ELASTIC_QA_WRITER = BaseElasticAPIKeyCredential( cloud_id=_load_value("SEMANTIC_ELASTIC_WRITER_CLOUD_ID"), api_key=_load_value("SEMANTIC_ELASTIC_WRITER_API_KEY"), ) NEWS_ELASTIC = BaseElasticSearchConnection( url=_load_value("NEWS_URL"), username=_load_value("NEWS_UID"), password=_load_value("NEWS_PWD") )