A RAG-based legal assistant for Vietnamese legislation analysis.
ViLaw provides context-aware retrieval and analysis of Vietnamese legal documents using BM25 lexical search combined with LLM-powered responses. The system processes 1,000+ official legal documents with Vietnamese word segmentation for accurate query matching.
- Backend: Python, FastAPI
- NLP: LangChain, underthesea (Vietnamese tokenizer)
- Search: BM25 (rank_bm25)
- Database: SQLite / PostgreSQL
- LLM: OpenRouter API
- Legal Q&A with contextual retrieval
- Contract risk analysis
- Legal procedure guidance
- Document OCR processing
- Admin dashboard for knowledge base management
vilaw_backend/
βββ app/
β βββ api/v1/ # API endpoints
β βββ core/ # Configuration
β βββ db/ # Database models
β βββ schemas/ # Pydantic schemas
β βββ services/ # Business logic (RAG, OCR, etc.)
βββ static/ # Uploaded documents
βββ main.py # Application entry point
cd vilaw_backend
pip install -r requirements.txtCreate .env file:
DATABASE_URL=sqlite:///./vilaw_db.sqlite3
OPENROUTER_API_KEY=your_api_key
OPENROUTER_MODEL=google/gemini-flash-1.5
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
python main.pyAPI available at http://localhost:8000
| Endpoint | Description |
|---|---|
POST /api/v1/chat |
Legal Q&A |
POST /api/v1/contracts/analyze |
Contract risk analysis |
POST /api/v1/procedures |
Procedure guidance |
POST /api/v1/db/upload |
Upload legal documents |
MIT