/Academic-Assistant

Genta Academic Assistant, an AI powered assistant to help you on your academic research

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

Contributors Forks Stargazers Issues GNU License


Logo

Genta Academic Assistant

An AI assistant built specifically to help student and researcher with their study by giving them the precise answer based on papers on our database.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Product Name Screen Shot

Genta Academic Assistant is an AI assistant built specifically to help student and researcher with their study by giving them the precise answer based on papers on our database. We built our app because we know how painful it is to search or find the right academic literature , quickly, and precisely for our research/courses using traditional methods; like using google scholar or a library. Unlike library's that uses filters to find papers, which sometimes can be unreliable, this app can precisely pinpoint the top papers, from the database, that is the most relevant to the prompt that is passed to it. Due to this the hustle of finding the right research papers is reduce and will be way more easier than ever before.

(back to top)

Built With

  • Streamlit
  • Weaviate
  • OpenAI

(back to top)

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

Make sure you have >=python-3.8 installed on your machine. If you don't have it installed, you can download it here.

Installation

  1. Clone the repository
    git clone https://github.com/Genta-Technology/Academic-Assistant.git
  2. Install the dependencies
    pip install -r requirements.txt
  3. Setup the environment variables, by copying the .env.example file to .env
    cp .env.example .env
    Then fill in the values in the .env file with your own values. For the WEAVIATE_CLIENT_ENDPOINT, you can use your own new database (local or cloud) in Weaviate and fill it up using the database_initialization.py, or email us at rbisri@student.ubc.ca.
  4. Run the app
    streamlit run app.py

Setup new database

Follow these setup if you want to setup a new database locally, and already followed the steps above.

  1. Initialize a database

    • Locally: Make sure you have docker installed on your machine. If you don't have it installed, you can download it here.
      cd database
      docker compose up -d
    • Cloud: Follow this guide to setup a new database in the cloud.
  2. Insert your database endpoint to the .env file

    WEAVIATE_CLIENT_ENDPOINT=<your_database_endpoint>
  3. Download any dataset you want to use to fill up the database. For example, you can download the arxiv dataset from Kaggle. Then, put the dataset in the data folder.

  4. Fill up the database

    python database_initialization.py --data <path_to_dataset>

(back to top)

Usage

Once you run the app, simply open the application on your favorite browser and fill the token input with your OpenAI API key. Then, you can start using the app by filling the query input with your prompt. For example, if you want to find the top papers that is the most relevant to the question What is the best way to reduce the spread of COVID-19?, you can fill the query input with that question and click the Submit button. Then, the app will try to answer your question based on the search result, and show you the top papers that is the most relevant to the prompt.

(back to top)

Roadmap

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPL-2.0 License. See LICENSE.txt for more information.

(back to top)

Contact

  1. Rifky Bujana Bisri - @rifkybujanabisri - rbisri@student.ubc.ca
  2. Alifais Farrel Ramdhani - @farrel_ramdhani - alifais@student.ubc.ca
  3. Evint Leovonzko - @evint_leo - evintkoo@student.ubc.ca
  4. Muhammad Hilmy Abdurrahim - @mhilmya04 - mabdurra@student.ubc.ca

Project Link: https://github.com/Genta-Technology/Academic-Assistant

(back to top)