https://github.com/kunpai/MARS

https://github.com/kunpai/MARS

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary
Last synced: 4 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: kunpai
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 6.23 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created about 1 year ago · Last pushed 5 months ago
Metadata Files
Readme

README.md

MARS: Multi-Agent Review System for Academic Papers

Overview

The MARS project is designed to automate the evaluation of research papers by leveraging multiple AI agents. These agents provide feedback on different sections of a research paper, including relevance, quality, grammar, and open-ended questions. The project utilizes the Ollama framework for model interactions and PyPDF2 for PDF processing.

Features

  1. Dynamic Section Feedback: Provides detailed feedback for each section of a paper.
  2. Multiple Review Agents: Includes reviewers for grammar, relevance, and content quality.
  3. Customizable Prompts: Adapts prompts for different sections dynamically.
  4. JSON Feedback Output: Saves structured feedback in a JSON file for further use.
  5. Integration with Ollama: Uses AI models for natural language processing tasks.

Installation

Prerequisites

  • Python 3.8 or higher
  • pip for managing Python packages

Install Dependencies

Run the following command to install the required Python libraries: bash pip install -r requirements.txt

Also, make sure you have the base mistral, llama3.2, qwen2.5 and deepseek-r1 models downloaded from the Ollama framework. You can download them by: bash ollama run <model_name> where <model_name> is the name of the model you want to download.

Usage

Run

Firstly, we run the file that gives questions that could be useful to improve the paper by the questioner. To test this system, use the following command:

  • <cfp_url>: URL to the Conference Call for Papers (CFP).
  • <json_path>: Path to the json file of the research paper (Sectioned). Alternatively, you can provide the path to a .pdf file to extract the text and sections. However, the text extraction may not be perfect.
  • <answer_question>: If you want to answer the questions that the questioner has asked using the sections of the paper, this is an optional argument to run the second half of the paper review system.

Example

bash python MARS.py https://www.example.com/cfp example_paper.json Once the processing is complete, it is saved as a "feedbackcollabanswer.json". This file contains the feedback for each section of the paper and the answers to the questions asked by the questioner.

The schema for a paper that can be processed by the pipeline can be found in the paper.schema.json file.

Outputs

  1. Console Output:

    • Displays the feedback for each section.
  2. Feedback JSON File:

    • Saves detailed feedback for each section with the answers from the questioner in feedback_collab_with_answers.json file.

Sample Feedback Format

json { "DeskReviewer": { "Review": "Accept - Relevant to the conference topics.", "Accept": true, }, "Abstract": { "Reviwers": { "Reviewer1": "Weak Accept - Good quality but could improve clarity.", "Reviewer2": "Reject - Needs more data to support claims.", "Reviewer3": "Weak Accept - Add more details to methodology.", "Reviewer4": "Accept - Relevant to the conference topics." }, "Questioner": "What are the limitations of this study?", "Grammar Check": "Accept - No grammar issues found.", "Novelty Check": "Reject - Lacks novelty in the approach.", "Fact Check": "Accept - No factual errors found.", "Final Summary": "Weak Accept - Good quality but could improve clarity." }, "Introduction": { ... }, "Answers" : { "What are the limitations of this study?": { "Abstract": "The limitations of this study include the small sample size and lack of diversity in the participants.", "Introduction": "The study was limited by the lack of access to detailed data on the participants' medical history." ... } } }

How It Works

  1. PDF Parsing:

    • Extracts sections such as Abstract, Introduction, Methods, Results, etc.
  2. Model Generation:

    • Creates AI models dynamically based on the content and CFP URL.
  3. Feedback Collection:

    • Each agent reviews a specific section and provides feedback.
  4. Feedback Storage:

    • Saves the feedback in a structured JSON format.

