LegalLens-API / replit.md
b24122
Set up core project files for legal case analysis API backend
9844436
# Legal RAG Analysis API
## Overview
This is a FastAPI-based legal case analysis system that combines multiple AI technologies to provide comprehensive legal verdict predictions. The system uses a Retrieval-Augmented Generation (RAG) approach with LegalBERT for initial predictions and Gemini AI for final evaluation and explanation.
## User Preferences
Preferred communication style: Simple, everyday language.
Coding style: camelCase for function names, clear variable names, efficiency over boilerplate, no comments unless asked.
Prefers to add model files and dependencies later after basic structure is ready.
## System Architecture
The application follows a microservices-inspired architecture with clear separation of concerns:
### Backend Framework
- **FastAPI** - Chosen for its high performance, automatic API documentation, and excellent type hinting support
- **Python 3.x** - Primary language for ML/AI integration and legal domain processing
- **Uvicorn** - ASGI server for production-ready deployment
### AI/ML Pipeline Architecture
The system implements a three-stage analysis pipeline:
1. **Initial Prediction** - LegalBERT model for binary classification (guilty/not guilty)
2. **Knowledge Retrieval** - RAG system using FAISS for retrieving relevant legal documents
3. **Final Evaluation** - Gemini AI for contextual analysis and explanation generation
## Key Components
### 1. LegalBERT Service (`app/services/legal_bert.py`)
- **Purpose**: Provides initial verdict predictions using a fine-tuned BERT model for legal texts
- **Technology**: Transformers library with PyTorch backend
- **Input**: Raw case text
- **Output**: Binary verdict (guilty/not guilty) with confidence scores
### 2. RAG Service (`app/services/rag_service.py`)
- **Purpose**: Retrieves relevant legal documents to support case analysis
- **Technology**:
- FAISS for vector similarity search
- Sentence-BERT (BGE-Large) for text embeddings
- Multiple legal document indexes (Constitution, IPC, case law, statutes)
- **Features**: Parallel index querying, chunk deduplication, relevance filtering
### 3. Gemini Service (`app/services/gemini_service.py`)
- **Purpose**: Generates search queries and provides final legal analysis
- **Technology**: Google Gemini AI API
- **Functions**:
- Query generation from case facts
- Final verdict evaluation with legal reasoning
- Explanation generation in natural language
### 4. API Layer (`app/api/routes.py`)
- **Endpoints**:
- `POST /api/v1/analyze-case` - Main analysis endpoint
- `GET /api/v1/health` - Service health monitoring
- **Features**: Error handling, logging, service orchestration
## Data Flow
1. **Request Processing**: Case text received via POST request
2. **Initial Analysis**: LegalBERT processes text and returns preliminary verdict
3. **Query Generation**: Gemini generates optimized search query from case facts
4. **Knowledge Retrieval**: RAG system searches multiple legal document indexes
5. **Final Evaluation**: Gemini analyzes initial verdict against retrieved legal context
6. **Response Assembly**: Combined results with explanations returned to client
## External Dependencies
### AI/ML Models
- **LegalBERT Model**: Custom fine-tuned model for legal verdict prediction
- **Sentence Transformer**: BAAI/bge-large-en-v1.5 for text embeddings
- **Gemini AI**: Google's generative AI for natural language processing
### Vector Databases
- **FAISS Indexes**: Multiple pre-built indexes for different legal document types:
- Constitution documents
- Indian Penal Code (IPC)
- Case law precedents
- Statutes and regulations
- Q&A legal content
### Python Libraries
- FastAPI, Uvicorn (web framework)
- Transformers, PyTorch (ML models)
- Sentence-Transformers (embeddings)
- FAISS (vector search)
- Google GenAI (external API)
## Deployment Strategy
### Development Setup
- Local development with hot reload enabled
- Model files and indexes loaded from configurable paths
- Environment-based configuration management
### Configuration Management
- Centralized settings in `app/core/config.py`
- Environment variable support for sensitive data (API keys)
- Flexible path configuration for model and index files
### Health Monitoring
- Service-level health checks for all components
- Graceful degradation when external services are unavailable
- Comprehensive logging for debugging and monitoring
### CORS Configuration
- Permissive CORS setup for development
- Can be restricted for production deployment
## Current Development Status (January 2025)
### βœ… Completed
- FastAPI backend structure with proper routing and middleware
- Placeholder implementations for all services (LegalBERT, RAG, Gemini)
- Full Gemini AI integration for query generation and case evaluation
- Health monitoring endpoints for all components
- CORS configuration for frontend integration
- API documentation with comprehensive endpoints
- Camel case naming conventions as per user preference
### πŸ”„ Ready for Model Integration
- LegalBERT service structure ready for torch/transformers integration
- RAG service prepared for FAISS indexes and sentence-transformers
- Configuration paths set for model files and indexes
- Graceful degradation when model files are missing
### πŸ“ Directory Structure for Model Files
- `./models/legalbert_model/` - LegalBERT model files (to be added)
- `./faiss_indexes/` - FAISS vector indexes and chunks (to be added)
### πŸ”— API Endpoints Working
- `POST /api/v1/analyze-case` - Full case analysis with Gemini evaluation
- `GET /api/v1/health` - Service health monitoring
- `GET /api/v1/models/status` - Model loading status
- `GET /` - Basic API info
## Next Steps for Full Functionality
1. Add LegalBERT model files to `./models/legalbert_model/`
2. Install ML dependencies: `torch`, `transformers`, `sentence-transformers`, `faiss-cpu`
3. Add FAISS indexes and chunk files to `./faiss_indexes/`
4. All placeholder implementations will automatically switch to real ML models
## Notes
- The system gracefully handles missing model files during development
- All services include health check mechanisms for monitoring
- The RAG system supports parallel querying of multiple legal document indexes
- Query generation is optimized for Indian criminal law terminology
- The architecture supports easy addition of new legal document indexes
- API follows camelCase conventions and clean code principles as requested