Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Envíe consultas de prueba a los modelos implementados, solicite agentes o agentes hospedados y evalúe las respuestas generadas en tiempo de ejecución.
Prerequisites
- Complete los requisitos previos de evaluación en la nube y la configuración del cliente.
- Un conjunto de datos JSONL o CSV de consultas de entrada.
- Un modelo, agente de indicaciones o agente hospedado implementado para utilizarlo como objetivo.
En los ejemplos se usa el cliente del SDK configurado en Configuración del cliente del SDK.
Evaluar un objetivo del modelo
Enviar consultas a un modelo implementado en tiempo de ejecución. Evalúe las respuestas usando el tipo de origen de datos azure_ai_target_completions con azure_ai_model como destino. Los datos de entrada contienen consultas. El modelo genera respuestas, que después se evalúan.
Importante
Antes de comenzar, complete la configuración del cliente y Prepare los datos de entrada.
Nota:
Puede usar el enrutador de modelos como modelo de destino. El enrutador de modelos se admite solo como objetivo de evaluación. No se puede seleccionar como modelo para ninguna otra característica de evaluación.
Definir la plantilla de mensaje y el destino
La input_messages plantilla controla cómo se envían las consultas al modelo. Use {{item.query}} para hacer referencia a campos de los datos de entrada. Especifique el modelo para evaluar y los parámetros de muestreo opcionales:
input_messages = {
"type": "template",
"template": [
{
"type": "message",
"role": "user",
"content": {
"type": "input_text",
"text": "{{item.query}}"
}
}
]
}
target = {
"type": "azure_ai_model",
"model": "gpt-5-mini",
"sampling_params": {
"top_p": 1.0,
"max_completion_tokens": 2048,
},
}
Configurar evaluadores y mapeos de datos
Cuando el modelo genera respuestas en tiempo de ejecución, use {{sample.output_text}} en data_mapping para hacer referencia a la salida del modelo. Use {{item.field}} para hacer referencia a campos de los datos de entrada.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
include_sample_schema=True,
)
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Crear evaluación y ejecutar
eval_object = openai_client.evals.create(
name="Model Target Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="model-target-evaluation",
data_source=data_source,
)
Para obtener un ejemplo completo de ejecución, consulte sample_model_evaluation.py en GitHub. Para sondear la finalización e interpretar los resultados, consulte Obtención de resultados de evaluación en la nube.
Tip
Para agregar otra ejecución de evaluación, use el mismo código.
Evaluar un objetivo del agente
Enviar consultas a un agente de Foundry en tiempo de ejecución y evaluar las respuestas mediante el tipo de origen de datos azure_ai_target_completions con un destino azure_ai_agent. Este escenario funciona tanto para agentes bajo demanda como agentes hospedados.
Importante
Antes de comenzar, complete la configuración del cliente y Prepare los datos de entrada.
Tip
Los agentes hospedados que usan el protocolo de respuestas funcionan con los mismos ejemplos de código que se muestran aquí. En el caso de los agentes hospedados que usan el protocolo de invocaciones, el input_messages formato es diferente. Consulte Protocolo de invocaciones de agente hospedado para obtener más información.
Definir la plantilla de mensaje y el destino
La input_messages plantilla controla cómo se envían las consultas al agente. Use {{item.query}} para hacer referencia a campos de los datos de entrada. Especifique el agente por nombre para evaluarlo:
input_messages = {
"type": "template",
"template": [
{
"type": "message",
"role": "developer",
"content": {
"type": "input_text",
"text": "You are a helpful assistant. Answer clearly and safely."
}
},
{
"type": "message",
"role": "user",
"content": {
"type": "input_text",
"text": "{{item.query}}"
}
}
]
}
target = {
"type": "azure_ai_agent",
"name": "my-agent",
"version": "1" # Optional. Uses latest version if omitted.
}
Configurar evaluadores y mapeos de datos
Cuando el agente genera respuestas en tiempo de ejecución, use {{sample.*}} variables en data_mapping para hacer referencia a la salida del agente:
| Variable | Description | Usado para |
|---|---|---|
{{sample.output_text}} |
Respuesta de texto sin formato del agente. | Evaluadores que esperan una respuesta de cadena (por ejemplo, coherence, violence). |
{{sample.output_items}} |
Salida JSON estructurada del agente, incluidas las llamadas a herramientas. | Evaluadores que necesitan contexto de interacción completo (por ejemplo, task_adherence). |
{{item.field}} |
Campo de datos de entrada. | Campos de entrada como query o ground_truth. |
Tip
El query campo puede contener JSON estructurado, incluidos los mensajes del sistema y el historial de conversaciones. Algunos evaluadores de agentes, como task_adherence, usan este contexto para obtener una puntuación más precisa. Para más información sobre el formato de consulta, consulte evaluadores de agentes.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
include_sample_schema=True,
)
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Crear evaluación y ejecutar
eval_object = openai_client.evals.create(
name="Agent Target Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
agent_eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="agent-target-evaluation",
data_source=data_source,
)
Para obtener un ejemplo completo de ejecución, consulte sample_agent_evaluation.py en GitHub. Para sondear la finalización e interpretar los resultados, consulte Obtención de resultados de evaluación en la nube.
Protocolo de invocaciones de agente hospedado
Los agentes hospedados que usan el protocolo de invocaciones admiten el mismo azure_ai_agent tipo de destino, pero usan un formato de forma input_messageslibre. En lugar del formato de plantilla estructurado, proporcione un objeto JSON que se asigne directamente al cuerpo de la solicitud del /invocations agente. Utilice {{item.*}} marcadores de posición para sustituir los campos de los datos de entrada.
Si un agente hospedado admite tanto las respuestas como los protocolos de invocación, el servicio usa el protocolo de invocaciones de forma predeterminada.
Definir el formato de mensaje y el destino
input_messages = {"message": "{{item.query}}"}
target = {
"type": "azure_ai_agent",
"name": "my-hosted-agent", # Replace with your hosted agent name
"version": "1",
}
Crear evaluación y ejecutar
eval_object = openai_client.evals.create(
name="Hosted Agent Invocations Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="hosted-agent-invocations-evaluation",
data_source=data_source,
)
La configuración del evaluador y las asignaciones de datos son las mismas que para la evaluación de agente de instrucciones. Use {{sample.output_text}} para la respuesta de texto del agente y {{sample.output_items}} para la salida estructurada completa, incluidas las llamadas a herramientas.