Notes
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.
Important
Les éléments marqués (aperçu) dans cet article sont actuellement en aperçu public. Cette version préliminaire est fournie sans contrat de niveau de service, et nous la déconseillons pour les charges de travail en production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure.
Les agents sont des assistants de productivité puissants. Ils peuvent planifier, prendre des décisions et exécuter des actions. Les agents sont généralement la première raison par le biais d’intentions utilisateur dans les conversations, sélectionnez les outils appropriés pour appeler et satisfaire les demandes de l’utilisateur, et effectuez différentes tâches en fonction de leurs instructions.
Évaluation des agents Azure AI
Les agents émettent des messages et fournissent les entrées ci-dessus nécessitent généralement l’analyse des messages et l’extraction des informations pertinentes. Si vous créez des agents à l’aide d’Azure AI Agent Service, nous fournissons une intégration native pour l’évaluation qui accepte directement leurs messages d’agent. Pour plus d’informations, consultez un exemple de bout en bout d’évaluation des agents dans azure AI Agent Service.
IntentResolution
En outre, ToolCallAccuracy
spécifique TaskAdherence
aux flux de travail agentiques, vous pouvez également évaluer d’autres aspects de qualité et de sécurité de vos flux de travail agentiques, en tirant parti d’une suite complète d’évaluateurs intégrés. Nous prenons en charge cette liste d’évaluateurs pour les messages de l’agent Azure AI à partir de notre convertisseur :
-
Qualité :
IntentResolution
, ,ToolCallAccuracy
,TaskAdherence
Relevance
,Coherence
,Fluency
-
Sécurité :
CodeVulnerabilities
,Violence
Self-harm
Sexual
HateUnfairness
IndirectAttack
, .ProtectedMaterials
Nous allons montrer des exemples de IntentResolution
, ToolCallAccuracy
TaskAdherence
ici. Consultez d’autres exemples d’évaluation des agents Azure AI pour d’autres évaluateurs avec la prise en charge des messages de l’agent Azure AI.
Configuration du modèle pour les évaluateurs assistés par l’IA
Pour référence dans les extraits de code suivants, les évaluateurs assistés par l’IA utilisent une configuration de modèle pour le juge LLM :
import os
from azure.ai.evaluation import AzureOpenAIModelConfiguration
from dotenv import load_dotenv
load_dotenv()
model_config = AzureOpenAIModelConfiguration(
azure_endpoint=os.environ["AZURE_ENDPOINT"],
api_key=os.environ.get["AZURE_API_KEY"],
azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
api_version=os.environ.get("AZURE_API_VERSION"),
)
Conseil / Astuce
Nous vous recommandons d’utiliser o3-mini
pour un équilibre des capacités de raisonnement et de l’efficacité des coûts.
Résolution d’intention
IntentResolutionEvaluator
mesure la façon dont le système identifie et comprend la demande d’un utilisateur, y compris la portée de l’intention de l’utilisateur, pose des questions de clarification et rappelle aux utilisateurs finaux son étendue de fonctionnalités. Un score plus élevé signifie une meilleure identification de l’intention de l’utilisateur.
Exemple de résolution d’intention
from azure.ai.evaluation import IntentResolutionEvaluator
intent_resolution = IntentResolutionEvaluator(model_config=model_config, threshold=3)
intent_resolution(
query="What are the opening hours of the Eiffel Tower?",
response="Opening hours of the Eiffel Tower are 9:00 AM to 11:00 PM."
)
Sortie de résolution d’intention
Le score numérique sur une échelle likert (entier 1 à 5) et un score plus élevé est préférable. Compte tenu d’un seuil numérique (par défaut à 3), nous exéclons également « pass » si le score >= seuil ou « fail » sinon. L’utilisation de la raison et des champs supplémentaires peut vous aider à comprendre pourquoi le score est élevé ou faible.
{
"intent_resolution": 5.0,
"intent_resolution_result": "pass",
"intent_resolution_threshold": 3,
"intent_resolution_reason": "The response provides the opening hours of the Eiffel Tower clearly and accurately, directly addressing the user's query. It includes specific times, which fully resolves the user's request for information about the opening hours.",
"additional_details": {
"conversation_has_intent": True,
"agent_perceived_intent": "inquire about opening hours",
"actual_user_intent": "find out the opening hours of the Eiffel Tower",
"correct_intent_detected": True,
"intent_resolved": True
}
}
Si vous créez des agents en dehors d’Azure AI Agent Serice, cet évaluateur accepte un schéma classique pour les messages d’agent. Pour plus d’informations, consultez notre exemple de notebook pour la résolution d’intentions.
Précision des appels de l’outil
ToolCallAccuracyEvaluator
mesure la capacité d’un agent à sélectionner les outils appropriés, extraire et traiter les paramètres corrects des étapes précédentes du flux de travail agentique. Il détecte si chaque appel d’outil effectué est exact (binaire) et signale les scores moyens, qui peuvent être interprétés comme un taux de transmission entre les appels d’outil effectués.
Remarque
ToolCallAccuracyEvaluator
prend uniquement en charge l’évaluation de l’outil de fonction d’Azure AI Agent, mais ne prend pas en charge l’évaluation intégrée de l’outil. Les messages de l’agent doivent avoir au moins un outil de fonction appelé pour être évalué.
Exemple de précision de l’appel d’outil
from azure.ai.evaluation import ToolCallAccuracyEvaluator
tool_call_accuracy = ToolCallAccuracyEvaluator(model_config=model_config, threshold=3)
tool_call_accuracy(
query="How is the weather in Seattle?",
tool_calls=[{
"type": "tool_call",
"tool_call_id": "call_CUdbkBfvVBla2YP3p24uhElJ",
"name": "fetch_weather",
"arguments": {
"location": "Seattle"
}
}],
tool_definitions=[{
"id": "fetch_weather",
"name": "fetch_weather",
"description": "Fetches the weather information for the specified location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The location to fetch weather for."
}
}
}
}
]
)
Sortie de précision de l’appel de l’outil
Le score numérique (taux de transmission des appels d’outils corrects) est de 0 à 1 et un score plus élevé est meilleur. Compte tenu d’un seuil numérique (par défaut à 3), nous exéclons également « pass » si le score >= seuil ou « fail » sinon. L’utilisation des champs de détails des appels de raison et d’outil peut vous aider à comprendre pourquoi le score est élevé ou faible.
{
"tool_call_accuracy": 1.0,
"tool_call_accuracy_result": "pass",
"tool_call_accuracy_threshold": 0.8,
"per_tool_call_details": [
{
"tool_call_accurate": True,
"tool_call_accurate_reason": "The input Data should get a Score of 1 because the TOOL CALL is directly relevant to the user's question about the weather in Seattle, includes appropriate parameters that match the TOOL DEFINITION, and the parameter values are correct and relevant to the user's query.",
"tool_call_id": "call_CUdbkBfvVBla2YP3p24uhElJ"
}
]
}
Si vous créez des agents en dehors d’Azure AI Agent Service, cet évaluateur accepte un schéma classique pour les messages d’agent. Pour plus d’informations, consultez notre exemple de notebook pour la précision des appels d’outil.
Adhésion aux tâches
Dans différents systèmes IA orientés tâches tels que les systèmes agentiques, il est important d’évaluer si l’agent est resté sur le point d’effectuer une tâche donnée au lieu d’effectuer des étapes inefficaces ou hors portée.
TaskAdherenceEvaluator
mesure la conformité de la réponse d’un agent à ses tâches affectées, en fonction de son instruction de tâche (extraite des requêtes système et utilisateur) et des outils disponibles. Un score plus élevé signifie une meilleure adhésion à l’instruction système pour résoudre la tâche donnée.
Exemple d’adhésion aux tâches
from azure.ai.evaluation import TaskAdherenceEvaluator
task_adherence = TaskAdherenceEvaluator(model_config=model_config, threshold=3)
task_adherence(
query="What are the best practices for maintaining a healthy rose garden during the summer?",
response="Make sure to water your roses regularly and trim them occasionally."
)
Sortie de l’adhésion aux tâches
Le score numérique sur une échelle likert (entier 1 à 5) et un score plus élevé est préférable. Compte tenu d’un seuil numérique (par défaut à 3), nous exéclons également « pass » si le score >= seuil ou « fail » sinon. L’utilisation du champ motif peut vous aider à comprendre pourquoi le score est élevé ou faible.
{
"task_adherence": 2.0,
"task_adherence_result": "fail",
"task_adherence_threshold": 3,
"task_adherence_reason": "The response partially addresses the query by mentioning relevant practices but lacks critical details and depth, making it insufficient for a comprehensive understanding of maintaining a rose garden in summer."
}
Si vous créez des agents en dehors d’Azure AI Agent Service, cet évaluateur accepte un schéma classique pour les messages d’agent. Pour plus d’informations, consultez notre exemple de notebook pour l’adhésion aux tâches.