Spaces:
Sleeping
A newer version of the Streamlit SDK is available:
1.55.0
title: VersionRAG
emoji: π
colorFrom: blue
colorTo: green
sdk: streamlit
sdk_version: 1.28.0
app_file: app.py
pinned: false
VersionRAG: Version-Aware RAG System
A proof-of-concept implementation of Version-Aware Retrieval-Augmented Generation (RAG) system for handling versioned documents.
Features
- β Version-aware document retrieval
- β Change tracking between versions
- β Multi-user support with data isolation
- β Interactive Streamlit interface
Usage
- Enter your OpenAI API key in the sidebar
- Click "π Initialize Systems"
- Upload versioned documents
- Query using Content Retrieval, Version Inquiry, or Change Retrieval
Requirements
- OpenAI API key
Built with Streamlit, LangChain, and ChromaDB.
Save this as `README.md` in your project folder.
---
## π Part 2: Create Hugging Face Account (3 minutes)
### Step 1: Go to Hugging Face
Open your browser and go to: **https://huggingface.co**
### Step 2: Sign Up
- Click **"Sign Up"** in the top right
- Use your email
- Choose a username (e.g., `shahbaz_ai` or whatever you like)
- Verify your email
### Step 3: Verify You're Logged In
You should see your profile picture in the top right corner.
---
## π¨ Part 3: Create Your Space (2 minutes)
### Step 1: Go to Spaces
Click on **"Spaces"** in the top menu bar.
### Step 2: Create New Space
- Click the big **"Create new Space"** button
- You'll see a form
### Step 3: Fill Out the Form
Space name: VersionRAG (or whatever name you want - use letters, numbers, hyphens only)
License: MIT
Select SDK: Streamlit β IMPORTANT!
Space hardware: CPU basic - 2 vCPU, 16GB RAM (FREE tier)
Visibility: Public (or Private if you prefer)
### Step 4: Create!
Click **"Create Space"** button at the bottom.
You'll see a page that says "This Space is empty. Push your first commit to get started."
---
## π» Part 4: Upload Your Files (10 minutes)
You have two options: **Easy way (Web)** or **Git way**. Let's do the **Easy way** first!
### π Easy Way: Upload via Web Interface
#### Step 1: Click "Files" Tab
At the top of your Space page, click the **"Files"** tab.
#### Step 2: Upload Files One by One
Click **"Add file"** β **"Upload files"**
Upload these files in this order:
1. `README.md` (the one you just created)
2. `requirements.txt`
3. `app.py`
4. `version_rag.py`
5. `evaluation.py`
6. `graph_manager.py`
7. `utils.py`
8. `.gitignore`
After each upload, scroll down and click **"Commit changes to main"**.
**IMPORTANT:** Do NOT upload:
- β `.env` file (has your API key)
- β `venv/` folder
- β `chroma_db_*` folders
- β Any `__pycache__` folders
---
## π Part 5: Add Your OpenAI API Key (CRITICAL!) (2 minutes)
### Step 1: Go to Settings
In your Space, click **"Settings"** tab at the top.
### Step 2: Add Secret
- Scroll down to **"Variables and secrets"** section
- Click **"New secret"**
### Step 3: Fill In Your API Key
Name: OPENAI_API_KEY Value: sk-proj... (paste your actual OpenAI API key here)
### Step 4: Save
Click **"Save"** button.
**β οΈ SUPER IMPORTANT:** Without this, your app won't work!
---
## β³ Part 6: Wait for Build (5-10 minutes)
### Step 1: Go to "App" Tab
Click the **"App"** tab at the top.
### Step 2: Watch It Build
You'll see logs scrolling. This is normal! It's installing all the packages.
You'll see messages like:
Collecting streamlit==1.28.0 Downloading streamlit-1.28.0... Installing...
### Step 3: Wait for Success
When it's done, you'll see:
β Space is running!
You can now view your Streamlit app in your browser.
If you see errors, don't panic! We'll fix them. Take a screenshot and show me.
---
## π Part 7: Test Your Deployed App! (5 minutes)
### Step 1: Your App Should Now Be Live!
You should see your VersionRAG interface in the "App" tab.
### Step 2: Test It
1. **Initialize Systems**:
- The OpenAI API key should already be set (from secrets)
- Click **"π Initialize Systems"** in the sidebar
- Wait for "β
Systems initialized successfully!"
2. **Upload a Document** (optional for testing):
- Go to **"π€ Document Upload"** tab
- Create a simple test file on your computer:
**test_v1.txt:**
Test Document v1.0 This is a test document for version 1.0. Feature A is available.
- Upload it with Version: `v1.0`, Domain: `Software`
- Click "Process"
3. **Try a Query**:
- Go to **"π¬ Query Interface"** tab
- Enter: `What features are available?`
- Click **"π Search"**
- You should get a response!
### Step 3: Share Your Space!
Your Space URL is:
https://huggingface.co/spaces/YOUR_USERNAME/VersionRAG
Copy this and share it with anyone! π
---
## π Common Problems & Fixes
### Problem 1: "Space is building..." for more than 15 minutes
**Fix:**
- Refresh the page
- Check "Logs" tab for errors
- Common issue: `requirements.txt` has wrong versions
### Problem 2: "Import Error" or "Module not found"
**Fix:**
- Go to "Files" tab
- Click on `requirements.txt`
- Click "Edit" (pencil icon)
- Make sure it has all packages:
streamlit==1.28.0 chromadb==0.4.22 langchain==0.1.16 langchain-community==0.0.38 langchain-openai==0.1.6 openai==1.23.0 PyPDF2==3.0.1 python-dotenv==1.0.1 pandas==2.2.1 plotly==5.20.0 networkx==3.2.1 pydantic==2.7.0 tiktoken==0.6.0 numpy==1.26.4 scikit-learn==1.4.2