← Volver al catálogo de proyectos
🌐 legal.salazarcode.net RAG de Alta Precisión En Línea Multi-Stage Docker

Legal RAG Venezuela

Sistema de recuperación semántica aumentada por generación (RAG) especializado en la legislación venezolana. Diseñado para erradicar las alucinaciones de la IA tradicional mediante la recuperación vectorial de artículos normativos oficiales y síntesis analítica fundamentada en tiempo real.

El Reto: Precisión Absoluta en Respuestas Jurídicas

Por qué los modelos de lenguaje generales fallan al interpretar leyes venezolanas y cómo lo resuelve este RAG.

⚠️

Limitación de los LLMs Genéricos

Cuando se le pregunta a ChatGPT o Claude sobre un artículo específico de la Constitución de 1999 o del Código Civil venezolano, el modelo recurre a memoria probabilística, lo que genera alucinaciones críticas, mezcla de leyes de otros países (México, España) o citas de artículos derogados.

  • ✕ Invención de números de artículos inexistentes.
  • ✕ Mezcla de legislación venezolana con doctrina extranjera.
  • ✕ Falta de certeza para abogados, auditores y aseguradoras.
🛡️

La Solución: Recuperación Vectorial Estricta

Legal RAG no permite que la IA invente. Primero convierte la consulta en un vector denso, recupera de PostgreSQL los artículos oficiales exactos con mayor similitud semántica y fuerza al LLM a fundamentar cada afirmación citando obligatoriamente la norma, capítulo y artículo.

  • ✓ Trazabilidad legal 100% verificable contra la Gaceta Oficial.
  • ✓ Respuestas objetivas, desprovistas de opiniones o sesgos.
  • ✓ Visor de artículos de respaldo accesibles al usuario con un clic.

Arquitectura de Componentes & Pipeline

Cada capa fue diseñada bajo estándares de seguridad corporativa, baja latencia y soberanía de datos.

📑

1. Parser Jerárquico & Ingesta

A diferencia de los segmentadores por cantidad fija de tokens (que cortan artículos a la mitad), nuestro motor implementa un parser sintáctico de documentos jurídicos en C#:

  • Preservación de Estructura: Reconoce Títulos, Capítulos, Secciones, Artículos y Epígrafes.
  • Inyección de Contexto: Cada chunk vectorial almacena la ruta completa (ej. Ley de Seguros > TÍTULO II > Capítulo I > Art. 6).
  • Extracción Robusta: Uso de PdfPig para procesamiento de PDFs con caracteres especiales y dobles columnas.
🦙

2. Embeddings Locales en Ollama

La vectorización de las leyes y de las preguntas no depende de OpenAI ni de servicios externos de terceros:

  • Modelo: nomic-embed-text (768 dimensiones).
  • Privacidad: Los textos jurídicos nunca salen del VPS para ser embebidos.
  • Rendimiento: Vectorización en menos de 100 ms por consulta dentro de la red privada de Docker.
🐘

3. PostgreSQL 16 + pgvector HNSW

Almacenamiento de vectores de alta dimensionalidad con índices aproximados de vecinos más cercanos (ANN):

  • Índice HNSW: vector_cosine_ops con parámetros optimizados m=16, ef_construction=64.
  • Operador Coseno: Búsqueda ultrarrápida mediante el operador <=> nativo en C/PostgreSQL.
  • Latencia de consulta: Entre 40 y 180 ms para buscar entre más de 2.800 artículos vectorizados.
⚙️

4. ASP.NET Core 8 Web API

El cerebro orquestador que gestiona la seguridad, el rate limiting y el streaming en tiempo real:

  • Streaming SSE: Eventos Server-Sent (text/event-stream) para transmitir token a token (TTFT < 1s).
  • Rate Limiting Sliding Window: 30 req/min para búsquedas y 5 intentos/min para login por IP.
  • Anti-Injection Guard: Sanitización activa de queries para neutralizar jailbreaks y fuga de prompts.
🅰️

5. Frontend Conversacional (Angular 18)

Experiencia de usuario de última generación inspirada en las principales plataformas de IA conversacional:

  • Chat tipo ChatGPT: Caja de entrada inferior fija, preguntas del usuario y respuestas IA a la izquierda.
  • Diálogo Multi-turno: Mantiene la memoria conversacional en la sesión activa para preguntas de seguimiento.
  • Límite Adaptativo: 5 preguntas en modo público y preguntas ilimitadas para usuarios autenticados.
  • Telemetría en Modal: Medición en vivo del tiempo total, TTFT, latencia de Ollama y de Postgres.
🔐

6. Autenticación Microsoft Entra ID

Seguridad corporativa para el control de acceso administrativo e ingesta de nuevas normas:

  • Estándar OAuth 2.0 PKCE: Autenticación moderna con @azure/msal-angular y @azure/msal-browser.
  • Claims Transformation: Transformación de tokens JWT en el backend para validar claims de administración.
  • Rutas Protegidas: Ingesta de PDFs y cambio de modelos protegidos bajo políticas [Authorize(Roles = "Admin")].

Topología Docker Compose en el Servidor

Todos los servicios se ejecutan de manera aislada en una red bridge interna sin exponer la base de datos al exterior.

# Topología de red interna: salazarcode.net [Internet / Usuario] ➔ [Nginx Host: 443 SSL] ➔ proxy_pass ➔ [legal_rag_frontend: 8090 (Nginx + Angular)] │ proxy_pass /api/ ▼ [legal_rag_backend: 5000 (.NET 8 Web API)] ├──➔ [legal_rag_postgres: 5432 (pgvector)] └──➔ [legal_rag_ollama: 11434 (Embeddings)]

Experimenta la Consulta Jurídica en Tiempo Real

Interactúa con la Constitución, el Código Civil y la Ley del Contrato de Seguro mediante búsqueda semántica de alta fidelidad.

🚀 Abrir legal.salazarcode.net ↗ Explorar Código en GitHub