mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-09-01 17:10:24 +08:00
* feat: Turn off certain features of quota popup for self-hosting This commit introduces a new variable, NEXT_PUBLIC_SELFHOSTED, that alters the behavior of the quota popup. Downstream consumers of the application may have their own quota-checking logic, and the front-end reacts to the 429 error by displaying the quota popup. In the case of a self-hosted version of the app, it is inappropriate to ask for sponsorship or provide a hyperlink to the public version of the tool to apply for an increased quota. An alternative string translation is provided with an empty message for adopter customization. To use this feature, compile with NEXT_PUBLIC_SELFHOSTED=true and those parts of the quota popup will be omitted. The downstream consumer is still expected to customize the internationalized strings for the popup content to be appropriate to their organization on their local forks. Signed-off-by: Bryon Nevis <bryon.nevis@intel.com> * refactor: improve readability and provide sensible selfhosted defaults - Extract nested ternary expressions into quotaMessage and tipHtml variables - Combine two separate !isSelfHosted conditional blocks into one - Replace null tipSelfHosted with meaningful default strings across all locales --------- Signed-off-by: Bryon Nevis <bryon.nevis@intel.com> Co-authored-by: dayuan.jiang <jdy.toh@gmail.com>
145 lines
7.2 KiB
Plaintext
145 lines
7.2 KiB
Plaintext
# AI Provider Configuration
|
|
# AI_PROVIDER: Which provider to use
|
|
# Options: bedrock, openai, anthropic, google, vertexai, azure, ollama, openrouter, deepseek, siliconflow, gateway
|
|
# Default: bedrock
|
|
AI_PROVIDER=bedrock
|
|
|
|
# AI_MODEL: The model ID for your chosen provider (REQUIRED)
|
|
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-...
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# 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
|