mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-03 15:01:00 +02:00
Replace the three-prompt LLM scoring pipeline (kg-edge-scoring, kg-edge-reasoning, kg-edge-selection) with a cross-encoder reranker service backed by FlashRank. The new hop_and_filter() method performs iterative graph traversal with semantic scoring at each hop, replacing the previous follow_edges/get_subgraph approach. - Add reranker service (trustgraph-base client/service, FlashRank processor) - Add gateway dispatch for reranker via API and WebSocket - Rewrite GraphRAG pipeline: hop_and_filter() with per-hop cross-encoder scoring - Remove kg_prompt() and edge_score_limit from prompt client - Update provenance: add tg:EdgeSelection type, tg:concept, tg:score predicates - Update CLIs (tg-invoke-graph-rag, tg-show-explain-trace) for new metadata - Add tg-invoke-reranker CLI tool - Add tech spec and UX developer guidance - Update all unit and integration tests
35 lines
777 B
Python
35 lines
777 B
Python
|
|
from dataclasses import dataclass, field
|
|
|
|
from ..core.primitives import Error
|
|
|
|
############################################################################
|
|
|
|
# Cross-encoder reranker
|
|
|
|
@dataclass
|
|
class RerankerQuery:
|
|
query_id: str = ""
|
|
query_text: str = ""
|
|
|
|
@dataclass
|
|
class RerankerDocument:
|
|
document_id: str = ""
|
|
document_text: str = ""
|
|
|
|
@dataclass
|
|
class RerankerRequest:
|
|
queries: list[RerankerQuery] = field(default_factory=list)
|
|
documents: list[RerankerDocument] = field(default_factory=list)
|
|
limit: int = 10
|
|
|
|
@dataclass
|
|
class RerankerResult:
|
|
document_id: str = ""
|
|
query_id: str = ""
|
|
score: float = 0.0
|
|
|
|
@dataclass
|
|
class RerankerResponse:
|
|
error: Error | None = None
|
|
results: list[RerankerResult] = field(default_factory=list)
|