Logo Lanfrica

DebelYoussef/tunisian-legal-assistant

Domaine:

natural language processing

Type de record:

software
Créateur:
Deb
Hôte:
legal assistant specialized in Tunisian legislation, leveraging RAG, vector search, and large language models to deliver reliable, context-aware legal answers. # Assistant Juridique Tunisien 🧑‍⚖️ A production-ready **RAG (Retrieval-Augmented Generation)** microservices platform that answers questions about Tunisian law, grounded in real legal texts (Code Civil, Code de Commerce, Code du Travail) with cited sources. Built as a portfolio project demonstrating microservices architecture, authentication, observability, and CI/CD practices for a DevOps/Cloud engineering role. --- ## 📐 Architecture ``` Internet │ Nginx (reverse proxy, port 80) │ ┌────────────────┼────────────────┐ │ │ │ Frontend API Gateway Ingestion Service (Next.js 14) (FastAPI, JWT, (PDF → chunks → Google OAuth) embeddings) │ │ │ │ RAG Service ──────────┘ (retrieval + Groq LLM) │ ┌────────────────┼────────────────┬──────────────┐ │ │ │ │ PostgreSQL Qdrant Redis Groq API (users, sessions, (vector store (rate limiting) (LLM inference) messages) for legal docs) Monitoring stack Prometheus ──── Grafana ──── cAdvisor (metrics scraping) (dashboards) (container metrics) ``` ### Services | Service | Tech | Responsibility | |---|---|---| | **nginx** | Nginx | Reverse proxy — routes `/` to frontend, `/api/*` to API Gateway | | **frontend** | Next.js 14, TypeScript, Tailwind | Chat UI, auth pages, session management | | **api-gateway** | FastAPI, asyncpg | Auth (JWT + Google OAuth), session/message persistence, RAG orchestration, rate limiting | | **rag-service** | FastAPI, sentence-transformers, Groq SDK | Embeds queries, retrieves relevant legal chunks from Qdrant, generates answers via Groq | | **ingestion-service** | FastAPI, PyMuPDF | Parses legal PDFs, chunks text, generates embeddings, stores in Qdrant | | **postgres** | PostgreSQL 16 | Users, sessions, chat messages | | **qdrant** | Qdrant | Vector store for legal document embeddings | | **redis** | Redis 7 | Login attempt trackin …