Files
hermes 6bc9fa0e8d Resume retries after cooldown instead of giving up for the day
Previously 3 failed attempts at 06:00 (e.g. llamaswap model cold/starting)
permanently blocked generation until the next day. Now the retry loop
pauses SLOW_RETRY_MINUTES (default 60) after the burst budget is spent,
then resumes — one attempt per hour until jokes exist.
2026-09-30 07:55:40 +00:00

45 lines
1.4 KiB
Python

import os
from dataclasses import dataclass, field
@dataclass
class Settings:
openai_base_url: str = field(
default_factory=lambda: os.environ.get(
"OPENAI_BASE_URL", "https://api.openai.com/v1"
).rstrip("/")
)
openai_model: str = field(
default_factory=lambda: os.environ.get("OPENAI_MODEL", "gpt-4o-mini")
)
openai_api_key: str = field(
default_factory=lambda: os.environ.get("OPENAI_API_KEY", "")
)
db_path: str = field(
default_factory=lambda: os.environ.get("DB_PATH", "/data/jokes.db")
)
timezone: str = field(
default_factory=lambda: os.environ.get("TZ", "Europe/Copenhagen")
)
generate_hour: int = field(
default_factory=lambda: int(os.environ.get("GENERATE_HOUR", "6"))
)
generate_minute: int = field(
default_factory=lambda: int(os.environ.get("GENERATE_MINUTE", "0"))
)
max_attempts: int = field(
default_factory=lambda: int(os.environ.get("MAX_ATTEMPTS", "3"))
)
retry_minutes: int = field(
default_factory=lambda: int(os.environ.get("RETRY_MINUTES", "15"))
)
slow_retry_minutes: int = field(
default_factory=lambda: int(os.environ.get("SLOW_RETRY_MINUTES", "60"))
)
wikipedia_lang: str = field(
default_factory=lambda: os.environ.get("WIKIPEDIA_LANG", "en")
)
settings = Settings()