Saltar al contenido
IA y LLM receta SQL

Evaluar la calidad de recuperación de RAG por versión

Compare la recuperación de documentos relevantes, las respuestas fundamentadas, la latencia de recuperación y el costo de evaluación en todas las versiones del canal RAG.

Intermediorag_evaluation_eventsRevisado 2026-10-02Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Revisamos la sintaxis SQL, los campos necesarios, los resultados de ejemplo y las limitaciones de la consulta. Quién revisa esta página

Pregunta respondida

¿Mejoró el nuevo oleoducto RAG las tasas de recuperación y respuesta en tierra?

La calidad del RAG no es una puntuación. Esta consulta mantiene juntos la relevancia de la recuperación, la conexión a tierra de la respuesta, la latencia y el costo de la evaluación para un conjunto de pruebas versionado, de modo que se pueda comparar una ganancia de calidad aparente con respecto a las compensaciones operativas.

Esquema del evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampHora de finalización de la evaluación en UTC.
pipeline_versionUtf8Recuperador versionado, índice y configuración de avisos.
test_case_idUtf8Identificador de caso de evaluación estable.
evaluation_run_idUtf8Una ejecución de comparación compartida por las canalizaciones candidatas.
dataset_versionUtf8Versión fija del conjunto de datos de evaluación.
evaluator_versionUtf8Configuración versionada del evaluador, la rúbrica y los umbrales.
relevant_document_retrievedBooleanResultado de relevancia de recuperación revisado.
answer_groundedBooleanResultado de respuesta fundamentada revisado.
retrieval_latency_msInt64Latencia de la etapa de recuperación en milisegundos.
cost_usdFloat64Costo de evaluación estimado versionado en USD.
environmentUtf8Entorno de evaluación o producción.
DataFusionSQL

Copiar la consulta

sql
WITH cases AS (
  SELECT
    pipeline_version,
    test_case_id,
    COUNT(*) AS records,
    MAX(CASE WHEN relevant_document_retrieved THEN 1
      WHEN relevant_document_retrieved = false THEN 0 END) AS retrieved,
    MAX(CASE WHEN answer_grounded THEN 1
      WHEN answer_grounded = false THEN 0 END) AS grounded,
    MAX(retrieval_latency_ms) AS retrieval_latency_ms,
    MAX(cost_usd) AS cost_usd
  FROM rag_evaluation_events
  WHERE timestamp_utc >= now() - INTERVAL '30 days'
    AND environment = 'evaluation'
    AND evaluation_run_id = 'release-check-001'
    AND dataset_version = 'faq-v1'
    AND evaluator_version = 'grounding-rubric-v1'
    AND pipeline_version IS NOT NULL AND pipeline_version <> ''
    AND test_case_id IS NOT NULL AND test_case_id <> ''
  GROUP BY pipeline_version, test_case_id
)
SELECT
  pipeline_version,
  SUM(CASE WHEN records = 1 THEN 1 ELSE 0 END) AS test_cases,
  SUM(CASE WHEN records > 1 THEN 1 ELSE 0 END) AS conflicting_test_cases,
  COUNT(CASE WHEN records = 1 THEN retrieved END) AS retrieval_reviewed_cases,
  COUNT(CASE WHEN records = 1 THEN grounded END) AS grounding_reviewed_cases,
  100.0 * SUM(CASE WHEN records = 1 THEN retrieved END)
    / NULLIF(COUNT(CASE WHEN records = 1 THEN retrieved END), 0) AS retrieval_relevance_pct,
  100.0 * SUM(CASE WHEN records = 1 THEN grounded END)
    / NULLIF(COUNT(CASE WHEN records = 1 THEN grounded END), 0) AS grounded_answer_pct,
  AVG(CASE WHEN records = 1 THEN retrieval_latency_ms END) AS avg_retrieval_latency_ms,
  SUM(CASE WHEN records = 1 THEN cost_usd END) AS evaluation_cost_usd
FROM cases
GROUP BY pipeline_version
ORDER BY grounded_answer_pct DESC NULLS LAST,
  retrieval_relevance_pct DESC NULLS LAST, pipeline_version;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

Tasa de respuestas fundamentadas por canalización

Las barras muestran solo las tasas de respuestas fundamentadas. La tabla indica por separado la relevancia de recuperación y el denominador de casos evaluados de cada tasa.

pipeline_versiontest_casesconflicting_test_casesretrieval_reviewed_casesgrounding_reviewed_casesretrieval_relevance_pctgrounded_answer_pctavg_retrieval_latency_msevaluation_cost_usd
rag-v240447575950,05
rag-v1404450501200,04

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Grounded-answer rate by pipeline: gráfico estático de valores sintéticos de grounded_answer_pct del resultado del ejemplo Evaluate RAG retrieval quality by version
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descarga los datos de ejemplo

El paquete JSON incluye el contrato de evento escrito, reproducible filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1Sustituya los filtros de ejecución, conjunto de datos y evaluador por una comparación fija. Conserve las preguntas y respuestas en el sistema de evaluación.
  2. 2Solo se cuenta un registro final por canalización y caso. Los casos con registros en conflicto se muestran y se excluyen de las tasas, la latencia y el coste.
  3. 3Las evaluaciones nulas siguen siendo desconocidas. Cada tasa de calidad usa su propio denominador de casos evaluados; los casos ausentes requieren otra comparación con el conjunto de pruebas previsto.
  4. 4La versión de canalización debe identificar el recuperador, la instantánea del índice, el reclasificador y el mensaje de respuesta utilizados para la prueba.
  5. 5La relevancia de la recuperación y la fundamentación de la respuesta permanecen separadas porque un buen documento aún puede producir una respuesta sin fundamento.
  6. 6La latencia y el costo mantienen la comparación de calidad conectada a las limitaciones de producción.

Casos límite que debes comprobar

  • Una ejecución debe usar la misma lista fija de casos y la misma configuración del evaluador en todas las canalizaciones. Distintas versiones del evaluador miden cosas distintas.
  • El esquema rag_retrieval_evaluated enlazado usa un contrato distinto. Añade los campos indicados arriba antes de usar esta consulta. Su duration_ms mide el tiempo de extremo a extremo, no retrieval_latency_ms; retrieval_score necesita una rúbrica explícita de relevancia antes de convertirse en una evaluación booleana.
  • Investigue conflicting_test_cases antes de decidir una publicación. Se excluyen los identificadores ausentes; que no haya filas de resultado no significa una tasa de fallos de cero.
  • La latencia y el coste incluyen solo registros sin conflictos con esos valores presentes, no necesariamente toda la ejecución.
  • Utilice los mismos casos de prueba versionados en todas las canalizaciones e informe los casos recién agregados o eliminados.
  • Los calificadores humanos y basados en modelos necesitan rúbricas documentadas, calibración y revisión de desacuerdos.
  • No almacene pasajes de fuentes privadas ni respuestas sin procesar en telemetría general de forma predeterminada.

Panel recomendado

  • Gráfico de barras: grounded_answer_pct por canalización; relevancia de recuperación y recuentos evaluados en la tabla
  • Tendencia: resultados de la evaluación a medida que cambia el conjunto de pruebas
  • Tabla: latencia, costo, recuento de pruebas y versión del calificador

Guía de alerta

Utilice una puerta de lanzamiento de evaluación con un recuento mínimo de pruebas y una tolerancia de regresión revisada en lugar de una alerta de paginación de producción.

Leer configuración de alerta

Configura los eventos que necesita esta consulta

Instrumentación y guías relacionadas.

Definir los datos de origen

Esquemas de eventos para este análisis.

Continuar el análisis

Ejecútalo con tus eventos

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API