ashfortune commited on
Commit
75332d4
·
1 Parent(s): 6d6eec9

배포환경 변수 변경

Browse files
Files changed (1) hide show
  1. backend/services/classifier.py +14 -8
backend/services/classifier.py CHANGED
@@ -2,7 +2,7 @@ import tensorflow as tf
2
  import re
3
  import numpy as np
4
  import os
5
- from dotenv import load_dotenv # [추가] 환경 변수 로드용
6
  from transformers import AutoTokenizer, TFDistilBertForSequenceClassification
7
 
8
  # .env 파일 활성화
@@ -13,12 +13,16 @@ class MBTIClassifier:
13
  """
14
  환경 변수 MODEL_PATH를 읽어 로컬 폴더 또는 HF Hub에서 모델을 자동 로드합니다.
15
  """
16
- # [수정] 환경 변수에서 경로 가져오기 (기본값은 HF 저장소)
17
  self.base_path = os.getenv("MODEL_PATH", "ashfortune/communiKate")
18
 
19
- # [수정] 해당 경로가 실제 로컬 폴더인지 확인
20
  self.is_local = os.path.isdir(self.base_path)
21
 
 
 
 
 
22
  mode_str = "LOCAL" if self.is_local else "HUGGINGFACE HUB"
23
  print(f"DEBUG: [{mode_str} MODE] 엔진 가동 중... ({self.base_path})")
24
 
@@ -36,11 +40,12 @@ class MBTIClassifier:
36
  print(f"DEBUG: 토크나이저 로딩 중...")
37
 
38
  if self.is_local:
39
- # 로컬: 폴더 경로 조인
40
  self.tokenizer = AutoTokenizer.from_pretrained(os.path.join(self.base_path, first_sub))
41
  else:
42
- # 배포: repo_id와 subfolder 사용
43
- self.tokenizer = AutoTokenizer.from_pretrained(self.base_path, subfolder=first_sub)
 
44
 
45
  # 2. 4개의 독립 모델 로드
46
  for name, subfolder in self.axis_map.items():
@@ -51,10 +56,11 @@ class MBTIClassifier:
51
  model_full_path = os.path.join(self.base_path, subfolder)
52
  self.models[name] = TFDistilBertForSequenceClassification.from_pretrained(model_full_path)
53
  else:
54
- # [배포 모드]
 
55
  self.models[name] = TFDistilBertForSequenceClassification.from_pretrained(
56
  self.base_path,
57
- subfolder=subfolder,
58
  from_pt=True # PyTorch 가중치 변환 허용
59
  )
60
 
 
2
  import re
3
  import numpy as np
4
  import os
5
+ from dotenv import load_dotenv
6
  from transformers import AutoTokenizer, TFDistilBertForSequenceClassification
7
 
8
  # .env 파일 활성화
 
13
  """
14
  환경 변수 MODEL_PATH를 읽어 로컬 폴더 또는 HF Hub에서 모델을 자동 로드합니다.
15
  """
16
+ # 환경 변수에서 경로 가져오기 (기본값은 HF 저장소 ID)
17
  self.base_path = os.getenv("MODEL_PATH", "ashfortune/communiKate")
18
 
19
+ # 해당 경로가 실제 로컬 폴더인지 확인
20
  self.is_local = os.path.isdir(self.base_path)
21
 
22
+ # [수정] 웹 배포 시 저장소 내부의 중간 폴더 경로 설정
23
+ # 로컬 폴더 경로(예: ./models/bert_mbti_ver2)에 이미 버전 폴더가 포함되어 있다면 로컬에선 무시합니다.
24
+ self.version_folder = "bert_mbti_ver2"
25
+
26
  mode_str = "LOCAL" if self.is_local else "HUGGINGFACE HUB"
27
  print(f"DEBUG: [{mode_str} MODE] 엔진 가동 중... ({self.base_path})")
28
 
 
40
  print(f"DEBUG: 토크나이저 로딩 중...")
41
 
42
  if self.is_local:
43
+ # 로컬: ./models/bert_mbti_ver2/mbti_model_ie
44
  self.tokenizer = AutoTokenizer.from_pretrained(os.path.join(self.base_path, first_sub))
45
  else:
46
+ # [수정] 배포: ashfortune/communiKate 안의 'bert_mbti_ver2/mbti_model_ie'
47
+ hf_subfolder = os.path.join(self.version_folder, first_sub)
48
+ self.tokenizer = AutoTokenizer.from_pretrained(self.base_path, subfolder=hf_subfolder)
49
 
50
  # 2. 4개의 독립 모델 로드
51
  for name, subfolder in self.axis_map.items():
 
56
  model_full_path = os.path.join(self.base_path, subfolder)
57
  self.models[name] = TFDistilBertForSequenceClassification.from_pretrained(model_full_path)
58
  else:
59
+ # [수정] [배포 모드] 중간 폴더(bert_mbti_ver2)를 경로에 추가
60
+ hf_subfolder = os.path.join(self.version_folder, subfolder)
61
  self.models[name] = TFDistilBertForSequenceClassification.from_pretrained(
62
  self.base_path,
63
+ subfolder=hf_subfolder,
64
  from_pt=True # PyTorch 가중치 변환 허용
65
  )
66