Spaces:
Running on Zero
Running on Zero
Deploy SaulGPT backend with full ChromaDB, Supabase, and Gradio API server
Browse files- app.py +7 -0
- backend/layer2_retrieval.py +2 -2
- backend/layer4_validation.py +2 -1
app.py
CHANGED
|
@@ -66,6 +66,13 @@ try:
|
|
| 66 |
except Exception as _e:
|
| 67 |
print(f"init_db check: {_e}")
|
| 68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
if __name__ == "__main__":
|
| 70 |
# Launch Gradio server in non-blocking mode to attach FastAPI routes
|
| 71 |
server_app, local_url, share_url = demo.launch(prevent_thread_lock=True)
|
|
|
|
| 66 |
except Exception as _e:
|
| 67 |
print(f"init_db check: {_e}")
|
| 68 |
|
| 69 |
+
# Pre-warm retrieval models on CPU
|
| 70 |
+
try:
|
| 71 |
+
from layer2_retrieval import _ensure_models
|
| 72 |
+
_ensure_models()
|
| 73 |
+
except Exception as _e:
|
| 74 |
+
print(f"model pre-warm check: {_e}")
|
| 75 |
+
|
| 76 |
if __name__ == "__main__":
|
| 77 |
# Launch Gradio server in non-blocking mode to attach FastAPI routes
|
| 78 |
server_app, local_url, share_url = demo.launch(prevent_thread_lock=True)
|
backend/layer2_retrieval.py
CHANGED
|
@@ -91,14 +91,14 @@ def _ensure_models():
|
|
| 91 |
|
| 92 |
try:
|
| 93 |
from sentence_transformers import SentenceTransformer
|
| 94 |
-
embedder = SentenceTransformer(EMBEDDING_MODEL)
|
| 95 |
except Exception as e:
|
| 96 |
print(f"[Layer 2 Warning] SentenceTransformer load failed: {e}")
|
| 97 |
embedder = None
|
| 98 |
|
| 99 |
try:
|
| 100 |
from sentence_transformers import CrossEncoder
|
| 101 |
-
reranker = CrossEncoder(RERANKER_MODEL)
|
| 102 |
except Exception as e:
|
| 103 |
print(f"[Layer 2 Warning] CrossEncoder load skipped: {e}")
|
| 104 |
reranker = None
|
|
|
|
| 91 |
|
| 92 |
try:
|
| 93 |
from sentence_transformers import SentenceTransformer
|
| 94 |
+
embedder = SentenceTransformer(EMBEDDING_MODEL, device="cpu")
|
| 95 |
except Exception as e:
|
| 96 |
print(f"[Layer 2 Warning] SentenceTransformer load failed: {e}")
|
| 97 |
embedder = None
|
| 98 |
|
| 99 |
try:
|
| 100 |
from sentence_transformers import CrossEncoder
|
| 101 |
+
reranker = CrossEncoder(RERANKER_MODEL, device="cpu")
|
| 102 |
except Exception as e:
|
| 103 |
print(f"[Layer 2 Warning] CrossEncoder load skipped: {e}")
|
| 104 |
reranker = None
|
backend/layer4_validation.py
CHANGED
|
@@ -144,7 +144,8 @@ def _ensure_nli():
|
|
| 144 |
"text-classification",
|
| 145 |
model=NLI_MODEL_NAME,
|
| 146 |
tokenizer=NLI_MODEL_NAME,
|
| 147 |
-
top_k=None
|
|
|
|
| 148 |
)
|
| 149 |
nli_model_available = True
|
| 150 |
print("[Layer 4] NLI model loaded.\n")
|
|
|
|
| 144 |
"text-classification",
|
| 145 |
model=NLI_MODEL_NAME,
|
| 146 |
tokenizer=NLI_MODEL_NAME,
|
| 147 |
+
top_k=None,
|
| 148 |
+
device="cpu"
|
| 149 |
)
|
| 150 |
nli_model_available = True
|
| 151 |
print("[Layer 4] NLI model loaded.\n")
|