The PaperMind project is an AI-powered research assistant that helps users in generating research papers, conducting literature reviews, and identifying gaps in existing research. It uses various machine learning models and natural language processing techniques to provide insights and suggestions to the users.
- Research paper generation
- Literature review
- Gap analysis
- Chat interface for user interaction
- User-friendly dashboard for project management
The project follows a microservices architecture, with separate modules for each feature. The main components include:
app/main.py: The entry point of the application, responsible for setting up the API routes and database connections.app/agents: A collection of agents that perform specific tasks, such as chat, reviewer, literature review, and gap analysis.app/services: A collection of services that provide functionality for the agents, such as LLM service, retrieval service, and embedding service.app/repositories: A collection of repositories that handle data storage and retrieval.
The project is organized into the following directories:
app: The main application directory, containing the entry point, agents, services, and repositories.backend: The backend directory, containing the API routes, database connections, and other backend-related code.frontend: The frontend directory, containing the user interface code.
The project uses the following technologies:
- Python as the programming language
- FastAPI as the web framework
- SQLAlchemy as the ORM
- Pydantic as the data validation library
- LitELM as the language model
The main components of the project are:
ChatAgent: Responsible for handling user interactions and generating responses.ReviewerAgent: Responsible for reviewing research papers and providing feedback.LiteratureReviewAgent: Responsible for generating literature reviews.GapAgent: Responsible for identifying gaps in existing research.
To install the project, run the following commands:
pip install -r requirements.txtpython app/main.py
The project uses environment variables for configuration. The following variables are required:
DB_HOST: The database hostDB_PORT: The database portDB_USERNAME: The database usernameDB_PASSWORD: The database password
To use the project, simply run the application and access the API endpoints. The API documentation is available at /api/v1/docs.
The PaperMind project follows a microservices architecture, with separate modules for each feature. The main components include:
app/main.py: The entry point of the application, responsible for setting up the API routes and database connections.app/agents: A collection of agents that perform specific tasks, such as chat, reviewer, literature review, and gap analysis.app/services: A collection of services that provide functionality for the agents, such as LLM service, retrieval service, and embedding service.app/repositories: A collection of repositories that handle data storage and retrieval.
flowchart TD
A[User] -->|input| B[ChatAgent]
B -->|output| A
B -->|request| C[LLMService]
C -->|response| B
D[Researcher] -->|input| E[ReviewerAgent]
E -->|output| D
E -->|request| F[LLMService]
F -->|response| E
G[User] -->|input| H[LiteratureReviewAgent]
H -->|output| G
H -->|request| I[LLMService]
I -->|response| H
J[Researcher] -->|input| K[GapAgent]
K -->|output| J
K -->|request| L[LLMService]
L -->|response| K
The high-level design of the project involves the following components:
- User interface: The user interface is responsible for handling user input and displaying the output.
- Agents: The agents are responsible for performing specific tasks, such as chat, reviewer, literature review, and gap analysis.
- Services: The services provide functionality for the agents, such as LLM service, retrieval service, and embedding service.
- Repositories: The repositories handle data storage and retrieval.
The project is organized into the following directories:
app: The main application directory, containing the entry point, agents, services, and repositories.backend: The backend directory, containing the API routes, database connections, and other backend-related code.frontend: The frontend directory, containing the user interface code.
The execution flow of the project involves the following steps:
- The user interacts with the user interface, providing input and receiving output.
- The user interface sends the input to the corresponding agent.
- The agent processes the input and sends a request to the corresponding service.
- The service processes the request and sends a response to the agent.
- The agent receives the response and sends the output to the user interface.
The data flow of the project involves the following steps:
- The user provides input to the user interface.
- The user interface sends the input to the corresponding agent.
- The agent processes the input and sends a request to the corresponding service.
- The service processes the request and retrieves data from the repository.
- The service sends the data to the agent.
- The agent receives the data and sends the output to the user interface.
The modules of the project are related in the following way:
- The user interface interacts with the agents.
- The agents interact with the services.
- The services interact with the repositories.
The project uses the following AI/ML components:
- LLM service: The LLM service provides language model functionality for the agents.
- Retrieval service: The retrieval service provides data retrieval functionality for the agents.
- Embedding service: The embedding service provides data embedding functionality for the agents.
The project uses the following storage and data layer components:
- Database: The database stores the data for the project.
- Repository: The repository handles data storage and retrieval.
The project uses the following external services:
- Language model: The language model provides language model functionality for the project.