A lightweight, LLM-powered research companion with web/ academic search + RAG capabilities — built as a single-file Streamlit app.
Mini Research Assistant is a minimal yet practical tool that helps you quickly gather, synthesize and cite information from the web and academic sources using large language models.
It combines:
- Conversational LLM interface
- Real-time web search
- Basic retrieval-augmented generation (RAG)
- Clean markdown output with source references
Designed for students, researchers, engineers and curious people who want fast answers without complex setup.
- Chat-style interface powered by LLM (supports multiple providers via
litellmor similar) - Web search integration (likely Tavily, Serper, Exa or DuckDuckGo — check your
.env) - Streaming responses for better UX
- Source citation links embedded in answers
- Simple session memory / chat history (Streamlit native)
- Single-file architecture (
app.py) — easy to fork & hack
- Frontend — Streamlit (modern data apps made easy)
- LLM layer — probably
litellm/openai/anthropic/groq/ollamacompatible - Search — one or more of: tavily-search, serper, exa-py, duckduckgo-search
- Embeddings / Vector store (if RAG enabled) — likely sentence-transformers + FAISS / Chroma
- Other — pydantic, python-dotenv, markdown, requests, etc.
# Note: the leading dash is part of the name
git clone https://github.com/Devanik21/-Mini-Research-Assistant.git
cd -Mini-Research-Assistant# Recommended: isolated environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCreate .env in the root:
# At least one LLM provider is required
OPENAI_API_KEY=sk-...
# or
GROQ_API_KEY=gsk_...
# or
ANTHROPIC_API_KEY=sk-ant-...
# Search API (strongly recommended)
TAVILY_API_KEY=tvly-...
# or SERPER_API_KEY=...
# or EXA_API_KEY=...
# Optional: for local models
OLLAMA_API_BASE=http://localhost:11434streamlit run app.py→ Open http://localhost:8501 in your browser
- Change the default model (Claude 3.5/3.7 Sonnet, Grok, Gemini, Llama-3.1, etc.)
- Add new search providers
- Enable persistent vector database (Chroma persistent disk)
- Add PDF upload + parsing (PyMuPDF / unstructured)
- Implement multi-step ReAct / plan-and-execute agent
- Export chat to markdown / JSON
- Single-file design → harder to scale beyond ~800–1000 lines
- No built-in authentication / multi-user support
- Search API costs can add up during long sessions
- Hallucinations / outdated info still possible
- No advanced memory (conversation summaries, entity memory, etc.) yet
- Multi-LLM comparison side-by-side
- Academic search (arXiv, Semantic Scholar, Google Scholar)
- PDF / document upload + RAG
- Structured output (tables, claim-evidence cards)
- Export research session (markdown report)
- Local-only mode with Ollama / LM Studio
Contributions are welcome — especially:
- Bug fixes
- New search/LLM connectors
- UI/UX improvements
- Better prompt engineering
- Adding tests
Feel free to open an issue or PR!
Devanik Debnath
Building small, useful AI tools.
- GitHub → https://github.com/Devanik21
- LinkedIn → https://www.linkedin.com/in/devanik/
- X → https://x.com/devanik2005
Happy researching!