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.
PACS y RIS: el sistema nervioso de la radiología moderna
Leer artículo
Radiología remota: diagnósticos colaborativos sin fronteras
Leer artículo
ChatGPT: ¿Cuántos ecuatorianos consultan el famoso bot de inteligencia artificial?
Leer artículo
RAG con feedback humano: mejora continua para tu asistente inteligente
Leer artículo
In-context learning en serio: enseñando a tu modelo con pocos ejemplos
Leer artículo
Patrones de prompt reutilizables que todo desarrollador debería conocer
Leer artículo
Ética, privacidad y consentimiento en la medicina digital
Leer artículo
Big Data clínico: cómo el análisis de millones de historias salva vidas
Leer artículo
Observabilidad para LLMs: cómo monitorear lo que ocurre bajo el capó
Leer artículo
Cómo detectar y manejar alucinaciones en modelos de lenguaje
Leer artículo
Automatización de informes: la nueva era del radiólogo digital
Leer artículo
Cómo evolucionaron los sistemas de imágenes en medicina
Leer artículo
Bases de datos vectoriales explicadas fácil (y cuándo no las necesitas)
Leer artículo
Agentes inteligentes: cuándo usarlos y cuándo evitarlos
Leer artículo
Predicciones a partir de imágenes: la medicina que se adelanta
Leer artículo
Cómo la IA puede predecir infartos, cáncer y Alzheimer antes de que aparezcan
Leer artículo