Merge branch 'main' of http://192.168.3.110:3000/element.chen/ai-g3sb-backman2.0
This commit is contained in:
@@ -22,8 +22,12 @@ class SchemaIndexer:
|
||||
功能:
|
||||
1. 为表结构构建向量索引
|
||||
2. 基于问题的表检索
|
||||
<<<<<<< HEAD
|
||||
3. 默认使用 Chroma ``PersistentClient``,数据落在 ``persist_dir``(与 ``VECTOR_DB_PATH`` 一致);
|
||||
仅当环境变量 ``SCHEMA_INDEXER_EPHEMERAL=true`` 或构造参数 ``use_ephemeral=True`` 时使用内存客户端。
|
||||
=======
|
||||
3. Chroma 使用持久化(PersistentClient),向量与元数据写入 ``persist_dir``,进程重启后可复用
|
||||
>>>>>>> 9369563942d8de442508613191670123d5ae9d08
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
@@ -39,18 +43,30 @@ class SchemaIndexer:
|
||||
|
||||
Args:
|
||||
embedder: Embedding模型实例
|
||||
<<<<<<< HEAD
|
||||
persist_dir: Chroma 持久化目录(默认与编排器 ``vector_db_path`` / ``VECTOR_DB_PATH`` 一致)
|
||||
=======
|
||||
persist_dir: Chroma 持久化根目录(磁盘路径)
|
||||
>>>>>>> 9369563942d8de442508613191670123d5ae9d08
|
||||
collection_name: 集合名称
|
||||
use_ephemeral: 为 True 时使用内存 Chroma;为 None 时读环境变量 SCHEMA_INDEXER_EPHEMERAL
|
||||
"""
|
||||
self.embedder = embedder
|
||||
self.persist_dir = Path(persist_dir)
|
||||
self.persist_dir.mkdir(parents=True, exist_ok=True)
|
||||
self.collection_name = collection_name
|
||||
|
||||
<<<<<<< HEAD
|
||||
env_ephemeral = os.getenv("SCHEMA_INDEXER_EPHEMERAL", "").lower() in (
|
||||
"1",
|
||||
"true",
|
||||
"yes",
|
||||
=======
|
||||
# 持久化 Chroma:数据落盘至 persist_dir
|
||||
self.client = chromadb.PersistentClient(
|
||||
path=str(self.persist_dir),
|
||||
settings=ChromaSettings(anonymized_telemetry=False),
|
||||
>>>>>>> 9369563942d8de442508613191670123d5ae9d08
|
||||
)
|
||||
self._chroma_ephemeral = bool(use_ephemeral) if use_ephemeral is not None else env_ephemeral
|
||||
|
||||
@@ -74,8 +90,13 @@ class SchemaIndexer:
|
||||
)
|
||||
|
||||
logger.info(
|
||||
<<<<<<< HEAD
|
||||
f"[OK] 初始化SchemaIndexer({backend_desc}): collection={self.collection_name}, "
|
||||
f"count={self.collection.count()}"
|
||||
=======
|
||||
f"[OK] 初始化SchemaIndexer(Chroma持久化): collection={self.collection_name}, "
|
||||
f"path={self.persist_dir}"
|
||||
>>>>>>> 9369563942d8de442508613191670123d5ae9d08
|
||||
)
|
||||
|
||||
def ensure_index_for_schema(
|
||||
@@ -311,5 +332,9 @@ class SchemaIndexer:
|
||||
"total_columns": total_columns,
|
||||
"avg_columns": total_columns / count if count > 0 else 0,
|
||||
"persist_dir": str(self.persist_dir),
|
||||
<<<<<<< HEAD
|
||||
"chroma_mode": "memory" if self._chroma_ephemeral else "persistent",
|
||||
=======
|
||||
"chroma_mode": "persistent",
|
||||
>>>>>>> 9369563942d8de442508613191670123d5ae9d08
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user