Project Structure

  • MARS.py: Main script to run the paper review system.
  • requirements.txt: Lists all dependencies for the project.
  • dataset_results/: Contains results of 10 research papers.
  • human_reviews/:Contains list of 10 research paper's human reviews.
  • util/: Contains utility scripts for various tasks.
    • __init__.py: Initializes the utility package.
    • extract_cfp.py: Extracts topics from CFP.
    • extract_keywords.py: Extracts keywords from text.
    • reviewer.py: Defines reviewer classes and functions.
    • scholar.py: Searches for academic papers.
    • review_collab.py: Reviewers communicate with each other and provide feedback and summary. Also has a PDF parser.
    • multiagent.py: Contains the main class for the multi-agent system.
    • build_models.py: Builds the models for the agents.
  • results/: Contains the results of the paper review system.
    • csv/: Contains the CSV files of the results.
      • ablation_results.csv: Contains the ablation results of the paper review system.
      • section_language_scores.csv: Contains the language scores of the sections of the paper.
      • summarizer_language_scores.csv: Contains the language scores of the summarizer.
    • plots/: Contains the plots of the results.
      • plotter.py: Plots the scores from the metric scores.
      • plots.ipynb: Jupyter notebook to plot the scores.
    • scripts/: Contains the scripts for the evaluation of the paper review system.
      • ablation.py: Contains the ablation script for the paper review system.
      • eval_scores.py: Contains the language evaluation script of the paper review system (BLEU,ROUGE-L,METEOR).
      • conditional_probabilities.py: Contains the probability calculation script of the paper review system.
      • accept_reject_calc.py: Contains the script to calculate the accept and reject scores of the paper review system.

Owner

  • Name: Kunal Pai
  • Login: kunpai
  • Kind: user
  • Company: @darchr

GitHub Events

Total
  • Issue comment event: 3
  • Push event: 5
  • Public event: 2
  • Pull request event: 2
  • Fork event: 1
  • Create event: 1
Last Year
  • Issue comment event: 3
  • Push event: 5
  • Public event: 2
  • Pull request event: 2
  • Fork event: 1
  • Create event: 1

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 0
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • Copilot (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • Jinja2 ==3.1.5
  • MarkupSafe ==3.0.2
  • PyPDF2 ==3.0.1
  • Pygments ==2.19.1
  • annotated-types ==0.7.0
  • anyio ==4.8.0
  • beautifulsoup4 ==4.12.3
  • blis ==1.2.0
  • breadability ==0.1.20
  • catalogue ==2.0.10
  • certifi ==2024.12.14
  • chardet ==5.2.0
  • charset-normalizer ==3.4.1
  • click ==8.1.8
  • cloudpathlib ==0.20.0
  • confection ==0.1.5
  • cymem ==2.0.11
  • docopt ==0.6.2
  • exceptiongroup ==1.2.2
  • h11 ==0.14.0
  • httpcore ==1.0.7
  • httpx ==0.27.2
  • idna ==3.10
  • joblib ==1.4.2
  • langcodes ==3.5.0
  • language_data ==1.3.0
  • lxml ==5.3.0
  • marisa-trie ==1.2.1
  • markdown-it-py ==3.0.0
  • mdurl ==0.1.2
  • murmurhash ==1.0.12
  • nltk ==3.9.1
  • numpy ==2.0.2
  • ollama ==0.4.6
  • packaging ==24.2
  • preshed ==3.0.9
  • pycountry ==24.6.1
  • pydantic ==2.10.5
  • pydantic_core ==2.27.2
  • regex ==2024.11.6
  • requests ==2.32.3
  • rich ==13.9.4
  • shellingham ==1.5.4
  • smart-open ==7.1.0
  • sniffio ==1.3.1
  • soupsieve ==2.6
  • spacy ==3.8.3
  • spacy-legacy ==3.0.12
  • spacy-loggers ==1.0.5
  • srsly ==2.5.1
  • sumy ==0.11.0
  • thinc ==8.3.4
  • tqdm ==4.67.1
  • typer ==0.15.1
  • typing_extensions ==4.12.2
  • urllib3 ==2.3.0
  • wasabi ==1.1.3
  • weasel ==0.4.1
  • wrapt ==1.17.2