Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -7,6 +7,7 @@ import sqlite3
|
|
| 7 |
import gc
|
| 8 |
import time
|
| 9 |
import re
|
|
|
|
| 10 |
|
| 11 |
# --- 외부 모듈 임포트 ---
|
| 12 |
import reg_embedding_system
|
|
@@ -34,6 +35,7 @@ current_dir = os.path.dirname(os.path.abspath(__file__))
|
|
| 34 |
ResultFile_FolderAddress = os.path.join(current_dir, 'result.txt')
|
| 35 |
|
| 36 |
# --- RAG 데이터 경로 ---
|
|
|
|
| 37 |
region_paths = {
|
| 38 |
"국내": "/app/data/KMVSS_RAG",
|
| 39 |
"북미": "/app/data/FMVSS_RAG",
|
|
@@ -55,6 +57,10 @@ client = Together(api_key=TOGETHER_API_KEY)
|
|
| 55 |
# --- RAG 로딩 ---
|
| 56 |
def load_rag_objects():
|
| 57 |
global region_rag_objects
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
for region, path in region_paths.items():
|
| 59 |
if not os.path.exists(path):
|
| 60 |
msg = f"[{region}] 경로 없음: {path}"
|
|
@@ -64,6 +70,8 @@ def load_rag_objects():
|
|
| 64 |
|
| 65 |
try:
|
| 66 |
socketio.emit('message', {'message': f"[{region}] RAG 로딩 중..."})
|
|
|
|
|
|
|
| 67 |
ensemble_retriever, vectorstore, sqlite_conn = reg_embedding_system.load_embedding_from_faiss(path)
|
| 68 |
sqlite_conn.close()
|
| 69 |
db_path = os.path.join(path, "metadata_mapping.db")
|
|
@@ -80,6 +88,8 @@ def load_rag_objects():
|
|
| 80 |
except Exception as e:
|
| 81 |
error_msg = f"[{region}] 로딩 실패: {str(e)}"
|
| 82 |
print(error_msg)
|
|
|
|
|
|
|
| 83 |
socketio.emit('message', {'message': error_msg})
|
| 84 |
|
| 85 |
socketio.emit('message', {'message': "Ready to Search"})
|
|
|
|
| 7 |
import gc
|
| 8 |
import time
|
| 9 |
import re
|
| 10 |
+
import traceback # <-- 추가: 에러 상세 출력을 위해 임포트
|
| 11 |
|
| 12 |
# --- 외부 모듈 임포트 ---
|
| 13 |
import reg_embedding_system
|
|
|
|
| 35 |
ResultFile_FolderAddress = os.path.join(current_dir, 'result.txt')
|
| 36 |
|
| 37 |
# --- RAG 데이터 경로 ---
|
| 38 |
+
# NOTE: Hugging Face Spaces에서 데이터가 /app/data에 있는지 확인해야 합니다.
|
| 39 |
region_paths = {
|
| 40 |
"국내": "/app/data/KMVSS_RAG",
|
| 41 |
"북미": "/app/data/FMVSS_RAG",
|
|
|
|
| 57 |
# --- RAG 로딩 ---
|
| 58 |
def load_rag_objects():
|
| 59 |
global region_rag_objects
|
| 60 |
+
|
| 61 |
+
# 📢 [수정]: 로딩 스레드 시작 로그를 추가하여 Gunicorn 로그에서 확인 가능하게 함
|
| 62 |
+
print(">>> [RAG_LOADER] RAG 로딩 스레드 시작 <<<")
|
| 63 |
+
|
| 64 |
for region, path in region_paths.items():
|
| 65 |
if not os.path.exists(path):
|
| 66 |
msg = f"[{region}] 경로 없음: {path}"
|
|
|
|
| 70 |
|
| 71 |
try:
|
| 72 |
socketio.emit('message', {'message': f"[{region}] RAG 로딩 중..."})
|
| 73 |
+
|
| 74 |
+
# NOTE: reg_embedding_system 모듈이 현재 환경에 설치/존재하는지 확인해야 합니다.
|
| 75 |
ensemble_retriever, vectorstore, sqlite_conn = reg_embedding_system.load_embedding_from_faiss(path)
|
| 76 |
sqlite_conn.close()
|
| 77 |
db_path = os.path.join(path, "metadata_mapping.db")
|
|
|
|
| 88 |
except Exception as e:
|
| 89 |
error_msg = f"[{region}] 로딩 실패: {str(e)}"
|
| 90 |
print(error_msg)
|
| 91 |
+
# 📢 [수정]: 상세한 에러 추적을 위해 traceback 추가
|
| 92 |
+
traceback.print_exc()
|
| 93 |
socketio.emit('message', {'message': error_msg})
|
| 94 |
|
| 95 |
socketio.emit('message', {'message': "Ready to Search"})
|