RAG con feedback humano: mejora continua para tu asistente inteligente
Inteligencia Artificial · Serie LLMs y n8n
RAG con feedback humano: mejora continua para tu asistente inteligente
Tu asistente mejora cuando el usuario opina y tú actúas con método. Diseña un ciclo de feedback que corrija recuperación, ranking, prompts y el propio corpus.
En el post anterior vimos cómo contener alucinaciones. Hoy cerramos el círculo: feedback humano en RAG para identificar fallas y convertirlas en mejoras persistentes del sistema.
Qué feedback recoger (y cómo usarlo)
- Explícito: 👍/👎, razón seleccionable (p. ej., “faltó evidencia”, “cita incorrecta”, “desactualizado”), edición de la respuesta, suggested answer.
- Implícito: clic en documento, tiempo de lectura (dwell), scroll, abandono, reformulación de la misma pregunta.
- Débil pero útil: escalado a humano, tickets creados, reintentos con más contexto.
Dónde aplicar las mejoras
- Recuperación: sinónimos y expansiones de consulta, filtros por metadatos, Top-K, reranking.
- Ranking: ajustar pesos (título > cuerpo), priorizar frescura o autoridad.
- Prompting: exigir citas, política de abstención y formato; añadir ejemplos few-shot con casos fallados.
- Chunking/ingesta: tamaños y solapes; títulos y anclas; división por secciones reales.
- Corpus: subir/actualizar documentos faltantes; retirar fuentes engañosas; normalizar versiones.
Diagnóstico de causa raíz (plantilla)
{
"request_id": "uuid",
"vote": "up|down",
"reason": "missing_context|wrong_citation|hallucination|outdated|tone|format|latency",
"signals": {"clicks":[{"docId":"...","dwell_ms":4200}], "reformulated": true},
"gold_decision": "supported|insufficient|refuted|null",
"action_suggested": ["add_doc","fix_chunking","expand_query","lower_topk","update_prompt"]
}
La clave es normalizar razones para generar acciones automáticas.
Micro-workflow en n8n: “Feedback → Mejora”
- Webhook → recibe
{request_id, vote, reason, signals}. - Function (triage) → mapea
reasona acciones:missing_context→ expand_query (sinónimos, HyDE), subirTop-Ktemporal.wrong_citation→ re-rank forzado por source=trusted; revisar fragmentos.outdated→ crear tarea “actualizar doc” y marcar colección para reindex.hallucination→ reforzar abstención y exigir citas.
- HTTP/DB → registra feedback y enlaza a
request_id, usuario y versión de pipeline. - Branch:
- Si expand_query → vuelve a ejecutar RAG con expansión + rerank y guarda el delta de calidad.
- Si add_doc → crea ticket en backlog “corpus” (con URL/fuente sugerida).
- Si update_prompt → abre PR de plantilla (A/B listo).
- Notifier → avisa al owner del corpus cuando haya ≥N votos negativos sobre el mismo tema.
- Database → agrega métricas: win-rate post-corrección, groundedness y costo.
Métricas de mejora continua
- Acceptance rate (👍 / total) y su evolución por tema.
- Groundedness (% de hechos con cita válida) y Recall@K post-expand_query.
- Time-to-fix (de feedback a corrección efectiva).
- Click-through a documentos citados y dwell medio.
- Coste/latencia del pipeline con y sin correcciones automáticas.
A/B de correcciones
No “confíes” en tu cambio: pruébalo. Mantén dos variantes (pipeline.vN vs pipeline.vN+1) y mide: aceptación, groundedness, costo y p95. Promociona solo si mejora sin romper seguridad.
Anti-patrones
- Feedback libre no estructurado (texto suelto) → difícil de accionar. Usa razones normalizadas.
- Sobreajuste a casos raros → exige N ejemplos antes de cambiar el prompt o el corpus.
- Reintentos ciegos → reintenta con differences concretas (qué falló) o abstente.
- Sin versión de pipeline → imposible saber qué cambio ayudó o dañó.
Tips para Laravel/PHP
- Esquema:
feedback(id, request_id, user_id, vote, reason, meta_json, created_at) pipeline_versions(id, name, rag_index_v, embedder_v, prompt_v, chunker_v, created_at) - Endpoints:
POST /feedback(rate limit + auth),GET /feedback/stats(por tema/colección). - Jobs:
RetryRAG(con expansión),ReindexCollection,UpdatePromptVariant. - Política de datos: anonimiza PII, guarda solo metadatos y
docId/URL pública. - Observabilidad: añade
request_idypipeline_versiona cada traza/registro.
Conclusión
El feedback humano convierte un RAG “reactivo” en un sistema que aprende de sus errores. Con razones normalizadas, acciones automáticas y A/B disciplinado, tu asistente mejorará semana a semana.
← Anterior: Cómo detectar y manejar alucinaciones en modelos de lenguaje
Artículos Relacionados
Continúa explorando contenido similar.
Las tendencias más recientes en el desarrollo web: Innovación y Creatividad en la Era Digital
Leer artículo
MLOps sin dolor: versionado de prompts, datos y evaluaciones
Leer artículo
Detección automática de tumores: algoritmos que ven lo invisible
Leer artículo
Observabilidad para LLMs: cómo monitorear lo que ocurre bajo el capó
Leer artículo
Arquitectura mínima para construir tu primer sistema con IA
Leer artículo
Agentes inteligentes: cuándo usarlos y cuándo evitarlos
Leer artículo
Cómo evolucionaron los sistemas de imágenes en medicina
Leer artículo
La incursión de la Impresión 3D en la creación de implantes médicos
Leer artículo
Automatización de procesos clínicos: qué tareas dejarán de hacer los médicos
Leer artículo
Operación integral de IA con n8n: datos de calidad, resiliencia e integración práctica
Leer artículo
Menos citas perdidas: la agenda médica que trabaja sola
Leer artículo
ChatGPT: ¿Cuántos ecuatorianos consultan el famoso bot de inteligencia artificial?
Leer artículo