# LandPPT Configuration Example
# Copy this file to .env and configure your settings

# =============================================================================
# AI Provider Configuration
# =============================================================================

# Default AI provider to use (openai, anthropic, google, azure_openai, ollama)
# For production use, configure one of the real AI providers
DEFAULT_AI_PROVIDER=openai

# Model role overrides (optional)
DEFAULT_MODEL_PROVIDER=
DEFAULT_MODEL_NAME=
OUTLINE_MODEL_PROVIDER=
OUTLINE_MODEL_NAME=
CREATIVE_MODEL_PROVIDER=
CREATIVE_MODEL_NAME=
IMAGE_PROMPT_MODEL_PROVIDER=
IMAGE_PROMPT_MODEL_NAME=
SLIDE_GENERATION_MODEL_PROVIDER=
SLIDE_GENERATION_MODEL_NAME=
EDITOR_ASSISTANT_MODEL_PROVIDER=
EDITOR_ASSISTANT_MODEL_NAME=
TEMPLATE_GENERATION_MODEL_PROVIDER=
TEMPLATE_GENERATION_MODEL_NAME=

# OpenAI Configuration
# Get your API key from: https://platform.openai.com/api-keys
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-3.5-turbo
OPENAI_BASE_URL=https://api.openai.com/v1

# Anthropic Configuration
# Get your API key from: https://console.anthropic.com/
ANTHROPIC_API_KEY=your_anthropic_api_key_here
ANTHROPIC_MODEL=claude-3-haiku-20240307

# Google Gemini Configuration
# Get your API key from: https://aistudio.google.com/app/apikey
GOOGLE_API_KEY=your_google_api_key_here
GOOGLE_BASE_URL=https://generativelanguage.googleapis.com
GOOGLE_MODEL=gemini-1.5-flash

# Azure OpenAI Configuration
# Set up Azure OpenAI service and get your credentials
AZURE_OPENAI_API_KEY=your_azure_openai_key_here
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name
AZURE_OPENAI_API_VERSION=2024-02-15-preview

# Ollama Configuration (for local models)
# Install Ollama from: https://ollama.ai/
# Then run: ollama pull llama2
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama2

# Tavily API Configuration (for research functionality)
# Get your API key from: https://tavily.com/
TAVILY_API_KEY=your_tavily_api_key_here
TAVILY_MAX_RESULTS=10
TAVILY_SEARCH_DEPTH=advanced
# Optional: Comma-separated domains to include/exclude
# TAVILY_INCLUDE_DOMAINS=wikipedia.org,arxiv.org
# TAVILY_EXCLUDE_DOMAINS=example.com

# SearXNG Configuration (for research functionality)
# SearXNG instance host URL (e.g., http://localhost:8888 or https://searx.example.com)
SEARXNG_HOST=
SEARXNG_MAX_RESULTS=10
SEARXNG_LANGUAGE=auto
SEARXNG_TIMEOUT=30

# Research Configuration
# Available providers: tavily, searxng, both
RESEARCH_PROVIDER=tavily
# Enable deep content extraction from web pages
RESEARCH_ENABLE_CONTENT_EXTRACTION=true
# Maximum content length to extract from each page
RESEARCH_MAX_CONTENT_LENGTH=5000
# Timeout for content extraction requests (seconds)
RESEARCH_EXTRACTION_TIMEOUT=30

# PDF to PPTX Conversion Configuration
# Apryse SDK License Key for PDF to PowerPoint conversion
# Get your license key from: https://docs.apryse.com/
APRYSE_LICENSE_KEY=your_apryse_license_key_here

# SiliconFlow API Configuration (for AI image generation)
# Get your API key from: https://siliconflow.cn/
SILICONFLOW_API_KEY=your_siliconflow_api_key_here

# Pixabay API Configuration (for network image search)
# Get your API key from: https://pixabay.com/api/docs/
PIXABAY_API_KEY=your_pixabay_api_key_here

# Unsplash API Configuration (for network image search)
# Get your access key from: https://unsplash.com/developers
UNSPLASH_ACCESS_KEY=your_unsplash_access_key_here

# Pollinations API Configuration (for AI image generation)
# Pollinations is a free service, but tokens provide additional features
POLLINATIONS_API_BASE=https://image.pollinations.ai
# Optional API token for removing logo and higher limits
POLLINATIONS_API_TOKEN=your_pollinations_token_here
# Optional referrer identifier for authentication and analytics
POLLINATIONS_REFERRER=LandPPT
# Model selection: flux (default, high quality), turbo (fast), gptimage (supports transparency)
POLLINATIONS_MODEL=flux

# =============================================================================
# AI Generation Parameters
# =============================================================================

# Maximum tokens to generate (adjust based on your needs and costs)
MAX_TOKENS=8192

# Temperature for generation (0.0 = deterministic, 1.0 = creative)
TEMPERATURE=0.7

# Top-p sampling parameter (nucleus sampling)
TOP_P=1.0

# =============================================================================
# Application Configuration
# =============================================================================

# Server settings
HOST=0.0.0.0
PORT=8000
DEBUG=false
RELOAD=false

# Security settings
SECRET_KEY=your-very-secure-secret-key-change-this-in-production
ACCESS_TOKEN_EXPIRE_MINUTES=300

# File upload settings
MAX_FILE_SIZE=10485760
UPLOAD_DIR=uploads

# Cache settings
CACHE_TTL=3600

# Database settings (for future use)
DATABASE_URL=sqlite:///./landppt.db

# =============================================================================
# Feature Flags
# =============================================================================

# Enable network mode for enhanced content (future feature)
ENABLE_NETWORK_MODE=true

# Enable local model support
ENABLE_LOCAL_MODELS=false

# Enable streaming responses (future feature)
ENABLE_STREAMING=true

# =============================================================================
# Image Service Configuration
# =============================================================================

# Enable image service functionality
ENABLE_IMAGE_SERVICE=false

# Enable local image hosting
ENABLE_LOCAL_IMAGES=false

# Enable network image search
ENABLE_NETWORK_SEARCH=true

# Enable AI image generation
ENABLE_AI_GENERATION=false

# Smart image selection for local images
LOCAL_IMAGES_SMART_SELECTION=true

# Enable smart image selection across all sources
ENABLE_SMART_IMAGE_SELECTION=true

# Maximum images per slide configuration
MAX_LOCAL_IMAGES_PER_SLIDE=2
MAX_NETWORK_IMAGES_PER_SLIDE=1
MAX_AI_IMAGES_PER_SLIDE=2
MAX_TOTAL_IMAGES_PER_SLIDE=1

# Default providers
# Available AI image providers: dalle, siliconflow, pollinations
DEFAULT_AI_IMAGE_PROVIDER=pollinations
DEFAULT_NETWORK_SEARCH_PROVIDER=pixabay

# SearXNG Configuration
SEARXNG_HOST=

# AI image generation quality (standard, high)
AI_IMAGE_QUALITY=standard

# =============================================================================
# Logging Configuration
# =============================================================================

# Log level (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=INFO

# Log AI requests and responses (be careful with sensitive data)
# Set to true only for debugging, false for production
LOG_AI_REQUESTS=false

