https://github.com/dotaadarsh/researchify
Research smarter, discover faster.
https://github.com/dotaadarsh/researchify
python streamlit xata-io
Last synced: 2 months ago
JSON representation
Research smarter, discover faster.
- Host: GitHub
- URL: https://github.com/dotaadarsh/researchify
- Owner: dotAadarsh
- Created: 2024-01-11T18:01:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-14T20:29:56.000Z (over 2 years ago)
- Last Synced: 2025-01-16T16:28:47.891Z (over 1 year ago)
- Topics: python, streamlit, xata-io
- Language: Python
- Homepage: https://researchify.streamlit.app/
- Size: 350 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Researchify
Research smarter, discover faster.
The researchify is designed to streamline and expedite the process of finding research papers. Leveraging the powerful combination of [Streamlit](https://streamlit.io/) and [Xata](https://xata.io/), the application provides users with a user-friendly and efficient platform for accessing academic literature.
[](https://researchify.streamlit.app/)
### Features
1. **Efficient Search:** Quickly locate relevant research papers based on keywords.
2. **User-Friendly Interface:** Enjoy an intuitive and visually appealing interface, ensuring a seamless user experience.
3. **Xata Database Integration:** Benefit from the reliability of the Xata database for efficient data storage, retrieval, and organization.
4. **Ask AI**: With the conversational interface, ask the question related to the database. [Xata's AI](https://xata.io/docs/sdk/ask) has you covered!
5. **Quick Access to Full Papers:** Efficiently access the full texts of research papers for in-depth exploration.
### Getting Started
[](https://gitpod.io/#https://github.com/dotAadarsh/researchify)
Follow these steps to get started with researchify locally:
1. **Importing the data**: Download the [dataset](https://www.kaggle.com/datasets/yasirabdaali/arxivorg-ai-research-papers-dataset), create a database in Xata and import the CSV file.
2. **Clone the Repository:**
```git clone https://github.com/dotAadarsh/researchify.git```
3. **Install Dependencies:**
```pip install -r requirements.txt```
4. **Add your Xata credentials:**
Get your API Key and Database URL from Xata and add it to the .streamlit/secrets.toml file
5. **Run the App:**
```streamlit run app.py```
### Dataset
Arxiv.org AI Research Papers Dataset [↗](https://www.kaggle.com/datasets/yasirabdaali/arxivorg-ai-research-papers-dataset)
This dataset is a valuable resource for researchers and practitioners in the field of AI. It can be used to track the latest research trends, identify emerging research areas, and find relevant papers. This dataset contains the metadata for 10,000 research papers in the field of artificial intelligence (AI) that were published on arXiv.org.
License: [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/)
### Set up - Xata
If you are new to Xata I'd suggest you read [Getting started with Xata | Aadarsh (aadarshkannan.tech)](https://www.aadarshkannan.tech/posts/Getting-Started-With-Xata/). Sign up at [Xata - The serverless database built for modern development](https://xata.io/) and start creating a database and make a note of Xata API and Database URL which we will need later on to connect with our database through Python SDK.
### Import CSV data
Once you create a database you will see import CSV data. Click on that and upload the downloaded dataset. Xata can guess column types from your data automatically, and if needed to change you can choose the dropdown and select the desired type. Once the import is completed, you will be able to see the table.


### Search Engine
As you insert data into Xata, it is automatically indexed for full-text search. Try exploring the Search Engine feature which you can find in the left side pane. Try changing various parameters and see what happens. Click on Get the code snippet, select the language Python and copy the code. We will be using this snippet to build the search feature through our app.

### AskAI
Now go to the playground and try out different operations you want to perform through programming. [Xata's `ask` endpoint](https://xata.io/docs/sdk/ask) utilizes current data from your Xata database and leverages Xata's search functionalities to retrieve pertinent information from our database. It then utilizes the OpenAI's ChatGPT API to understand your query and produce natural language responses. Run the following example in the playground and see the result.
```Python
result = xata.data().ask("Table_name", "Question")
```

Here is what the response might looks like:

### User Interface
The Researchify app is built upon Streamlit and Xata's Python SDK. It has two pages, one is for search and other one is for chatbot.

### Resources
- [Xata Documentation](https://xata.io/docs)
- [Import CSV data | Xata](https://xata.io/docs/csv-data/import-data)
- [Xata SDK for Python](https://xata.io/docs/sdk/python/overview)
- [Streamlit Documentation](https://docs.streamlit.io/library/api-reference)
- [Secrets management | Streamlit](https://docs.streamlit.io/library/advanced-features/secrets-management)