Juiz de correção
O juiz Correctness avalia se a resposta do seu aplicativo GenAI é factualmente correta comparando-a com as informações básicas fornecidas (expected_facts ou expected_response).
Este juiz LLM integrado foi projetado para avaliar as respostas da aplicação em relação às respostas corretas conhecidas.
Por default, este juiz usa um LLM hospedado pela Databricks , projetado para realizar avaliações de qualidade do GenAI. Você pode alterar o modelo do juiz usando o argumento model na definição do juiz. O modelo deve ser especificado no formato <provider>:/<model-name>, onde <provider> é um provedor de modelo compatível com LiteLLM. Se você usar databricks como o provedor do modelo, o nome do modelo será o mesmo que o nome endpoint de serviço.
Pré-requisitos para executar os exemplos
- 
Instale o site MLflow e o pacote necessário
Bashpip install --upgrade "mlflow[databricks]>=3.4.0" - 
Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.
 
Exemplos de uso
from mlflow.genai.scorers import Correctness
correctness_judge = Correctness()
# Example 1: Response contains expected facts
feedback = correctness_judge(
    inputs={"request": "What is MLflow?"},
    outputs={"response": "MLflow is an open-source platform for managing the ML lifecycle."},
    expectations={
        "expected_facts": [
            "MLflow is open-source",
            "MLflow is a platform for ML lifecycle"
        ]
    }
)
print(feedback.value)  # "yes"
print(feedback.rationale)  # Explanation of which facts are supported
# Example 2: Response missing or contradicting facts
feedback = correctness_judge(
    inputs={"request": "When was MLflow released?"},
    outputs={"response": "MLflow was released in 2017."},
    expectations={"expected_facts": ["MLflow was released in June 2018"]}
)
# Example 3: Using expected_response instead of expected_facts
feedback = correctness_judge(
    inputs={"request": "What is the capital of France?"},
    outputs={"response": "The capital of France is Paris."},
    expectations={"expected_response": "Paris is the capital of France."}
)
Uso com mlflow.evaluate()
O juiz Correctness pode ser usado diretamente com a estrutura de avaliação do MLflow.
Requisitos:
- Requisitos de rastreamento : 
inputseoutputsdevem estar na extensão raiz do Trace - Ground-truth rótulo : Obrigatório - o senhor deve fornecer 
expected_factsouexpected_responseno dicionárioexpectations 
from mlflow.genai.scorers import Correctness
# Create evaluation dataset with ground truth
eval_dataset = [
    {
        "inputs": {"query": "What is the capital of France?"},
        "outputs": {
            "response": "Paris is the magnificent capital city of France, known for the Eiffel Tower and rich culture."
        },
        "expectations": {
            "expected_facts": ["Paris is the capital of France."]
        },
    },
    {
        "inputs": {"query": "What are the main components of MLflow?"},
        "outputs": {
            "response": "MLflow has four main components: Tracking, Projects, Models, and Registry."
        },
        "expectations": {
            "expected_facts": [
                "MLflow has four main components",
                "Components include Tracking",
                "Components include Projects",
                "Components include Models",
                "Components include Registry"
            ]
        },
    },
    {
        "inputs": {"query": "When was MLflow released?"},
        "outputs": {
            "response": "MLflow was released in 2017 by Databricks."
        },
        "expectations": {
            "expected_facts": ["MLflow was released in June 2018"]
        },
    }
]
# Run evaluation with Correctness scorer
eval_results = mlflow.genai.evaluate(
    data=eval_dataset,
    scorers=[
        Correctness(
            model="databricks:/databricks-gpt-oss-120b",  # Optional. Defaults to custom Databricks model.
        )
    ]
)
Alternativa: usar expected_response
Você também pode usar expected_response em vez de expected_facts:
eval_dataset_with_response = [
    {
        "inputs": {"query": "What is MLflow?"},
        "outputs": {
            "response": "MLflow is an open-source platform for managing the ML lifecycle."
        },
        "expectations": {
            "expected_response": "MLflow is an open-source platform for managing the machine learning lifecycle, including experimentation, reproducibility, and deployment."
        },
    }
]
# Run evaluation with expected_response
eval_results = mlflow.genai.evaluate(
    data=eval_dataset_with_response,
    scorers=[Correctness()]
)
O uso do site expected_facts é recomendado em vez do site expected_response, pois permite uma avaliação mais flexível - a resposta não precisa corresponder palavra por palavra, apenas conter os fatos do site key.
Personalização
Você pode personalizar o juiz fornecendo um modelo de juiz diferente:
from mlflow.genai.scorers import Correctness
# Use a different judge model
correctness_judge = Correctness(
    model="databricks:/databricks-gpt-5-mini"  # Or any LiteLLM-compatible model
)
# Use in evaluation
eval_results = mlflow.genai.evaluate(
    data=eval_dataset,
    scorers=[correctness_judge]
)
Interpretando resultados
O juiz retorna um objeto Feedback com:
value: " sim " se a resposta estiver correta, " não " se incorretarationale: Explicação detalhada de quais fatos estão comprovados ou ausentes
Próximas etapas
- Explore outros juízes integrados - Saiba mais sobre outros juízes de avaliação de qualidade integrados
 - Crie juízes personalizados - Crie juízes de avaliação específicos do domínio
 - avaliações de execução - Use juízes na avaliação abrangente de aplicativos