Spaces:
Sleeping
A newer version of the Gradio SDK is available: 6.26.0
Environment Variables Setup
This document describes the environment variables needed to run the RAG system.
Required Variables
HF_TOKEN (Required)
Your Hugging Face API token for accessing the Inference API.
How to get it:
- Go to https://huggingface.co/settings/tokens
- Click "New token"
- Give it a name (e.g., "RAG System")
- Select
readpermissions - Click "Generate"
- Copy the token (starts with
hf_)
Set it:
# Linux/Mac
export HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Windows (PowerShell)
$env:HF_TOKEN="hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Windows (CMD)
set HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
For Hugging Face Spaces:
- Go to Space Settings → Repository secrets
- Add secret: Name=
HF_TOKEN, Value=your token
Optional Variables
HF_MODEL
The Hugging Face model to use for text generation.
Default: meta-llama/Llama-3.2-3B-Instruct
Other options:
mistralai/Mistral-7B-Instruct-v0.2meta-llama/Meta-Llama-3-8B-Instruct
export HF_MODEL=meta-llama/Llama-3.2-3B-Instruct
EMBEDDING_MODEL
The sentence transformer model for embeddings (runs locally).
Default: all-MiniLM-L6-v2
export EMBEDDING_MODEL=all-MiniLM-L6-v2
CHROMA_PERSIST_DIR
Directory for ChromaDB vector database storage.
Default: ./chroma_db
export CHROMA_PERSIST_DIR=./chroma_db
DOCUMENTS_DIR
Directory containing source documents.
Default: ./documents
export DOCUMENTS_DIR=./documents
PROCESSED_DOCS_DIR
Directory for processed markdown documents.
Default: ./processed_docs
export PROCESSED_DOCS_DIR=./processed_docs
DEFAULT_N_RESULTS
Number of context chunks to retrieve for each query.
Default: 5
export DEFAULT_N_RESULTS=5
SIMILARITY_THRESHOLD
Minimum similarity score for retrieved chunks.
Default: 0.5
export SIMILARITY_THRESHOLD=0.5
CHUNK_SIZE
Size of text chunks for processing.
Default: 1000
export CHUNK_SIZE=1000
CHUNK_OVERLAP
Overlap between consecutive chunks.
Default: 200
export CHUNK_OVERLAP=200
GRADIO_SHARE
Whether to create a public Gradio share link.
Default: False (set to True for 72-hour public link)
export GRADIO_SHARE=True
GRADIO_SERVER_PORT
Port for the Gradio server.
Default: 7860
export GRADIO_SERVER_PORT=7860
Complete Example
Create a .env file in the project root:
# Required
HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Optional (uncomment to override defaults)
# HF_MODEL=meta-llama/Llama-3.2-3B-Instruct
# EMBEDDING_MODEL=all-MiniLM-L6-v2
# CHROMA_PERSIST_DIR=./chroma_db
# DOCUMENTS_DIR=./documents
# PROCESSED_DOCS_DIR=./processed_docs
# DEFAULT_N_RESULTS=5
# SIMILARITY_THRESHOLD=0.5
# CHUNK_SIZE=1000
# CHUNK_OVERLAP=200
# GRADIO_SHARE=False
# GRADIO_SERVER_PORT=7860
Then load it before running:
# Using python-dotenv (recommended)
pip install python-dotenv
# Add to your script: from dotenv import load_dotenv; load_dotenv()
# Or manually source it
source .env # Linux/Mac
Verification
To verify your environment is set up correctly:
python -c "import os; print('HF_TOKEN:', 'SET' if os.getenv('HF_TOKEN') else 'NOT SET')"
Should output: HF_TOKEN: SET