Alejandría

Busca en Alejandría

Lenguajes y marcos

DeepEval

Framework Python para evaluar sistemas LLM mediante métricas y casos de prueba.

01

En pocas palabras

Framework Python para evaluar sistemas LLM mediante métricas y casos de prueba.

Qué problema resuelve

Cambios de calidad que no se detectan con comparaciones textuales simples.

Cuándo utilizarlo

RAG, chatbots y agentes. Ejemplo: verificar relevancia y uso correcto de herramientas en CI.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Combina casos de prueba con métricas de respuestas, contexto y comportamiento del agente. Permite definir criterios específicos y ejecutar evaluaciones en el flujo de desarrollo.

Ejemplo de uso

Preparar preguntas con contexto y respuestas esperadas, incluyendo casos sin información suficiente. Comparar versiones por corrección, abstención adecuada y llamadas a herramientas.

Prueba al estilo Pytest

# test_asistente.py
from deepeval import assert_test
from deepeval.test_case import LLMTestCase, LLMTestCaseParams
from deepeval.metrics import AnswerRelevancyMetric, FaithfulnessMetric, GEval

correccion = GEval(
    name="Corrección",
    criteria="La respuesta debe coincidir en fechas e importes con la respuesta esperada.",
    evaluation_params=[
        LLMTestCaseParams.INPUT,
        LLMTestCaseParams.ACTUAL_OUTPUT,
        LLMTestCaseParams.EXPECTED_OUTPUT,
    ],
    threshold=0.7,
)

def test_vencimiento_cuota():
    pregunta = "¿Cuándo vence mi próxima cuota?"
    contexto = ["La cuota 7 del crédito 42 vence el 5 de noviembre por 250 000 COP."]
    caso = LLMTestCase(
        input=pregunta,
        actual_output=asistente.responder(pregunta, contexto),
        expected_output="El 5 de noviembre, por 250 000 COP.",
        retrieval_context=contexto,
    )
    assert_test(caso, [AnswerRelevancyMetric(threshold=0.7), FaithfulnessMetric(threshold=0.8), correccion])
deepeval test run test_asistente.py

Catálogo de métricas

Familia Métricas Pregunta
RAG – generación Answer relevancy, Faithfulness ¿Responde a lo pedido? ¿Se basa en el contexto?
RAG – recuperación Contextual precision, recall, relevancy ¿Se recuperaron los fragmentos correctos?
Agentes Tool correctness, Task completion, Argument correctness ¿Usó las herramientas adecuadas y logró el objetivo?
Personalizadas G-Eval, DAG (árbol de decisiones) Criterios propios del dominio
Seguridad Bias, Toxicity, PII leakage, red teaming ¿Hay respuestas dañinas o fugas?
Conversación Knowledge retention, Role adherence, Conversation completeness Calidad en diálogos de varios turnos

Separar las métricas de recuperación de las de generación permite saber si un fallo se debe al buscador o al modelo.

Datasets y generación sintética

EvaluationDataset agrupa casos reutilizables, y el Synthesizer genera preguntas a partir de documentos para arrancar un conjunto de pruebas. Revisa los casos generados: incluye preguntas reales de usuarios, preguntas sin respuesta en las fuentes y casos adversariales (synthetic data).

En CI

Ejecuta un subconjunto rápido en cada pull request y la batería completa de forma programada. Fija el modelo evaluador y su versión: cambiar el juez cambia las puntuaciones. Los resultados pueden enviarse a Confident AI (la plataforma de los autores) o compararse localmente. La técnica de fondo está en LLM as a judge.

Criterios de implementación

Fijar dataset, rúbrica y modelo evaluador; revisar falsos positivos. Separar verificaciones deterministas, como argumentos válidos, de puntuaciones generadas por otro modelo.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.