Welcome to the AI Academic Research Assistant, an application designed to enhance academic research workflows. This tool enables users to manage, search, and analyze research papers using advanced AI models and vector search technologies. Below is a comprehensive guide to set up, configure, and use the application.
- User and Paper Management: RESTful APIs to manage users and papers.
- PDF Parsing: Extract text from PDF files and save them to a database.
- Semantic Search: Search for research papers using natural language queries.
- Text Summarization: Summarize research papers for quick insights.
- Customizable Storage: Support for in-memory or Pinecone-based vector storage.
- Agents for Enhanced Functionality:
- SummarizerAgent: Provides concise summaries of academic papers.
- ResearchAgent: Performs semantic search and retrieval of relevant papers.
- LitReviewAgent: Facilitates comprehensive literature reviews by recommending local and external papers based on user-provided topics or existing papers.
- Python 3.8+
- MySQL or compatible database
- pip
- Clone the repository:
git clone https://github.com/Helixan/AI-Academic-Research-Assistant.git cd ai-academic-research-assistant
- Set up a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Configure the database and API keys (see Configuration).
- Run the application:
uvicorn src.main:app --reload
Define environment variables and configurations in config/config.yaml
.
environment: development
openai_api_key: YOUR_KEY
database:
url: YOUR_DB_URL
test_database:
url: YOUR_TEST_DB_URL
vector_store:
type: pinecone
api_key: YOUR_PINECONE_KEY
environment: "us-east-1"
index_name: "my-index"
Logging is configured via config/logging.yaml
:
version: 1
formatters:
simple:
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
handlers:
console:
class: logging.StreamHandler
formatter: simple
level: DEBUG
stream: ext://sys.stdout
root:
level: DEBUG
handlers: [console]
Run the application and navigate to http://127.0.0.1:8000/docs
to explore the API documentation.
- GET /users: Retrieve all users.
- POST /users: Create a new user.
- GET /papers: Retrieve all papers.
- POST /papers: Upload a paper.
- GET /papers/search: Search for papers.
- POST /papers/summarize/{id}: Summarize a specific paper.
- POST /papers/literature_review/local: Perform a local literature review by recommending top locally stored papers relevant to a user's topic.
- POST /papers/literature_review/external: Perform an external literature review by fetching references from external sources (e.g., Arxiv) related to a user's topic.
- POST /papers/literature_review/full: Perform a comprehensive literature review by combining both local and external paper recommendations.
Upload PDFs using the /papers
endpoint. Extracted content is stored in the database, and embeddings are generated for semantic search.
This project is licensed under the Attribution-NonCommercial-ShareAlike 4.0 International license. See the LICENSE file for details.