--- 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](https://github.com/AI-Maker-Space/Beyond-ChatGPT/tree/main). 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](https://i.imgur.com/IaEVZG2.png) ## 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](https://i.imgur.com/aSMlX2T.png) 2. Click on `Create new Space` ![image](https://i.imgur.com/YaSSy5p.png) 3. Create the Space by providing values in the form. Make sure you've selected "Docker" as your Space SDK. ![image](https://i.imgur.com/6h9CgH6.png)
Adding this Repository to the Newly Created Space 1. Collect the SSH address from the newly created Space. ![image](https://i.imgur.com/Oag0m8E.png) > NOTE: The address is the component that starts with `git@hf.co:spaces/`. 2. Use the command: ```bash git remote add hf HF_SPACE_SSH_ADDRESS_HERE ``` 3. Use the command: ```bash git pull hf main --no-rebase --allow-unrelated-histories -X ours ``` 4. Use the command: ```bash git add . ``` 5. Use the command: ```bash git commit -m "Deploying Pythonic RAG" ``` 6. Use the command: ```bash git push hf main ``` 7. 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](https://i.imgur.com/zh0a2By.png) 2. Navigate to `Variables and secrets` on the Settings page and click `New secret`: ![image](https://i.imgur.com/g2KlZdz.png) 3. In the `Name` field - input `OPENAI_API_KEY` in the `Value (private)` field, put your OpenAI API Key. ![image](https://i.imgur.com/eFcZ8U3.png) 4. 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](./BuildingAChainlitApp.md)!