How mudasserafzal/research-gap-finder works
Research Gap Finder turns a topic into a literature review and actionable research ideas. Its main workflow expands the query, searches arXiv and Semantic Scholar, traverses citations, deduplicates papers, summarizes them, synthesizes gaps, generates ideas, and formats a report. Users can initiate research through the CLI, API, chat, or MCP tools; the API also supports tenant-scoped asynchronous jobs and follow-up chat. The graph reflects documented capabilities and indexed imports; some detailed route and MCP wiring is not shown in the excerpts.
Main entry points: orchestrator.py Pipeline Orchestrator · llm.py LLM Client · state.py Configuration · routes.py FastAPI Routes
Components 22
Entry Points
- CLI
cli.py - FastAPI Routes
api/routes.py - API App
main.py - MCP Tools
mcp_server.py - Chat Handler
agent/chat_handler.py
Research Pipeline
- Pipeline Orchestrator
agent/orchestrator.py - Query Expansion
agent/query_expander.py - Paper Deduplication
agent/orchestrator.py
LLM Analysis
- Paper Summarizer
agent/summarizer.py - Gap Synthesizer
agent/synthesizer.py - Idea Generator
agent/idea_generator.py - Report Formatter
agent/reporter.py
Shared Services
- Research Models
agent/models.py - Configuration
agent/state.py - LLM Client
agent/llm.py
Literature Sources
- arXiv Fetcher
agent/fetchers/arxiv_fetcher.py - Semantic Scholar Fetcher
agent/fetchers/semantic_fetcher.py - Citation Traversal
agent/fetchers/citation_fetcher.py
Other components
- Researcher
- Azure OpenAI
- arXiv API
- Semantic Scholar API
Connections 31
- Researcher → CLI: submits query
README.md - Researcher → FastAPI Routes: starts research
README.md - Researcher → MCP Tools: calls tools
README.md - API App → FastAPI Routes: registers routes
main.py - CLI → Pipeline Orchestrator: runs pipeline
cli.py - FastAPI Routes → Pipeline Orchestrator: starts job
api/routes.py - FastAPI Routes → Chat Handler: handles chat
api/routes.py - Chat Handler → LLM Client: classifies and answers
agent/chat_handler.py - MCP Tools → Pipeline Orchestrator: runs research
mcp_server.py - Pipeline Orchestrator → Query Expansion: expands query
agent/orchestrator.py - Query Expansion → LLM Client: requests structured output
agent/query_expander.py - Pipeline Orchestrator → arXiv Fetcher: searches papers
agent/orchestrator.py - Pipeline Orchestrator → Semantic Scholar Fetcher: searches papers
agent/orchestrator.py - Pipeline Orchestrator → Citation Traversal: traverses citations
agent/orchestrator.py - Pipeline Orchestrator → Paper Deduplication: deduplicates papers
README.md - Pipeline Orchestrator → Paper Summarizer: summarizes papers
agent/orchestrator.py - Paper Summarizer → LLM Client: requests summaries
agent/summarizer.py - Pipeline Orchestrator → Gap Synthesizer: analyzes summaries
agent/orchestrator.py - Gap Synthesizer → LLM Client: requests gap analysis
agent/synthesizer.py - Pipeline Orchestrator → Idea Generator: generates ideas
agent/orchestrator.py - Idea Generator → LLM Client: requests ideas
agent/idea_generator.py - Pipeline Orchestrator → Report Formatter: formats report
README.md - Pipeline Orchestrator → Research Models: uses typed state
agent/orchestrator.py - LLM Client → Azure OpenAI: sends completions
agent/llm.py - arXiv Fetcher → arXiv API: queries
agent/fetchers/arxiv_fetcher.py - Semantic Scholar Fetcher → Semantic Scholar API: queries
agent/fetchers/semantic_fetcher.py - Citation Traversal → Semantic Scholar API: fetches graph
agent/fetchers/citation_fetcher.py - Configuration → arXiv Fetcher: configures access
agent/fetchers/arxiv_fetcher.py - Configuration → Semantic Scholar Fetcher: configures access
agent/fetchers/semantic_fetcher.py - Configuration → Citation Traversal: configures access
agent/fetchers/citation_fetcher.py - Configuration → LLM Client: sets model options
agent/llm.py