Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions docs/showcase/ReSONAte.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
title: ReSONAte
description: A web-based AI research assistant that inspires curiosity and supports knowledge exploration, helping users dive deeper into relevant topics and stay organized throughout their research journey.
sidebar_position: 19
keywords: Perplexity Sonar API, Semantic Search, KeyBERT, Streamlit, GraphViz
---

# ReSONAte | A Perplexity powered web-based research assistant
**ReSONAte** is an AI-powered research assistant built with **Perplexity Sonar-Pro API** that inspires curiosity and supports knowledge exploration.
It addresses the challenge researchers face in generating and tracking research ideas.

## Features

- QA View provides in-depth answers based on the user question. The answer is generated by Perplexity Sonar-Pro API, and it also integrates the visual thumbnails provided by LinkPreview. Users can click the citation number from the answer to navigate to the corresponding citation. Users can press the citation thumbnail or the link for the research paper to delve into that topic even more.
- CoT Tree View visualizes the progression of queries using Graphviz. The user can create multiple sessions and switch between them as needed.

## Prerequisites
- fastapi
- uvicorn
- requests
- pydantic
- streamlit
- keybert
- nltk
- graphviz
- python-dotenv
- openai

## Installation

### 1. Clone the Repository
After cloning, move into the **ReSONAte** directory to proceed with setup and usage.
```
git clone https://github.com/JHshin6688/ReSONAte.git
cd ReSONAte
```
### 2. Set Up the Environment
Install required Python packages:
```
pip install -r requirements.txt
```
### 3. Add Your API Key
Create a .env file in the project root and add your API keys:
```
PERPLEXITY_API_KEY=your_perplexity_api_key_here
LINK_PREVIEW_API_KEY=your-link-preview-key-here
SEMANTIC_SCHOLAR_API_KEY=your-semantic-scholar-key-here
```

### 4. Running the App
To start ReSONAte, run the following commands in two separate terminals:
```
uvicorn main:app --reload
streamlit run app.py
```
Make sure both processes are running for ReSONAte to work properly.

## Usage
1. **Start with QA View**: From the main page, select QA View and ask any research question.
2. **Get In-Depth Responses**: ReSONAte will generate a detailed answer, including citations and links to relevant research papers.
3. **Ask Follow-Up Questions**: Feel free to continue the conversation with as many follow-up questions as you'd like.
4. **Track Your Research Journey**: Switch to the CoT Tree View to visualize the sequence of your queries and explore how your ideas have evolved.
5. **Explore New Topics**: To begin research on a different topic, create a new session using the sidebar. Your previous sessions will remain saved and accessible.

## Repository Structure
```text
interface/
├── api.py -> Define request formats
├── components.py -> Components of answer in QA view
├── config.py -> Backend url and white pixel
utils/
├── cot_tree.py -> Components of CoT tree view
├── extract.py -> Extract key research terms using KeyBERT
├── perplexity_api.py -> Generate a response using Perplexity Sonar-Pro API
├── semantic_scholar.py -> Retrieve relevant research papers using Semantic Scholar API
├── thumbnail.py -> Fetch thumbnail for citation links
app.py -> Streamlit interface
main.py -> FastAPI server
requirements.txt -> Python libraries required to run ReSONAte
```

## Links

- [GitHub Repository](https://github.com/JHshin6688/ReSONAte)
- [Live Demo](https://www.youtube.com/watch?v=xDcVBQZ0Oig)