Spaces:
Runtime error
Runtime error
youdie006
commited on
Commit
·
878e43c
1
Parent(s):
d507385
Fix: Resolve conflicts
Browse files- Dockerfile +29 -28
- requirements.txt +14 -13
Dockerfile
CHANGED
|
@@ -1,11 +1,11 @@
|
|
| 1 |
-
# Dockerfile -
|
| 2 |
|
| 3 |
FROM python:3.10-slim
|
| 4 |
|
| 5 |
# 메타데이터
|
| 6 |
LABEL maintainer="[email protected]"
|
| 7 |
-
LABEL description="SimSimi AI Agent -
|
| 8 |
-
LABEL version="1.0.
|
| 9 |
|
| 10 |
# 시스템 의존성 설치
|
| 11 |
RUN apt-get update && apt-get install -y \
|
|
@@ -19,7 +19,7 @@ RUN apt-get update && apt-get install -y \
|
|
| 19 |
|
| 20 |
WORKDIR /app
|
| 21 |
|
| 22 |
-
# 🛡️ 캐시
|
| 23 |
ENV HF_HOME=/app/cache
|
| 24 |
ENV HF_DATASETS_CACHE=/app/cache
|
| 25 |
ENV TRANSFORMERS_CACHE=/app/cache
|
|
@@ -28,63 +28,64 @@ ENV PYTHONPATH=/app
|
|
| 28 |
ENV PYTHONDONTWRITEBYTECODE=1
|
| 29 |
ENV PYTHONUNBUFFERED=1
|
| 30 |
|
| 31 |
-
# 🔧
|
| 32 |
ENV HF_HUB_DISABLE_PROGRESS_BARS=1
|
| 33 |
ENV TRANSFORMERS_NO_ADVISORY_WARNINGS=1
|
|
|
|
|
|
|
| 34 |
|
| 35 |
-
#
|
| 36 |
-
COPY requirements.txt .
|
| 37 |
-
RUN pip install --upgrade pip
|
| 38 |
-
|
| 39 |
-
# 🛡️ 캐시 디렉토리 미리 생성 및 권한 설정
|
| 40 |
RUN mkdir -p /app/cache /app/data /app/logs /app/static && \
|
| 41 |
chmod -R 777 /app/cache /app/data /app/logs
|
| 42 |
|
| 43 |
-
# 🔧 캐시
|
| 44 |
RUN mkdir -p /app/cache/hub /app/cache/datasets /app/cache/transformers && \
|
| 45 |
-
|
|
|
|
| 46 |
|
| 47 |
-
# 의존성 설치
|
|
|
|
|
|
|
| 48 |
RUN pip install --no-cache-dir -r requirements.txt
|
| 49 |
|
| 50 |
# 애플리케이션 코드 복사
|
| 51 |
COPY . .
|
| 52 |
|
| 53 |
-
# 🛡️
|
| 54 |
-
RUN timeout
|
| 55 |
youdie006/simsimi-ai-agent-data \
|
| 56 |
--repo-type dataset \
|
| 57 |
--local-dir /app/data \
|
| 58 |
--local-dir-use-symlinks False || \
|
| 59 |
-
echo "⚠️ 데이터 다운로드
|
| 60 |
|
| 61 |
-
# 🔧
|
| 62 |
-
RUN echo "📥 임베딩 모델 사전 다운로드
|
| 63 |
-
python -c "\
|
| 64 |
import os; \
|
| 65 |
os.environ['TRANSFORMERS_CACHE'] = '/app/cache'; \
|
| 66 |
os.environ['HF_HOME'] = '/app/cache'; \
|
|
|
|
| 67 |
try: \
|
|
|
|
| 68 |
from sentence_transformers import SentenceTransformer; \
|
| 69 |
-
print('📥 임베딩 모델 다운로드 중...'); \
|
| 70 |
model = SentenceTransformer('jhgan/ko-sbert-multitask', cache_folder='/app/cache'); \
|
| 71 |
-
print('✅
|
| 72 |
-
print(f'모델 차원: {model.get_sentence_embedding_dimension()}'); \
|
| 73 |
except Exception as e: \
|
| 74 |
-
print(f'⚠️
|
| 75 |
print('런타임에 다시 시도합니다.'); \
|
| 76 |
-
" || echo "
|
| 77 |
|
| 78 |
-
# 스마트 시작 스크립트
|
| 79 |
COPY start.sh /app/start.sh
|
| 80 |
RUN chmod +x /app/start.sh
|
| 81 |
|
| 82 |
# 포트 노출
|
| 83 |
EXPOSE 7860
|
| 84 |
|
| 85 |
-
# 헬스체크
|
| 86 |
-
HEALTHCHECK --interval=60s --timeout=30s --start-period=
|
| 87 |
CMD curl -f http://localhost:7860/api/v1/health || exit 1
|
| 88 |
|
| 89 |
-
#
|
| 90 |
CMD ["/app/start.sh"]
|
|
|
|
| 1 |
+
# Dockerfile - 의존성 충돌 및 캐시 문제 완전 해결
|
| 2 |
|
| 3 |
FROM python:3.10-slim
|
| 4 |
|
| 5 |
# 메타데이터
|
| 6 |
LABEL maintainer="[email protected]"
|
| 7 |
+
LABEL description="SimSimi AI Agent - Safe Build"
|
| 8 |
+
LABEL version="1.0.4"
|
| 9 |
|
| 10 |
# 시스템 의존성 설치
|
| 11 |
RUN apt-get update && apt-get install -y \
|
|
|
|
| 19 |
|
| 20 |
WORKDIR /app
|
| 21 |
|
| 22 |
+
# 🛡️ 캐시 및 환경 변수 설정 (캐시 마이그레이션 완전 방지)
|
| 23 |
ENV HF_HOME=/app/cache
|
| 24 |
ENV HF_DATASETS_CACHE=/app/cache
|
| 25 |
ENV TRANSFORMERS_CACHE=/app/cache
|
|
|
|
| 28 |
ENV PYTHONDONTWRITEBYTECODE=1
|
| 29 |
ENV PYTHONUNBUFFERED=1
|
| 30 |
|
| 31 |
+
# 🔧 캐시 마이그레이션 및 경고 완전 비활성화
|
| 32 |
ENV HF_HUB_DISABLE_PROGRESS_BARS=1
|
| 33 |
ENV TRANSFORMERS_NO_ADVISORY_WARNINGS=1
|
| 34 |
+
ENV TOKENIZERS_PARALLELISM=false
|
| 35 |
+
ENV HF_HUB_DISABLE_TELEMETRY=1
|
| 36 |
|
| 37 |
+
# 캐시 디렉토리 생성 및 권한 설정
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
RUN mkdir -p /app/cache /app/data /app/logs /app/static && \
|
| 39 |
chmod -R 777 /app/cache /app/data /app/logs
|
| 40 |
|
| 41 |
+
# 🔧 미리 캐시 구조 생성 (마이그레이션 트리거 방지)
|
| 42 |
RUN mkdir -p /app/cache/hub /app/cache/datasets /app/cache/transformers && \
|
| 43 |
+
mkdir -p /app/cache/models /app/cache/tokenizers && \
|
| 44 |
+
touch /app/cache/.no_migration_needed
|
| 45 |
|
| 46 |
+
# Python 의존성 설치
|
| 47 |
+
COPY requirements.txt .
|
| 48 |
+
RUN pip install --upgrade pip
|
| 49 |
RUN pip install --no-cache-dir -r requirements.txt
|
| 50 |
|
| 51 |
# 애플리케이션 코드 복사
|
| 52 |
COPY . .
|
| 53 |
|
| 54 |
+
# 🛡️ 안전한 데이터 다운로드 (타임아웃 및 실패 허용)
|
| 55 |
+
RUN timeout 180 huggingface-cli download \
|
| 56 |
youdie006/simsimi-ai-agent-data \
|
| 57 |
--repo-type dataset \
|
| 58 |
--local-dir /app/data \
|
| 59 |
--local-dir-use-symlinks False || \
|
| 60 |
+
echo "⚠️ 데이터 다운로드 건너뜀 - 런타임에 처리"
|
| 61 |
|
| 62 |
+
# 🔧 안전한 모델 사전 다운로드 (실패해도 계속 진행)
|
| 63 |
+
RUN echo "📥 임베딩 모델 사전 다운로드 시도..." && \
|
| 64 |
+
timeout 300 python -c "\
|
| 65 |
import os; \
|
| 66 |
os.environ['TRANSFORMERS_CACHE'] = '/app/cache'; \
|
| 67 |
os.environ['HF_HOME'] = '/app/cache'; \
|
| 68 |
+
os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = '1'; \
|
| 69 |
try: \
|
| 70 |
+
print('모델 다운로드 시작...'); \
|
| 71 |
from sentence_transformers import SentenceTransformer; \
|
|
|
|
| 72 |
model = SentenceTransformer('jhgan/ko-sbert-multitask', cache_folder='/app/cache'); \
|
| 73 |
+
print(f'✅ 모델 다운로드 완료 - 차원: {model.get_sentence_embedding_dimension()}'); \
|
|
|
|
| 74 |
except Exception as e: \
|
| 75 |
+
print(f'⚠️ 모델 사전 다운로드 실패: {e}'); \
|
| 76 |
print('런타임에 다시 시도합니다.'); \
|
| 77 |
+
" || echo "모델 사전 다운로드 실패 - 런타임에 처리"
|
| 78 |
|
| 79 |
+
# 스마트 시작 스크립트
|
| 80 |
COPY start.sh /app/start.sh
|
| 81 |
RUN chmod +x /app/start.sh
|
| 82 |
|
| 83 |
# 포트 노출
|
| 84 |
EXPOSE 7860
|
| 85 |
|
| 86 |
+
# 관대한 헬스체크
|
| 87 |
+
HEALTHCHECK --interval=60s --timeout=30s --start-period=600s --retries=5 \
|
| 88 |
CMD curl -f http://localhost:7860/api/v1/health || exit 1
|
| 89 |
|
| 90 |
+
# 시작
|
| 91 |
CMD ["/app/start.sh"]
|
requirements.txt
CHANGED
|
@@ -5,20 +5,21 @@ fastapi==0.104.1
|
|
| 5 |
uvicorn[standard]==0.24.0
|
| 6 |
|
| 7 |
# ===========================================
|
| 8 |
-
# 🤖 AI/ML 라이브러리 (
|
| 9 |
# ===========================================
|
| 10 |
openai==1.3.8
|
| 11 |
|
| 12 |
-
# 🔧 HuggingFace 라이브러리들 (
|
| 13 |
-
huggingface_hub==0.
|
| 14 |
-
sentence-transformers==2.2.
|
| 15 |
-
transformers==4.
|
| 16 |
-
|
|
|
|
| 17 |
|
| 18 |
# ===========================================
|
| 19 |
-
# 🗄️ Vector Database
|
| 20 |
# ===========================================
|
| 21 |
-
chromadb==0.
|
| 22 |
|
| 23 |
# ===========================================
|
| 24 |
# 🛠️ 유틸리티
|
|
@@ -31,16 +32,16 @@ numpy==1.24.3
|
|
| 31 |
pandas==2.0.3
|
| 32 |
|
| 33 |
# ===========================================
|
| 34 |
-
# 🇰🇷 한국어 처리
|
| 35 |
# ===========================================
|
| 36 |
-
konlpy==0.6.0
|
| 37 |
|
| 38 |
# ===========================================
|
| 39 |
-
# 📊 AI Hub 데이터 처리
|
| 40 |
# ===========================================
|
| 41 |
ijson==3.2.3
|
| 42 |
-
scipy==1.
|
| 43 |
-
scikit-learn==1.
|
| 44 |
regex==2023.10.3
|
| 45 |
python-dateutil==2.8.2
|
| 46 |
|
|
|
|
| 5 |
uvicorn[standard]==0.24.0
|
| 6 |
|
| 7 |
# ===========================================
|
| 8 |
+
# 🤖 AI/ML 라이브러리 (완전 안전 버전)
|
| 9 |
# ===========================================
|
| 10 |
openai==1.3.8
|
| 11 |
|
| 12 |
+
# 🔧 HuggingFace 라이브러리들 (캐시 마이그레이션 없는 안전 버전)
|
| 13 |
+
huggingface_hub==0.15.1
|
| 14 |
+
sentence-transformers==2.2.0
|
| 15 |
+
transformers==4.20.1 # 캐시 마이그레이션 이전 안정 버전
|
| 16 |
+
tokenizers==0.12.1 # 호환성 보장
|
| 17 |
+
torch==1.13.1 # 더 가벼운 버전
|
| 18 |
|
| 19 |
# ===========================================
|
| 20 |
+
# 🗄️ Vector Database (가벼운 버전)
|
| 21 |
# ===========================================
|
| 22 |
+
chromadb==0.3.26 # 더 안정적이고 가벼운 버전
|
| 23 |
|
| 24 |
# ===========================================
|
| 25 |
# 🛠️ 유틸리티
|
|
|
|
| 32 |
pandas==2.0.3
|
| 33 |
|
| 34 |
# ===========================================
|
| 35 |
+
# 🇰🇷 한국어 처리 (선택적)
|
| 36 |
# ===========================================
|
| 37 |
+
# konlpy==0.6.0 # 일시적으로 제거 (Java 의존성)
|
| 38 |
|
| 39 |
# ===========================================
|
| 40 |
+
# 📊 AI Hub 데이터 처리 (최소화)
|
| 41 |
# ===========================================
|
| 42 |
ijson==3.2.3
|
| 43 |
+
scipy==1.10.1
|
| 44 |
+
scikit-learn==1.2.2
|
| 45 |
regex==2023.10.3
|
| 46 |
python-dateutil==2.8.2
|
| 47 |
|