Aller au contenu principal

enterprise_ai.evaluation

Source : sdks/python/src/enterprise_ai/evaluation/__init__.py. Retour à l'index de la référence du SDK Python.

remarque

Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.

Modèle CaseResult​

Résultat d'un cas d'une exécution locale de suite : scores par métrique, verdict, latence et erreur.

Champs :

NomTypeRequisDescription
case_idstrouiRéférence du dossier, 1 à 200 caractères.
scoresdict[str, float]ouiScore entre 0 et 1 par nom de métrique ; vide si la cible a échoué.
passedboolouiVrai si la cible n'a pas échoué et que chaque score atteint le min_score du cas (1 par défaut).
latency_msfloatouiTemps pris par la cible, en millisecondes.
errorstr | NonenonException levée par la cible sous la forme "<Type>: <message>", None si elle a répondu.

Modèle SuiteResult​

Exécution locale agrégée : moyenne par métrique et verdict de la porte.

Champs :

NomTypeRequisDescription
suitestrouiNom de la suite (suite par défaut).
caseslist[CaseResult]nonCas de la suite : objets avec input, system facultatif, les valeurs attendues des métriques et éventuellement une output déjà prête.
thresholdfloatnonValeur à laquelle le score est comparé.

Attributs :

NomTypeRequisDescription
metricsdict[str, float]ouiScore moyen de chaque métrique sur tous les cas (un score absent compte 0).
pass_ratefloatouiPart des cas réussis, entre 0 et 1 (0 sans aucun cas).
passedboolouiVerdict de la porte : vrai s'il y a au moins un cas et que pass_rate atteint threshold.

SuiteResult.to_dict​

to_dict() -> dict[str, Any]

Le résultat sous forme de dict prêt pour JSON.

Cet élément ne prend aucun paramètre.

Retour : dict[str, Any]. Dict {suite, pass_rate, passed, metrics, threshold, cases}.

Classe EvaluationClient​

Évaluation et red team. Qualité des systèmes d'IA du tenant : suites d'évaluation, exécutions, barrières de qualité avant promotion, comparaisons A/B avec une référence et campagnes de red team.

Resource

EvaluationClient.check_gate​

check_gate(target: dict[str, Any] | str, suite_ids: list[str] | None = None, **extra: Any) -> Any

Vérifier la barrière de qualité d'une cible. Vérifie que la dernière exécution terminée de chaque suite bloquante de la cible (pour target.version si elle est donnée, et limitée à suite_ids s'il est donné) a réussi. Avec run_missing: true, une suite sans exécution est exécutée maintenant ; sinon elle compte comme missing.

Route : /v1/evaluations/gates/check (POST).

NomTypeDéfautRequisDescription
targetdict[str, Any] | strouiCible dont les suites bloquantes sont vérifiées ; version limite aux exécutions de cette version.
suite_idslist[str] | NoneNonenonUniquement ces suites bloquantes. Null : toutes les suites bloquantes de la cible.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Vérifier la barrière de qualité d'une cible ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.compare​

compare(comparison: dict[str, Any]) -> Any

Comparer un candidat à une référence. Exécute une suite deux fois, sur la référence baseline et sur le candidate (chacun {type, ref, version}, type model par défaut, agent ou prompt), et enregistre les deux exécutions, les écarts par métrique et le verdict. Les écarts sont orientés par le comparateur de chaque métrique (gte : plus haut est mieux, lte : plus bas est mieux).

Route : /v1/evaluations/comparisons (POST).

NomTypeDéfautRequisDescription
comparisondict[str, Any]ouiComparaison à créer : la suite et ses exécutions ou cibles de référence et candidate.

Retour : Any. Réponse JSON décodée de l'opération « Comparer un candidat à une référence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.create_suite​

create_suite(suite: dict[str, Any]) -> Any

Créer une suite d'évaluation. Crée une suite. Exige tenant_admin, developer, security_officer ou ai_governance_officer. Erreurs 400 invalid_request : type de cible hors de model, agent, prompt, rag_pipeline, skill ou tool, moteur ou type inconnu, comparateur autre que gte ou lte, ou, pour le moteur custom, une métrique autre que exact_match, contains, not_contains, json_valid, faithfulness, latency ou refusal. Un nom déjà utilisé répond 409 conflict. Le jeu de données reçoit sa taille size et une empreinte SHA-256 digest des cas. Écrit l'événement d'audit evaluation.suite.create.

Route : /v1/evaluations/suites (POST).

NomTypeDéfautRequisDescription
suitedict[str, Any]ouiSuite à créer, sous forme d'Evaluation Contract.

Retour : Any. Réponse JSON décodée de l'opération « Créer une suite d'évaluation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.get_comparison​

get_comparison(comparison_id: str) -> Any

Lire une comparaison A/B. Renvoie une comparaison. Exige tenant_admin, developer, security_officer, auditor, viewer ou finops. Répond 404 comparison_not_found.

Route : /v1/evaluations/comparisons/{comparison_id} (GET).

