Phase 19 - Lesson 08

Proyecto Final 08 — Chatbot RAG en Producción para un Sector Regulado

Harvey, Glean, Mendable y LlamaCloud ejecutan todos el mismo modelo de producción en 2026. Ingesta con docling o Unstructured y ColPali para elementos visuales. Búsqueda híbrida. Reclasificación (re-rank) con bge-reranker-v2-gemma. Síntesis con Claude Sonnet 4.7 mediante prompt caching con una tasa de aciertos del 60-80% en estado estable. Protección con Llama Guard 4 y NeMo Guardrails. Monitoreo con Langfuse y Phoenix. Evaluación con RAGAS en un conjunto de datos estándar (golden set) de 200 preguntas. Construya uno en un dominio regulado (legal, clínico, seguros), y el proyecto final consistirá en pasar el golden set, el equipo rojo (red team) y el panel de desvío (drift dashboard).

Tipo: Proyecto Final Idiomas: Python (pipeline + API), TypeScript (interfaz de chat) Prerrequisitos: Fase 5 (Procesamiento de Lenguaje Natural), Fase 7 (Transformers), Fase 11 (Ingeniería de LLM), Fase 12 (Multimodal), Fase 17 (Infraestructura), Fase 18 (Seguridad) Fases ejercitadas: P5 · P7 · P11 · P12 · P17 · P18 Tiempo: 30 horas

Problema

El RAG en dominios regulados (contratos legales, pólizas de seguro, protocolos de ensayos clínicos) es el modelo de producción más implementado de 2026 porque el ROI es obvio y las implicaciones son concretas. Harvey (Allen & Overy) lo desarrolló para el ámbito legal. Mendable ofrece la versión para documentación de desarrolladores. Glean cubre la búsqueda corporativa. El patrón consiste en: realizar la ingesta con alta fidelidad, recuperar de forma híbrida con reclasificación, sintetizar con aplicación de citas y prompt caching, proteger con múltiples capas de seguridad y monitorear el desvío continuamente.

Las partes difíciles no son el modelo. Son el cumplimiento consciente de la jurisdicción (HIPAA, GDPR, SOC2), la auditabilidad a nivel de cita, el control de costos (el prompt caching ofrece un descuento del 60-90% cuando la tasa de aciertos es alta), la detección de alucinaciones mediante la fidelidad de RAGAS y la detección de desvío cuando los documentos de origen se actualizan sin que el índice los incorpore a tiempo. Este proyecto final le exige implementar todo esto bajo un golden set de 200 preguntas junto con una suite de red team.

Concepto

El pipeline consta de dos frentes. Ingesta: docling o Unstructured analizan documentos estructurados; ColPali maneja los visualmente ricos; los fragmentos (chunks) obtienen resúmenes, etiquetas y etiquetas de acceso basadas en roles. Los vectores van a pgvector + pgvectorscale (para menos de 50 millones de vectores) o Qdrant Cloud; la búsqueda dispersa BM25 se ejecuta en paralelo. Conversación: LangGraph gestiona la memoria y las interacciones de múltiples turnos; cada consulta ejecuta una recuperación híbrida, reclasifica con bge-reranker-v2-gemma-2b, sintetiza con Claude Sonnet 4.7 (con prompt caching), pasa la salida por Llama Guard 4 y NeMo Guardrails, y emite una respuesta anclada en citas.

La pila de evaluación tiene cuatro capas. Golden set (200 preguntas/respuestas etiquetadas con citas) para exactitud. Red team (jailbreaks, intentos de extracción de PII, preguntas fuera de dominio) para seguridad. RAGAS para fidelidad / relevancia de la respuesta / precisión del contexto de forma automática en cada turno. Panel de desvío (Arize Phoenix) que monitorea semanalmente la calidad de la recuperación y la puntuación de alucinación.

El prompt caching es el mecanismo de control de costos. Claude 4.5+ y GPT-5+ admiten el almacenamiento en caché de prompts del sistema + contexto recuperado. Con una tasa de aciertos del 60-80%, el costo por consulta cae de 3 a 5 veces. El pipeline debe diseñarse para prefijos estables (prompt del sistema + contexto reclasificado primero) para lograr altas tasas de aciertos de caché.

