A powerful AI-powered research assistant that combines hybrid search with Retrieval-Augmented Generation (RAG) to help you find, understand, and synthesize academic content.
Try it now: Research Assistant
Experience the full functionality through our interactive web interface:
- π Research paper search and analysis
- π Hybrid search capabilities (semantic + keyword)
- π€ Real-time RAG-powered question answering
- π Document processing and knowledge base management
- Hybrid Retrieval: Combines semantic (vector) and keyword (BM25) search
- Multi-Source: arXiv papers, web articles, custom documents
- Smart Ranking: Advanced fusion algorithms for relevance
- RAG Integration: Context-aware answers using retrieved documents
- Multiple LLM Support: Google Gemini, OpenAI, and more
- Flexible Modes: Strict RAG (document-only) or hybrid (document + general knowledge)
- Smart Chunking: Sentence-boundary aware document segmentation
- High-Quality Embeddings: Google Gemini text embeddings
- Efficient Indexing: Optimized storage and retrieval
- Web App: Beautiful Streamlit interface
- CLI Tool: Powerful command-line interface
- Python API: Programmatic access for integration
- Python 3.9+
- Google Gemini API key (free tier available)
-
Clone the repository
git clone https://github.com/Fane-Nathan/Research-Assistant.git cd Research-Assistant -
Install dependencies
pip install -r requirements.txt
-
Configure environment
cp .env.example .env # Edit .env with your API keys -
Run the web interface
streamlit run app.py
- π Complete Documentation
- π Quick Start Guide
- ποΈ Architecture Overview
- π§ Configuration Guide
Visit our live demo or run locally:
streamlit run app.py# Search arXiv papers
python scripts/cli.py search "machine learning transformers"
# Process custom documents
python scripts/cli.py process --url "https://example.com/paper.pdf"
# Ask questions about your documents
python scripts/cli.py query "What are the main contributions of this paper?"from hybrid_search_rag import ResearchAssistant
# Initialize
assistant = ResearchAssistant()
# Search and get answers
results = assistant.search_and_answer(
query="What are recent advances in neural networks?",
mode="hybrid_rag"
)Research Assistant is built with a modular, scalable architecture:
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Data Sources β β Processing β β Retrieval β
β β β β β β
β β’ arXiv API βββββΆβ β’ Text Chunking βββββΆβ β’ Vector Search β
β β’ Web Crawling β β β’ Embeddings β β β’ BM25 Search β
β β’ Custom Docs β β β’ Indexing β β β’ Hybrid Fusion β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βββββββββββββββββββ βββββββββββββββββββ β
β User Interface β β Generation β β
β β β β β
β β’ Web App ββββββ β’ LLM Reasoning ββββββββββββββββ
β β’ CLI Tool β β β’ RAG Synthesis β
β β’ Python API β β β’ Answer Format β
βββββββββββββββββββ βββββββββββββββββββ
Run the test suite:
# Unit tests
python -m pytest tests/unit/
# Integration tests
python -m pytest tests/integration/
# Deployment verification
python deployment_verification.pyWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: https://fane-nathan.github.io/Research-Assistant/
- Live Demo: https://research-assistant-flx.streamlit.app/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Google Gemini for embeddings and LLM capabilities
- The open-source community for amazing libraries
- arXiv for providing free access to research papers
Built with β€οΈ for the research community