# Пример окружения FreeQwenApi # Скопируйте файл в .env и поправьте значения под свою машину: # cp .env.example .env # # Значения из реального shell environment имеют приоритет над .env. # Не коммитьте .env: там могут быть локальные пути, API-ключи и настройки аккаунтов/сессий. # ───────────────────────────────────────────────────────────────────────────── # Сервер # ───────────────────────────────────────────────────────────────────────────── # Хост/порт локального OpenAI-compatible прокси. HOST=127.0.0.1 PORT=3264 # Browser UIs on loopback are allowed automatically. Add exact remote origins # as a comma-separated allowlist when required. # CORS_ORIGINS=https://ui.example.com,http://192.168.1.20:3000 # Неитерактивный запуск: пропустить меню выбора аккаунта. # Полезно для агентов, launchd/systemd, Docker и скриптов. NON_INTERACTIVE=1 SKIP_ACCOUNT_MENU=1 # Модель по умолчанию, если клиент не передал `model`. DEFAULT_MODEL=qwen3.7-max # Уровень логов: error, warn, info, debug. LOG_LEVEL=info # ───────────────────────────────────────────────────────────────────────────── # URL Qwen Chat / browser identity # ───────────────────────────────────────────────────────────────────────────── # Обычно это не нужно менять. QWEN_BASE_URL=https://chat.qwen.ai # Опциональный override версии Qwen web app header. # Если Qwen поменяет frontend protocol, обновление версии может помочь. QWEN_WEB_VERSION=0.2.63 # Опциональный путь к Chrome/Chromium. # CHROME_PATH=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome # Базовый browser fingerprint для Puppeteer. VIEWPORT_WIDTH=1920 VIEWPORT_HEIGHT=1080 USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 # ───────────────────────────────────────────────────────────────────────────── # Совместимость с агентами / tool-use # ───────────────────────────────────────────────────────────────────────────── # Как встраивать OpenAI `tools` schemas в prompt для Qwen. # Рекомендация для Hermes/OpenCode/Claude Code/Codex/OpenClaw: minimal # Варианты: # compact — default; оставляет укороченные descriptions и компактные JSON schemas. # minimal — меньше schemas; убирает большинство descriptions; лучше для тяжёлых агентов. # names — полные schemas только для priority tools, для остальных только имена. QWEN_TOOL_PROMPT_MODE=minimal # Максимальная длина итогового system prompt после добавления tool-инструкций. # 0 или пустое значение = без лимита. # Рекомендация для Hermes/OpenCode/Claude Code/Codex/OpenClaw: 180000. # Меньшие значения снижают риск anti-bot/timeout, но могут обрезать важный контекст. QWEN_MAX_SYSTEM_CHARS=180000 # Использовать Node.js fetch/streaming вместо browser page.evaluate(fetch(...)) # для Qwen completion requests. # Рекомендуемый default: 0 (browser fetch), потому что Qwen anti-bot обычно # лучше относится к запросам из авторизованного browser context. # Поставьте 1 для отладки: ошибки возвращаются быстрее и Puppeteer меньше виснет, # но Node-side запросы чаще ловят captcha. QWEN_USE_NODE_FETCH=0 # Разрешить восстановление последнего unscoped chat/session, если клиент не передал chatId. # Для agent-тестов лучше оставить 0, чтобы не смешивать состояние разных запросов. ALLOW_UNSCOPED_SESSION_CHAT_RESTORE=0 # ───────────────────────────────────────────────────────────────────────────── # Таймауты / retries # ───────────────────────────────────────────────────────────────────────────── # Puppeteer/page timeout в миллисекундах. PAGE_TIMEOUT=120000 # Chrome DevTools Protocol operation timeout в миллисекундах. PROTOCOL_TIMEOUT=300000 # Таймаут логина/навигации в миллисекундах. AUTH_TIMEOUT=120000 NAVIGATION_TIMEOUT=60000 # Retry-настройки для upstream/browser операций. MAX_RETRY_COUNT=3 RETRY_DELAY=2000 # Пауза между streaming chunks для локальных SSE responses, миллисекунды. STREAMING_CHUNK_DELAY=20 # Размер Puppeteer page pool. Больше — потенциально выше throughput, # но выше риск anti-bot. Для личного account-based использования держите небольшим. PAGE_POOL_SIZE=3 # ───────────────────────────────────────────────────────────────────────────── # Пути # ───────────────────────────────────────────────────────────────────────────── SESSION_DIR=session UPLOADS_DIR=uploads LOGS_DIR=logs # ───────────────────────────────────────────────────────────────────────────── # Медиа / опциональные официальные API # ───────────────────────────────────────────────────────────────────────────── # Опциональный DashScope key для legacy DashScope image mode. # Для default Qwen Chat image/video endpoints не нужен. # DASHSCOPE_API_KEY=sk-... # Polling задач генерации изображения/видео. TASK_POLL_MAX_ATTEMPTS=90 TASK_POLL_INTERVAL=2000 # Лимит загрузки файла в байтах. По умолчанию: 10 MB. MAX_FILE_SIZE=10485760 MAX_HISTORY_LENGTH=100