# AI Provider Configuration # AI_PROVIDER: Which provider to use # Options: bedrock, openai, anthropic, google, vertexai, azure, ollama, openrouter, aihubmix, deepseek, siliconflow, gateway, novita # Default: bedrock AI_PROVIDER=bedrock # AI_MODEL: The model ID for your chosen provider (REQUIRED) # Tip: For a single-provider quick multi-model setup, list comma-separated model IDs. # The first one becomes the default and the rest appear in the model picker. # For multiple providers or custom apiKeyEnv/baseUrlEnv, use AI_MODELS_CONFIG / ai-models.json instead. # Example: AI_MODEL=doubao-seed-1-8-251215,doubao-seed-1-6-flash,doubao-seed-1-6-pro AI_MODEL=global.anthropic.claude-sonnet-4-5-20250929-v1:0 # AWS Bedrock Configuration # AWS_REGION=us-east-1 # AWS_ACCESS_KEY_ID=your-access-key-id # AWS_SECRET_ACCESS_KEY=your-secret-access-key # Note: Claude and Nova models support reasoning/extended thinking # BEDROCK_REASONING_BUDGET_TOKENS=12000 # Optional: Claude reasoning budget in tokens (1024-64000) # BEDROCK_REASONING_EFFORT=medium # Optional: Nova reasoning effort (low/medium/high) # OpenAI Configuration # OPENAI_API_KEY=sk-... # OPENAI_BASE_URL=https://api.openai.com/v1 # Optional: Custom OpenAI-compatible endpoint # OPENAI_ORGANIZATION=org-... # Optional # OPENAI_PROJECT=proj_... # Optional # Note: o1/o3/gpt-5 models automatically enable reasoning summary (default: detailed) # OPENAI_REASONING_EFFORT=low # Optional: Reasoning effort (minimal/low/medium/high) - for o1/o3/gpt-5 # OPENAI_REASONING_SUMMARY=detailed # Optional: Override reasoning summary (none/brief/detailed) # Anthropic (Direct) Configuration # ANTHROPIC_API_KEY=sk-ant-... # Sent as `x-api-key` header # ANTHROPIC_AUTH_TOKEN= # Alternative to ANTHROPIC_API_KEY; sent as `Authorization: Bearer` header (mutually exclusive) # ANTHROPIC_BASE_URL=https://your-custom-anthropic/v1 # ANTHROPIC_THINKING_TYPE=enabled # Optional: Anthropic extended thinking (enabled) # ANTHROPIC_THINKING_BUDGET_TOKENS=12000 # Optional: Budget for extended thinking in tokens # Google Generative AI Configuration # GOOGLE_GENERATIVE_AI_API_KEY=... # GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta # Optional: Custom endpoint # GOOGLE_CANDIDATE_COUNT=1 # Optional: Number of candidates to generate # GOOGLE_TOP_K=40 # Optional: Top K sampling parameter # GOOGLE_TOP_P=0.95 # Optional: Nucleus sampling parameter # Note: Gemini 2.5/3 models automatically enable reasoning display (includeThoughts: true) # GOOGLE_THINKING_BUDGET=8192 # Optional: Gemini 2.5 thinking budget in tokens (for more/less thinking) # GOOGLE_THINKING_LEVEL=high # Optional: Gemini 3 thinking level (low/high) # Google Vertex AI Configuration (Enterprise GCP) # For enterprise users needing data residency, VPC Service Controls, or GCP integration # GOOGLE_VERTEX_API_KEY= # Required: Express Mode API key # GOOGLE_VERTEX_BASE_URL=https://... # Optional: Custom endpoint URL # Note: Gemini 2.5/3 models automatically enable reasoning display (includeThoughts: true) # GOOGLE_VERTEX_THINKING_BUDGET=8192 # Optional: Gemini 2.5 thinking budget in tokens (1024-100000) # GOOGLE_VERTEX_THINKING_LEVEL=high # Optional: Gemini 3 thinking level (minimal/low/medium/high) # Azure OpenAI Configuration # Configure endpoint using ONE of these methods: # 1. AZURE_RESOURCE_NAME - SDK constructs: https://{name}.openai.azure.com/openai/v1{path} # 2. AZURE_BASE_URL - SDK appends /v1{path} to your URL # If both are set, AZURE_BASE_URL takes precedence. # AZURE_RESOURCE_NAME=your-resource-name # AZURE_API_KEY=... # AZURE_BASE_URL=https://your-resource.openai.azure.com/openai # Alternative: Custom endpoint # AZURE_REASONING_EFFORT=low # Optional: Azure reasoning effort (low, medium, high) # AZURE_REASONING_SUMMARY=detailed # Ollama Configuration (Local or Cloud) # OLLAMA_BASE_URL=https://ollama.com/api # Optional, defaults to Ollama Cloud # OLLAMA_API_KEY=your-ollama-cloud-api-key # Optional: For Ollama Cloud or authenticated remote instances # OLLAMA_ENABLE_THINKING=true # Optional: Enable thinking for models that support it (e.g., qwen3) # OpenRouter Configuration # OPENROUTER_API_KEY=sk-or-v1-... # OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 # Optional: Custom endpoint # AIHubMix Configuration # AIHUBMIX_API_KEY=your-aihubmix-api-key # AIHUBMIX_BASE_URL=https://aihubmix.com/v1 # Optional: Custom endpoint # DeepSeek Configuration # DEEPSEEK_API_KEY=sk-... # DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # Optional: Custom endpoint # SiliconFlow Configuration (OpenAI-compatible) # Base domain can be .com or .cn, defaults to https://api.siliconflow.com/v1 # SILICONFLOW_API_KEY=sk-... # SILICONFLOW_BASE_URL=https://api.siliconflow.com/v1 # Optional: switch to https://api.siliconflow.cn/v1 if needed # SGLang Configuration (OpenAI-compatible) # SGLANG_API_KEY=your-sglang-api-key # SGLANG_BASE_URL=http://127.0.0.1:8000/v1 # Your SGLang endpoint # ModelScope Configuration # MODELSCOPE_API_KEY=ms-... # MODELSCOPE_BASE_URL=https://api-inference.modelscope.cn/v1 # Optional: Custom endpoint # ByteDance Doubao Configuration (via Volcengine) # DOUBAO_API_KEY=your-doubao-api-key # DOUBAO_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 # ByteDance Volcengine endpoint # Vercel AI Gateway Configuration # Get your API key from: https://vercel.com/ai-gateway # Model format: "provider/model" e.g., "openai/gpt-4o", "anthropic/claude-sonnet-4-5" # AI_GATEWAY_API_KEY=... # AI_GATEWAY_BASE_URL=https://your-custom-gateway.com/v1/ai # Optional: Custom Gateway URL (for local dev or self-hosted Gateway) # # If not set, uses Vercel default: https://ai-gateway.vercel.sh/v1/ai # Langfuse Observability (Optional) # Enable LLM tracing and analytics - https://langfuse.com # LANGFUSE_PUBLIC_KEY=pk-lf-... # LANGFUSE_SECRET_KEY=sk-lf-... # LANGFUSE_BASEURL=https://cloud.langfuse.com # EU region, use https://us.cloud.langfuse.com for US # Optional server-side multi-model configuration # If set, points to a JSON file with server-provided models (see README for schema). # Default: ./ai-models.json in project root # AI_MODELS_CONFIG_PATH=/path/to/ai-models.json # Temperature (Optional) # Controls randomness in AI responses. Lower = more deterministic. # Leave unset for models that don't support temperature (e.g., GPT-5.1 reasoning models) # TEMPERATURE=0 # Access Control (Optional) # ACCESS_CODE_LIST=your-secret-code,another-code # Admin Panel (Optional) # Set a password to enable the web admin panel at /admin, where most of the # settings in this file can be edited at runtime (stored in data/settings.json, # which takes precedence over environment variables). # Leave unset to disable the admin panel entirely. # ADMIN_PASSWORD=your-admin-password # SETTINGS_FILE=./data/settings.json # Optional: custom settings file location # Draw.io Configuration (Optional) # NEXT_PUBLIC_DRAWIO_BASE_URL=https://embed.diagrams.net # Default: https://embed.diagrams.net # Use this to point to a self-hosted draw.io instance # Subdirectory Deployment (Optional) # For deploying to a subdirectory (e.g., https://example.com/nextaidrawio) # Set this to your subdirectory path with leading slash (e.g., /nextaidrawio) # Leave empty for root deployment (default) # NEXT_PUBLIC_BASE_PATH=/nextaidrawio # PDF Input Feature (Optional) # Enable PDF file upload to extract text and generate diagrams # Enabled by default. Set to "false" to disable. # ENABLE_PDF_INPUT=true # NEXT_PUBLIC_MAX_EXTRACTED_CHARS=150000 # Max characters for PDF/text extraction (default: 150000) # Security Settings (Optional) # Allow private/internal URLs for reverse proxy setups (default: true) # Set to "false" to block private IPs, localhost, and internal hostnames # ALLOW_PRIVATE_URLS=false # Self-hosted deployment (Optional) # Self-hosted users may implement custom quota-management solutions, # which triggers the client UI to display messages suggesting self-hosting or sponsorship. # This switch allows self-hosted users to provide custom messages in response to a 429 code, # in messageTokenSelfHosted, messageApiSelfHosted, and tipSelfHosted translation strings. # NEXT_PUBLIC_SELFHOSTED=true # Minimax Configuration (Optional) # Get your API key from: https://platform.minimaxi.com/docs/guides/models-intro # MINIMAX_API_KEY=your_minimax_api_key # MINIMAX_BASE_URL=https://api.minimaxi.com/anthropic # Optional, default (China mainland) # GLM Configuration (Optional) # Get your API key from: https://open.bigmodel.cn/dev/api # GLM_API_KEY=your_glm_api_key # GLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4 # Optional, default # Qwen Configuration (Optional) # Get your API key from: https://www.aliyun.com/product/bailian # QWEN_API_KEY=your_qwen_api_key # QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # Optional, default # Kimi Configuration (Optional) # Get your API key from: https://platform.moonshot.cn/ # KIMI_API_KEY=your_kimi_api_key # KIMI_BASE_URL=https://api.moonshot.cn/v1 # Optional, default # Qiniu Configuration (Optional) # Get your API key from: https://www.qiniu.com/ai/models # QINIU_API_KEY=your_qiniu_api_key # QINIU_BASE_URL=https://api.qnaigc.com/v1 # Optional, default # Novita AI Configuration (Optional) # Get your API key from: https://novita.ai/dashboard/key # NOVITA_API_KEY=your_novita_api_key # NOVITA_BASE_URL=https://api.novita.ai/openai # Optional, default # MiMo (Xiaomi) Configuration (Optional) # Get your API key from: https://platform.xiaomimimo.com/ # MIMO_API_KEY=your_mimo_api_key # MIMO_BASE_URL=https://api.xiaomimimo.com/v1 # Optional, default. Token Plan users: https://token-plan-cn.xiaomimimo.com/v1