"""Application configuration.""" import os from audience_common.logger import configure_logging, LogFormat ENVIRONMENT = os.environ.get("Environment", default="dev") PROD_ENVIRONMENT = "prod" QA_ENVIRONMENT = "qa" APP_DEBUG = os.environ.get("APP_DEBUG", default="0") == "1" SERVICE_NAME = "ows-ai-eval-runner" SERVICE_VERSION = "1.0.0" SENTRY_DSN = os.environ.get("SENTRY_DSN") or None BEDROCK_MODEL = os.environ.get( "BEDROCK_MODEL", default="us.anthropic.claude-haiku-4-5-20251001-v1:0" ) BEDROCK_REGION = os.environ.get("BEDROCK_REGION", default="us-east-1") MCP_MAX_TOOL_TURNS = int(os.environ.get("MCP_MAX_TOOL_TURNS", default="5")) JOBS_TABLE_NAME = os.environ.get("JOBS_TABLE_NAME", default="ows-ai-eval-runner-jobs") JOB_TTL_SECONDS = int(os.environ.get("JOB_TTL_SECONDS", default="21600")) # Dev-only override so local dev can point boto3 at a local DynamoDB instead of real AWS. DYNAMODB_ENDPOINT_URL = os.environ.get("DYNAMODB_ENDPOINT_URL") or None LLMOBS_ENABLED = os.environ.get("DD_LLMOBS_ENABLED", default="0") == "1" LLMOBS_ML_APP = os.environ.get("DD_LLMOBS_ML_APP", default="ows-ai-eval-runner") LOGGING_CONFIG = { "version": 1, "disable_existing_loggers": False, "handlers": { "stream": { "level": "INFO", "class": "audience_common.logger.OwsStreamHandler", }, "null": { "level": "INFO", "class": "logging.NullHandler", }, }, "loggers": { "ai_eval_runner": { "handlers": ["stream"], "level": "INFO", }, "audience_common.logger.asgi.middleware": { "handlers": ["stream"], "level": "INFO", }, "uvicorn": { "handlers": ["stream"], "level": "INFO", }, "uvicorn.access": { "handlers": ["null"], "level": "INFO", }, }, } configure_logging( LOGGING_CONFIG, environment=ENVIRONMENT, service_name="ows-ai-eval-runner", service_version="1.0.0", log_format=LogFormat.JSON, logger_name="ows1", debug=APP_DEBUG, )