Research Assistant is a command-line tool that automates academic research by combining arXiv paper discovery with Large Language Model (LLM) analysis. Through an interactive CLI interface, researchers can explore topics, analyze papers, and discover new research directions with real-time progress tracking.
- Interactive CLI: User-friendly command-line interface with menus and progress tracking
- Real-time Progress: Visual feedback on search, analysis, and saving phases
- Multi-LLM Support: Compatible with multiple LLM providers (Claude, GPT-4, LLaMA, Gemini)
- Concurrent Processing: Efficient parallel processing of papers and research topics
- Research Synthesis: Generates topic summaries and identifies new research directions
- Result Export: Structured saving of research results and analyses
- Python 3.8+
Create a .env
file in the project root with at least one API key:
CLAUDE_API_KEY=your_claude_key
OPENAI_API_KEY=your_openai_key
LLAMA_API_KEY=your_llama_key
GEMINI_API_KEY=your_gemini_key
- Clone the repository
git clone https://github.com/yourusername/research-assistant.git
cd research-assistant
- Install dependencies
pip install -r requirements.txt
python interface.py
- Start New Research: Begin a new research topic
- Settings: Configure tool parameters
- Exit: Close the application
- Enter your research topic when prompted
- Watch real-time progress through three phases:
- Search Phase: Finding and filtering relevant papers
- Analysis Phase: Processing paper content
- Saving Phase: Storing results
After analysis completes, you can:
- Save individual topic analyses
- View detailed results
- Continue research on generated topics
- Start new research
- Modify settings
Through the CLI, you can adjust:
- Number of research topics (default: 5)
- Maximum papers per topic (default: 3)
- LLM provider (based on available API keys)
- Save directory for results
The CLI shows real-time progress with:
- Color-coded progress bars for each phase
- Current operation status
- Paper and topic tracking
- Detailed status messages
arxiv==2.0.0
anthropic==0.8.1
openai==1.12.0
google-generativeai==0.3.2
PyMuPDF==1.23.8
rich==13.7.0
python-dotenv==1.0.1
llamaapi==0.1.38
Research results are saved in a structured format:
research_results/
├── topic_name_timestamp/
│ ├── metadata.json
│ ├── topic1.json
│ ├── topic2.json
│ └── ...
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Inspired by Automated-AI-Web-Researcher-Ollama
- API Rate Limits: Adjust
tokens_per_minute
in settings if hitting rate limits - Memory Usage: Reduce
max_papers_per_topic
for lower memory consumption - PDF Processing: Ensure proper permissions for paper downloads
Logs are stored in the logs/
directory:
llm_search.log
: Paper discovery logsllm_analyzer.log
: Analysis process logsresearch_assistant.log
: General operation logs