Spaces:
Sleeping
Sleeping
File size: 2,095 Bytes
5fc69e4 |
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 41 42 43 44 45 46 47 48 49 50 51 |
# ----------- ๋ฒ ์ด์ค ์ด๋ฏธ์ง -----------
FROM python:3.10-slim
# ----------- ์์
๋๋ ํ ๋ฆฌ -----------
WORKDIR /app
# ----------- ์์คํ
ํจํค์ง ์ค์น -----------
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
&& rm -rf /var/lib/apt/lists/*
# ----------- ์์กด์ฑ ์ค์น -----------
# requirements ๋จผ์ ๋ณต์ฌ โ ์บ์ ํ์ฉ ๊ฐ๋ฅ
COPY requirements.txt /app/requirements.txt
# PyTorch CPU ๋ฒ์ ์ค์น (GPU ํ์ ์์)
RUN pip install --no-cache-dir torch==2.0.1+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html \
&& pip install --no-cache-dir -r /app/requirements.txt
# ----------- ์ฝ๋ ๋ณต์ฌ -----------
# ์์กด์ฑ ์ค์น ํ ์ฝ๋ ๋ณต์ฌ โ requirements ๋ณ๊ฒฝ ์๋ ํ ์บ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
COPY . /app/
# ----------- ๋ชจ๋ธ ๋ค์ด๋ก๋ -----------
# transformers ๋ชจ๋ธ ๋ค์ด๋ก๋ ํ ์ด๋ฏธ์ง์ ํฌํจ
RUN python -c "from transformers import AutoTokenizer, AutoModel; \
models = { \
'emotion': ('tae898/emoberta-base-ko', './models/emotion-classification-model'), \
'fallback': ('skt/ko-gpt-trinity-1.2B-v0.5', './models/fallback-npc-model'), \
'embedder': ('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2', './models/sentence-embedder') \
}; \
import os; \
os.makedirs('./models/emotion-classification-model', exist_ok=True); \
os.makedirs('./models/fallback-npc-model', exist_ok=True); \
os.makedirs('./models/sentence-embedder', exist_ok=True); \
for key, (name, path) in models.items(): \
AutoModel.from_pretrained(name, cache_dir=path); \
AutoTokenizer.from_pretrained(name, cache_dir=path)"
# ----------- ํ๊ฒฝ ๋ณ์ ์ค์ -----------
ENV EMOTION_MODEL_DIR=/app/models/emotion-classification-model
ENV FALLBACK_MODEL_DIR=/app/models/fallback-npc-model
ENV EMBEDDER_MODEL_DIR=/app/models/sentence-embedder
# ----------- ํฌํธ ์ค์ -----------
EXPOSE 8000
# ----------- ์คํ ๋ช
๋ น -----------
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "${PORT:-8000}"]
|