Spaces:
Sleeping
Sleeping
Update modules/rag_indexer.py
Browse files- modules/rag_indexer.py +9 -10
modules/rag_indexer.py
CHANGED
|
@@ -16,7 +16,7 @@ def _embedder():
|
|
| 16 |
"""
|
| 17 |
SentenceTransformer を遅延初期化。
|
| 18 |
- すべてのキャッシュは utils.ensure_dirs() 側で /tmp 等の書き込み可パスへ固定済み
|
| 19 |
-
-
|
| 20 |
"""
|
| 21 |
global _model
|
| 22 |
if _model is not None:
|
|
@@ -34,7 +34,11 @@ def _embedder():
|
|
| 34 |
os.environ.setdefault("HF_TOKEN", "")
|
| 35 |
|
| 36 |
from sentence_transformers import SentenceTransformer
|
| 37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
_model = SentenceTransformer(model_name, cache_folder=str(cache_base))
|
| 39 |
return _model
|
| 40 |
|
|
@@ -75,6 +79,7 @@ def index_files_and_urls(file_paths: Optional[List[str]] = None, urls: Optional[
|
|
| 75 |
"""
|
| 76 |
- 受け取ったファイルとURLからテキストを抽出し、チャンク化して chunks.jsonl に追記
|
| 77 |
- 依存を最小化(PDF/Officeは最小構成では対象外)
|
|
|
|
| 78 |
"""
|
| 79 |
ensure_dirs()
|
| 80 |
file_paths = file_paths or []
|
|
@@ -102,13 +107,7 @@ def index_files_and_urls(file_paths: Optional[List[str]] = None, urls: Optional[
|
|
| 102 |
if rows:
|
| 103 |
added = _write_chunks(rows)
|
| 104 |
|
| 105 |
-
#
|
| 106 |
-
|
| 107 |
-
emb = _embedder()
|
| 108 |
-
# 1件だけ実行してキャッシュを準備
|
| 109 |
-
_ = emb.encode(["warmup"], normalize_embeddings=True)
|
| 110 |
-
warmed = True
|
| 111 |
-
except Exception as e:
|
| 112 |
-
warmed = False
|
| 113 |
|
| 114 |
return f"indexed_chunks={added}, warmed_up={warmed}"
|
|
|
|
| 16 |
"""
|
| 17 |
SentenceTransformer を遅延初期化。
|
| 18 |
- すべてのキャッシュは utils.ensure_dirs() 側で /tmp 等の書き込み可パスへ固定済み
|
| 19 |
+
- 環境によってはネット/モデルDLが禁止のことがあるため、呼び出し側での強制ウォームアップはしない
|
| 20 |
"""
|
| 21 |
global _model
|
| 22 |
if _model is not None:
|
|
|
|
| 34 |
os.environ.setdefault("HF_TOKEN", "")
|
| 35 |
|
| 36 |
from sentence_transformers import SentenceTransformer
|
| 37 |
+
# ローカル同梱モデルがあれば優先(ネット不可時の対策)
|
| 38 |
+
local_model_dir = data_dir() / "models" / "all-MiniLM-L6-v2"
|
| 39 |
+
model_name = str(local_model_dir) if local_model_dir.exists() else os.getenv(
|
| 40 |
+
"EMBEDDING_MODEL", "sentence-transformers/all-MiniLM-L6-v2"
|
| 41 |
+
)
|
| 42 |
_model = SentenceTransformer(model_name, cache_folder=str(cache_base))
|
| 43 |
return _model
|
| 44 |
|
|
|
|
| 79 |
"""
|
| 80 |
- 受け取ったファイルとURLからテキストを抽出し、チャンク化して chunks.jsonl に追記
|
| 81 |
- 依存を最小化(PDF/Officeは最小構成では対象外)
|
| 82 |
+
- モデルのウォームアップは実施しない(ネット不可環境で失敗するため)
|
| 83 |
"""
|
| 84 |
ensure_dirs()
|
| 85 |
file_paths = file_paths or []
|
|
|
|
| 107 |
if rows:
|
| 108 |
added = _write_chunks(rows)
|
| 109 |
|
| 110 |
+
# ここでの warmup を削除(または状態だけ返す)
|
| 111 |
+
warmed = False # UIに表示するためのダミー値
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
|
| 113 |
return f"indexed_chunks={added}, warmed_up={warmed}"
|