|
|
""" |
|
|
Libra IR - Entity Information Retrieval Module |
|
|
|
|
|
A standalone IR module for entity retrieval with sensitive topic detection. |
|
|
Optimized for Precision, Recall, and Latency. |
|
|
|
|
|
Architecture Levels: |
|
|
- Level 3 (Current): Alias Lookup + BM25 + Reranking + Sensitive Detection |
|
|
- Level 4 (Planned): + Dense Retrieval (Embeddings + FAISS) |
|
|
- Level 5 (Planned): + Hybrid Fusion (BM25 + Dense + RRF) |
|
|
- Level 6 (Planned): + LLM Verification |
|
|
|
|
|
Usage: |
|
|
from libra_shield.ir import EntityRetriever |
|
|
|
|
|
retriever = EntityRetriever() |
|
|
result = retriever.retrieve("Tell me about MBZ") |
|
|
|
|
|
# Check for sensitive topics |
|
|
if result.is_sensitive: |
|
|
print(f"Sensitive: {result.reframe_guidance}") |
|
|
|
|
|
for r in result.entities: |
|
|
print(f"{r.entity.name}: {r.score:.2f}") |
|
|
""" |
|
|
|
|
|
from .knowledge_base import KnowledgeBase |
|
|
from .models import ( |
|
|
BenchmarkResult, |
|
|
Entity, |
|
|
RetrievalConfig, |
|
|
RetrievalResult, |
|
|
) |
|
|
from .normalizer import ArabicNameNormalizer, get_normalizer |
|
|
from .reranker import EntityReranker, rerank_results |
|
|
from .retriever import EntityRetriever, EnhancedAliasRetriever, RetrievalOutput |
|
|
from .retrievers.alias import AliasRetriever |
|
|
from .retrievers.bm25 import BM25Retriever |
|
|
from .sensitive_detector import SensitiveMatch, SensitiveTopicDetector |
|
|
|
|
|
|
|
|
__all__ = [ |
|
|
|
|
|
"EntityRetriever", |
|
|
"RetrievalOutput", |
|
|
|
|
|
|
|
|
"KnowledgeBase", |
|
|
|
|
|
|
|
|
"SensitiveTopicDetector", |
|
|
"SensitiveMatch", |
|
|
|
|
|
|
|
|
"ArabicNameNormalizer", |
|
|
"get_normalizer", |
|
|
|
|
|
|
|
|
"EnhancedAliasRetriever", |
|
|
"AliasRetriever", |
|
|
"BM25Retriever", |
|
|
|
|
|
|
|
|
"EntityReranker", |
|
|
"rerank_results", |
|
|
|
|
|
|
|
|
"Entity", |
|
|
"RetrievalResult", |
|
|
"RetrievalConfig", |
|
|
"BenchmarkResult", |
|
|
] |
|
|
|