NomTypeDéfautRequisDescription
comparison_idstrouiIdentifiant (UUID) de la comparaison.

Retour : Any. Réponse JSON décodée de l'opération « Lire une comparaison A/B ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.get_redteam_run​

get_redteam_run(run_id: str) -> Any

Lire une campagne de red team. Renvoie une campagne de red team : cible, moteur, sondes, statut, synthèse (total, vulnérables, taux de réussite des attaques, seuil, par catégorie) et constats. Ouvert à tout membre du tenant. Répond 404 not_found.

Route : /v1/redteam/runs/{run_id} (GET).

NomTypeDéfautRequisDescription
run_idstrouiIdentifiant (UUID) de la campagne de red team.

Retour : Any. Réponse JSON décodée de l'opération « Lire une campagne de red team ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.get_run​

get_run(run_id: str) -> Any

Lire une exécution d'évaluation. Renvoie une exécution d'évaluation avec ses résultats par métrique et par cas. Ouvert à tout membre du tenant. Répond 404 not_found.

Route : /v1/evaluations/runs/{run_id} (GET).

NomTypeDéfautRequisDescription
run_idstrouiIdentifiant (UUID) de l'exécution d'évaluation.

Retour : Any. Réponse JSON décodée de l'opération « Lire une exécution d'évaluation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.get_suite​

get_suite(suite_id: str) -> Any

Lire une suite d'évaluation. Renvoie une suite avec la liste complète de ses cas et run_on_promotion. Ouvert à tout membre du tenant. Répond 404 not_found.

Route : /v1/evaluations/suites/{suite_id} (GET).

NomTypeDéfautRequisDescription
suite_idstrouiIdentifiant (UUID) de la suite.

Retour : Any. Réponse JSON décodée de l'opération « Lire une suite d'évaluation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.list_comparisons​

list_comparisons(suite_id: str | None = None) -> Any

Lister les comparaisons A/B. Liste les comparaisons du tenant, les plus récentes d'abord, 200 au plus, éventuellement pour une seule suite. Chacune donne la référence, le candidat, les identifiants des deux exécutions, les écarts par métrique, la tolérance et le verdict. Exige tenant_admin, developer, security_officer, auditor, viewer ou finops.

Route : /v1/evaluations/comparisons (GET).

NomTypeDéfautRequisDescription
suite_idstr | NoneNonenonUniquement les comparaisons de cette suite (UUID).

Retour : Any. Réponse JSON décodée de l'opération « Lister les comparaisons A/B ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.list_redteam_runs​

list_redteam_runs(**page: Any) -> Any

Lister les campagnes de red team. Liste les campagnes de red team du tenant, identifiant le plus récent d'abord, paginées, ainsi que probes : les sondes intégrées (identifiant et catégorie), les familles de sondes garak et si garak est installé. Ouvert à tout membre du tenant.

Route : /v1/redteam/runs (GET).

