muyeong commited on
Commit
8eb5570
·
verified ·
1 Parent(s): 2060e47

Upload rag.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. rag.py +13 -3
rag.py CHANGED
@@ -6,7 +6,6 @@ RAG (Retrieval-Augmented Generation) 모듈
6
  """
7
 
8
  from sentence_transformers import SentenceTransformer
9
- from openai import OpenAI
10
  from config import OPENAI_API_KEY, OPENAI_MODEL, EMBEDDING_MODEL
11
  from database import search_documents
12
  from typing import List, Dict
@@ -14,8 +13,17 @@ from typing import List, Dict
14
  # 임베딩 모델 로드 (한국어 지원)
15
  embedding_model = SentenceTransformer(EMBEDDING_MODEL)
16
 
17
- # OpenAI 클라이언트
18
- client = OpenAI(api_key=OPENAI_API_KEY) if OPENAI_API_KEY else None
 
 
 
 
 
 
 
 
 
19
 
20
 
21
  def get_embedding(text: str) -> List[float]:
@@ -40,6 +48,8 @@ def retrieve_context(query: str, top_k: int = 3) -> str:
40
 
41
  def generate_response(query: str, context: str = "", history: List[Dict] = None) -> str:
42
  """OpenAI를 사용하여 응답 생성"""
 
 
43
  if not client:
44
  return "OpenAI API 연결이 필요합니다. API 키를 확인해주세요."
45
 
 
6
  """
7
 
8
  from sentence_transformers import SentenceTransformer
 
9
  from config import OPENAI_API_KEY, OPENAI_MODEL, EMBEDDING_MODEL
10
  from database import search_documents
11
  from typing import List, Dict
 
13
  # 임베딩 모델 로드 (한국어 지원)
14
  embedding_model = SentenceTransformer(EMBEDDING_MODEL)
15
 
16
+ # OpenAI 클라이언트 (lazy loading으로 gradio 충돌 방지)
17
+ _openai_client = None
18
+
19
+
20
+ def get_openai_client():
21
+ """OpenAI 클라이언트 lazy loading"""
22
+ global _openai_client
23
+ if _openai_client is None and OPENAI_API_KEY:
24
+ from openai import OpenAI
25
+ _openai_client = OpenAI(api_key=OPENAI_API_KEY)
26
+ return _openai_client
27
 
28
 
29
  def get_embedding(text: str) -> List[float]:
 
48
 
49
  def generate_response(query: str, context: str = "", history: List[Dict] = None) -> str:
50
  """OpenAI를 사용하여 응답 생성"""
51
+ client = get_openai_client()
52
+
53
  if not client:
54
  return "OpenAI API 연결이 필요합니다. API 키를 확인해주세요."
55