/ 18_fastapi_serving / backend / ml_model.py
ml_model.py
 1  from transformers import pipeline
 2  
 3  # 한국어 감성 분석에 특화된 경량 모델 로드
 4  # 모델이 처음 실행될 때 다운로드되므로 약간의 시간이 소요됩니다.
 5  model_name = "jaehyeong/koelectra-base-v3-generalized-sentiment-analysis"
 6  
 7  try:
 8      sentiment_model = pipeline("sentiment-analysis", model=model_name)
 9  except Exception as e:
10      print(f"모델 로드 실패: {e}")
11      # 모델 로드 실패 시를 대비한 기본 함수
12      sentiment_model = None
13  
14  def analyze_sentiment(text: str):
15      if not text:
16          return "데이터 없음", 0.0
17      
18      if sentiment_model:
19          result = sentiment_model(text)[0]
20          # 모델 결과: LABEL_0(부정), LABEL_1(긍정) 등 (모델마다 다름)
21          # 이 모델은 1이 부정, 0이 긍정인 경우가 많으니 결과를 매핑합니다.
22          label = result['label']
23          score = result['score']
24          
25          # 단순화된 매핑 (실제 모델 출력 확인 후 조정 필요)
26          sentiment = "Positive" if "1" in label or "pos" in label.lower() else "Negative"
27          return sentiment, score
28      else:
29          return "Model Not Loaded", 0.0