# AI Studio Proxy API Configuration Template # Copy this file to .env and modify as needed # ============================================================================= # 1. Server Port Configuration # ============================================================================= # FastAPI Main Service Port # The port where the OpenAI-compatible API will listen. PORT=2048 # Streaming Proxy Service Port # Set to 0 to disable the streaming proxy service. STREAM_PORT=3120 # GUI Launcher Default Port Configuration # These are only used for default suggestions in the launcher. DEFAULT_FASTAPI_PORT=2048 DEFAULT_CAMOUFOX_PORT=9222 # ============================================================================= # 2. Proxy Configuration # ============================================================================= # Unified Proxy Configuration (Recommended) # High priority; configures HTTP_PROXY, HTTPS_PROXY, and internal browser proxy. UNIFIED_PROXY_CONFIG=http://127.0.0.1:7890 # Legacy Proxy Settings (Only used if UNIFIED_PROXY_CONFIG is not set) # HTTP_PROXY=http://127.0.0.1:7890 # HTTPS_PROXY=http://127.0.0.1:7890 # Proxy Bypass List (Separated by semicolons) # NO_PROXY=localhost;127.0.0.1;*.local # ============================================================================= # 3. Logging & Debugging # ============================================================================= # Server Log Level (DEBUG, INFO, WARNING, ERROR, CRITICAL) SERVER_LOG_LEVEL=INFO # Whether to redirect print output to logs SERVER_REDIRECT_PRINT=false # Enable Debug and Trace Logs DEBUG_LOGS_ENABLED=false TRACE_LOGS_ENABLED=false # JSON Structured Logging JSON_LOGS=false # Log Rotation Configuration LOG_FILE_MAX_BYTES=10485760 LOG_FILE_BACKUP_COUNT=5 # ============================================================================= # 4. Authentication Configuration # ============================================================================= # Auto-save Authentication Information # Set to true to automatically save auth status (cookies/localStorage) after login. AUTO_SAVE_AUTH=false # Auth Save Timeout (seconds) # Timeout while waiting for user to provide a filename for the saved auth. AUTH_SAVE_TIMEOUT=30 # Auto Rotate Auth Profile (true/false) # Automatically switch to a different auth profile when quota is exceeded or issues occur. AUTO_ROTATE_AUTH_PROFILE=true # Auto Auth Rotation on Startup (true/false) # Automatically select an available auth profile when starting. AUTO_AUTH_ROTATION_ON_STARTUP=false # Auto Confirm Login AUTO_CONFIRM_LOGIN=true # Quota Rotation Thresholds (Graceful Rotation) # Soft Limit: Triggers "Rotation Pending". Current stream finishes, then rotates. QUOTA_SOFT_LIMIT=850000 # Hard Limit: Triggers immediate "Kill Signal" to prevent hard bans. QUOTA_HARD_LIMIT=950000 # ----------------------------------------------------------------------------- # Cookie Refresh Configuration # ----------------------------------------------------------------------------- # Automatically refresh and persist browser cookies to keep auth profiles fresh. # This helps prevent cookie expiration issues during long-running sessions. # Enable automatic cookie refresh (default: true) COOKIE_REFRESH_ENABLED=true # Periodic refresh interval in seconds (default: 1800 = 30 minutes) COOKIE_REFRESH_INTERVAL_SECONDS=1800 # Enable cookie save after successful API requests (default: true) COOKIE_REFRESH_ON_REQUEST_ENABLED=true # Number of successful requests between cookie saves (default: 10) COOKIE_REFRESH_REQUEST_INTERVAL=10 # Enable cookie save on graceful shutdown (default: true) COOKIE_REFRESH_ON_SHUTDOWN=true # ============================================================================= # 5. Browser & Model Configuration # ============================================================================= # Launch Mode (normal, debug, headless, virtual_display, direct_debug_no_browser) LAUNCH_MODE=normal # Camoufox WebSocket Endpoint # For connecting to existing external Camoufox/Chrome instance. # CAMOUFOX_WS_ENDPOINT=ws://127.0.0.1:9222 # Quick Launch (Direct Launch) # Skip launcher menu and use .env configuration directly. DIRECT_LAUNCH=false # Only collect attachments from the current user's message (true/false) ONLY_COLLECT_CURRENT_USER_ATTACHMENTS=false # Camoufox WebSocket Capture Timeout (seconds) ENDPOINT_CAPTURE_TIMEOUT=45 # ============================================================================= # 6. API Default Parameter Configuration # ============================================================================= # Default Sampling Parameters DEFAULT_TEMPERATURE=1.0 DEFAULT_MAX_OUTPUT_TOKENS=65536 DEFAULT_TOP_P=0.95 DEFAULT_STOP_SEQUENCES=["User:"] # Thinking Model Configuration (e.g., gemini-2.0-flash-thinking) ENABLE_THINKING_BUDGET=true DEFAULT_THINKING_BUDGET=8192 # Thinking Budget Level Values (tokens) - Used for "low", "medium", "high" presets THINKING_BUDGET_LOW=10923 THINKING_BUDGET_MEDIUM=21845 THINKING_BUDGET_HIGH=32768 # Gemini 3 Default Thinking Levels DEFAULT_THINKING_LEVEL_PRO=high DEFAULT_THINKING_LEVEL_FLASH=high # Control if disabling streaming also disables thinking budget (default behavior: false) DISABLE_THINKING_BUDGET_ON_STREAMING_DISABLE=false # Feature Toggles (Google Search, URL Context) ENABLE_GOOGLE_SEARCH=false ENABLE_URL_CONTEXT=false # ============================================================================= # Function Calling Configuration (Native vs Emulated) # ============================================================================= # This configures how OpenAI-compatible tool calls (tools parameter) are handled. # NOTE: XML-based tools in prompts are NOT affected - they pass through as plain text. # Function Calling Mode: "auto" | "native" | "emulated" # - "auto": (RECOMMENDED) Tries native first, auto-fallback to emulated on failure # - "native": AI Studio UI-driven function calling (best reliability) # - "emulated": Text-based prompt injection (legacy, backwards compatible) # # When to use each: # - "auto": Best for most users - resilient with automatic fallback # - "native": When you need maximum reliability and your models support it # - "emulated": For older setups or if native mode causes issues FUNCTION_CALLING_MODE=auto # Enable automatic fallback to emulated mode when native mode fails # Only applies when FUNCTION_CALLING_MODE=native (auto mode always has fallback) FUNCTION_CALLING_NATIVE_FALLBACK=true # Timeout for function calling UI operations (milliseconds) FUNCTION_CALLING_UI_TIMEOUT=10000 # Native mode retry attempts before fallback FUNCTION_CALLING_NATIVE_RETRY_COUNT=3 # Clear function definitions between requests (stateless behavior) # Set to false if you want to reuse tool definitions across requests FUNCTION_CALLING_CLEAR_BETWEEN_REQUESTS=true # ----------------------------------------------------------------------------- # Function Calling Debug Logging (Master Switch) # ----------------------------------------------------------------------------- # When false, ALL function calling logs (console & modular) are disabled. # Useful for production to minimize noise and disk I/O. FUNCTION_CALLING_DEBUG=false # Enable function calling state caching for performance # Reduces UI operations when same tools are used in subsequent requests FUNCTION_CALLING_CACHE_ENABLED=true # Cache TTL in seconds (0 = no expiration within session) FUNCTION_CALLING_CACHE_TTL=0 # ----------------------------------------------------------------------------- # Function Calling Improvements (FC-001 to FC-004) # ----------------------------------------------------------------------------- # These settings control advanced function calling compatibility features. # See docs/architecture/FUNCTION_CALLING_IMPROVEMENTS.md for details. # FC-001: thoughtSignature Support for Gemini 3 # Add thoughtSignature to functionCall parts for Gemini 3 model compatibility. # When replaying conversation history with tool calls, Gemini 3 may require # this field for validation. Safe for older models (ignored if not needed). FUNCTION_CALLING_THOUGHT_SIGNATURE=true # FC-004: Type Case Normalization (UPPERCASE types) # Convert JSON Schema types to UPPERCASE (e.g., "string" -> "STRING"). # The iBUHub/AIStudioToAPI project uses UPPERCASE types. # WARNING: Set to false by default - requires UI verification before enabling. # Only enable after confirming AI Studio UI accepts UPPERCASE types. FUNCTION_CALLING_UPPERCASE_TYPES=false # ----------------------------------------------------------------------------- # Modular Per-Component Logging (Active only if FUNCTION_CALLING_DEBUG=true) # ----------------------------------------------------------------------------- # Fine-grained logging with separate log files in logs/fc_debug/.log # See docs/architecture/FC_DEBUG_LOGGING_DESIGN.md for full documentation. # Enable individual modules for targeted debugging. Only enabled modules # will create log files. All default to false to minimize disk I/O. # # ORCHESTRATOR: Mode selection, fallback logic, high-level flow # UI: Browser UI automation (toggle, dialog, paste) # CACHE: Cache hits/misses/invalidation # WIRE: Wire format parsing from network responses # DOM: DOM-based function call extraction # SCHEMA: Tool schema conversion and validation # RESPONSE: Response formatting for OpenAI compatibility FC_DEBUG_ORCHESTRATOR=false FC_DEBUG_UI=false FC_DEBUG_CACHE=false FC_DEBUG_WIRE=false FC_DEBUG_DOM=false FC_DEBUG_SCHEMA=false FC_DEBUG_RESPONSE=false # ----------------------------------------------------------------------------- # Per-Module Log Levels # ----------------------------------------------------------------------------- # Available levels: DEBUG, INFO, WARNING, ERROR, CRITICAL # Only affects modules that are enabled above. # Recommendation: Use DEBUG for troubleshooting, INFO for general monitoring. FC_DEBUG_LEVEL_ORCHESTRATOR=DEBUG FC_DEBUG_LEVEL_UI=DEBUG FC_DEBUG_LEVEL_CACHE=DEBUG FC_DEBUG_LEVEL_WIRE=DEBUG FC_DEBUG_LEVEL_DOM=DEBUG FC_DEBUG_LEVEL_SCHEMA=DEBUG FC_DEBUG_LEVEL_RESPONSE=DEBUG # ----------------------------------------------------------------------------- # Log File Rotation # ----------------------------------------------------------------------------- # Configure rotation to prevent unbounded disk usage. # Max file size in bytes (default: 5MB = 5242880) # Backup count determines how many rotated files to keep. FC_DEBUG_LOG_MAX_BYTES=5242880 FC_DEBUG_LOG_BACKUP_COUNT=3 # ----------------------------------------------------------------------------- # Payload Truncation # ----------------------------------------------------------------------------- # Large payloads (tool definitions, arguments) can clutter logs. # Enable truncation to keep logs readable while preserving key info. # Master switch for truncation FC_DEBUG_TRUNCATE_ENABLED=true # Maximum characters for different payload types: # - TOOL_DEF: Tool/function schema definitions (often 10KB+) # - ARGS: Function call arguments # - RESPONSE: Response bodies FC_DEBUG_TRUNCATE_MAX_TOOL_DEF=500 FC_DEBUG_TRUNCATE_MAX_ARGS=1000 FC_DEBUG_TRUNCATE_MAX_RESPONSE=2000 # ----------------------------------------------------------------------------- # Combined Log (Optional) # ----------------------------------------------------------------------------- # Additionally write all FC debug logs to a single combined file. # Useful for seeing cross-module request flow in one place. # File: logs/fc_debug/fc_combined.log FC_DEBUG_COMBINED_LOG=false # ============================================================================= # Quick Start Examples: # ============================================================================= # # Example 1: Debug cache issues only # FUNCTION_CALLING_DEBUG=true # FC_DEBUG_CACHE=true # # Example 2: Full FC debugging with combined log # FUNCTION_CALLING_DEBUG=true # FC_DEBUG_ORCHESTRATOR=true # FC_DEBUG_UI=true # FC_DEBUG_CACHE=true # FC_DEBUG_WIRE=true # FC_DEBUG_DOM=true # FC_DEBUG_SCHEMA=true # FC_DEBUG_RESPONSE=true # FC_DEBUG_COMBINED_LOG=true # # Example 3: Production monitoring (errors only) # FUNCTION_CALLING_DEBUG=true # FC_DEBUG_ORCHESTRATOR=true # FC_DEBUG_LEVEL_ORCHESTRATOR=ERROR # ============================================================================= # ============================================================================= # 7. Advanced Timeout Configuration (milliseconds) # ============================================================================= # Response Completion Total Timeout # Default: 600000 (10 minutes) RESPONSE_COMPLETION_TIMEOUT=600000 # Initial Wait Time Before Polling INITIAL_WAIT_MS_BEFORE_POLLING=500 # Polling Interval POLLING_INTERVAL=300 POLLING_INTERVAL_STREAM=180 # Silence Timeout (Base threshold for inactivity detection) SILENCE_TIMEOUT_MS=60000 # Page Action Timeouts POST_SPINNER_CHECK_DELAY_MS=500 FINAL_STATE_CHECK_TIMEOUT_MS=1500 POST_COMPLETION_BUFFER=700 # UI Generation Wait Configuration UI_GENERATION_WAIT_TIMEOUT_MS=5000 UI_GENERATION_CHECK_INTERVAL_MS=500 UI_STABILIZATION_BUFFER_MS=500 # Clear Chat Related Timeouts CLEAR_CHAT_VERIFY_TIMEOUT_MS=4000 CLEAR_CHAT_VERIFY_INTERVAL_MS=4000 # Interaction Timeouts CLICK_TIMEOUT_MS=3000 CLIPBOARD_READ_TIMEOUT_MS=3000 WAIT_FOR_ELEMENT_TIMEOUT_MS=10000 # Stream Related Configuration PSEUDO_STREAM_DELAY=0.01 # ============================================================================= # 8. GUI Launcher Configuration # ============================================================================= # GUI Default Proxy and Port settings GUI_DEFAULT_PROXY_ADDRESS=http://127.0.0.1:7890 GUI_DEFAULT_STREAM_PORT=3120 GUI_DEFAULT_HELPER_ENDPOINT= # ============================================================================= # 9. Script Injection Configuration # ============================================================================= # Whether to enable Tampermonkey script injection (Deprecated) ENABLE_SCRIPT_INJECTION=false # Tampermonkey script file path (relative to project root) USERSCRIPT_PATH=browser_utils/more_models.js # ============================================================================= # 10. Miscellaneous System Config # ============================================================================= # Model Metadata MODEL_NAME=AI-Studio_Proxy_API CHAT_COMPLETION_ID_PREFIX=chatcmpl- AI_STUDIO_URL_PATTERN=aistudio.google.com/ EXCLUDED_MODELS_FILENAME=excluded_models.txt # Internal URL Markers and Fallbacks DEFAULT_FALLBACK_MODEL_ID=no model list MODELS_ENDPOINT_URL_CONTAINS=MakerSuiteService/ListModels USER_INPUT_START_MARKER_SERVER=__USER_INPUT_START__ USER_INPUT_END_MARKER_SERVER=__USER_INPUT_END__ # ============================================================================= # 11. Stream State and Error Suppression # ============================================================================= # Stream Timeout Log State Configuration STREAM_MAX_INITIAL_ERRORS=3 STREAM_WARNING_INTERVAL_AFTER_SUPPRESS=60.0 STREAM_SUPPRESS_DURATION_AFTER_INITIAL_BURST=400.0 # ============================================================================= # 12. Frontend Build Configuration # ============================================================================= # Skip frontend build check (for environments without Node.js/npm) SKIP_FRONTEND_BUILD=false