Resumen ejecutivo — GPT-4o-mini (actual)
Faithfulness
0.91
▲ +0.09
vs baseline
✓ Threshold 0.85
Answer Relevancy
0.87
▲ +0.11
vs baseline
✓ Threshold 0.80
Context Precision
0.78
▲ +0.05
vs baseline
✓ Threshold 0.75
Context Recall
0.69
▲ +0.04
vs baseline
✗ Threshold 0.70 — FALLO CI
Comparativa de Modelos por Metrica
GPT-3.5-turbo (baseline) vs GPT-4o-mini (produccion actual). Umbral minimo definido en pytest CI.
| Metrica | GPT-3.5 | GPT-4o-mini | Delta | CI |
|---|---|---|---|---|
|
Faithfulness
Sin alucinaciones
|
0.82 | 0.91 | ▲ +0.09 | PASS |
|
Answer Relevancy
Responde la pregunta
|
0.76 | 0.87 | ▲ +0.11 | PASS |
|
Context Precision
Calidad del ranking
|
0.73 | 0.78 | ▲ +0.05 | PASS |
|
Context Recall
Cobertura de recuperacion
|
0.65 | 0.69 | ▲ +0.04 | FAIL |
|
Answer Correctness
Exactitud factual
|
0.79 | 0.86 | ▲ +0.07 | — |
|
Tone Consistency
Tono profesional/empatico
|
0.84 | 0.93 | ▲ +0.09 | — |
Radar de Calidad — GPT-4o-mini vs GPT-3.5-turbo
Superficie del modelo actual (azul) vs baseline (morado). Mayor area = mayor calidad global.
GPT-4o-mini
GPT-3.5-turbo
Faithfulness por Tipo de Pregunta — GPT-4o-mini
Las preguntas multi-contexto siguen siendo el punto debil del generador.
Context Recall por Tipo de Pregunta
Muestra: 8 Preguntas Criticas
Preguntas con peor rendimiento detectadas automaticamente. Rojo = bajo threshold.
| Pregunta | Tipo | Faith. | Recall | Flag |
|---|---|---|---|---|
| ¿Como configuro webhooks con autenticacion HMAC? | Multi | 0.78 | 0.41 | Recall bajo |
| ¿Cual es el SLA para incidencias P1? | Simple | 0.99 | 0.95 | — |
| ¿Por que mi pipeline Kafka falla con error 504? | Reason | 0.83 | 0.68 | Faith. baja |
| ¿Que limites de rate tiene la API en tier Enterprise? | Simple | 0.96 | 0.89 | — |
| Integrar Snowflake + Datadog + alertas custom | Multi | 0.71 | 0.38 | Ambas bajas |
| ¿Como exportar datos historicos en formato Parquet? | Reason | 0.91 | 0.73 | — |
| Diferencias entre streaming y batch en connectors | Multi | 0.79 | 0.44 | Recall bajo |
| ¿Puedo usar SSO con SAML en plan Professional? | Simple | 0.98 | 0.93 | — |
Configuracion CI/CD — pytest + Ragas
Archivo de thresholds activos. El test
test_context_recall ha fallado en esta ejecucion — bloquea merge hasta corregir el retriever.
tests/test_rag_quality.py
pytest
1 FAILED
# CULTIVA IA — DataStream Analytics RAG Quality Gate # Run: pytest tests/test_rag_quality.py -v --tb=short QUALITY_THRESHOLDS = { "faithfulness": 0.85, # PASS ✓ actual: 0.91 "answer_relevancy": 0.80, # PASS ✓ actual: 0.87 "context_precision": 0.75, # PASS ✓ actual: 0.78 "context_recall": 0.70, # FAIL ✗ actual: 0.69 (-0.01) } ============================================================= FAILURES ============================================================= FAILED tests/test_rag_quality.py::test_context_recall_above_threshold AssertionError: Context recall 0.69 below threshold 0.70 Worst questions (recall < 0.50): - "Como configuro webhooks con autenticacion HMAC?" → 0.41 - "Integrar Snowflake + Datadog + alertas custom" → 0.38 - "Diferencias entre streaming y batch en connectors" → 0.44 Recommendation: Increase top_k from 5 to 8 for multi-context queries, or add chunk overlap (current: 0, suggested: 50 tokens) ============================================================== short test summary info =============================================== FAILED tests/test_rag_quality.py::test_context_recall_above_threshold 3 passed, 1 failed in 47.3s
Plan de mejora
-
Aumentar top_k de 5 a 8 en queries multi-contexto Alta prioridadEl 100% de los fallos de recall ocurren en preguntas que requieren informacion de 3+ documentos. Con top_k=5 el retriever no cubre suficiente contexto. Cambio de 1 linea, impacto estimado +0.06 en recall. Bloquea merge actual.
-
Anadir chunk overlap de 50 tokens en la indexacion Alta prioridadLos chunks actuales de 512 tokens sin overlap rompen conceptos que cruzan fragmentos (ej. tablas de precios, configuraciones de conectores). Reindexar con overlap=50 mejora coherencia semantica en recuperacion.
-
Implementar re-ranking con cross-encoder para preguntas de razonamiento Media prioridadContext precision (0.78) tiene margen de mejora. Un cross-encoder MiniLM-L6-v2 aplicado a los top-8 candidatos puede subir precision +0.08. Latencia incremental ~40ms, aceptable para el usecase.
-
Ampliar test set sintetico a 100 preguntas Media prioridadCon 50 preguntas el intervalo de confianza en las metricas es ±0.03. Generar 50 adicionales (especialmente multi-contexto) con TestsetGenerator reduce ruido estadistico y hace el gate de CI mas fiable.
-
Anadir metrica ToneConsistency personalizada Baja prioridadEl score de tono (0.93) es alto pero no esta incluido en el gate CI. Formalizar el threshold (>=0.88) para proteger la experiencia de marca DataStream ante cambios de prompt.