TOXRA.AI / core /config.py
hchevva's picture
Upload config.py
8c6cf05 verified
from __future__ import annotations
from pydantic import Field, AliasChoices
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
# App behavior
max_ai_summaries_per_day: int = 25
cache_ttl_seconds: int = 3600
# OpenAI
openai_api_key: str = Field(
default="",
validation_alias=AliasChoices("OPENAI_API_KEY", "OPENAI_KEY"),
)
openai_model: str = Field(
default="gpt-4o-mini",
validation_alias=AliasChoices("OPENAI_MODEL"),
)
openai_timeout_seconds: int = Field(default=30, validation_alias=AliasChoices("OPENAI_TIMEOUT"))
# Optional Redis backing for rate limits
redis_url: str = Field(default="", validation_alias=AliasChoices("REDIS_URL"))
# CTX / CompTox
ctx_base_url: str = Field(
default="https://comptox.epa.gov/ctx-api",
validation_alias=AliasChoices("CTX_BASE_URL"),
)
ctx_api_key: str = Field(
default="",
validation_alias=AliasChoices("CTX_API_KEY", "COMPTOX_API_KEY", "CTX_KEY"),
)
# Optional Cloudflare Worker proxy (matches production)
worker_base_url: str = Field(
default="https://ra-proxy.chevva-harish.workers.dev",
validation_alias=AliasChoices("RA_PROXY_URL", "WORKER_BASE_URL", "PROXY_BASE_URL"),
)
model_config = SettingsConfigDict(env_prefix="", case_sensitive=False)
settings = Settings()