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