Spaces:
Sleeping
Sleeping
김무영
Claude
commited on
Commit
·
162bfae
1
Parent(s):
3190032
Fix websockets compatibility issue for HuggingFace deployment
Browse files- Add websockets version constraint to requirements.txt (>=11.0.3,<12.0.0)
- Add exception handling for OpenAI/Supabase module imports
- Fall back to FAISS mode when Supabase modules are unavailable
- Update default VECTOR_DB_TYPE to faiss in .env.example for stability
This resolves ModuleNotFoundError: No module named 'websockets.asyncio'
that occurs during HuggingFace Spaces deployment.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- .env.example +2 -1
- app.py +19 -3
- requirements.txt +1 -0
.env.example
CHANGED
|
@@ -9,7 +9,8 @@
|
|
| 9 |
# SUPABASE_KEY=your_supabase_key_here
|
| 10 |
|
| 11 |
# 벡터 DB 타입 (faiss 또는 supabase)
|
| 12 |
-
|
|
|
|
| 13 |
|
| 14 |
# 기존 FAISS 설정 (VECTOR_DB_TYPE=faiss 인 경우 사용)
|
| 15 |
EMBEDDING_MODEL=jhgan/ko-sbert-nli
|
|
|
|
| 9 |
# SUPABASE_KEY=your_supabase_key_here
|
| 10 |
|
| 11 |
# 벡터 DB 타입 (faiss 또는 supabase)
|
| 12 |
+
# 허깅페이스 배포 시에는 faiss를 권장합니다
|
| 13 |
+
VECTOR_DB_TYPE=faiss
|
| 14 |
|
| 15 |
# 기존 FAISS 설정 (VECTOR_DB_TYPE=faiss 인 경우 사용)
|
| 16 |
EMBEDDING_MODEL=jhgan/ko-sbert-nli
|
app.py
CHANGED
|
@@ -19,17 +19,33 @@ sys.path.append(current_dir)
|
|
| 19 |
# 모듈 임포트
|
| 20 |
from config import Config
|
| 21 |
from rag_chatbot import RAGChatbot
|
| 22 |
-
from openai_chatbot import OpenAIRAGChatbot
|
| 23 |
from document_processor import DocumentProcessor
|
| 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
class HuggingFaceApp:
|
| 26 |
"""허깅페이스 Spaces 배포용 앱 클래스"""
|
| 27 |
|
| 28 |
def __init__(self):
|
| 29 |
# 벡터 DB 타입에 따라 챗봇 선택
|
| 30 |
-
if Config.VECTOR_DB_TYPE == "supabase":
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
else:
|
|
|
|
|
|
|
| 33 |
self.chatbot = RAGChatbot()
|
| 34 |
self.is_initialized = False
|
| 35 |
|
|
|
|
| 19 |
# 모듈 임포트
|
| 20 |
from config import Config
|
| 21 |
from rag_chatbot import RAGChatbot
|
|
|
|
| 22 |
from document_processor import DocumentProcessor
|
| 23 |
|
| 24 |
+
# OpenAI/Supabase 관련 모듈은 에러 처리 후 임포트
|
| 25 |
+
try:
|
| 26 |
+
from openai_chatbot import OpenAIRAGChatbot
|
| 27 |
+
OPENAI_AVAILABLE = True
|
| 28 |
+
except ImportError as e:
|
| 29 |
+
print(f"OpenAI 모듈 임포트 오류: {e}")
|
| 30 |
+
print("FAISS 모드로 실행됩니다.")
|
| 31 |
+
OPENAI_AVAILABLE = False
|
| 32 |
+
OpenAIRAGChatbot = None
|
| 33 |
+
|
| 34 |
class HuggingFaceApp:
|
| 35 |
"""허깅페이스 Spaces 배포용 앱 클래스"""
|
| 36 |
|
| 37 |
def __init__(self):
|
| 38 |
# 벡터 DB 타입에 따라 챗봇 선택
|
| 39 |
+
if Config.VECTOR_DB_TYPE == "supabase" and OPENAI_AVAILABLE and OpenAIRAGChatbot:
|
| 40 |
+
try:
|
| 41 |
+
self.chatbot = OpenAIRAGChatbot()
|
| 42 |
+
except Exception as e:
|
| 43 |
+
print(f"Supabase 챗봇 초기화 오류: {e}")
|
| 44 |
+
print("FAISS 모드로 전환됩니다.")
|
| 45 |
+
self.chatbot = RAGChatbot()
|
| 46 |
else:
|
| 47 |
+
if Config.VECTOR_DB_TYPE == "supabase" and not OPENAI_AVAILABLE:
|
| 48 |
+
print("OpenAI 모듈을 사용할 수 없어 FAISS 모드로 실행됩니다.")
|
| 49 |
self.chatbot = RAGChatbot()
|
| 50 |
self.is_initialized = False
|
| 51 |
|
requirements.txt
CHANGED
|
@@ -26,6 +26,7 @@ PyMuPDF>=1.23.8
|
|
| 26 |
|
| 27 |
# Supabase
|
| 28 |
supabase>=2.0.0
|
|
|
|
| 29 |
openai>=1.0.0
|
| 30 |
|
| 31 |
# 유틸리티
|
|
|
|
| 26 |
|
| 27 |
# Supabase
|
| 28 |
supabase>=2.0.0
|
| 29 |
+
websockets>=11.0.3,<12.0.0
|
| 30 |
openai>=1.0.0
|
| 31 |
|
| 32 |
# 유틸리티
|