diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..204a83f --- /dev/null +++ b/.env.example @@ -0,0 +1,210 @@ +# 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 +