uae-kb / ir /__init__.py
Demon1212122's picture
Initial UAE Knowledge System demo
8124364
"""
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__ = [
# Main entry point
"EntityRetriever",
"RetrievalOutput",
# Knowledge Base
"KnowledgeBase",
# Sensitive Detection
"SensitiveTopicDetector",
"SensitiveMatch",
# Core components
"ArabicNameNormalizer",
"get_normalizer",
# Retrievers (internal, for advanced usage)
"EnhancedAliasRetriever",
"AliasRetriever",
"BM25Retriever",
# Reranker
"EntityReranker",
"rerank_results",
# Models
"Entity",
"RetrievalResult",
"RetrievalConfig",
"BenchmarkResult",
]