Spaces:
Paused
Paused
File size: 3,036 Bytes
a5784e9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | """
Constants Configuration Module
Contains all fixed constant definitions, such as model names, markers, filenames, etc.
"""
import json
import os
from dotenv import load_dotenv
# Load .env file
load_dotenv()
# --- Model Related Constants ---
MODEL_NAME = os.environ.get('MODEL_NAME', 'AI-Studio_Proxy_API')
CHAT_COMPLETION_ID_PREFIX = os.environ.get('CHAT_COMPLETION_ID_PREFIX', 'chatcmpl-')
DEFAULT_FALLBACK_MODEL_ID = os.environ.get('DEFAULT_FALLBACK_MODEL_ID', "no model list")
# --- Default Parameter Values ---
DEFAULT_TEMPERATURE = float(os.environ.get('DEFAULT_TEMPERATURE', '1.0'))
DEFAULT_MAX_OUTPUT_TOKENS = int(os.environ.get('DEFAULT_MAX_OUTPUT_TOKENS', '65536'))
DEFAULT_TOP_P = float(os.environ.get('DEFAULT_TOP_P', '0.95'))
# --- Default Feature Toggles ---
ENABLE_URL_CONTEXT = os.environ.get('ENABLE_URL_CONTEXT', 'false').lower() in ('true', '1', 'yes')
ENABLE_THINKING_BUDGET = os.environ.get('ENABLE_THINKING_BUDGET', 'false').lower() in ('true', '1', 'yes')
DEFAULT_THINKING_BUDGET = int(os.environ.get('DEFAULT_THINKING_BUDGET', '8192'))
# Separate defaults for Pro (2 levels) and Flash (4 levels)
_raw_level_pro = os.environ.get("DEFAULT_THINKING_LEVEL_PRO", "high").lower()
DEFAULT_THINKING_LEVEL_PRO = (
_raw_level_pro if _raw_level_pro in ("high", "low") else "high"
)
_raw_level_flash = os.environ.get("DEFAULT_THINKING_LEVEL_FLASH", "high").lower()
DEFAULT_THINKING_LEVEL_FLASH = (
_raw_level_flash
if _raw_level_flash in ("high", "medium", "low", "minimal")
else "high"
)
ENABLE_GOOGLE_SEARCH = os.environ.get('ENABLE_GOOGLE_SEARCH', 'false').lower() in ('true', '1', 'yes')
# Default Stop Sequences - Support JSON format configuration
try:
DEFAULT_STOP_SEQUENCES = json.loads(os.environ.get('DEFAULT_STOP_SEQUENCES', '["User:"]'))
except (json.JSONDecodeError, TypeError):
DEFAULT_STOP_SEQUENCES = ["User:"] # Fallback to default value
# --- URL Patterns ---
AI_STUDIO_URL_PATTERN = os.environ.get('AI_STUDIO_URL_PATTERN', 'aistudio.google.com/')
MODELS_ENDPOINT_URL_CONTAINS = os.environ.get('MODELS_ENDPOINT_URL_CONTAINS', "MakerSuiteService/ListModels")
# --- Input Markers ---
USER_INPUT_START_MARKER_SERVER = os.environ.get('USER_INPUT_START_MARKER_SERVER', "__USER_INPUT_START__")
USER_INPUT_END_MARKER_SERVER = os.environ.get('USER_INPUT_END_MARKER_SERVER', "__USER_INPUT_END__")
# --- Filename Constants ---
EXCLUDED_MODELS_FILENAME = os.environ.get('EXCLUDED_MODELS_FILENAME', "excluded_models.txt")
# --- Stream State Configuration ---
STREAM_TIMEOUT_LOG_STATE = {
"consecutive_timeouts": 0,
"last_error_log_time": 0.0, # Use time.monotonic()
"suppress_until_time": 0.0, # Use time.monotonic()
"max_initial_errors": int(os.environ.get("STREAM_MAX_INITIAL_ERRORS", "3")),
"warning_interval_after_suppress": float(
os.environ.get("STREAM_WARNING_INTERVAL_AFTER_SUPPRESS", "60.0")
),
"suppress_duration_after_initial_burst": float(
os.environ.get("STREAM_SUPPRESS_DURATION_AFTER_INITIAL_BURST", "400.0")
),
}
|