QuerySphere / Dockerfile
satyakimitra's picture
llm_client.py updated
6c8f7a8
FROM python:3.10-slim
WORKDIR /app
# Install system dependencies for OpenCV, OCR, and basic utilities
RUN apt-get update && apt-get install -y \
build-essential \
libmagic1 \
file \
# OpenCV dependencies for Debian 12
libglx-mesa0 \
libgl1 \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender1 \
libgomp1 \
libstdc++6 \
# OCR dependencies
tesseract-ocr \
tesseract-ocr-eng \
poppler-utils \
# Additional utilities
wget \
curl \
git \
# Clean up
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Create directories with proper permissions
RUN mkdir -p data/uploads data/vector_store data/backups logs && \
chmod -R 777 data/ logs/
# Set environment variables
ENV HOST=0.0.0.0
ENV PORT=7860
ENV OLLAMA_ENABLED=false
ENV USE_OPENAI=true
ENV LLM_PROVIDER=openai
ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONPATH=/app:$PYTHONPATH
ENV OMP_NUM_THREADS=1
ENV PADDLE_PADDLE_NO_WARN=1
ENV PADDLE_NO_WARN=1
# Expose port for HF Spaces
EXPOSE 7860
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD python -c "import requests; requests.get('http://localhost:7860/api/health', timeout=5)" || exit 1
# Start application with optimized settings for Hugging Face Spaces
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1", "--timeout-keep-alive", "120"]