NomTypeDéfautRequisDescription
**pageAnynonOptions de pagination transmises à la liste : limit (nombre maximal d'éléments par page) et cursor (le next_cursor de la page précédente). Itérer sur la page renvoyée suit tous les curseurs.

Retour : Any. Réponse JSON décodée de l'opération « Lister les campagnes de red team ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.list_runs​

list_runs(suite_id: str | None = None, **page: Any) -> Any

Lister les exécutions d'évaluation. Liste les exécutions d'évaluation du tenant, identifiant le plus récent d'abord, paginées, éventuellement filtrées par suite et statut. Chaque élément suit le contrat d'évaluation (cible, moteur, jeu de données, métriques, résultats, statut, coût) avec run_id, suite_id, trigger, case_results et error. Ouvert à tout membre du tenant.

Route : /v1/evaluations/runs (GET).

NomTypeDéfautRequisDescription
suite_idstr | NoneNonenonUniquement les exécutions de cette suite.
**pageAnynonOptions de pagination transmises à la liste : limit (nombre maximal d'éléments par page) et cursor (le next_cursor de la page précédente). Itérer sur la page renvoyée suit tous les curseurs.

Retour : Any. Réponse JSON décodée de l'opération « Lister les exécutions d'évaluation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.list_suites​

list_suites(**page: Any) -> Any

Lister les suites d'évaluation. Liste les suites du tenant triées par nom, paginées, sous forme de documents du contrat d'évaluation ; cases donne le nombre de cas. Ouvert à tout membre du tenant.

Route : /v1/evaluations/suites (GET).

NomTypeDéfautRequisDescription
**pageAnynonOptions de pagination transmises à la liste : limit (nombre maximal d'éléments par page) et cursor (le next_cursor de la page précédente). Itérer sur la page renvoyée suit tous les curseurs.

Retour : Any. Réponse JSON décodée de l'opération « Lister les suites d'évaluation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.redteam​

redteam(target: dict[str, Any] | str, probes: list[str] | None = None, **extra: Any) -> Any

Lancer une campagne de red team. Envoie des sondes adverses à la cible et enregistre les constats. Exige tenant_admin, developer, security_officer ou ai_governance_officer.

Route : /v1/redteam/runs (POST).

NomTypeDéfautRequisDescription
targetdict[str, Any] | strouiCible attaquée : model, agent, prompt, rag_pipeline, skill ou tool.
probeslist[str] | NoneNonenonSondes à envoyer. Par défaut : toutes les sondes intégrées, ou promptinject et dan pour garak.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Lancer une campagne de red team ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.run​

run(suite_id: str, target: dict[str, Any] | str, **extra: Any) -> Any

Exécuter une suite d'évaluation. Exécute une suite maintenant et renvoie l'exécution terminée (201). Exige tenant_admin, developer, security_officer ou ai_governance_officer ou agent.

Route : /v1/evaluations/runs (POST).

NomTypeDéfautRequisDescription
suite_idstrouiSuite à exécuter. Obligatoire sauf si trigger vaut promotion.
targetdict[str, Any] | strouiCible à évaluer à la place de celle de la suite, par exemple une autre version. Obligatoire pour trigger: promotion sans suite.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Exécuter une suite d'évaluation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

EvaluationClient.run_local​

run_local(suite: dict[str, Any], target: Callable[[Any], Any]) -> SuiteResult

Exécute une suite localement avec :func:run_suite.

NomTypeDéfautRequisDescription
suitedict[str, Any]ouiSuite {name, threshold, metrics, cases}, comme pour run_suite.
targetCallable[[Any], Any]ouiAppelable qui reçoit l'input de chaque cas et dont la valeur de retour est notée.

Retour : SuiteResult. Un SuiteResult : exécution locale agrégée, moyenne par métrique et verdict de la porte.

Fonctions​

exact_match​

exact_match(output: Any, case: dict[str, Any]) -> float

Métrique : 1 si la sortie est égale à expected une fois les espaces retirés, sinon 0.

NomTypeDéfautRequisDescription
outputAnyouiSortie de la cible ; tout ce qui n'est pas du texte est comparé en JSON trié.
casedict[str, Any]ouiCas de la suite, lu pour expected.

Retour : float. Score 1.0 ou 0.0.

contains​

contains(output: Any, case: dict[str, Any]) -> float

Métrique : part des chaînes contains (ou de expected) trouvées dans la sortie, sans tenir compte de la casse.

NomTypeDéfautRequisDescription
outputAnyouiSortie de la cible ; tout ce qui n'est pas du texte est comparé en JSON trié.
casedict[str, Any]ouiCas de la suite, lu pour contains (liste) ou expected.

Retour : float. Score entre 0 et 1 ; 0 si le cas ne donne aucune chaîne.

regex​

regex(output: Any, case: dict[str, Any]) -> float

Métrique : 1 si le pattern du cas correspond quelque part dans la sortie, sinon 0.

NomTypeDéfautRequisDescription
outputAnyouiSortie de la cible ; tout ce qui n'est pas du texte est recherché en JSON trié.
casedict[str, Any]ouiCas de la suite, lu pour pattern (une expression régulière Python).

Retour : float. Score 1.0 ou 0.0.

json_valid​

json_valid(output: Any, case: dict[str, Any]) -> float

Métrique : 1 si la sortie est un texte JSON valide (ou n'est pas du texte), sinon 0.

NomTypeDéfautRequisDescription
outputAnyouiSortie de la cible.
casedict[str, Any]ouiCas de la suite, non utilisé par cette métrique.

Retour : float. Score 1.0 ou 0.0.

json_schema​

json_schema(output: Any, case: dict[str, Any]) -> float

Métrique : 1 si la sortie (analysée si c'est du texte) est valide selon le JSON Schema 2020-12 du cas.

NomTypeDéfautRequisDescription
outputAnyouiSortie de la cible ; un texte qui n'est pas du JSON obtient 0.
casedict[str, Any]ouiCas de la suite, lu pour schema.

Retour : float. Score 1.0 ou 0.0.

max_length​

max_length(output: Any, case: dict[str, Any]) -> float

Métrique : 1 si la sortie compte au plus max_length caractères (10000 par défaut), sinon 0.

NomTypeDéfautRequisDescription
outputAnyouiSortie de la cible ; tout ce qui n'est pas du texte est mesuré en JSON trié.
casedict[str, Any]ouiCas de la suite, lu pour max_length.

Retour : float. Score 1.0 ou 0.0.

run_suite​

run_suite(suite: dict[str, Any], target: Callable[[Any], Any]) -> SuiteResult

Exécute localement suite = {name, threshold, metrics, cases: [{id, input, expected, ...}]}.

NomTypeDéfautRequisDescription
suitedict[str, Any]ouiDict de suite : name, threshold (1 par défaut), metrics (["contains"] par défaut) et cases, chacun avec id, input et les champs lus par ses métriques.
targetCallable[[Any], Any]ouiAppelable qui reçoit l'input de chaque cas ; une exception fait échouer ce seul cas.

Retour : SuiteResult. Un SuiteResult : exécution locale agrégée, moyenne par métrique et verdict de la porte.