Architecture

documents (contracts, protocols, policies)
      |
      v
docling / Unstructured parse + ColPali for visuals
      |
      v
chunks + summaries + role-labels + jurisdiction tags
      |
      v
pgvector + pgvectorscale  +  BM25 (Tantivy)
      |
query + role + jurisdiction
      |
      v
LangGraph conversational agent
   +--- retrieve (hybrid)
   +--- filter by role + jurisdiction
   +--- rerank (bge-reranker-v2-gemma-2b or Voyage rerank-2)
   +--- synthesize (Claude Sonnet 4.7, prompt cached)
   +--- guard (Llama Guard 4 + NeMo Guardrails + Presidio output PII scrub)
   +--- cite + return
      |
      v
eval:
  RAGAS faithfulness / answer_relevance / context_precision (online)
  Langfuse annotation queue (sampled)
  Arize Phoenix drift (weekly)
  red team suite (pre-release)

Pila Tecnológica

  • Ingesta: Unstructured.io o docling para documentos estructurados; ColPali para PDFs ricos en elementos visuales
  • Base de datos vectorial: pgvector + pgvectorscale para menos de 50 millones de vectores; Qdrant Cloud en caso contrario
  • Búsqueda dispersa: Tantivy BM25 con pesos de campo
  • Orquestación: LlamaIndex Workflows (ingesta) + LangGraph (conversación)
  • Reclasificador (Reranker): bge-reranker-v2-gemma-2b autoalojado o Voyage rerank-2 alojado
  • LLM: Claude Sonnet 4.7 con prompt caching; alternativa Llama 3.3 70B autoalojado
  • Evaluación: RAGAS 0.2 online, DeepEval para suites de alucinación y jailbreak
  • Observabilidad: Langfuse autoalojado con cola de anotaciones; Arize Phoenix para desvío (drift)
  • Barreras de seguridad (Guardrails): clasificador de entrada/salida Llama Guard 4, políticas NeMo Guardrails v0.12, eliminación de PII de Presidio
  • Cumplimiento: etiquetas de acesso basadas en roles en los fragmentos; etiquetas de jurisdicción para GDPR/HIPAA

Paso a Paso del Desarrollo

  1. Ingesta. Analice su corpus (de 1,000 a 10,000 documentos para una implementación seria) con Unstructured o docling. Para páginas escaneadas o con alta densidad visual, diríjalas a través de ColPali. Produzca fragmentos con resúmenes, etiquetas de rol y etiquetas de jurisdicción.

  2. Indexación. Embeddings densos (Voyage-3 o Nomic-embed-v2) en pgvector + pgvectorscale. Índice secundario BM25 mediante Tantivy. Filtros de rol y jurisdicción incluidos como carga útil (payload).

  3. Recuperación híbrida. Filtre por rol+jurisdicción primero; luego ejecute la búsqueda densa y BM25 en paralelo; combínelos con reciprocal rank fusion; envíe los 20 mejores resultados al reclasificador y los 5 mejores a la síntesis.

  4. Síntesis con prompt caching. Defina el prompt del sistema + políticas estáticas en el encabezado de la caché; el contexto reclasificado como extensión de la caché; la pregunta del usuario como sufijo no almacenado en caché. Intente lograr una tasa de aciertos de caché del 60-80% en régimen permanente.

  5. Barreras de seguridad. Llama Guard 4 en la entrada; las políticas de NeMo Guardrails bloquean preguntas fuera de dominio o temas prohibidos por política; Presidio limpia datos personales (PII) accidentales en la salida; posfiltro para la aplicación de citas.

  6. Golden set. 200 pares de preguntas y respuestas etiquetados por un experto en el dominio con (respuesta, citas). Califique al agente en la correspondencia exacta de citas, corrección de respuestas y fidelidad (RAGAS).

  7. Red team. 50 prompts adversarios: jailbreaks (PAIR, TAP), intentos de exfiltración de PII, filtraciones fuera de dominio y entre jurisdicciones. Califique con aprobado/fallido y gravedad.

  8. Panel de desvío. Arize Phoenix rastrea semanalmente la calidad de la recuperación (nDCG, fidelidad de citas). Alerte en caso de caída del 5%.

  9. Reporte de costos. Langfuse: tasa de aciertos de prompt-caching, tokens por consulta, desglose de $/consulta por etapa.

