Spaces:
Sleeping
Sleeping
# Use an official Python runtime as a parent image | |
FROM python:3.9-slim | |
# Set the working directory in the container | |
WORKDIR /code | |
# Copy the requirements.txt file into the container at /code | |
COPY requirements.txt /code/requirements.txt | |
# Install any dependencies specified in requirements.txt | |
RUN pip install --no-cache-dir -r requirements.txt | |
# Apply the patch to remove flash-attn dependency and download the Florence-2-base-ft model and processor | |
RUN python -c "\ | |
import os; \ | |
from unittest.mock import patch; \ | |
from transformers import AutoModelForCausalLM, AutoProcessor; \ | |
from transformers.dynamic_module_utils import get_imports; \ | |
def fixed_get_imports(filename: os.PathLike) -> list[str]: \ | |
if not str(filename).endswith('/modeling_florence2.py'): \ | |
return get_imports(filename); \ | |
imports = get_imports(filename); \ | |
if 'flash_attn' in imports: \ | |
imports.remove('flash_attn'); \ | |
return imports; \ | |
with patch('transformers.dynamic_module_utils.get_imports', fixed_get_imports): \ | |
model = AutoModelForCausalLM.from_pretrained('microsoft/Florence-2-base-ft', trust_remote_code=True); \ | |
processor = AutoProcessor.from_pretrained('microsoft/Florence-2-base-ft', trust_remote_code=True); \ | |
model.save_pretrained('/code/florence_model'); \ | |
processor.save_pretrained('/code/florence_processor');" | |
# Copy the current directory contents into the container at /code | |
COPY . . | |
# Copy the numberPlate_model_2 folder to /code/numberPlate_model_2 | |
COPY numberPlate_model_2 /code/numberPlate_model_2 | |
# Command to run the FastAPI app using Uvicorn with live-reload | |
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] | |