| import os | |
| from typing import Union, Literal, List | |
| from pydantic import Field | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| from src.enum import ModelTypes, OperatorModelTypes | |
| class ApiSettings(BaseSettings): | |
| logdir: str = Field(default="logs", description="path of the logs directory") | |
| api_host: str = Field(default="0.0.0.0") | |
| api_port: int = Field(default=8080) | |
| main_route: str = "api" | |
| model_type: ModelTypes = Field(default=ModelTypes.DUCKLING_OPERATOR) | |
| duckling_host: str = Field(default="localhost") | |
| duckling_port: int = Field(default=8000) | |
| operator_model_type: OperatorModelTypes = Field(default="bert") | |
| device: Literal["cpu", "cuda"] = Field( | |
| default="cpu", description="device to load the model on" | |
| ) | |
| model_config = SettingsConfigDict( | |
| protected_namespaces="settings_", | |
| env_file=".env", | |
| env_ignore_empty=True, | |
| env_file_encoding="utf-8", | |
| extra="ignore", | |
| ) | |
| if __name__ == "__main__": | |
| print(ApiSettings().model_dump_json()) | |