Use It

$ chat --role=analyst --jurisdiction=GDPR
> what is the data-retention obligation for EU user profiles under our contract?
[retrieve]  hybrid top-20 filtered to GDPR + analyst-role
[rerank]    top-5 kept
[synth]     claude-sonnet-4.7, cache hit 74%, 0.8s
answer:
  The contract (Section 12.4, Master Services Agreement dated 2024-03-11)
  obligates EU user profile deletion within 30 days of termination per GDPR
  Article 17. The DPA amendment (DPA-v2.1, Section 5) extends this to 14 days
  for "restricted" category data.
  citations: [MSA-2024-03-11 s12.4, DPA-v2.1 s5]

Entrega

outputs/skill-production-rag.md describe el entregable. Un chatbot para dominio regulado desplegado con etiquetas de cumplimiento, evaluado según los criterios de la rúbrica y monitoreado con seguimiento de desvío en tiempo real.

Peso Criterio Cómo se mide
25 Fidelidad RAGAS + relevancia de la respuesta Calificaciones online en el golden set (200 preguntas/respuestas)
20 Corrección de las citas Fracción de respuestas con anclas de origen verificables
20 Cobertura de barreras de seguridad Tasa de aprobación de Llama Guard 4 + resultados de la suite de jailbreak
20 Ingeniería de costo / latência Tasa de aciertos de prompt-cache, latencia p95, $/consulta
15 Panel de monitoreo de desvío Panel en tiempo real de Phoenix con la tendencia semanal de calidad de recuperación
100

Ejercicios

  1. Construya una segunda partición del corpus bajo una jurisdicción diferente (por ejemplo, HIPAA junto con GDPR). Demuestre que la filtración por rol+jurisdicción evita filtraciones cruzadas en una prueba de 20 preguntas que cruzan jurisdicciones.

  2. Mida la tasa de aciertos de prompt-cache a lo largo de una semana de tráfico de producción. Identifique qué consultas invalidan el prefijo de la caché. Reestructure.

  3. Agregue memoria de múltiples turnos con un búfer de resumen de 10k tokens. Mida si la fidelidad cae a medida que la conversación se prolonga.

  4. Reemplace Claude Sonnet 4.7 por Llama 3.3 70B autoalojado. Mida la diferencia en $/consulta y en la fidelidad.

  5. Agregue un modo "inseguro": si las puntuaciones más altas del reclasificador están por debajo de un umbral, el agente dirá "No tengo citas confiables" en lugar de responder. Mida la reducción de la falsa confianza.

Términos Clave

Término Lo que la gente dice Lo que realmente significa
Prompt caching "Sistema + contexto en caché" Característica de Claude/OpenAI: los tokens de prefijo almacenados en caché reciben un descuento del 60-90% al acertar
RAGAS "Evaluador de RAG" Calificación automatizada de fidelidad, relevancia de la respuesta y precisión del contexto
Golden set "Evaluación etiquetada" Más de 200 preguntas/respuestas etiquetadas por expertos con citas; la verdad fundamental
Jurisdiction tag "Etiqueta de cumplimiento" Ámbito de GDPR/HIPAA/SOC2 adjunto a los fragmentos; aplicado por el filtro de recuperación
Citation faithfulness "Tasa de respuesta fundamentada" Fracción de afirmaciones respaldadas por fragmentos de origen recuperables
Drift "Deterioro de la calidad de recuperación" Cambio semanal en nDCG o puntuación de citas; umbral de alerta del 5%
Red team "Evaluación adversaria" Prueba de seguridad antes del lanzamiento que contiene jailbreaks, extracción de PII y sondeos fuera de dominio

Lecturas Adicionales

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).