Spaces:
Running
Running
A newer version of the Gradio SDK is available:
5.38.0
metadata
license: mit
sdk: gradio
emoji: π
colorFrom: gray
sdk_version: 5.34.0
π₯ Hybrid Search RAGtim Bot
A sophisticated hybrid search system combining semantic vector search with BM25 keyword matching for optimal information retrieval.
π Features
- Hybrid Search: Combines transformer-based semantic similarity with BM25 keyword ranking
- Multi-Modal Search: Vector search, BM25 search, and intelligent fusion
- Real-time API: RESTful endpoints for integration
- Interactive UI: Three interfaces - Chat, Advanced Search, and Statistics
- Knowledge Base: Comprehensive markdown-based knowledge system
π§ Technology Stack
- Embeddings: sentence-transformers/all-MiniLM-L6-v2 (384-dim)
- Search: Custom BM25 implementation + Vector similarity
- Framework: Gradio 4.44.0
- ML: Transformers, PyTorch, NumPy
- Deployment: Hugging Face Spaces
π Knowledge Base Structure
The system processes markdown files from the knowledge_base/
directory:
about.md
- Personal information and professional summaryresearch_details.md
- Research projects and methodologiespublications_detailed.md
- Publications with technical detailsskills_expertise.md
- Technical skills and expertiseexperience_detailed.md
- Professional experiencestatistics.md
- Statistical methods and biostatistics
π Search Methods
Hybrid Search (Recommended)
Combines semantic and keyword search with configurable weights:
- Default: 60% vector + 40% BM25
- Optimal for most queries
- Balances meaning and exact term matching
Vector Search
Pure semantic similarity using transformer embeddings:
- Best for conceptual questions
- Finds semantically related content
- Language-agnostic similarity
BM25 Search
Traditional keyword-based ranking:
- Excellent for specific terms
- TF-IDF with document length normalization
- Fast and interpretable
π οΈ API Endpoints
Search API
GET /api/stats
π Configuration
Key parameters in config.py
:
BM25_K1 = 1.5
- Term frequency saturationBM25_B = 0.75
- Document length normalizationDEFAULT_VECTOR_WEIGHT = 0.6
- Hybrid search weightingDEFAULT_BM25_WEIGHT = 0.4
- Hybrid search weighting
π Deployment
- Clone to Hugging Face Spaces
- Ensure all markdown files are in
knowledge_base/
- The system auto-initializes on startup
- Access via the provided Space URL
π‘ Usage Examples
Chat Interface:
- "What is Raktim's LLM research?"
- "Tell me about statistical methods"
- "Describe multimodal AI capabilities"
Advanced Search:
- Adjust vector/BM25 weights
- Compare search methods
- Fine-tune result count
API Integration:
import requests
response = requests.get(
"https://your-space.hf.space/api/search",
params={
"query": "machine learning research",
"top_k": 5,
"search_type": "hybrid"
}
)