ishaq101's picture
[NOTICKET] Demo agentic agent
bef5e76
"""Centralized configuration management using pydantic-settings."""
import os
from typing import Optional
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
"""Application settings loaded from environment variables."""
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
extra="allow",
case_sensitive=False,
)
# Database
postgres_connstring: str
# Redis
redis_url: str
redis_prefix: str = "dataeyond-agent-service_"
# Azure OpenAI - GPT-4o (map to .env names with double underscores)
azureai_api_key_4o: str = Field(alias="azureai__api_key__4o", default="")
azureai_endpoint_url_4o: str = Field(alias="azureai__endpoint__url__4o", default="")
azureai_deployment_name_4o: str = Field(alias="azureai__deployment__name__4o", default="")
azureai_api_version_4o: str = Field(alias="azureai__api__version__4o", default="")
# Azure OpenAI - Embeddings
azureai_api_key_embedding: str = Field(alias="azureai__api_key__embedding", default="")
azureai_endpoint_url_embedding: str = Field(alias="azureai__endpoint__url__embedding", default="")
azureai_deployment_name_embedding: str = Field(alias="azureai__deployment__name__embedding", default="")
azureai_api_version_embedding: str = Field(alias="azureai__api__version__embedding", default="")
# Azure Document Intelligence
azureai_docintel_endpoint: str = Field(alias="azureai__docintel__endpoint", default="")
azureai_docintel_key: str = Field(alias="azureai__docintel__key", default="")
# Azure Blob Storage
azureai_blob_sas: str = Field(alias="azureai__blob__sas", default="")
azureai_container_endpoint: str = Field(alias="azureai__container__endpoint", default="")
azureai_container_name: str = Field(alias="azureai__container__name", default="")
azureai_container_account_name: str = Field(alias="azureai__container__account__name", default="")
# Langfuse
LANGFUSE_PUBLIC_KEY: str
LANGFUSE_SECRET_KEY: str
LANGFUSE_HOST: str
# MongoDB (for users - existing)
emarcal_mongo_endpoint_url: str = Field(alias="emarcal--mongo--endpoint--url", default="")
emarcal_buma_mongo_dbname: str = Field(alias="emarcal--buma--mongo--dbname", default="")
# JWT (for users - existing)
emarcal_jwt_secret_key: str = Field(alias="emarcal--jwt--secret-key", default="")
emarcal_jwt_algorithm: str = Field(alias="emarcal--jwt--algorithm", default="HS256")
# Bcrypt salt (for users - existing)
emarcal_bcrypt_salt: str = Field(alias="emarcal--bcrypt--salt", default="")
# Singleton instance
settings = Settings()