Spaces:
Running
Running
| """Application configuration loaded from environment variables.""" | |
| from __future__ import annotations | |
| from pydantic import Field | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| """Typed settings using environment variables and .env files.""" | |
| model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8") | |
| azure_speech_key: str = Field(alias="AZURE_SPEECH_KEY") | |
| azure_speech_region: str = Field(alias="AZURE_SPEECH_REGION") | |
| azure_speech_stt_language: str = Field( | |
| default="en-US", alias="AZURE_SPEECH_STT_LANGUAGE" | |
| ) | |
| azure_speech_auto_languages: str = Field( | |
| default="", alias="AZURE_SPEECH_AUTO_LANGUAGES" | |
| ) | |
| azure_speech_tts_voice: str = Field( | |
| default="en-US-JennyNeural", alias="AZURE_SPEECH_TTS_VOICE" | |
| ) | |
| azure_speech_tts_voice_map: str = Field( | |
| default="", alias="AZURE_SPEECH_TTS_VOICE_MAP" | |
| ) | |
| llm_provider: str = Field(default="foundry_agent", alias="LLM_PROVIDER") | |
| azure_openai_endpoint: str = Field(default="", alias="AZURE_OPENAI_ENDPOINT") | |
| azure_openai_api_key: str = Field(default="", alias="AZURE_OPENAI_API_KEY") | |
| azure_openai_deployment: str = Field(default="", alias="AZURE_OPENAI_DEPLOYMENT") | |
| azure_openai_embeddings_deployment: str = Field( | |
| default="", alias="AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT" | |
| ) | |
| azure_openai_embeddings_api_key: str = Field( | |
| default="", alias="AZURE_OPENAI_EMBEDDINGS_API_KEY" | |
| ) | |
| azure_openai_api_version: str = Field( | |
| default="2024-02-15-preview", alias="AZURE_OPENAI_API_VERSION" | |
| ) | |
| azure_openai_embeddings_endpoint: str = Field( | |
| default="", alias="AZURE_OPENAI_EMBEDDINGS_ENDPOINT" | |
| ) | |
| azure_openai_embeddings_api_version: str = Field( | |
| default="2024-02-15-preview", alias="AZURE_OPENAI_EMBEDDINGS_API_VERSION" | |
| ) | |
| foundry_project_conn_str: str = Field(alias="FOUNDRY_PROJECT_CONN_STR") | |
| foundry_agent_id: str = Field(alias="FOUNDRY_AGENT_ID") | |
| azure_tenant_id: str | None = Field(default=None, alias="AZURE_TENANT_ID") | |
| azure_client_id: str | None = Field(default=None, alias="AZURE_CLIENT_ID") | |
| azure_client_secret: str | None = Field(default=None, alias="AZURE_CLIENT_SECRET") | |
| app_env: str = Field(default="dev", alias="APP_ENV") | |
| log_level: str = Field(default="INFO", alias="LOG_LEVEL") | |
| max_reply_chars: int = Field(default=600, alias="MAX_REPLY_CHARS") | |
| data_dir: str = Field(default="data", alias="DATA_DIR") | |
| vector_store_dir: str = Field(default="data/vector_store", alias="VECTOR_STORE_DIR") | |
| rag_top_k: int = Field(default=4, alias="RAG_TOP_K") | |
| rag_chunk_size: int = Field(default=800, alias="RAG_CHUNK_SIZE") | |
| rag_chunk_overlap: int = Field(default=120, alias="RAG_CHUNK_OVERLAP") | |
| memory_top_k: int = Field(default=3, alias="MEMORY_TOP_K") | |
| memory_summary_every: int = Field(default=6, alias="MEMORY_SUMMARY_EVERY") | |
| speech_agent_http_url: str = Field( | |
| default="http://localhost:8000", alias="SPEECH_AGENT_HTTP_URL" | |
| ) | |
| logic_app_weather_trigger_url: str = Field( | |
| default="", alias="LOGIC_APP_WEATHER_TRIGGER_URL" | |
| ) | |
| _settings: Settings | None = None | |
| def get_settings() -> Settings: | |
| """Get cached settings instance.""" | |
| global _settings | |
| if _settings is None: | |
| _settings = Settings() | |
| return _settings | |