File size: 1,250 Bytes
35516cf
 
56f52c6
35516cf
 
 
 
f147305
35516cf
 
56f52c6
35516cf
 
 
 
56f52c6
 
 
ccd75b1
5e81c6f
56f52c6
 
 
 
35516cf
 
 
 
56f52c6
35516cf
 
ccd75b1
 
5e81c6f
35516cf
 
56f52c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FROM python:3.11-slim

# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends gcc libc6-dev && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Install Python dependencies
RUN pip install --no-cache-dir flask flask-cors Pillow litert-lm huggingface_hub

# Create dummy Vulkan library to satisfy litert-lm on CPU
RUN printf 'void vkGetInstanceProcAddr(){}\nvoid vkCreateInstance(){}\nvoid vkDestroyInstance(){}\nvoid vkEnumeratePhysicalDevices(){}\nvoid vkGetDeviceProcAddr(){}' > /tmp/vk.c \
    && gcc -shared -fPIC -o /app/libvulkan.so.1 /tmp/vk.c \
    && rm /tmp/vk.c

# Create model directory
RUN mkdir -p /app/models/gemma

# --- KEY FIX: Updated 'hf download' to fetch the 12B model ---
RUN hf download litert-community/gemma-4-E2B-it-litert-lm gemma-4-E2B-it.litertlm --local-dir /app/models/gemma
# Copy the server code
COPY server.py .

# Setup permissions for Hugging Face Spaces (requires user 1000)
RUN useradd -m -u 1000 user
RUN chown -R user:user /app
USER user

# Set environment variables
ENV PORT=7860
ENV LD_LIBRARY_PATH=/app

# --- KEY FIX: Updated path to point to the 12B model file ---
ENV GEMMA_MODEL_PATH=/app/models/gemma/gemma-4-E2B-it.litertlm
EXPOSE 7860

CMD ["python3", "server.py"]