Corin1998 commited on
Commit
5b7266b
·
verified ·
1 Parent(s): 24368f7

Update modules/rag_indexer.py

Browse files
Files changed (1) hide show
  1. 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
- - のため cache_folder も明示して/root 直下を一切使わない
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
- model_name = os.getenv("EMBEDDING_MODEL", "sentence-transformers/all-MiniLM-L6-v2")
 
 
 
 
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
- try:
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}"