Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Envoyez des requêtes de test aux modèles déployés, aux agents d’invite ou aux agents hébergés et évaluez les réponses générées au moment de l’exécution.
Prerequisites
- Remplissez les conditions préalables à l’évaluation cloud et la configuration du client.
- Jeu de données JSONL ou CSV de requêtes d’entrée.
- Un modèle déployé, un assistant de requête ou un assistant hébergé à utiliser comme cible.
Les exemples utilisent le client sdk configuré dans Configurer le client sdk.
Évaluer une cible de modèle
Envoyer des requêtes à un modèle déployé au moment de l’exécution. Évaluez les réponses à l’aide du azure_ai_target_completions type de source de données avec une azure_ai_model cible. Vos données d’entrée contiennent des requêtes. Le modèle génère des réponses, que vous évaluez ensuite.
Important
Avant de commencer, effectuez la configuration du client et préparez les données d’entrée.
Note
Vous pouvez utiliser le routeur de modèle comme modèle cible. Le routeur de modèle n’est pris en charge que comme cible d’évaluation. Il ne peut pas être sélectionné comme modèle pour toute autre fonctionnalité d’évaluation.
Définir le modèle de message et la cible
Le input_messages modèle contrôle la façon dont les requêtes sont envoyées au modèle. Permet {{item.query}} de référencer des champs à partir de vos données d’entrée. Spécifiez le modèle à évaluer et les paramètres d’échantillonnage facultatifs :
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,
},
}
Configurer des évaluateurs et des mappages de données
Lorsque le modèle génère des réponses au moment de l’exécution, utilisez-le {{sample.output_text}}data_mapping pour référencer la sortie du modèle. Permet {{item.field}} de référencer des champs à partir de vos données d’entrée.
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}}",
},
),
]
Créer une évaluation et exécuter
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,
)
Pour obtenir un exemple exécutable complet, consultez sample_model_evaluation.py sur GitHub. Pour vérifier l’achèvement et interpréter les résultats, consultez Obtenir les résultats de l’évaluation dans le cloud.
Tip
Pour ajouter une autre exécution d’évaluation, utilisez le même code.
Évaluer une cible d’agent
Envoyez des requêtes à un agent Foundry au moment de l’exécution et évaluez les réponses à l’aide du azure_ai_target_completions type de source de données avec une azure_ai_agent cible. Ce scénario fonctionne à la fois pour les agents d’invite et les agents hébergés.
Important
Avant de commencer, effectuez la configuration du client et préparez les données d’entrée.
Tip
Les agents hébergés qui utilisent le protocole de réponses fonctionnent avec les mêmes exemples de code présentés ici. Pour les agents hébergés qui utilisent le protocole d’appel, le input_messages format est différent. Pour plus d’informations, consultez le protocole d’appel de l’agent hébergé .
Définir le modèle de message et la cible
Le input_messages modèle contrôle la façon dont les requêtes sont envoyées à l’agent. Permet {{item.query}} de référencer des champs à partir de vos données d’entrée. Spécifiez l’agent à évaluer par nom :
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.
}
Configurer des évaluateurs et des mappages de données
Lorsque l’agent génère des réponses au moment de l’exécution, utilisez les variables {{sample.*}} dans data_mapping pour faire référence à la sortie de l’agent :
| Variable | Description | Utilisé pour |
|---|---|---|
{{sample.output_text}} |
Réponse de texte brut de l’agent. | Évaluateurs qui attendent une réponse de chaîne (par exemple, coherence, violence). |
{{sample.output_items}} |
Sortie JSON structurée de l’agent, y compris les appels d’outils. | Évaluateurs qui ont besoin d’un contexte d’interaction complet (par exemple, task_adherence). |
{{item.field}} |
Champ de vos données d’entrée. | Champs d’entrée tels que query ou ground_truth. |
Tip
Le query champ peut contenir un JSON structuré, y compris les messages système et l’historique des conversations. Certains évaluateurs d’agents, tels que task_adherence, utilisent ce contexte pour une évaluation plus précise. Pour plus d’informations sur la mise en forme des requêtes, consultez les évaluateurs d’agent.
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}}",
},
),
]
Créer une évaluation et exécuter
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,
)
Pour obtenir un exemple exécutable complet, consultez sample_agent_evaluation.py sur GitHub. Pour vérifier l’achèvement et interpréter les résultats, consultez Obtenir les résultats de l’évaluation dans le cloud.
Protocole d’appel d’agent hébergé
Les agents hébergés qui utilisent le protocole d’appel prennent en charge le même azure_ai_agent type cible, mais utilisent un format de forme input_messageslibre. Au lieu du format de modèle structuré, fournissez un objet JSON qui est mappé directement au corps de la requête de l’agent /invocations . Utilisez les espaces réservés {{item.*}} pour remplacer les champs de vos données d’entrée.
Si un agent hébergé prend en charge les réponses et les protocoles d’appel, le service utilise par défaut le protocole d’appel.
Définir le format et la cible du message
input_messages = {"message": "{{item.query}}"}
target = {
"type": "azure_ai_agent",
"name": "my-hosted-agent", # Replace with your hosted agent name
"version": "1",
}
Créer une évaluation et exécuter
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 configuration de l’évaluateur et les mappages de données sont les mêmes que pour l’évaluation rapide de l’agent. Utiliser {{sample.output_text}} pour la réponse de texte de l’agent et {{sample.output_items}} pour la sortie structurée complète, y compris les appels d’outils.