Spaces:
Running on Zero
Running on Zero
File size: 9,996 Bytes
e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d e809c21 491cd8d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 | # 💻 SaulGPT Local Development & Setup Guide
**Document Version:** 2.2.0
**Target Release:** Production Cloud & Local Workstation
This guide walks you through setting up, configuring, and testing the full **SaulGPT** stack on your local development machine.
---
## 📋 1. Prerequisites
Before starting, ensure you have the following installed on your machine:
- **Python:** 3.10 or 3.11 ([python.org](https://www.python.org/downloads/))
- **Node.js:** 18+ LTS ([nodejs.org](https://nodejs.org/))
- **Git:** Latest version
- **A Groq Cloud API Key:** Free tier from [console.groq.com](https://console.groq.com/)
---
## ⚡ 2. One-Click Quick Start (Windows)
For rapid local testing on Windows:
1. **One-Time Setup:**
Double-click `scripts\setup.bat` — This will create the Python virtual environment (`.venv`), install all backend dependencies, download the spaCy English NLP model, and run `npm install` in `saulgpt-ui/`.
2. **Run the Application:**
Double-click `start.vbs` — It silently launches:
- Python FastAPI backend on `http://localhost:8000`
- React + Vite development server on `http://localhost:5173`
- Automatically opens your default web browser to the app.
---
## 🛠️ 3. Step-by-Step Manual Setup
### 3.1 Backend Configuration
```bash
# 1. Clone the repository
git clone https://github.com/lbbaalaji0406/legalgpt.git
cd legalgpt
# 2. Create and activate virtual environment
python -m venv .venv
# On Windows:
.venv\Scripts\activate
# On Linux/macOS:
source .venv/bin/activate
# 3. Install dependencies
pip install -r backend/requirements.txt
pip install -r requirements.txt
# 4. Download spaCy English model
python -m spacy download en_core_web_sm
```
### 3.2 Environment Variables Configuration
Create a `.env` file in the project root:
```bash
copy .env.example .env
```
Populate the following variables:
```ini
# LLM Provider (Groq Cloud)
GROQ_API_KEY=gsk_your_groq_api_key_here
GROQ_MODEL=llama-3.1-8b-instant
# Persistence Mode:
# Leave blank to use local SQLite (backend/saulgpt.db)
# OR provide a Supabase IPv4 Pooler connection string for cloud sync:
DATABASE_URL=postgresql://postgres.[ref]:[password]@aws-0-ap-southeast-1.pooler.supabase.com:5432/postgres
# Security & Public URL
JWT_SECRET=development-secret-key-replace-in-production
PUBLIC_API_URL=http://localhost:8000
```
### 3.3 Vector Database Verification
Pre-embedded ChromaDB vector collections are included in `data/vector_db/` (~2,449 chunks across 9 acts and landmark precedents). If you need to rebuild the vector database from raw JSON sources:
```bash
cd backend
python 02_chunk_and_embed.py
cd ..
```
### 3.4 Frontend Setup
```bash
cd saulgpt-ui
npm install
cd ..
```
---
## 🏃 4. Running the Application
### Terminal 1: Backend API Server
```bash
cd backend
..\.venv\Scripts\python.exe -m uvicorn api_server:app --host 0.0.0.0 --port 8000 --reload
```
The FastAPI documentation is available at: `http://localhost:8000/docs`
### Terminal 2: React Frontend UI
```bash
cd saulgpt-ui
npm run dev
```
The development UI is available at: `http://localhost:5173`
---
## 🧪 5. Testing & Evaluation
### 5.1 Automated RAG Pipeline Evaluation
Run the automated evaluation suite to benchmark retrieval accuracy, hallucination prevention, and keyword precision across 8 gold-standard test scenarios:
```bash
cd backend
..\.venv\Scripts\python.exe eval_pipeline.py
```
### 5.2 Isolated Agent Endpoint Testing
You can test specific subsystems directly using `curl` or Postman:
```bash
# 1. Health & Database Check
curl http://localhost:8000/api/health
# 2. Knowledge Retrieval (Layer 2 + Layer 3)
curl "http://localhost:8000/api/test/knowledge?q=What+is+Section+138+of+Negotiable+Instruments+Act"
# 3. Advocate Mode IRAC Analysis
curl "http://localhost:8000/api/test/analysis?q=Employer+withheld+three+months+salary+without+cause"
# 4. Procedural Pathfinder
curl "http://localhost:8000/api/test/pathfinder?q=How+do+I+file+an+e-FIR+for+cyber+theft"
# 5. Document Drafter Scrutiny Test
curl -X POST http://localhost:8000/api/test/scrutiny \
-H "Content-Type: application/json" \
-d '{"doc_type": "cheque_bounce", "date_of_default": "2024-05-10", "notice_date": "2024-05-20"}'
```
---
## 📂 6. Repository Layout & File Map
```
legalgpt-master/
├── ARCH.md # Quick-Reference Architecture & Topology Map
├── CLAUDE.md # Agent Memory, Conventions & Session Logs
├── DEPLOYMENT_GUIDE.md # Production Cloud Deployment Guide
├── README.md # Project Overview & Hugging Face Frontmatter
├── app.py # ZeroGPU Gradio 5.20 + FastAPI Entrypoint
├── deploy_hf.py # Automated Hugging Face Space Deployment Script
├── requirements.txt # Root dependencies for Hugging Face container
│
├── backend/ # Python Backend
│ ├── api_server.py # Core FastAPI application & route dispatcher
│ ├── pipeline_orchestrator.py# 6-Layer Deterministic RAG controller
│ ├── actor_critic.py # Actor-Critic Fine-Grained Process Reward Model
│ ├── interview_state.py # Document drafting state machine & fallback spec
│ ├── document_generator.py # 4-Family .docx generator (RPAD, Pleadings, Affidavits)
│ ├── evidence_processor.py # Section 63 BSA Digital Certs & Forensic Processor
│ ├── layer1_understanding.py # Query understanding, Hindi HyDE, spaCy NER
│ ├── layer2_retrieval.py # ChromaDB vector retrieval & Cross-Encoder (CPU)
│ ├── layer3_reasoning.py # Groq LLM synthesis & IRAC reasoning
│ ├── layer4_validation.py # DeBERTa NLI & SC Struck-Down Firewall
│ ├── layer5_external.py # IndianKanoon / DuckDuckGo live search fallback
│ ├── layer6_evaluator.py # 25,000-character contract risk evaluation
│ ├── layer6_knowledge_graph.py# Relational legal knowledge graph (NetworkX)
│ ├── database.py # Dual Supabase PostgreSQL + SQLite CRUD engine
│ ├── auth.py # JWT token generation & bcrypt authentication
│ ├── discovery_agent.py # Phase 1: 3-turn empathetic investigation
│ ├── strategy_agent.py # Phase 2: SWOT matrix & 4-path generation
│ ├── irac_agent.py # Advocate Mode IRAC structured brief generator
│ ├── scrutiny_agent.py # Pre-draft limitation and validity scrutiny
│ ├── eval_pipeline.py # Automated RAG benchmarking test harness
│ │
│ ├── trial_studio/ # Pre-Trial Studio & Moot Court Subsystem
│ │ ├── cross_examiner_agent.py # Hostile Sec 146 BSA cross-examination
│ │ ├── defense_fortifier_agent.py# Corner Coach procedural objections
│ │ ├── precedent_engine.py # 50,000+ SC/HC landmark judgments index
│ │ └── session_manager.py # Moot session persistence
│ │
│ ├── agents/ # Specialized Agent Definitions
│ │ ├── manager.py # Sub-agent dispatch manager
│ │ ├── llm_client.py # Centralized Groq LLM client factory
│ │ ├── triage.py # Query classification
│ │ ├── researcher.py # Knowledge retrieval agent
│ │ ├── drafter.py # Document interview agent
│ │ └── reviewer.py # Contract reviewer agent
│ │
│ └── prompts/ # LLM Prompt Templates
│ ├── triage.py
│ ├── discovery.py
│ ├── strategy.py
│ └── irac.py
│
├── saulgpt-ui/ # React 18 + Vite Frontend
│ ├── src/
│ │ ├── App.jsx # Main Omni-Box interface & state router
│ │ ├── AuthPage.jsx # JWT Authentication & guest session takeover
│ │ ├── ConversationsSidebar.jsx # Cloud-persisted conversation history
│ │ ├── TrialStudio.jsx # Split-Chamber Pre-Trial Moot Court Arena
│ │ ├── EvidenceUploader.jsx# Sec 63 BSA drag-and-drop evidence uploader
│ │ ├── TriageCards.jsx # Phase 2 SWOT strategic path cards
│ │ ├── VetoCard.jsx # Scrutiny blocker & limitation warning
│ │ ├── BNSCorrectionNotice.jsx # 2024 Transition notification badge
│ │ ├── JurisdictionBadge.jsx # Court pecuniary & territorial indicator
│ │ ├── UrgencyBanner.jsx # Statutory limitation countdown banner
│ │ ├── ApiKeyModal.jsx # Bring-Your-Own-Key (BYOK) settings modal
│ │ ├── LegalGlossary.js # 200+ Indian legal term dictionary
│ │ └── usePDF.js # Client-side jsPDF vector rendering engine
│ ├── package.json
│ └── vite.config.js
│
├── docs/ # Technical & Architectural Documentation
│ ├── ARCHITECTURE.md # Comprehensive system architecture & data flows
│ ├── FDD.md # Functional Design Document
│ ├── TDD.md # Technical Design Document
│ ├── CHANGELOG_DECISIONS.md # Architectural Decision Records (ADRs 001 - 030)
│ ├── FEATURES.md # Complete 10-module feature breakdown
│ ├── API_REFERENCE.md # REST API endpoints & schemas
│ └── SETUP_GUIDE.md # This setup guide
│
├── data/
│ ├── raw_data/ # JSON statutory texts (BNS, BNSS, BSA, CPC, NIA, etc.)
│ └── vector_db/ # Pre-embedded ChromaDB vector indexes
│
└── scripts/
├── setup.bat # Windows automated setup script
└── start.bat # Windows startup batch script
```
|