vinod chandrashekaran
initial commit to hf spaces
f63bc6b
|
raw
history blame
3.81 kB
metadata
title: Vc Aie4 Pythonic RAG
emoji: 🌖
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
license: apache-2.0

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference

Summary

This is my completed pythonic RAG assignment, completed for Session 3 of the AI Engineering Cohort 4. I implemented the following:

  1. Allow user to upload TWO documents (instead of a single document)
  2. Format of doc: they can be either text files or pdf docs.
  3. Text splitter - RecursiveTextSplitter from Langchain
  4. Vector store - using Chroma db
  5. Coded the chain in two ways for my own education a. traditional Langchain syntax - two step process of with 'stuff documents chain' and 'retrieval chain' b. using LCEL syntax with Runnables
  6. Most processing pythonic steps implemented via a single class with modular components that can be replaced with others (e.g., text splitter, vector store, etc.)

Retaining the original content of the README.md for my future reference!!

Deploying Pythonic Chat With Your Text File Application

In today's breakout rooms, we will be following the processed that you saw during the challenge - for reference, the instructions for that are available here.

Today, we will repeat the same process - but powered by our Pythonic RAG implementation we created last week.

You'll notice a few differences in the app.py logic - as well as a few changes to the aimakerspace package to get things working smoothly with Chainlit.

Reference Diagram (It's Busy, but it works)

image

Deploying the Application to Hugging Face Space

Due to the way the repository is created - it should be straightforward to deploy this to a Hugging Face Space!

NOTE: If you wish to go through the local deployments using chainlit run app.py and Docker - please feel free to do so!

Creating a Hugging Face Space
  1. Navigate to the Spaces tab.

image

  1. Click on Create new Space

image

  1. Create the Space by providing values in the form. Make sure you've selected "Docker" as your Space SDK.

image

Adding this Repository to the Newly Created Space
  1. Collect the SSH address from the newly created Space.

image

NOTE: The address is the component that starts with [email protected]:spaces/.

  1. Use the command:
git remote add hf HF_SPACE_SSH_ADDRESS_HERE
  1. Use the command:
git pull hf main --no-rebase --allow-unrelated-histories -X ours
  1. Use the command:
git add .
  1. Use the command:
git commit -m "Deploying Pythonic RAG"
  1. Use the command:
git push hf main
  1. The Space should automatically build as soon as the push is completed!

NOTE: The build will fail before you complete the following steps!

Adding OpenAI Secrets to the Space
  1. Navigate to your Space settings.

image

  1. Navigate to Variables and secrets on the Settings page and click New secret:

image

  1. In the Name field - input OPENAI_API_KEY in the Value (private) field, put your OpenAI API Key.

image

  1. The Space will begin rebuilding!

🎉

You just deployed Pythonic RAG!

Try uploading a text file and asking some questions!

🚧CHALLENGE MODE 🚧

For more of a challenge, please reference Building a Chainlit App!