File size: 1,340 Bytes
1e4a5e4
902cf44
a22752c
1e4a5e4
08e254a
 
 
 
a22752c
 
 
 
 
 
1e4a5e4
902cf44
 
 
 
a22752c
1e4a5e4
902cf44
a22752c
1e4a5e4
08e254a
 
 
 
1e4a5e4
902cf44
a22752c
1e4a5e4
08e254a
 
1e4a5e4
902cf44
a22752c
1e4a5e4
08e254a
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
38
39
40
# Базовый образ Python
FROM python:3.10-slim

# Переменные окружения для кэша Hugging Face (чтобы не было ошибок с правами)
ENV HF_HOME=/tmp/huggingface
ENV TRANSFORMERS_CACHE=/tmp/huggingface

# Устанавливаем системные зависимости
RUN apt-get update && apt-get install -y \
    build-essential \
    curl \
    git \
    && rm -rf /var/lib/apt/lists/*

# Рабочая папка
WORKDIR /app

# Копируем зависимости
COPY requirements.txt .

# Устанавливаем PyTorch (CPU-версия) + зависимости из requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Предзагружаем модель, чтобы не качалась при каждом запуске
RUN python -c "from transformers import AutoTokenizer, AutoModelForCausalLM; \
    AutoTokenizer.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2'); \
    AutoModelForCausalLM.from_pretrained('sberbank-ai/rugpt3small_based_on_gpt2')"

# Копируем приложение
COPY . .

# Разрешаем доступ на запись
RUN chmod -R 777 /app /tmp

# Порт Streamlit
EXPOSE 8501

# Запуск Streamlit
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]