LegalAssista es un asistente legal inteligente especializado en derecho laboral colombiano que combina análisis automatizado con IA, gestión de casos CRM, y escalamiento a abogados humanos.
- Consultas legales procesadas con GPT-3.5/GPT-4
- Sistema BM25 para búsqueda en documentos legales
- Evaluación de confianza automática
- Escalamiento inteligente a abogados
- Contrato Realidad: Evaluación de relaciones laborales
- Cálculo de Indemnización: Liquidaciones precisas por despido
- Análisis de Contratos: Revisión automatizada de documentos
- Generación de Contratos: Plantillas legales personalizadas
- CRM para Abogados: Gestión completa de casos
- Chat en Tiempo Real: Comunicación abogado-cliente
- Dashboard Administrativo: Métricas y analytics
- Sistema de Facturación: Integración con MercadoPago
- Clasificación automática de consultas
- Flujos guiados por tipo de caso
- Recomendaciones personalizadas
Frontend: React 18 + Vite + Tailwind CSS
Backend: FastAPI + Python 3.10+ + SQLAlchemy
Database: PostgreSQL + pgvector
Cache: SQLite (BM25) + Redis (futuro)
AI: OpenAI GPT-3.5/GPT-4
Payments: MercadoPago API
Deploy: Docker + Nginx + DigitalOcean
- Monolito Modular con 29 endpoints especializados
- 15 Servicios de Negocio independientes
- Separación clara de responsabilidades
- Preparado para microservicios sin refactoring mayor
- Python 3.10+
- Node.js 18+
- PostgreSQL 15+
- Git
git clone https://github.com/CaPerez17/ai-labor-law-assistant.git
cd ai-labor-law-assistantcd backend
# Crear entorno virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Instalar dependencias
pip install -r requirements.txt
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales# Crear base de datos PostgreSQL
createdb legalassista
# Ejecutar migraciones
alembic upgrade head
# Opcional: Cargar datos de prueba
python -m app.db.seedcd ../frontend
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env.local
# Editar .env.local con la URL del backend# Terminal 1: Backend
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000
# Terminal 2: Frontend
cd frontend
npm run devAcceder a:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- Documentación: http://localhost:8000/docs
# Base de datos
DATABASE_URL=postgresql://user:password@localhost/legalassista
# Autenticación
SECRET_KEY=tu_clave_secreta_jwt
ALGORITHM=HS256
# OpenAI
OPENAI_API_KEY=sk-...
GPT_MODEL=gpt-3.5-turbo
# Email (opcional)
MAIL_USERNAME=tu_email@gmail.com
MAIL_PASSWORD=tu_app_password
MAIL_FROM=noreply@legalassista.com
MAIL_SERVER=smtp.gmail.com
# MercadoPago (opcional)
MERCADOPAGO_PUBLIC_KEY=TEST-...
MERCADOPAGO_ACCESS_TOKEN=TEST-...
# Servidor
HOST=0.0.0.0
PORT=8000
DEBUG=false
FRONTEND_URL=http://localhost:5173VITE_BACKEND_URL=http://localhost:8000
VITE_WEBSOCKET_URL=ws://localhost:8000/ws
VITE_APP_VERSION=1.0.0# Construir y ejecutar
docker-compose up --build
# Solo backend
docker-compose up backend
# Solo frontend
docker-compose up frontend# Configurar variables de entorno de producción
cp .env.example .env.production
# Desplegar
docker-compose -f docker-compose.prod.yml up -dai-labor-law-assistant/
├── backend/ # FastAPI Backend
│ ├── app/
│ │ ├── api/ # 29 Endpoints especializados
│ │ ├── core/ # Configuración y seguridad
│ │ ├── db/ # Base de datos y modelos
│ │ ├── models/ # Modelos SQLAlchemy
│ │ ├── schemas/ # Validación Pydantic
│ │ ├── services/ # 15 Servicios de negocio
│ │ └── templates/ # Templates de email
│ ├── alembic/ # Migraciones de DB
│ ├── main.py # Punto de entrada
│ └── requirements.txt # Dependencias Python
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── api/ # Cliente HTTP
│ │ ├── components/ # Componentes React
│ │ ├── layouts/ # Layouts de página
│ │ └── pages/ # Páginas principales
│ ├── package.json # Dependencias Node.js
│ └── vite.config.js # Configuración Vite
├── docs/ # Documentación
├── README.md # Este archivo
└── render.yaml # Configuración Render.com
cd backend
# Ejecutar tests
pytest
# Con coverage
pytest --cov=app --cov-report=html
# Tests específicos
pytest app/tests/test_auth.py -vcd frontend
# Tests unitarios
npm run test
# Tests E2E
npm run test:e2e
# Coverage
npm run test:coverage| Módulo | Estado | Descripción |
|---|---|---|
| Análisis Legal | ✅ Completo | GPT + BM25 + Confidence scoring |
| Contrato Realidad | ✅ Completo | Evaluación multi-factor de relaciones laborales |
| Indemnización | ✅ Completo | Cálculos precisos por tipo de contrato |
| Análisis Documentos | ✅ Completo | PDF/DOCX + detección de riesgos |
| CRM Abogados | ✅ Completo | Gestión de casos + métricas |
| Chat Tiempo Real | ✅ Completo | WebSocket abogado-cliente |
| Facturación | ✅ Completo | MercadoPago + webhooks |
| Notificaciones | ✅ Completo | Email + in-app |
| Admin Dashboard | ✅ Completo | Analytics + gestión usuarios |
| Escalamiento WhatsApp | Código listo, API no conectada |
- Autenticación JWT con refresh tokens
- Hashing de contraseñas con bcrypt
- Validación de entrada con Pydantic
- Protección CORS configurada
- Rate limiting (recomendado para producción)
- HTTPS en producción con Let's Encrypt
- Casos de Tránsito: Fotomultas y comparendos
- Reformulación de Preguntas: IA para consultas ambiguas
- Sistema Híbrido Real: Conexión WhatsApp Business
- ML Avanzado: Clasificación inteligente de casos
- Redis Cache: Cache distribuido
- Message Queues: Procesamiento asíncrono
- Observabilidad: Prometheus + Grafana
- Microservicios: Extracción gradual de servicios
- Fork el repositorio
- Crear rama feature (
git checkout -b feature/nueva-funcionalidad) - Commit cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crear Pull Request
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para detalles.
Camilo Pérez
- GitHub: @CaPerez17
- Email: devcamper97@gmail.com
- OpenAI por la API GPT
- FastAPI por el excelente framework
- React team por la librería frontend
- Comunidad open source por las herramientas utilizadas
⭐ ¡Dale una estrella si este proyecto te ha sido útil!