Chat-With-PDF Svelte Themes

Chat With Pdf

This project is a chatbot website built using RAG and LangChain, with a Flask backend, Svelte frontend, and Redis for caching and task management.

Demo Video

https://github.com/user-attachments/assets/19930f7d-c3de-4896-a3e6-253a3184afdb

Setup

# Install dependencies
pipenv install

# Create a virtual environment
pipenv shell

# Initialize the database
flask --app app.web init-db

Using Venv [Optional]

These instructions are included if you wish to use venv to manage your evironment and dependencies instead of Pipenv.

# Create the venv virtual environment
python -m venv .venv

# On MacOS, WSL, Linux
source .venv/bin/activate

# On Windows
.\.venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Initialize the database
flask --app app.web init-db

Running the app [Pipenv]

There are three separate processes that need to be running for the app to work: the server, the worker, and Redis.

If you stop any of these processes, you will need to start them back up!

Commands to start each are listed below. If you need to stop them, select the terminal window the process is running in and press Control-C

To run the Python server

Open a new terminal window and create a new virtual environment:

pipenv shell

Then:

inv dev

To run the worker

Open a new terminal window and create a new virtual environment:

pipenv shell

Then:

inv devworker

To run Redis

redis-server

To reset the database

Open a new terminal window and create a new virtual environment:

pipenv shell

Then:

flask --app app.web init-db

Running the app [Venv]

These instructions are included if you wish to use venv to manage your evironment and dependencies instead of Pipenv.

There are three separate processes that need to be running for the app to work: the server, the worker, and Redis.

If you stop any of these processes, you will need to start them back up!

Commands to start each are listed below. If you need to stop them, select the terminal window the process is running in and press Control-C

To run the Python server

Open a new terminal window and create a new virtual environment:

# On MacOS, WSL, Linux
source .venv/bin/activate

# On Windows
.\.venv\Scripts\activate

Then:

inv dev

To run the worker

Open a new terminal window and create a new virtual environment:

# On MacOS, WSL, Linux
source .venv/bin/activate

# On Windows
.\.venv\Scripts\activate

Then:

inv devworker

To run Redis

redis-server

To reset the database

Open a new terminal window and create a new virtual environment:

# On MacOS, WSL, Linux
source .venv/bin/activate

# On Windows
.\.venv\Scripts\activate

Then:

flask --app app.web init-db

Example of .env

Create a .env file:

SECRET_KEY=
SQLALCHEMY_DATABASE_URI=
UPLOAD_URL=

LANGCHAIN_API_KEY={optional}
SAMBANOVA_API_KEY={optional}
GITHUB_API_KEY={optional}
OPEN_API_KEY={optional}

REDIS_URI=

PINECONE_API_KEY=
PINECONE_ENV_NAME=
PINECONE_INDEX_NAME=

Top categories

Loading Svelte Themes