Skip to content

Interactive RAG workbench to demonstrate Redis features and enhancements for improving accuracy, speed, cost, and reliability of LLM applications.

License

Notifications You must be signed in to change notification settings

rajeshkanaka/redis-rag-workbench

 
 

Repository files navigation

RAG Workbench

License: MIT Language GitHub last commit

🛠️ Redis RAG Workbench is a development playground for exploring Retrieval-Augmented Generation (RAG) techniques with Redis. Upload a PDF and begin building a RAG app to chat with the document, taking full advantage of Redis features like vector search, semantic caching, LLM memory, and semantic routing.

Prerequisites

  1. Make sure you have the following tools available:
  2. Setup one or more of the following:
  3. Get a Cohere API key (for optional reranking features)

Getting started

Clone the repository:

git clone https://github.com/redis-developer/redis-rag-workbench.git
cd redis-rag-workbench

Copy and edit the .env file:

cp .env.example .env

Your .env file should contain your Redis connection string as well as necessary API keys based on which platform(s) you want to use.

Your .env.docker file will look similar to .env, but should use the appropriate docker internal URLs. Here is an example:

REDIS_URL="redis://redis:6379"

Run in docker

To spin up docker containers:

make docker

This will start the server, and you can access the workbench by navigating to http://localhost:8000 in your web browser.

The first time the application runs, it will have to download model weights from huggingface and may take a few minutes.

Run locally outside docker

To run the server outside of docker you need to first create a .venv:

make install && source .venv/bin/activate

From then on, you can run a dev server:

make dev

Or a production server:

make serve

Other useful scripts

Get help for all make commands:

make

Formatting code:

make format

Cleaning up files:

make clean

Using Google VertexAI

The Workbench can be used with VertexAI, but requires you to set up your credentials using the gcloud CLI. The easiest way to do this is as follows:

  1. Make sure you have a gcloud project setup with the VertexAI API enabled.
  2. Install the gcloud CLI
  3. Follow the instructions to run the gcloud auth application-default login command
  4. Copy the JSON from the generated application_default_credentials.json into your .env file using the GOOGLE_APPLICATION_CREDENTIALS variable
  5. Set the GOOGLE_CLOUD_PROJECT_ID environment variable in your .env file to the associated gcloud project you want to use.

Project Structure

  • main.py: The entry point of the application
  • demos/: Contains workbench demo implementation
  • shared_components/: Reusable utilities and components
  • static/: Static assets for the web interface

Contributing

🤝 Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Connecting to Redis Cloud

If you don't yet have a database setup in Redis Cloud get started here for free.

To connect to a Redis Cloud database, log into the console and find the following:

  1. The public endpoint (looks like redis-#####.c###.us-east-1-#.ec2.redns.redis-cloud.com:#####)
  2. Your username (default is the default username, otherwise find the one you setup)
  3. Your password (either setup through Data Access Control, or available in the Security section of the database page.

Combine the above values into a connection string and put it in your .env and .env.docker accordingly. It should look something like the following:

REDIS_URL="redis://default:<password>@redis-#####.c###.us-west-2-#.ec2.redns.redis-cloud.com:#####"

Troubleshooting

Apple Silicon (M1+)

If you find that docker will not work, it's possible you need to add the following line in the Dockerfile (commented out in the Dockerfile for ease-of-use):

RUN apt-get update && apt-get install -y build-essential

Learn more

To learn more about Redis, take a look at the following resources:

About

Interactive RAG workbench to demonstrate Redis features and enhancements for improving accuracy, speed, cost, and reliability of LLM applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 87.4%
  • Dockerfile 6.8%
  • Makefile 5.8%