Files
ThothII/harness/tht/evidence/preprocessing.py
T

47 lines
1.4 KiB
Python

"""Explicit construction boundary for Evidence preprocessing."""
from typing import Protocol
from tht.evidence.contracts import EvidenceSource
from tht.evidence.corpus.chunk import ChunkPolicy
from tht.evidence.corpus.pipeline import CorpusPipeline
from tht.evidence.corpus.store import CorpusStore
from tht.ports.vector import VectorStore
class EvidenceEmbedder(Protocol):
def embed_documents(self, texts: list[str]) -> list[list[float]]: ...
def build_preprocessing_pipeline(
*,
store: CorpusStore,
sources: list[EvidenceSource],
embedder: EvidenceEmbedder,
vector_store: VectorStore,
embedding_model: str,
embedding_dimensions: int,
chunk_policy: ChunkPolicy,
pipeline_version: str,
retain_published_generations: int = 3,
workspace_id: str | None = None,
sparse_language: str = "italian",
) -> CorpusPipeline:
"""Construct preprocessing from the bounded infrastructure supplied by core."""
return CorpusPipeline(
store=store,
sources=sources,
embedder=embedder,
vector_store=vector_store,
embedding_model=embedding_model,
embedding_dimensions=embedding_dimensions,
chunk_policy=chunk_policy,
pipeline_version=pipeline_version,
retain_published_generations=retain_published_generations,
workspace_id=workspace_id,
sparse_language=sparse_language,
)
__all__ = ["EvidenceEmbedder", "build_preprocessing_pipeline"]