A full-stack research assistant tool for computer science grad students that uses real-time AI-powered search to find and visualize research papers related to your thesis topic using an interactive knowledge graph.
- 🔍 Real-time Paper Search: Uses Tavily AI to find actual research papers from academic sources
- 🗺️ Enhanced Discovery Mode: Tavily Map traverses academic websites to discover interconnected papers through citation networks, author collaborations, and research clusters
- 🧠 LLM-Powered Analysis: Gemini 1.5 Pro analyzes papers to identify semantic relationships and connections
- 🎯 Smart Relevance Filtering: Papers are filtered and scored based on relevance to your topic
- 📊 Interactive Knowledge Graph: D3.js-powered visualization with force-directed layout
- 🔗 Intelligent Connections: Papers connect based on LLM-analyzed relationships (builds upon, validates, contradicts, etc.)
- 📈 Live Statistics: Real-time stats including paper count, credibility scores, and top venues
- 🎮 Interactive Controls: Drag nodes, zoom, pan, pause/resume simulation
- 🎨 Beautiful Design: Modern gradient UI with glassmorphism effects
- 🔄 Fallback System: Gracefully falls back to curated examples if API is unavailable
- 🔴 Red: High credibility (8-10) - Top venues like Nature, Science, IEEE
- 🟡 Yellow: Medium credibility (5-7) - Good conferences and journals
- 🟢 Green: Lower credibility (1-4) - Workshops, preprints
- 🔵 Blue: Your thesis topic (center node)
- Next.js 15 with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- D3.js for interactive graph visualization
- FastAPI for high-performance API
- Tavily AI for intelligent research paper search
- Python 3.8+ with async/await support
- Pydantic for data validation
- Node.js 18+ and npm
- Python 3.8+ and pip
- Tavily API Key (free tier available)
- Google API Key (optional, for Gemini LLM analysis)
- Clone and setup the project:
git clone <repository-url>
cd research-assistant-ai- Install frontend dependencies:
npm install- Install backend dependencies:
pip install -r requirements.txt- Configure API Keys:
Set your API keys as environment variables:
export TAVILY_API_KEY="your-actual-tavily-api-key"
export GOOGLE_API_KEY="your-google-api-key" # Optional for Gemini LLM analysisOr create a .env file in the project root:
TAVILY_API_KEY=your-actual-tavily-api-key
GOOGLE_API_KEY=your-google-api-keyGetting API Keys:
- Tavily API Key: Sign up at Tavily for research paper search
- Google API Key: Get one at Google AI Studio for Gemini LLM analysis
Note: The Google API key is optional. If not provided, the system will fall back to keyword-based similarity connections.
Terminal 1 - Backend API:
cd backend
python start.pyThe API will start at http://localhost:8000
Terminal 2 - Frontend:
npm run devThe frontend will start at http://localhost:3000
- Start the backend first to see API documentation:
cd backend && python start.py-
Visit
http://localhost:8000/docsto explore the API -
Start the frontend:
npm run dev- Visit
http://localhost:3000to use the application
- Enter your research topic (e.g., "Transformer architectures for NLP")
- Toggle Enhanced Discovery Mode (🗺️) for comprehensive paper discovery through academic web mapping
- Click "Generate Knowledge Graph" to search for real papers
- Explore the visualization:
- Hover over nodes to see paper details
- Drag nodes to reposition them
- Use controls to pause/resume, reset layout, or zoom to fit
- View statistics about your search results and mapping discoveries
- Click paper nodes to potentially visit their source URLs
When enabled, the system uses Tavily Map to intelligently traverse academic websites and discover interconnected papers through:
- 🔗 Citation Networks: Follows reference chains and related work sections
- 👥 Author Collaborations: Discovers papers by the same research groups
- 📚 Conference Proceedings: Explores papers from the same venues and conferences
- 🌐 Academic Databases: Maps through ArXiv, Google Scholar, IEEE, ACM, and more
- 🧠 Semantic Clustering: Groups papers by research themes and methodologies
This mode typically discovers 2-3x more relevant papers than standard search alone!
The enhanced system now generates intelligent connections between papers using:
- 📊 Similarity Analysis: Compares keywords, authors, venues, and publication years
- 🔗 Citation Networks: Links papers through Tavily Map traversal
- 👥 Author Collaborations: Connects papers with shared authors
- 🏛️ Venue Clustering: Groups papers from the same conferences/journals
- 📈 Relationship Scoring: Quantifies connection strength (0-1 scale)
Minimum 15 Papers Guaranteed: The system ensures you always get at least 15 relevant papers through fallback mechanisms and enhanced search strategies.
Search for research papers using Tavily AI.
Request:
{
"topic": "machine learning interpretability",
"max_results": 10
}Response:
{
"papers": [...],
"total_found": 8,
"query": "machine learning interpretability"
}🆕 Enhanced Discovery Mode - Combines Tavily Search, Map, and LLM analysis for comprehensive paper discovery through academic website traversal.
Request:
{
"topic": "transformer architectures",
"max_results": 10
}Response:
{
"papers": [...],
"mapped_papers": [...],
"total_found": 25,
"mapping_stats": {
"domains_explored": ["arxiv.org", "scholar.google.com"],
"total_urls_discovered": 150,
"papers_extracted": 12
},
"query": "transformer architectures",
"graph_data": {
"nodes": [...],
"edges": [...]
}
}Search for research papers with LLM-powered relationship analysis.
Request:
{
"topic": "transformer architectures",
"max_results": 10
}Response:
{
"papers": [...],
"total_found": 8,
"query": "transformer architectures",
"graph_data": {
"nodes": [...],
"edges": [
{
"source": "1",
"target": "2",
"relationship_type": "Builds_Upon",
"strength": 4,
"description": "Paper 2 extends the transformer architecture introduced in Paper 1"
}
],
"entity_clusters": [...]
}
}Simple GET endpoint for searching papers.
Check API health and configuration status.
Interactive API documentation (Swagger UI).
- Tavily AI Integration: Searches academic domains for relevant papers
- Smart Data Extraction: Automatically extracts authors, venues, years from content
- Credibility Scoring: Calculates scores based on venue reputation and content quality
- Citation Estimation: Estimates citation counts based on age and credibility
- Relevance Calculation: Filters papers based on keyword and abstract matching
- Network Generation: Creates connections between papers with similar keywords
- Force Simulation: Uses D3.js physics for natural node positioning
- Interactive Features: Real-time manipulation and exploration
Edit academic_domains in backend/main.py:
academic_domains = [
"arxiv.org", "semanticscholar.org", "ieee.org",
"your-institution.edu" # Add your sources
]Modify the filtering thresholds in app/page.tsx:
const relevantPapers = paperNodes.filter((paper) => paper.relevance! > 0.2);Update the calculate_credibility() function in backend/main.py to match your field's venues.
Try these research topics to see the system in action:
- "Transformer architectures for natural language processing"
- "Graph neural networks for drug discovery"
- "Explainable AI in healthcare"
- "Computer vision for autonomous vehicles"
- "Reinforcement learning for robotics"
- Ensure the backend is running on port 8000
- Check that CORS is properly configured
- Verify your Tavily API key is valid
- Try broader or more specific search terms
- Check if Tavily service is available
- The system will fall back to curated examples
- Ensure D3.js is properly loaded
- Check browser console for JavaScript errors
- Try refreshing the page
- 🔐 User Authentication: Save and share research graphs
- 📥 Export Features: Save graphs as images or datasets
- 🔄 Citation Networks: Show how papers cite each other
- 🤖 AI Recommendations: Suggest related papers and research directions
- 👥 Collaboration: Share graphs with research teams
- 📱 Mobile Support: Responsive design for tablets and phones
Feel free to submit issues and enhancement requests!
This project is for educational and research purposes.