# retoor <retoor@molodetz.nl>

UPSTREAM_URL_DEFAULT = "https://api.deepseek.com/chat/completions"
MODEL_DEFAULT = "deepseek-v4-flash"
TIMEOUT_DEFAULT = 300
TIMEOUT_MIN = 300
INSTANCES_DEFAULT = 4

SYSTEM_PREAMBLE_DEFAULT = ""
THINKING_DEFAULT = False

VISION_URL_DEFAULT = "https://openrouter.ai/api/v1/chat/completions"
VISION_MODEL_DEFAULT = "google/gemma-3-12b-it"
VISION_CACHE_SIZE_DEFAULT = 256

EMBED_URL_DEFAULT = "https://openrouter.ai/api/v1/embeddings"
EMBED_MODEL_DEFAULT = "qwen/qwen3-embedding-8b"

IMAGE_URL_DEFAULT = "https://openrouter.ai/api/v1/images"
IMAGE_MODEL_DEFAULT = "black-forest-labs/flux.2-pro"
IMAGE_PRICE_PER_CALL_DEFAULT = 0.04

VISION_INSTRUCTION = (
    "Describe this image in detail. Note objects, people, scene, any visible "
    "text, layout, colors, and anything else that could be relevant for "
    "answering questions about it. Be specific but concise."
)

PRICE_CACHE_HIT_PER_M_DEFAULT = 0.0028
PRICE_CACHE_MISS_PER_M_DEFAULT = 0.14
PRICE_OUTPUT_PER_M_DEFAULT = 0.28
VISION_PRICE_INPUT_PER_M_DEFAULT = 0.0
VISION_PRICE_OUTPUT_PER_M_DEFAULT = 0.0
EMBED_PRICE_INPUT_PER_M_DEFAULT = 0.01
RSEARCH_COST_PER_CALL_DEFAULT = 0.0

USAGE_RETENTION_HOURS_DEFAULT = 720

MAX_RETRIES_DEFAULT = 2
RETRY_BACKOFF_MS_DEFAULT = 250
CIRCUIT_THRESHOLD_DEFAULT = 5
CIRCUIT_COOLDOWN_SECONDS_DEFAULT = 30

MODEL_CONTEXT_MAP_DEFAULT = {
    "deepseek-v4-flash": 1_048_576,
    "deepseek-v4-pro": 1_048_576,
    "deepseek-chat": 1_048_576,
    "deepseek-reasoner": 1_048_576,
    "google/gemma-3-12b-it": 8192,
}
