refactor(core): route integrations through adapter factory
This commit is contained in:
@@ -46,35 +46,26 @@ def open_store(cfg, table: str):
|
||||
Sul server preferisce la connessione diretta. In profilo workstation usa `vector_write_rest`
|
||||
se configurato, con upsert remoto non distruttivo.
|
||||
"""
|
||||
if has_vector_write_rest(cfg) and (cfg.profile == "workstation" or cfg.vector_db is None):
|
||||
from tht.vectorstore.rest_client import VectorRestClient
|
||||
from tht.vectorstore.rest_writer import RestVectorWriter
|
||||
from tht.adapters.factory import build_vector_loader
|
||||
|
||||
return RestVectorWriter(VectorRestClient(cfg.vector_write_rest), table=table)
|
||||
|
||||
from tht.db.connection import make_engine
|
||||
from tht.vectorstore.store import VectorStore
|
||||
|
||||
engine = make_engine(cfg.vector_db)
|
||||
return VectorStore(
|
||||
engine, schema=cfg.vector_db.db_schema, table=table, dim=cfg.embeddings.dim
|
||||
)
|
||||
return build_vector_loader(cfg, table)
|
||||
|
||||
|
||||
def open_searcher(cfg):
|
||||
"""Searcher per la LETTURA (similarity search): via REST se `vector_rest` è configurato,
|
||||
altrimenti connessione diretta (dev/test)."""
|
||||
if cfg.vector_rest is not None:
|
||||
from tht.vectorstore.reader import RestSearcher
|
||||
from tht.vectorstore.rest_client import VectorRestClient
|
||||
from tht.adapters.factory import build_vector_store
|
||||
from tht.vectorstore.reader import tables_for_kinds
|
||||
|
||||
return RestSearcher(VectorRestClient(cfg.vector_rest))
|
||||
from tht.db.connection import make_engine
|
||||
from tht.vectorstore.reader import DirectSearcher
|
||||
store = build_vector_store(cfg)
|
||||
|
||||
return DirectSearcher(
|
||||
make_engine(cfg.vector_db), schema=cfg.vector_db.db_schema, dim=cfg.embeddings.dim
|
||||
)
|
||||
class AdapterSearcher:
|
||||
def search(self, query_vec, top_n=10, kinds=None):
|
||||
return store.search(
|
||||
tables_for_kinds(kinds), query_vec, limit=top_n, kinds=kinds
|
||||
)
|
||||
|
||||
return AdapterSearcher()
|
||||
|
||||
|
||||
def _print_stats(stats) -> None:
|
||||
|
||||
Reference in New Issue
Block a user