#!/bin/bash # Entrypoint script for LLM Structured Output Docker container set -e # Print environment info echo "🐳 Starting LLM Structured Output Docker container" echo "Python version: $(python --version)" echo "Working directory: $(pwd)" echo "User: $(whoami)" # Create models directory if it doesn't exist mkdir -p /app/models # Check if musl libc symbolic link exists (required for llama-cpp-python) if [ ! -e "/lib/libc.musl-x86_64.so.1" ]; then echo "⚠️ Warning: musl libc symbolic link not found. Checking for available libc libraries..." ls -la /usr/lib/x86_64-linux-* 2>/dev/null || echo "No musl libraries found" ls -la /usr/lib/x86_64-linux-gnu/libc.so* 2>/dev/null || echo "No glibc libraries found" fi # Check available memory echo "📊 System information:" echo "Memory: $(cat /proc/meminfo | grep MemTotal)" echo "CPU cores: $(nproc)" echo "Disk space: $(df -h /app)" # Set default values for key environment variables if not provided export MODEL_REPO=${MODEL_REPO:-"lmstudio-community/gemma-3n-E4B-it-text-GGUF"} export MODEL_FILENAME=${MODEL_FILENAME:-"gemma-3n-E4B-it-Q8_0.gguf"} export N_CTX=${N_CTX:-"4096"} export N_GPU_LAYERS=${N_GPU_LAYERS:-"0"} export N_THREADS=${N_THREADS:-"4"} export MAX_NEW_TOKENS=${MAX_NEW_TOKENS:-"256"} echo "🔧 Configuration:" echo "Model: $MODEL_REPO/$MODEL_FILENAME" echo "Context size: $N_CTX" echo "GPU layers: $N_GPU_LAYERS" echo "CPU threads: $N_THREADS" echo "Max tokens: $MAX_NEW_TOKENS" # Check if running in HuggingFace Spaces if [ "$SPACE_ID" ]; then echo "🤗 Running in HuggingFace Spaces: $SPACE_ID" export HOST=0.0.0.0 export GRADIO_PORT=7860 fi # Execute the main command echo "🚀 Starting application..." exec "$@"