Évaluations Cortex Agent¶
Les évaluations Cortex Agent vous permettent de surveiller le comportement et les performances de votre agent. Évaluez votre agent par rapport à la réalité de terrain et aux métriques d’évaluation sans référence. Lors de l’évaluation, l’activité de votre agent est suivie et surveillée afin que vous puissiez vous assurer que chaque étape du processus progresse vers votre objectif final.
Snowflake propose les métriques suivantes pour évaluer votre agent par rapport à :
L’exactitude de la réponse – La réponse d’un agent à votre requête préparée correspond à une réponse attendue. Cette métrique est particulièrement utile lorsque l’ensemble de données alimentant votre Cortex Agent est statique.
La cohérence logique – Mesure la cohérence entre les instructions des agents, la planification et les appels aux outils. Cette métrique est sans référence, ce qui signifie que vous n’avez pas besoin de préparer des informations dans votre ensemble de données pour l’évaluation.
Snowflake vous permet également de créer des métriques d’évaluation personnalisées qui utilisent le processus d’évaluation des LLM pour mesurer le contexte critique pour le domaine et le cas d’utilisation de votre Agent. Les métriques personnalisées utilisent une méthodologie d’invite et de notation LLM qui est transmise au système d’évaluation pour produire un score.
Pour plus de détails sur la manière dont les évaluations d’agent sont effectuées sur Snowflake, notamment sur le système d’évaluation LLM utilisé pour les évaluations sans référence, voir le blog d’ingénierie Snowflake`Quel est le GPA de votre Agent ? Un cadre pour l’évaluation de la fiabilité des agents AI<https://www.snowflake.com/en/engineering-blog/ai-agent-evaluation-gpa-framework/>`_ _. Pour un exemple d’exécution programmatique d’une Évaluation des agents, consultez le guide ` Prise en main des évaluations Cortex Agent<https://www.snowflake.com/en/developers/guides/getting-started-with-cortex-agent-evaluations/>`_ _.
Exigences en matière de contrôle d’accès¶
La possibilité d’effectuer une évaluation Cortex Agent nécessite un rôle avec les caractéristiques suivantes :
Le rôle DATABASE ROLE SNOWFLAKE.CORTEX_USER
L’autorisation EXECUTETASKONACCOUNT
L’autorisation USAGE sur la base de données contenant votre agent
Les autorisations suivantes sur le schéma contenant votre agent :
USAGE
CREATE FILE FORMAT ON SCHEMA
CREATE TASK
EXECUTE TASK
L’autorisation USAGE sur la base de données contenant vos données d’évaluation
Les autorisations suivantes sur le schéma contenant vos données d’évaluation :
USAGE
EXECUTE TASK
Si vous créez un ensemble de données à partir d’une table d’entrée, CREATE DATASET ON SCHEMA
Le privilège USAGE ouOWNERSHIP sur votre agent
Le privilège MONITOR ouOWNERSHIP sur votre agent
Si vous utilisez une configuration d’évaluation d’agent,le privilège READ sur la zone de préparation contenant le fichier de configuration.
Si l’agent évalué utilise des outils, votre rôle doit également avoir accès à chacun d’entre eux.
En outre, si vous utilisez des évaluations dans|sf-web-interface|, le rôle que vous utilisez pour exécuter ou inspecter une évaluation a besoin du privilège USAGE sur votre entrepôt par défaut.
Préparer un ensemble de données d’évaluation¶
Avant de démarrer une évaluation Cortex Agent, préparez une table contenant vos entrées d’évaluation. Cette table est utilisée pour créer un ensemble de données sur lequel votre évaluation peut être exécutée. Pour en savoir plus sur les ensembles de données dans Snowflake, voir:doc:/developer-guide/snowflake-ml/dataset.
Cortex Code¶
Pour que Cortex Code vous aide à créer un ensemble de données pour votre évaluation, utilisez la sous-compétence dataset-curation de la compétence cortex-agent Cortex Code. Pour plus d’informations sur les compétences de Cortex Code, voir:ref:Code CortexCLI - Compétences <label-extensibility_skills>.
Format de l’ensemble de données¶
La table utilisée pour créer un ensemble de données à des fins d’évaluation dispose d’une colonne de requête d’entrée de type VARCHAR qui représente votre requête, et une colonne de sortie de type VARIANT qui contient une description du comportement attendu de l’agent. Cette colonne de sortie unique est utilisée comme réalité de terrain par le LLM juge.
Les valeurs de la colonne de sortie ont une clé, ground_truth_output. La valeur de cette clé est utilisée pour évaluer l’exactitude des réponses. Les LLM juges utilisent la réalité de terrain pour évaluer la sortie de votre agent en l’incluant dans leur invite.
Astuce
Profitez du fait que la réalité de terrain est incluse dans une invite LLM en utilisant le langage naturel pour décrire un type de réponse, en plus des correspondances de réponse exactes ou sémantiques. Par exemple, vous pouvez fournir une réalité de terrain de Output is in the following JSON format ... suivi d’une chaîne contenant soit une description de la structure, soit un exemple de JSON lui-même. Si vous avez besoin d’un examen plus approfondi de la sortie basé sur une invite personnalisée complète, créez une métrique personnalisée.
Pour apporter un ensemble de données JSON dans une table Snowflake, utilisez la fonction /sql-reference/functions/parse_json`SQL. L’exemple suivant crée une nouvelle table``agent_evaluation_data` à utiliser pour un ensemble de données d’évaluation, et insère une ligne pour la requête d’entrée``What was the temperature in San Francisco on August 2nd 2019?`` avec la réalité de terrain de The temperature was 14 degrees Celsius in San Francisco on August 2nd, 2019..
Important
Les fonctions OBJECT_CONSTRUCT et:doc:/sql-reference/functions/array_construct retournent des résultats non-VARIANT. Utilisez une fonction qui produit une VAIRANT de votre entrée brute comme PARSE_JSON , ou appelez TO_VARIANT pour garantir le type de valeur.
Les données que vous fournissez dans la colonne ground_truth qui ne sont pas utilisées par une métrique sélectionnée sont ignorées. Lorsque vous effectuez une exécution d’évaluation avec uniquement des métriques sans référence, vous pouvez laisser la colonne de sortie vide.
Lors de l’exécution de votre première évaluation, vous aurez la possibilité de créer un nouvel ensemble de données à partir d’une table existante.
Démarrer une évaluation d’agent¶
Cortex Code¶
Pour que Cortex Code exécute une évaluation, utilisez la sous-compétence evaluate-cortex-agent de la compétence Cortex Code cortex-agent. Pour plus d’informations sur les compétences de Cortex Code, voir:ref:Code CortexCLI - Compétences <label-extensibility_skills>.
Snowsight¶
Note
Les évaluations d’agent s’exécutent en tant que rôle actuellement sélectionné dans Snowsight, et non votre rôle par défaut. Assurez-vous qu’un rôle disposant des autorisations adéquates est actif avant de démarrer une évaluation.
Commencez votre évaluation d’un Cortex Agent en procédant comme suit :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez AI & ML » Agents.
Sélectionnez l’agent sur lequel vous souhaitez effectuer une évaluation.
Sélectionnez l’onglet Evaluations.
Sélectionnez New evaluation run.
La fenêtre modale New evaluation run s’ouvre.
Dans le champ Name, indiquez un nom pour votre d’évaluation. Ce nom doit être unique pour l’agent en cours d’évaluation.
En option : Dans le champ Description, fournissez des commentaires pour l’évaluation.
Sélectionnez Next.
Cette action vous permet de passer à la fenêtre modale Select dataset.
Sélectionnez l’ensemble de données utilisé pour évaluer votre agent. Vous pouvez choisir entre Existing dataset et Create new dataset.
Pour utiliser un ensemble de données existant :
Dans la liste Database and schema, sélectionnez la base de données et le schéma contenant votre ensemble de données.
Dans la liste Select dataset, sélectionnez votre ensemble de données.
Pour créer un nouvel ensemble de données :
Dans la liste Source table - Database and schema, sélectionnez la base de données et le schéma contenant la table que vous souhaitez importer dans un ensemble de données.
Dans la liste Select source table, sélectionnez votre tableau source.
Dans la liste New dataset location - Database and schema, sélectionnez la base de données et le schéma où placer votre nouvel ensemble de données.
Dans le champ Dataset name, saisissez le nom de votre ensemble de données. Ce nom doit être unique parmi les objets de niveau schéma de votre schéma sélectionné.
Sélectionnez Next.
Cette action vous permet de passer à la fenêtre modale Select metrics.
Dans la liste Input query, sélectionnez la colonne de votre ensemble de données qui contient les requêtes d’entrée.
Pour chacune des System metrics, activez le bouton bascule pour toute métrique que vous souhaitez inclure dans votre évaluation. Sélectionnez la colonne de votre ensemble de données contenant la réalité de terrain de votre évaluation.
(Facultatif) Pour réaliser une évaluation personnalisée, basculez sur Custom metrics.
Sélectionnez la base de données et le schéma contenant la zone de préparation dans laquelle votre configuration d’évaluation personnalisée est stockée.
Sélectionnez la zone de préparation dans laquelle votre configuration d’évaluation personnalisée est stockée.
Sélectionnez le fichier de configuration YAML pour votre évaluation personnalisée.
Note
Dans Snowsight, seules les définitions d’évaluation personnalisées sont chargées à partir de votre configuration YAML. Le reste du fichier YAML doit encore être valide. Pour la spécification du YAML de l’évaluation, voir:ref:
label-cortex_agent_evaluation_yaml_spec.Pour chaque métrique personnalisée, activez le bouton bascule si vous souhaitez qu’elle soit incluse dans votre évaluation. Sélectionnez la colonne de votre ensemble de données contenant la réalité de terrain pour cette évaluation.
Sélectionnez Create pour créer l’évaluation et démarrer le processus d’évaluation.
À tout moment, vous pouvez sélectionner Cancel pour annuler la création de l’évaluation, ou sélectionnez Prev pour revenir à la fenêtre modale précédente.
SQL¶
Pour démarrer ou récupérer des informations sur une évaluation avec SQL, utilisez la fonction EXECUTE_AI_EVALUATION. Cette fonction a les arguments obligatoires suivants :
evaluation_job: Une valeur de chaîne de “START” ou “STATUS”.run_parameters: Un SQL:ref:OBJECT<label-data_type_object>contenant la clérun_name, avec une valeur du nom de votre exécution.config_file_path:Un chemin d’accès au fichier de zone de préparation pointant vers le fichier YAML de configuration de votre exécution. Ce chemin ne peut pas être une URL signée. Pour la spécification du YAML de l’évaluation, voir:ref:label-cortex_agent_evaluation_yaml_spec.
Utilisez la valeur evaluation_job “START “ pour démarrer une évaluation. L’exemple suivant démarre une exécution appelée run-1 à l’aide de la configuration d’évaluation de l’agent depuis``@eval_db.eval_schema.metrics/agent_evaluation_config.yaml`` :
Après le démarrage d’une exécution, vous pouvez interroger sa progression à l’aide de la valeur evaluation_job “STATUS”. Cet appel renvoie une table au format utilisé pour les AI Exécutions de l’observabilité. L’exemple suivant interroge l’état de l’évaluation de l’agent lancée à partir de l’exemple précédent :
Astuce
Vous pouvez appeler la fonction EXECUTE_AI_EVALUATION depuis une :doc:` tâche </user-guide/tasks-intro>` pour effectuer régulièrement une évaluation ou vérifier l’état de l’une d’elles.
Inspecter les résultats de l’évaluation¶
Les résultats de l’évaluation comprennent des informations sur les métriques demandées, des détails sur les threads de raisonnement de l’agent et des informations sur la zone de préparation de planification LLM pour chaque trace exécutée dans le thread.
Cortex Code¶
Cortex Code propose deux sous-compétences de la compétence cortex-agent. Utilisez la sous-compétence investigate-cortex-agent-evals pour inspecter les évaluations et trouver des problèmes dans votre configuration ou vos données. Utilisez la sous-compétence optimize-cortex-agent pour prendre les résultats des évaluations terminées et améliorer les performances de votre agent.
Snowsight¶
L’onglet Evaluations pour un agent dans Snowsight vous donne une vue d’ensemble de chaque exécution d’évaluation et un résumé de ses résultats.
Pour voir les résultats de l’évaluation dans|sf-web-interface| :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez AI & ML » Agents.
Sélectionnez l’agent sur lequel vous souhaitez effectuer une évaluation.
Sélectionnez l’onglet Evaluations.
Listing des exécutions d’évaluation¶
Le résumé des informations d’exécution pour chaque exécution comprend :
RUN NAME– Le nom de l’exécution de l’évaluation.# OF RECORDS– Le nombre de requêtes effectuées et traitées dans le cadre de l’exécution.STATUS— L’état de l’exécution de l’évaluation, qui est l’un des suivants :– Toutes les entrées ont été évaluées et les résultats sont disponibles.
Un spinner s’affiche – L’exécution est en cours, aucune information n’est encore disponible.
– L’exécution a rencontré une erreur à un moment donné. Certaines ou toutes les métriques peuvent être indisponibles pour l’exécution.
DATASET– Nom de l’ensemble de données utilisé pour l’évaluation.AVG DURATION– La durée moyenne de l’exécution d’une requête d’entrée pour l’exécution.LOGICAL CONSISTENCY– Moyenne sur toutes les entrées de l’évaluation de la cohérence logique pour l’exécution, si demandé.DESCRIPTION– La description de l’exécution de l’évaluation.CREATED– L’heure à laquelle l’exécution a été créée et a démarré.
Chaque métrique personnalisée évaluée pour cette exécution reçoit également sa propre colonne, définie par la valeur name de la métrique d’évaluation. Pour plus d’informations sur les métriques personnalisées, voir:ref:label-agent_evaluation_custom_metric.
Vue d’ensemble de l’exécution de l’évaluation¶
Lorsque vous sélectionnez une exécution individuelle dans Snowsight, la vue d’ensemble de l’exécution vous est présentée. Cette vue d’ensemble comprend des moyennes récapitulatives pour chaque métrique évaluée au cours de l’exécution et un résumé de chaque exécution d’entrée. La vue d’ensemble de chaque exécution d’entrée comprend :
STATUS— L’état de l’exécution de l’évaluation, qui est l’un des suivants :– Toutes les entrées ont été évaluées et les résultats sont disponibles.
Un spinner s’affiche – L’exécution est en cours, aucune information n’est encore disponible.
– L’exécution a rencontré une erreur à un moment donné. Certaines ou toutes les métriques peuvent être indisponibles pour l’exécution.
INPUT– La requête d’entrée utilisée pour l’évaluation.OUTPUT— La sortie produite par l’agent.DURATION– Le temps nécessaire pour traiter l’entrée et produire la sortie.LOGICAL CONSISTENCY– L’évaluation de la cohérence logique de l’entrée, si elle est demandée.EVALUATED– L’heure à laquelle l’entrée a été traitée.
Chaque métrique personnalisée évaluée pour cette exécution reçoit également sa propre colonne, définie par la valeur name de la métrique d’évaluation. Pour plus d’informations sur les métriques personnalisées, voir:ref:label-agent_evaluation_custom_metric.
Détails de l’enregistrement¶
Lorsque vous sélectionnez une entrée individuelle dans|sf-web-interface|, la vue Record details vous est présentée. Cette vue comprend trois volets :Evaluation results ,:ui:Thread details et:ui:Trace details .
Résultat d’évaluation¶
Les résultats de votre évaluation sont présentés ici en détail. Chaque métrique possède sa propre zone de présentation de la moyenne globale des entrées, qui peut être sélectionnée pour afficher une fenêtre contextuelle contenant plus d’informations. Cette fenêtre contextuelle contient une répartition du nombre d’exécutions qui ont eu lieu avec une précision élevée (80 % ou plus de précision), avec une précision moyenne (30 % ou plus de précision, mais pas une précision élevée), et qui ont échoué.
Détails du thread¶
Informations consignées lors de l’exécution de chaque thread d’agent. Cela inclut la planification et la génération de réponses par défaut, ainsi qu’une trace de thread pour chaque outil que l’agent a invoqué pendant ce thread.
Détails de la trace¶
Chaque volet de trace comprend des informations d’entrée, de traitement et de sortie relatives à cette zone de préparation de l’exécution de l’agent. Ces informations sont les mêmes que celles fournies par la :ref:` surveillance de l’agent <label-cortex_agent_log_info>`.
SQL¶
Pour récupérer des détails d’évaluation bruts, utilisez la fonction GET_AI_EVALUATION_DATA (SNOWFLAKE.LOCAL). Cette fonction a les arguments obligatoires suivants :
database: Base de données contenant l’agent.schema: Schéma contenant l’agent.agent_name: Nom de l’agent.agent_type: La constante de chaîne “CORTEX AGENT”. La valeur est insensible à la casse.run_name: Le nom de l’exécution de l’évaluation à récupérer.
Cette fonction renvoie une table de données d’événements décrite dans Format de la table des résultats de l’évaluation . L’exemple suivant affiche les détails d’évaluation complets d’une exécution appelée run-1, où l’agent est nommé``evaluated_agent`` stocké sur le schéma``eval_db.eval_schema`` :
Traces des requêtes pour un seul enregistrement¶
Pour accéder à un seul enregistrement d’une trace d’évaluation, utilisez la fonction GET_AI_RECORD_TRACE (SNOWFLAKE.LOCAL). Cette fonction a les arguments obligatoires suivants :
database: Base de données contenant l’agent.schema: Schéma contenant l’agent.agent_name: Nom de l’agent.agent_type: La constante de chaîne “CORTEX AGENT”. La valeur est insensible à la casse.record_id: L’ID d’enregistrement pour filtrer.
Cette fonction renvoie une table de données d’événements décrite dans Format de la table des résultats de l’évaluation . L’exemple suivant affiche la trace de l’enregistrement 9346efc3-5dd6-4038-9b1a-72ca3d3b768c, où l’agent est nommé``evaluated_agent`` stocké sur le schéma``eval_db.eval_schema`` :
Erreurs et avertissements d’évaluation de la requête pour une exécution¶
Pour accéder aux journaux des avertissements et des erreurs qui se sont produits au cours d’une exécution d’évaluation, utilisez la fonction GET_AI_OBSERVABILITY_LOGS (SNOWFLAKE.LOCAL). Cette fonction a les arguments obligatoires suivants :
database: Base de données contenant l’agent.schema: Schéma contenant l’agent.agent_name: Nom de l’agent.agent_type: La constante de chaîne “CORTEX AGENT”. La valeur est insensible à la casse.
Cette fonction renvoie une table de données d’événements décrite dans Format de la table des résultats de l’évaluation . L’exemple suivant vérifie les erreurs et les avertissements pour une exécution appelée run-1, où l’agent est nommé``evaluated_agent`` stocké sur le schéma``eval_db.eval_schema``:
Note
Les champs de record et``record_attributes`` sont susceptibles d’être modifiés, mais la présence des champs``record: »severity_text »`` et``record_attributes: »snow.ai.observability.run.name »`` est garantie dans les journaux d’observabilité AI.
Spécification du YAML de l’évaluation de l’agent¶
Pour définir le fichier YAML pour configurer une évaluation d’agent, y compris la définition de métriques personnalisées, il existe trois clés de premier niveau :
(Facultatif)
dataset: Une définition de la manière de créer un ensemble de données pour l’évaluation. Cette valeur est facultative lorsque vous utilisez une spécification de YAML pour démarrer une évaluation dans Snowsight, ou si vous utilisez un ensemble de données existant.evaluation: Paramètres de l’agent à évaluer.metrics: Les métriques enregistrées lors d’un cycle d’évaluation, y compris les définitions des métriques personnalisées.
Définition de l’ensemble de données¶
La valeur dataset définit un nouvel ensemble de données à partir des données de table existantes, des colonnes de mappage pour la requête d’entrée et de la réalité de terrain. Pour la structure nécessaire à votre colonne ground_truth, voir Format de l’ensemble de données. Les clés de la valeur dataset sont :
dataset_type: La chaîne constante « CORTEX AGENT ». La valeur est insensible à la casse.table_name: Nom complet de la table à utiliser pour le contenu de l’ensemble de données.dataset_name: Le nom de l’ensemble de données créé.column_mapping: Le mappage de la colonne d’entrée d’évaluation requise``query_text`` et de la colonne de sortie``ground_truth`` aux colonnes de la table à partir de laquelle créer l’ensemble de données.
L’ensemble de données obtenu est stocké dans la même base de données et le même schéma que la table à partir de laquelle il est construit.
L’exemple de définition d’ensemble de données suivant montre un ensemble de données nommé evaluation_input créé à partir de la table evals_db.evals_schema.evaluation_data, en utilisant la user_question en entrée et``expected_outcome`` pour définir la réalité de terrain :
Configuration d’un agent¶
La valeur evaluation définit la configuration sur laquelle l’agent doit effectuer une évaluation. Les clés de la valeur evaluation sont :
agent_params: Dictionnaire décrivant l’agent pour lequel l’évaluation doit être effectuée. Cette valeur utilise les clés :agent_name: Le nom de l’agent à évaluer.agent_type: La chaîne constante « CORTEX AGENT ». La valeur est insensible à la casse.
(Facultatif)
run_params: Métadonnées permettant d’identifier cette exécution d’évaluation. Cette valeur utilise les clés :(Facultatif)
label: L’étiquette pour cette évaluation.(Facultatif)
description: Une description détaillée de l’évaluation.
source_metadata: Dictionnaire décrivant l’ensemble de données utilisé pour l’évaluation. Cette valeur utilise les clés :type: La constante de chaîne « DATASET ». La valeur est insensible à la casse.dataset_name: le nom de l’ensemble de données à utiliser.
L’exemple de configuration d’agent suivant exécute un agent nommé evaluated_agent avec l’étiquette Basic evaluation, utilisant l’ensemble de données evaluation_input :
Sélection de métriques¶
La valeur metrics est une séquence de métriques à évaluer, y compris vos propres définitions de métriques personnalisées. Les valeurs acceptées pour les métriques prédéfinies sont les suivantes :
answer_correctness: Mesurez la correction de la réponse de l’agent par rapport à la sortie de la réalité de terrain.logical_consistency: Mesurez la cohérence des instructions de l’agent, de la planification et des appels d’outils. Cette métrique est sans référence et n’utilise pas d’ensemble de données.
Définition d’une métrique personnalisée¶
Vous pouvez définir votre propre métrique personnalisée en fournissant un identificateur, une invite et des plages de score. L’invite que vous fournissez est transmise à un LLM juge ainsi que les traces d’exécution pour réaliser votre évaluation personnalisée. Les métriques personnalisées ont les paires clé-valeur requises suivantes :
name: Nom de la métrique.score_ranges: Un mappage qui définit des plages de scores de qualité faible, moyenne et élevée. Ce mappage utilise les clés :min_score: La plage de scores utilisée pour identifier les résultats de mauvaise qualité, sous la forme d’une séquence à deux éléments de la limite inférieure inclusive à la limite supérieure exclusive.median_score: La plage de scores utilisée pour identifier les résultats de qualité moyenne, sous la forme d’une séquence à deux éléments de la limite inférieure inclusive à la limite supérieure inclusive.max_score: La plage de scores utilisée pour identifier les résultats de bonne qualité, sous la forme d’une séquence à deux éléments de la limite inférieure exclusive à la limite supérieure inclusive.
prompt: Le modèle d’invite à transmettre au LLM juge avec les données de trace d’exécution de l’agent.Important
Ce modèle doit inclure un mécanisme de notation qui produit une valeur numérique représentée dans les plages fournies pour
score_ranges.
L’invite d’une métrique personnalisée peut faire référence aux données de trace générées par l’agent lors d’une exécution d’évaluation. Snowflake transmet la trace entière comme entrée au LLM juge, mais vous pouvez mettre en évidence certaines informations en utilisant une chaîne de remplacement qui fait référence à des données dans une colonne GET_AI_RECORD_TRACE directement. Les chaînes de remplacement suivantes sont disponibles :
Chaîne de remplacement |
Colonne GET_AI_RECORD_TRACE |
|---|---|
|
INPUT |
|
OUTPUT |
|
GROUND_TRUTH |
|
TOOL |
|
START_TIMESTAMP |
|
DURATION_MS |
|
SPAN_ID |
|
SPAN_TYPE |
|
SPAN_NAME |
|
LLM_MODEL |
|
ERROR |
|
STATUS |
Exemple de configuration des métriques¶
L’exemple suivant définit une configuration de métriques qui permet les contrôles de l’exactitude des réponses et de la cohérence logique, ainsi que la définition d’une métrique relevance personnalisée qui renvoie un score compris entre 1 et 10 basé sur la comparaison entre la réalité de terrain et la sortie de l’agent :
Exemple de configuration complet¶
La combinaison de toutes les sections d’exemple précédentes donne une configuration complète de l’évaluation de l’agent :
Chargement d’une configuration vers une zone de préparation¶
Les configurations d’évaluation d’agent doivent disposer d’un format de fichier spécifique pour que Snowflake puisse les analyser. L’extrait suivant montre la création du yaml_file_format nécessaire sur le schéma evals_db.evals_schema, puis crée la zone de préparation evaluation_config pour charger une configuration d’agent vers :
Chargez votre configuration vers une zone de préparation créée via|sf-web-interface| en accédant au menu de navigation, sélectionnez Ingestion`|raa|:ui:`Add Data et sélectionnez Load files into a Stage. Vous pouvez également utiliser la commande SQL:doc:/sql-reference/sql/put pour charger un fichier YAML local. L’exemple suivant illustre la copie du fichier local``/Users/dev/evaluation_config.yaml`` vers la zone de préparation``evals_db.evals_schema.evaluation_config`` :
Si vous créez votre YAML dans un espace de travail, vous pouvez le copier de votre espace de travail actif vers une zone de préparation. L’exemple suivant copie le fichier evaluation_config.yaml de votre espace de travail vers la zone de préparation``evals_db.evals_schema.evaluation_config`` :
Astuce
Snowflake recommande de conserver votre fichier YAML non compressé.
Format de la table des résultats de l’évaluation¶
Les fonctions qui renvoient des informations sur une évaluation de Cortex Agent produisent toutes une table avec les colonnes suivantes :
Colonne |
Type de données |
Description |
|---|---|---|
RECORD_ID |
VARCHAR |
L’identificateur unique attribué par Snowflake pour cet enregistrement d’évaluation. |
INPUT_ID |
VARCHAR |
L’identificateur unique attribué par Snowflake pour cette entrée d’évaluation. |
REQUEST_ID |
VARCHAR |
L’identificateur unique attribué par Snowflake pour cette demande. |
TIMESTAMP |
TIMESTAMP_TZ |
L’heure (en UTC ) à laquelle la requête a été faite. |
DURATION_MS |
INT |
Temps, en millisecondes, nécessaire à l’agent pour renvoyer une réponse. |
INPUT |
VARCHAR |
La chaîne de requête utilisée en entrée pour cet enregistrement d’évaluation. |
OUTPUT |
VARCHAR |
La réponse renvoyée par Cortex Agent pour cet enregistrement d’évaluation. |
ERROR |
VARCHAR |
Informations sur les erreurs éventuelles pouvant survenir lors de la requête. |
GROUND_TRUTH |
VARCHAR |
Les informations de réalité de terrain utilisées pour évaluer la sortie de Cortex Agent de cet enregistrement. |
METRIC_NAME |
VARCHAR |
Le nom de la métrique évaluée pour cet enregistrement. |
EVAL_AGG_SCORE |
NUMBER |
Score d’évaluation attribué à cet enregistrement. |
METRIC_TYPE |
VARCHAR |
Le type de métrique en cours d’évaluation. Pour les métriques intégrées, la valeur est |
METRIC_STATUS |
VARIANT |
Carte contenant des informations sur la réponse HTTP de l’agent pour cet enregistrement, avec les clés suivantes :
|
METRIC_CALLS |
ARRAY |
Un tableau de valeurs VARIANT qui contiennent des informations sur la métrique calculée. Chaque entrée de tableau contient les critères de la métrique, une explication du score de la métrique et des métadonnées. Les clés de chaque entrée sont les suivantes :
|
TOTAL_INPUT_TOKENS |
INT |
Le nombre total de jetons utilisés pour traiter la requête d’entrée. |
TOTAL_OUTPUT_TOKENS |
INT |
Le nombre total de jetons de sortie produits par Cortex Agent. |
LLM_CALL_COUNT |
INT |
Compte le nombre de fois où un LLM a été appelé, soit par l’agent, soit par un juge d’évaluation. |
Disponibilité du modèle¶
Actuellement, les évaluations d’agent ne prennent en charge que les modèles claude-4-sonnet et``claude-3-5-sonnet``, en utilisant l’inférence inter-régions. Snowflake sélectionne automatiquement ces modèles en fonction des paramètres de votre compte.
Modèle |
Inter-Cloud (n’importe quelle région) |
AWS US |
Gouvernement commercial AWS US |
AWS EU |
AWS APJ |
|---|---|---|---|---|---|
|
✔ |
✔ |
✔ |
✔ |
✔ |
|
✔ |
✔ |
Limitations connues¶
Les évaluations Cortex Agent sont soumises aux limites suivantes :
Temps de réponse et débit de l’agent : Le nombre d’entrées pouvant être traitées au cours d’une évaluation est limité par les temps de réponse des agents et la quantité de détails de trace. Si vous constatez des dépassements de délais d’expiration ou de longs retards dans votre évaluation, divisez vos données d’évaluation. Par exemple, si vous avez des requêtes qui nécessitent à coup sûr l’utilisation de nombreux outils différents, vous pouvez partitionner les données en fonction des outils communs utilisés. Si votre évaluation personnalisée entraîne des délais d’expiration, affinez ou raccourcissez votre invite. Vous pouvez également envisager de diviser les évaluations personnalisées pour vous concentrer sur un seul élément spécifique de la sortie de votre agent.
Obsolescence de la réalité de terrain : Selon les termes que vous utilisez pour vos requêtes d’entrée, les résultats peuvent varier au fil du temps et entraîner une perte de précision dans les résultats d’évaluation. Vous devriez notamment veiller à limiter les requêtes d’entrée à des dates et heures précises et absolues. Par exemple, les deux requêtes d’entrée
What was our revenue?et``What was our revenue for the first quarter?`` ne donneront pas les mêmes réponses, tandis que la requêteWhat was our revenue between January and March of 2025?est limitée à une fenêtre de temps spécifique qui peut être systématiquement référencée dans les données d’évaluation.
Considérations relatives aux clients¶
Les évaluations d’agent exécutent un Cortex Agent pour créer une sortie pour l’évaluation, et des LLM juges pour calculer les métriques d’évaluation. Vous êtes facturé pour chaque exécution de l’agent par rapport à une requête de réalité de terrain. Les LLM juges de l’évaluation sont exécutés par la fonction AI_COMPLETE, et vous devez payer des frais basés sur le modèle que Snowflake sélectionne pour être jugé. En outre, les coûts suivants vous sont facturés :
Frais d’entrepôt pour les tâches utilisées pour gérer les exécutions d’évaluation
Frais d’entrepôt pour les requêtes utilisées pour calculer les métriques d’évaluation
Frais de stockage pour les ensembles de données et les résultats d’évaluation
Frais d’entrepôt pour récupérer les résultats de l’évaluation vus dans Snowsight
Pour plus d’informations sur l’estimation des coûts, voir Comprendre le coût général. Reportez-vous au tableau de consommation du service Snowflake pour des informations complètes sur les coûts.