Spaces:
Sleeping
Sleeping
| # Use a slim Python base image for smaller size | |
| FROM python:3.9-slim-buster | |
| # Set environment variables to force Hugging Face libraries into offline mode | |
| ENV HF_DATASETS_OFFLINE=1 | |
| ENV TRANSFORMERS_OFFLINE=1 | |
| # Set the working directory inside the container | |
| WORKDIR /app | |
| # Copy the requirements file and install dependencies | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Download NLTK data during the image build process | |
| RUN python -c "import nltk; nltk.download('punkt')" | |
| # --- NEW STEP: Pre-download the Hugging Face model --- | |
| # Create a directory for the model cache | |
| RUN mkdir -p /app/model_cache | |
| # Download the model and tokenizer to the cache directory | |
| # This will make the model available locally at runtime | |
| RUN python -c "from transformers import AutoModelForSeq2SeqLM, AutoTokenizer; \ | |
| model_name = 'valhalla/t5-small-e2e-qg'; \ | |
| tokenizer = AutoTokenizer.from_pretrained(model_name, cache_dir='/app/model_cache'); \ | |
| model = AutoModelForSeq2SeqLM.from_pretrained(model_name, cache_dir='/app/model_cache'); \ | |
| print(f'Model {model_name} downloaded successfully to /app/model_cache')" | |
| # Copy the main application file | |
| COPY app.py . | |
| # Expose the port Gradio runs on | |
| EXPOSE 7860 | |
| # Command to run the application when the container starts | |
| CMD ["python", "app.py"] |