youdie006 commited on
Commit
878e43c
·
1 Parent(s): d507385

Fix: Resolve conflicts

Browse files
Files changed (2) hide show
  1. Dockerfile +29 -28
  2. 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 - Syntax Fix"
8
- LABEL version="1.0.3"
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
- # 🔧 Transformers 캐시 마이그레이션 비활성화
32
  ENV HF_HUB_DISABLE_PROGRESS_BARS=1
33
  ENV TRANSFORMERS_NO_ADVISORY_WARNINGS=1
 
 
34
 
35
- # Python 의존성 설치
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
- touch /app/cache/.migration_complete
 
46
 
47
- # 의존성 설치
 
 
48
  RUN pip install --no-cache-dir -r requirements.txt
49
 
50
  # 애플리케이션 코드 복사
51
  COPY . .
52
 
53
- # 🛡️ 조건부 데이터 다운로드 (타임아웃 설정)
54
- RUN timeout 300 huggingface-cli download \
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'⚠️ 임베딩 모델 다운로드 실패: {e}'); \
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=300s --retries=5 \
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.16.4
14
- sentence-transformers==2.2.2
15
- transformers==4.21.3 # 캐시 마이그레이션 이전 안정 버전
16
- torch==2.0.1
 
17
 
18
  # ===========================================
19
- # 🗄️ Vector Database
20
  # ===========================================
21
- chromadb==0.4.18
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.11.4
43
- scikit-learn==1.3.2
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