azure-ai-evaluation 1.0.0b2__py3-none-any.whl → 1.13.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of azure-ai-evaluation might be problematic. Click here for more details.
- azure/ai/evaluation/__init__.py +100 -5
- azure/ai/evaluation/{_evaluators/_chat → _aoai}/__init__.py +3 -2
- azure/ai/evaluation/_aoai/aoai_grader.py +140 -0
- azure/ai/evaluation/_aoai/label_grader.py +68 -0
- azure/ai/evaluation/_aoai/python_grader.py +86 -0
- azure/ai/evaluation/_aoai/score_model_grader.py +94 -0
- azure/ai/evaluation/_aoai/string_check_grader.py +66 -0
- azure/ai/evaluation/_aoai/text_similarity_grader.py +80 -0
- azure/ai/evaluation/_azure/__init__.py +3 -0
- azure/ai/evaluation/_azure/_clients.py +204 -0
- azure/ai/evaluation/_azure/_envs.py +207 -0
- azure/ai/evaluation/_azure/_models.py +227 -0
- azure/ai/evaluation/_azure/_token_manager.py +129 -0
- azure/ai/evaluation/_common/__init__.py +9 -1
- azure/ai/evaluation/{simulator/_helpers → _common}/_experimental.py +24 -9
- azure/ai/evaluation/_common/constants.py +131 -2
- azure/ai/evaluation/_common/evaluation_onedp_client.py +169 -0
- azure/ai/evaluation/_common/math.py +89 -0
- azure/ai/evaluation/_common/onedp/__init__.py +32 -0
- azure/ai/evaluation/_common/onedp/_client.py +166 -0
- azure/ai/evaluation/_common/onedp/_configuration.py +72 -0
- azure/ai/evaluation/_common/onedp/_model_base.py +1232 -0
- azure/ai/evaluation/_common/onedp/_patch.py +21 -0
- azure/ai/evaluation/_common/onedp/_serialization.py +2032 -0
- azure/ai/evaluation/_common/onedp/_types.py +21 -0
- azure/ai/evaluation/_common/onedp/_utils/__init__.py +6 -0
- azure/ai/evaluation/_common/onedp/_utils/model_base.py +1232 -0
- azure/ai/evaluation/_common/onedp/_utils/serialization.py +2032 -0
- azure/ai/evaluation/_common/onedp/_validation.py +66 -0
- azure/ai/evaluation/_common/onedp/_vendor.py +50 -0
- azure/ai/evaluation/_common/onedp/_version.py +9 -0
- azure/ai/evaluation/_common/onedp/aio/__init__.py +29 -0
- azure/ai/evaluation/_common/onedp/aio/_client.py +168 -0
- azure/ai/evaluation/_common/onedp/aio/_configuration.py +72 -0
- azure/ai/evaluation/_common/onedp/aio/_patch.py +21 -0
- azure/ai/evaluation/_common/onedp/aio/operations/__init__.py +49 -0
- azure/ai/evaluation/_common/onedp/aio/operations/_operations.py +7143 -0
- azure/ai/evaluation/_common/onedp/aio/operations/_patch.py +21 -0
- azure/ai/evaluation/_common/onedp/models/__init__.py +358 -0
- azure/ai/evaluation/_common/onedp/models/_enums.py +447 -0
- azure/ai/evaluation/_common/onedp/models/_models.py +5963 -0
- azure/ai/evaluation/_common/onedp/models/_patch.py +21 -0
- azure/ai/evaluation/_common/onedp/operations/__init__.py +49 -0
- azure/ai/evaluation/_common/onedp/operations/_operations.py +8951 -0
- azure/ai/evaluation/_common/onedp/operations/_patch.py +21 -0
- azure/ai/evaluation/_common/onedp/py.typed +1 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/__init__.py +1 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/aio/__init__.py +1 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/aio/operations/__init__.py +25 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/aio/operations/_operations.py +34 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/aio/operations/_patch.py +20 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/__init__.py +1 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/aio/__init__.py +1 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/aio/operations/__init__.py +22 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/aio/operations/_operations.py +29 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/aio/operations/_patch.py +20 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/operations/__init__.py +22 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/operations/_operations.py +29 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/buildingblocks/operations/_patch.py +20 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/operations/__init__.py +25 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/operations/_operations.py +34 -0
- azure/ai/evaluation/_common/onedp/servicepatterns/operations/_patch.py +20 -0
- azure/ai/evaluation/_common/rai_service.py +831 -142
- azure/ai/evaluation/_common/raiclient/__init__.py +34 -0
- azure/ai/evaluation/_common/raiclient/_client.py +128 -0
- azure/ai/evaluation/_common/raiclient/_configuration.py +87 -0
- azure/ai/evaluation/_common/raiclient/_model_base.py +1235 -0
- azure/ai/evaluation/_common/raiclient/_patch.py +20 -0
- azure/ai/evaluation/_common/raiclient/_serialization.py +2050 -0
- azure/ai/evaluation/_common/raiclient/_version.py +9 -0
- azure/ai/evaluation/_common/raiclient/aio/__init__.py +29 -0
- azure/ai/evaluation/_common/raiclient/aio/_client.py +130 -0
- azure/ai/evaluation/_common/raiclient/aio/_configuration.py +87 -0
- azure/ai/evaluation/_common/raiclient/aio/_patch.py +20 -0
- azure/ai/evaluation/_common/raiclient/aio/operations/__init__.py +25 -0
- azure/ai/evaluation/_common/raiclient/aio/operations/_operations.py +981 -0
- azure/ai/evaluation/_common/raiclient/aio/operations/_patch.py +20 -0
- azure/ai/evaluation/_common/raiclient/models/__init__.py +60 -0
- azure/ai/evaluation/_common/raiclient/models/_enums.py +18 -0
- azure/ai/evaluation/_common/raiclient/models/_models.py +651 -0
- azure/ai/evaluation/_common/raiclient/models/_patch.py +20 -0
- azure/ai/evaluation/_common/raiclient/operations/__init__.py +25 -0
- azure/ai/evaluation/_common/raiclient/operations/_operations.py +1238 -0
- azure/ai/evaluation/_common/raiclient/operations/_patch.py +20 -0
- azure/ai/evaluation/_common/raiclient/py.typed +1 -0
- azure/ai/evaluation/_common/utils.py +870 -34
- azure/ai/evaluation/_constants.py +167 -6
- azure/ai/evaluation/_converters/__init__.py +3 -0
- azure/ai/evaluation/_converters/_ai_services.py +899 -0
- azure/ai/evaluation/_converters/_models.py +467 -0
- azure/ai/evaluation/_converters/_sk_services.py +495 -0
- azure/ai/evaluation/_eval_mapping.py +83 -0
- azure/ai/evaluation/_evaluate/_batch_run/__init__.py +17 -0
- azure/ai/evaluation/_evaluate/_batch_run/_run_submitter_client.py +176 -0
- azure/ai/evaluation/_evaluate/_batch_run/batch_clients.py +82 -0
- azure/ai/evaluation/_evaluate/{_batch_run_client → _batch_run}/code_client.py +47 -25
- azure/ai/evaluation/_evaluate/{_batch_run_client/batch_run_context.py → _batch_run/eval_run_context.py} +42 -13
- azure/ai/evaluation/_evaluate/_batch_run/proxy_client.py +124 -0
- azure/ai/evaluation/_evaluate/_batch_run/target_run_context.py +62 -0
- azure/ai/evaluation/_evaluate/_eval_run.py +102 -59
- azure/ai/evaluation/_evaluate/_evaluate.py +2134 -311
- azure/ai/evaluation/_evaluate/_evaluate_aoai.py +992 -0
- azure/ai/evaluation/_evaluate/_telemetry/__init__.py +14 -99
- azure/ai/evaluation/_evaluate/_utils.py +289 -40
- azure/ai/evaluation/_evaluator_definition.py +76 -0
- azure/ai/evaluation/_evaluators/_bleu/_bleu.py +93 -42
- azure/ai/evaluation/_evaluators/_code_vulnerability/__init__.py +5 -0
- azure/ai/evaluation/_evaluators/_code_vulnerability/_code_vulnerability.py +119 -0
- azure/ai/evaluation/_evaluators/_coherence/_coherence.py +117 -91
- azure/ai/evaluation/_evaluators/_coherence/coherence.prompty +76 -39
- azure/ai/evaluation/_evaluators/_common/__init__.py +15 -0
- azure/ai/evaluation/_evaluators/_common/_base_eval.py +742 -0
- azure/ai/evaluation/_evaluators/_common/_base_multi_eval.py +63 -0
- azure/ai/evaluation/_evaluators/_common/_base_prompty_eval.py +345 -0
- azure/ai/evaluation/_evaluators/_common/_base_rai_svc_eval.py +198 -0
- azure/ai/evaluation/_evaluators/_common/_conversation_aggregators.py +49 -0
- azure/ai/evaluation/_evaluators/_content_safety/__init__.py +0 -4
- azure/ai/evaluation/_evaluators/_content_safety/_content_safety.py +144 -86
- azure/ai/evaluation/_evaluators/_content_safety/_hate_unfairness.py +138 -57
- azure/ai/evaluation/_evaluators/_content_safety/_self_harm.py +123 -55
- azure/ai/evaluation/_evaluators/_content_safety/_sexual.py +133 -54
- azure/ai/evaluation/_evaluators/_content_safety/_violence.py +134 -54
- azure/ai/evaluation/_evaluators/_document_retrieval/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_document_retrieval/_document_retrieval.py +442 -0
- azure/ai/evaluation/_evaluators/_eci/_eci.py +49 -56
- azure/ai/evaluation/_evaluators/_f1_score/_f1_score.py +102 -60
- azure/ai/evaluation/_evaluators/_fluency/_fluency.py +115 -92
- azure/ai/evaluation/_evaluators/_fluency/fluency.prompty +66 -41
- azure/ai/evaluation/_evaluators/_gleu/_gleu.py +90 -37
- azure/ai/evaluation/_evaluators/_groundedness/_groundedness.py +318 -82
- azure/ai/evaluation/_evaluators/_groundedness/groundedness_with_query.prompty +114 -0
- azure/ai/evaluation/_evaluators/_groundedness/groundedness_without_query.prompty +104 -0
- azure/ai/evaluation/{_evaluate/_batch_run_client → _evaluators/_intent_resolution}/__init__.py +3 -4
- azure/ai/evaluation/_evaluators/_intent_resolution/_intent_resolution.py +196 -0
- azure/ai/evaluation/_evaluators/_intent_resolution/intent_resolution.prompty +275 -0
- azure/ai/evaluation/_evaluators/_meteor/_meteor.py +107 -61
- azure/ai/evaluation/_evaluators/_protected_material/_protected_material.py +104 -77
- azure/ai/evaluation/_evaluators/_qa/_qa.py +115 -63
- azure/ai/evaluation/_evaluators/_relevance/_relevance.py +182 -98
- azure/ai/evaluation/_evaluators/_relevance/relevance.prompty +178 -49
- azure/ai/evaluation/_evaluators/_response_completeness/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_response_completeness/_response_completeness.py +202 -0
- azure/ai/evaluation/_evaluators/_response_completeness/response_completeness.prompty +84 -0
- azure/ai/evaluation/_evaluators/{_chat/retrieval → _retrieval}/__init__.py +2 -2
- azure/ai/evaluation/_evaluators/_retrieval/_retrieval.py +148 -0
- azure/ai/evaluation/_evaluators/_retrieval/retrieval.prompty +93 -0
- azure/ai/evaluation/_evaluators/_rouge/_rouge.py +189 -50
- azure/ai/evaluation/_evaluators/_service_groundedness/__init__.py +9 -0
- azure/ai/evaluation/_evaluators/_service_groundedness/_service_groundedness.py +179 -0
- azure/ai/evaluation/_evaluators/_similarity/_similarity.py +102 -91
- azure/ai/evaluation/_evaluators/_similarity/similarity.prompty +0 -5
- azure/ai/evaluation/_evaluators/_task_adherence/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_task_adherence/_task_adherence.py +226 -0
- azure/ai/evaluation/_evaluators/_task_adherence/task_adherence.prompty +101 -0
- azure/ai/evaluation/_evaluators/_task_completion/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_task_completion/_task_completion.py +177 -0
- azure/ai/evaluation/_evaluators/_task_completion/task_completion.prompty +220 -0
- azure/ai/evaluation/_evaluators/_task_navigation_efficiency/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_task_navigation_efficiency/_task_navigation_efficiency.py +384 -0
- azure/ai/evaluation/_evaluators/_tool_call_accuracy/__init__.py +9 -0
- azure/ai/evaluation/_evaluators/_tool_call_accuracy/_tool_call_accuracy.py +298 -0
- azure/ai/evaluation/_evaluators/_tool_call_accuracy/tool_call_accuracy.prompty +166 -0
- azure/ai/evaluation/_evaluators/_tool_input_accuracy/__init__.py +9 -0
- azure/ai/evaluation/_evaluators/_tool_input_accuracy/_tool_input_accuracy.py +263 -0
- azure/ai/evaluation/_evaluators/_tool_input_accuracy/tool_input_accuracy.prompty +76 -0
- azure/ai/evaluation/_evaluators/_tool_output_utilization/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_tool_output_utilization/_tool_output_utilization.py +225 -0
- azure/ai/evaluation/_evaluators/_tool_output_utilization/tool_output_utilization.prompty +221 -0
- azure/ai/evaluation/_evaluators/_tool_selection/__init__.py +9 -0
- azure/ai/evaluation/_evaluators/_tool_selection/_tool_selection.py +266 -0
- azure/ai/evaluation/_evaluators/_tool_selection/tool_selection.prompty +104 -0
- azure/ai/evaluation/_evaluators/_tool_success/__init__.py +7 -0
- azure/ai/evaluation/_evaluators/_tool_success/_tool_success.py +301 -0
- azure/ai/evaluation/_evaluators/_tool_success/tool_success.prompty +321 -0
- azure/ai/evaluation/_evaluators/_ungrounded_attributes/__init__.py +5 -0
- azure/ai/evaluation/_evaluators/_ungrounded_attributes/_ungrounded_attributes.py +102 -0
- azure/ai/evaluation/_evaluators/_xpia/xpia.py +109 -107
- azure/ai/evaluation/_exceptions.py +51 -7
- azure/ai/evaluation/_http_utils.py +210 -137
- azure/ai/evaluation/_legacy/__init__.py +3 -0
- azure/ai/evaluation/_legacy/_adapters/__init__.py +7 -0
- azure/ai/evaluation/_legacy/_adapters/_check.py +17 -0
- azure/ai/evaluation/_legacy/_adapters/_configuration.py +45 -0
- azure/ai/evaluation/_legacy/_adapters/_constants.py +10 -0
- azure/ai/evaluation/_legacy/_adapters/_errors.py +29 -0
- azure/ai/evaluation/_legacy/_adapters/_flows.py +28 -0
- azure/ai/evaluation/_legacy/_adapters/_service.py +16 -0
- azure/ai/evaluation/_legacy/_adapters/client.py +51 -0
- azure/ai/evaluation/_legacy/_adapters/entities.py +26 -0
- azure/ai/evaluation/_legacy/_adapters/tracing.py +28 -0
- azure/ai/evaluation/_legacy/_adapters/types.py +15 -0
- azure/ai/evaluation/_legacy/_adapters/utils.py +31 -0
- azure/ai/evaluation/_legacy/_batch_engine/__init__.py +9 -0
- azure/ai/evaluation/_legacy/_batch_engine/_config.py +48 -0
- azure/ai/evaluation/_legacy/_batch_engine/_engine.py +477 -0
- azure/ai/evaluation/_legacy/_batch_engine/_exceptions.py +88 -0
- azure/ai/evaluation/_legacy/_batch_engine/_openai_injector.py +132 -0
- azure/ai/evaluation/_legacy/_batch_engine/_result.py +107 -0
- azure/ai/evaluation/_legacy/_batch_engine/_run.py +127 -0
- azure/ai/evaluation/_legacy/_batch_engine/_run_storage.py +128 -0
- azure/ai/evaluation/_legacy/_batch_engine/_run_submitter.py +262 -0
- azure/ai/evaluation/_legacy/_batch_engine/_status.py +25 -0
- azure/ai/evaluation/_legacy/_batch_engine/_trace.py +97 -0
- azure/ai/evaluation/_legacy/_batch_engine/_utils.py +97 -0
- azure/ai/evaluation/_legacy/_batch_engine/_utils_deprecated.py +131 -0
- azure/ai/evaluation/_legacy/_common/__init__.py +3 -0
- azure/ai/evaluation/_legacy/_common/_async_token_provider.py +117 -0
- azure/ai/evaluation/_legacy/_common/_logging.py +292 -0
- azure/ai/evaluation/_legacy/_common/_thread_pool_executor_with_context.py +17 -0
- azure/ai/evaluation/_legacy/prompty/__init__.py +36 -0
- azure/ai/evaluation/_legacy/prompty/_connection.py +119 -0
- azure/ai/evaluation/_legacy/prompty/_exceptions.py +139 -0
- azure/ai/evaluation/_legacy/prompty/_prompty.py +430 -0
- azure/ai/evaluation/_legacy/prompty/_utils.py +663 -0
- azure/ai/evaluation/_legacy/prompty/_yaml_utils.py +99 -0
- azure/ai/evaluation/_model_configurations.py +130 -8
- azure/ai/evaluation/_safety_evaluation/__init__.py +3 -0
- azure/ai/evaluation/_safety_evaluation/_generated_rai_client.py +0 -0
- azure/ai/evaluation/_safety_evaluation/_safety_evaluation.py +917 -0
- azure/ai/evaluation/_user_agent.py +32 -1
- azure/ai/evaluation/_vendor/__init__.py +3 -0
- azure/ai/evaluation/_vendor/rouge_score/__init__.py +14 -0
- azure/ai/evaluation/_vendor/rouge_score/rouge_scorer.py +324 -0
- azure/ai/evaluation/_vendor/rouge_score/scoring.py +59 -0
- azure/ai/evaluation/_vendor/rouge_score/tokenize.py +59 -0
- azure/ai/evaluation/_vendor/rouge_score/tokenizers.py +53 -0
- azure/ai/evaluation/_version.py +2 -1
- azure/ai/evaluation/red_team/__init__.py +22 -0
- azure/ai/evaluation/red_team/_agent/__init__.py +3 -0
- azure/ai/evaluation/red_team/_agent/_agent_functions.py +261 -0
- azure/ai/evaluation/red_team/_agent/_agent_tools.py +461 -0
- azure/ai/evaluation/red_team/_agent/_agent_utils.py +89 -0
- azure/ai/evaluation/red_team/_agent/_semantic_kernel_plugin.py +228 -0
- azure/ai/evaluation/red_team/_attack_objective_generator.py +268 -0
- azure/ai/evaluation/red_team/_attack_strategy.py +49 -0
- azure/ai/evaluation/red_team/_callback_chat_target.py +115 -0
- azure/ai/evaluation/red_team/_default_converter.py +21 -0
- azure/ai/evaluation/red_team/_evaluation_processor.py +505 -0
- azure/ai/evaluation/red_team/_mlflow_integration.py +430 -0
- azure/ai/evaluation/red_team/_orchestrator_manager.py +803 -0
- azure/ai/evaluation/red_team/_red_team.py +1717 -0
- azure/ai/evaluation/red_team/_red_team_result.py +661 -0
- azure/ai/evaluation/red_team/_result_processor.py +1708 -0
- azure/ai/evaluation/red_team/_utils/__init__.py +37 -0
- azure/ai/evaluation/red_team/_utils/_rai_service_eval_chat_target.py +128 -0
- azure/ai/evaluation/red_team/_utils/_rai_service_target.py +601 -0
- azure/ai/evaluation/red_team/_utils/_rai_service_true_false_scorer.py +114 -0
- azure/ai/evaluation/red_team/_utils/constants.py +72 -0
- azure/ai/evaluation/red_team/_utils/exception_utils.py +345 -0
- azure/ai/evaluation/red_team/_utils/file_utils.py +266 -0
- azure/ai/evaluation/red_team/_utils/formatting_utils.py +365 -0
- azure/ai/evaluation/red_team/_utils/logging_utils.py +139 -0
- azure/ai/evaluation/red_team/_utils/metric_mapping.py +73 -0
- azure/ai/evaluation/red_team/_utils/objective_utils.py +46 -0
- azure/ai/evaluation/red_team/_utils/progress_utils.py +252 -0
- azure/ai/evaluation/red_team/_utils/retry_utils.py +218 -0
- azure/ai/evaluation/red_team/_utils/strategy_utils.py +218 -0
- azure/ai/evaluation/simulator/__init__.py +2 -1
- azure/ai/evaluation/simulator/_adversarial_scenario.py +26 -1
- azure/ai/evaluation/simulator/_adversarial_simulator.py +270 -144
- azure/ai/evaluation/simulator/_constants.py +12 -1
- azure/ai/evaluation/simulator/_conversation/__init__.py +151 -23
- azure/ai/evaluation/simulator/_conversation/_conversation.py +10 -6
- azure/ai/evaluation/simulator/_conversation/constants.py +1 -1
- azure/ai/evaluation/simulator/_data_sources/__init__.py +3 -0
- azure/ai/evaluation/simulator/_data_sources/grounding.json +1150 -0
- azure/ai/evaluation/simulator/_direct_attack_simulator.py +54 -75
- azure/ai/evaluation/simulator/_helpers/__init__.py +1 -2
- azure/ai/evaluation/simulator/_helpers/_language_suffix_mapping.py +1 -0
- azure/ai/evaluation/simulator/_helpers/_simulator_data_classes.py +26 -5
- azure/ai/evaluation/simulator/_indirect_attack_simulator.py +145 -104
- azure/ai/evaluation/simulator/_model_tools/__init__.py +2 -1
- azure/ai/evaluation/simulator/_model_tools/_generated_rai_client.py +225 -0
- azure/ai/evaluation/simulator/_model_tools/_identity_manager.py +80 -30
- azure/ai/evaluation/simulator/_model_tools/_proxy_completion_model.py +117 -45
- azure/ai/evaluation/simulator/_model_tools/_rai_client.py +109 -7
- azure/ai/evaluation/simulator/_model_tools/_template_handler.py +97 -33
- azure/ai/evaluation/simulator/_model_tools/models.py +30 -27
- azure/ai/evaluation/simulator/_prompty/task_query_response.prompty +6 -10
- azure/ai/evaluation/simulator/_prompty/task_simulate.prompty +6 -5
- azure/ai/evaluation/simulator/_simulator.py +302 -208
- azure/ai/evaluation/simulator/_utils.py +31 -13
- azure_ai_evaluation-1.13.3.dist-info/METADATA +939 -0
- azure_ai_evaluation-1.13.3.dist-info/RECORD +305 -0
- {azure_ai_evaluation-1.0.0b2.dist-info → azure_ai_evaluation-1.13.3.dist-info}/WHEEL +1 -1
- azure_ai_evaluation-1.13.3.dist-info/licenses/NOTICE.txt +70 -0
- azure/ai/evaluation/_evaluate/_batch_run_client/proxy_client.py +0 -71
- azure/ai/evaluation/_evaluators/_chat/_chat.py +0 -357
- azure/ai/evaluation/_evaluators/_chat/retrieval/_retrieval.py +0 -157
- azure/ai/evaluation/_evaluators/_chat/retrieval/retrieval.prompty +0 -48
- azure/ai/evaluation/_evaluators/_content_safety/_content_safety_base.py +0 -65
- azure/ai/evaluation/_evaluators/_content_safety/_content_safety_chat.py +0 -301
- azure/ai/evaluation/_evaluators/_groundedness/groundedness.prompty +0 -54
- azure/ai/evaluation/_evaluators/_protected_materials/__init__.py +0 -5
- azure/ai/evaluation/_evaluators/_protected_materials/_protected_materials.py +0 -104
- azure/ai/evaluation/simulator/_tracing.py +0 -89
- azure_ai_evaluation-1.0.0b2.dist-info/METADATA +0 -449
- azure_ai_evaluation-1.0.0b2.dist-info/RECORD +0 -99
- {azure_ai_evaluation-1.0.0b2.dist-info → azure_ai_evaluation-1.13.3.dist-info}/top_level.txt +0 -0
|
@@ -1,449 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: azure-ai-evaluation
|
|
3
|
-
Version: 1.0.0b2
|
|
4
|
-
Summary: Microsoft Azure Evaluation Library for Python
|
|
5
|
-
Home-page: https://github.com/Azure/azure-sdk-for-python
|
|
6
|
-
Author: Microsoft Corporation
|
|
7
|
-
Author-email: azuresdkengsysadmins@microsoft.com
|
|
8
|
-
License: MIT License
|
|
9
|
-
Project-URL: Bug Reports, https://github.com/Azure/azure-sdk-for-python/issues
|
|
10
|
-
Project-URL: Source, https://github.com/Azure/azure-sdk-for-python
|
|
11
|
-
Keywords: azure,azure sdk
|
|
12
|
-
Classifier: Development Status :: 4 - Beta
|
|
13
|
-
Classifier: Programming Language :: Python
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
21
|
-
Classifier: Operating System :: OS Independent
|
|
22
|
-
Requires-Python: >=3.8
|
|
23
|
-
Description-Content-Type: text/markdown
|
|
24
|
-
Requires-Dist: promptflow-devkit >=1.15.0
|
|
25
|
-
Requires-Dist: promptflow-core >=1.15.0
|
|
26
|
-
Requires-Dist: pyjwt >=2.8.0
|
|
27
|
-
Requires-Dist: azure-identity >=1.12.0
|
|
28
|
-
Requires-Dist: azure-core >=1.30.2
|
|
29
|
-
Requires-Dist: nltk >=3.9.1
|
|
30
|
-
Requires-Dist: rouge-score >=0.1.2
|
|
31
|
-
Requires-Dist: numpy >=1.23.2 ; python_version < "3.12"
|
|
32
|
-
Requires-Dist: numpy >=1.26.4 ; python_version >= "3.12"
|
|
33
|
-
Provides-Extra: pf-azure
|
|
34
|
-
Requires-Dist: promptflow-azure <2.0.0,>=1.15.0 ; extra == 'pf-azure'
|
|
35
|
-
|
|
36
|
-
# Azure AI Evaluation client library for Python
|
|
37
|
-
|
|
38
|
-
We are excited to introduce the public preview of the Azure AI Evaluation SDK.
|
|
39
|
-
|
|
40
|
-
[Source code][source_code]
|
|
41
|
-
| [Package (PyPI)][evaluation_pypi]
|
|
42
|
-
| [API reference documentation][evaluation_ref_docs]
|
|
43
|
-
| [Product documentation][product_documentation]
|
|
44
|
-
| [Samples][evaluation_samples]
|
|
45
|
-
|
|
46
|
-
This package has been tested with Python 3.8, 3.9, 3.10, 3.11, and 3.12.
|
|
47
|
-
|
|
48
|
-
For a more complete set of Azure libraries, see https://aka.ms/azsdk/python/all
|
|
49
|
-
|
|
50
|
-
## Getting started
|
|
51
|
-
|
|
52
|
-
### Prerequisites
|
|
53
|
-
|
|
54
|
-
- Python 3.8 or later is required to use this package.
|
|
55
|
-
|
|
56
|
-
### Install the package
|
|
57
|
-
|
|
58
|
-
Install the Azure AI Evaluation library for Python with [pip][pip_link]::
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
pip install azure-ai-evaluation
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Key concepts
|
|
65
|
-
|
|
66
|
-
Evaluators are custom or prebuilt classes or functions that are designed to measure the quality of the outputs from language models.
|
|
67
|
-
|
|
68
|
-
## Examples
|
|
69
|
-
|
|
70
|
-
### Evaluators
|
|
71
|
-
|
|
72
|
-
Users can create evaluator runs on the local machine as shown in the example below:
|
|
73
|
-
|
|
74
|
-
```python
|
|
75
|
-
import os
|
|
76
|
-
from pprint import pprint
|
|
77
|
-
|
|
78
|
-
from azure.ai.evaluation import evaluate, RelevanceEvaluator, ViolenceEvaluator
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
def response_length(response, **kwargs):
|
|
82
|
-
return {"value": len(response)}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if __name__ == "__main__":
|
|
86
|
-
# Built-in evaluators
|
|
87
|
-
# Initialize Azure OpenAI Model Configuration
|
|
88
|
-
model_config = {
|
|
89
|
-
"azure_endpoint": os.environ.get("AZURE_OPENAI_ENDPOINT"),
|
|
90
|
-
"api_key": os.environ.get("AZURE_OPENAI_KEY"),
|
|
91
|
-
"azure_deployment": os.environ.get("AZURE_OPENAI_DEPLOYMENT"),
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
# Initialzing Relevance Evaluator
|
|
95
|
-
relevance_eval = RelevanceEvaluator(model_config)
|
|
96
|
-
|
|
97
|
-
# Running Relevance Evaluator on single input row
|
|
98
|
-
relevance_score = relevance_eval(
|
|
99
|
-
response="The Alpine Explorer Tent is the most waterproof.",
|
|
100
|
-
context="From the our product list,"
|
|
101
|
-
" the alpine explorer tent is the most waterproof."
|
|
102
|
-
" The Adventure Dining Table has higher weight.",
|
|
103
|
-
query="Which tent is the most waterproof?",
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
pprint(relevance_score)
|
|
107
|
-
# {'gpt_relevance': 5.0}
|
|
108
|
-
|
|
109
|
-
# Content Safety Evaluator
|
|
110
|
-
|
|
111
|
-
# Initialize Project Scope
|
|
112
|
-
azure_ai_project = {
|
|
113
|
-
"subscription_id": <subscription_id>,
|
|
114
|
-
"resource_group_name": <resource_group_name>,
|
|
115
|
-
"project_name": <project_name>
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
violence_eval = ViolenceEvaluator(azure_ai_project)
|
|
119
|
-
violence_score = violence_eval(query="What is the capital of France?", response="Paris.")
|
|
120
|
-
pprint(violence_score)
|
|
121
|
-
# {'violence': 'Very low',
|
|
122
|
-
# 'violence_reason': "The system's response is a straightforward factual response "
|
|
123
|
-
# 'to a geography question. There is no violent content or '
|
|
124
|
-
# 'language present.',
|
|
125
|
-
# 'violence_score': 0}
|
|
126
|
-
|
|
127
|
-
# Code based evaluator
|
|
128
|
-
response_length("The Alpine Explorer Tent is the most waterproof.")
|
|
129
|
-
# {'value': 48}
|
|
130
|
-
|
|
131
|
-
# Using multiple evaluators together using `Evaluate` API
|
|
132
|
-
|
|
133
|
-
result = evaluate(
|
|
134
|
-
data="evaluate_test_data.jsonl",
|
|
135
|
-
evaluators={
|
|
136
|
-
"response_length": response_length,
|
|
137
|
-
"violence": violence_eval,
|
|
138
|
-
},
|
|
139
|
-
)
|
|
140
|
-
|
|
141
|
-
pprint(result)
|
|
142
|
-
```
|
|
143
|
-
### Simulator
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
Simulators allow users to generate synthentic data using their application. Simulator expects the user to have a callback method that invokes
|
|
147
|
-
their AI application.
|
|
148
|
-
|
|
149
|
-
#### Simulating with a Prompty
|
|
150
|
-
|
|
151
|
-
```yaml
|
|
152
|
-
---
|
|
153
|
-
name: ApplicationPrompty
|
|
154
|
-
description: Simulates an application
|
|
155
|
-
model:
|
|
156
|
-
api: chat
|
|
157
|
-
configuration:
|
|
158
|
-
type: azure_openai
|
|
159
|
-
azure_deployment: ${env:AZURE_DEPLOYMENT}
|
|
160
|
-
api_key: ${env:AZURE_OPENAI_API_KEY}
|
|
161
|
-
azure_endpoint: ${env:AZURE_OPENAI_ENDPOINT}
|
|
162
|
-
parameters:
|
|
163
|
-
temperature: 0.0
|
|
164
|
-
top_p: 1.0
|
|
165
|
-
presence_penalty: 0
|
|
166
|
-
frequency_penalty: 0
|
|
167
|
-
response_format:
|
|
168
|
-
type: text
|
|
169
|
-
|
|
170
|
-
inputs:
|
|
171
|
-
conversation_history:
|
|
172
|
-
type: dict
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
system:
|
|
176
|
-
You are a helpful assistant and you're helping with the user's query. Keep the conversation engaging and interesting.
|
|
177
|
-
|
|
178
|
-
Output with a string that continues the conversation, responding to the latest message from the user, given the conversation history:
|
|
179
|
-
{{ conversation_history }}
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
Application code:
|
|
183
|
-
|
|
184
|
-
```python
|
|
185
|
-
import json
|
|
186
|
-
import asyncio
|
|
187
|
-
from typing import Any, Dict, List, Optional
|
|
188
|
-
from azure.ai.evaluation.simulator import Simulator
|
|
189
|
-
from promptflow.client import load_flow
|
|
190
|
-
from azure.identity import DefaultAzureCredential
|
|
191
|
-
import os
|
|
192
|
-
|
|
193
|
-
azure_ai_project = {
|
|
194
|
-
"subscription_id": os.environ.get("AZURE_SUBSCRIPTION_ID"),
|
|
195
|
-
"resource_group_name": os.environ.get("RESOURCE_GROUP"),
|
|
196
|
-
"project_name": os.environ.get("PROJECT_NAME")
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
import wikipedia
|
|
200
|
-
wiki_search_term = "Leonardo da vinci"
|
|
201
|
-
wiki_title = wikipedia.search(wiki_search_term)[0]
|
|
202
|
-
wiki_page = wikipedia.page(wiki_title)
|
|
203
|
-
text = wiki_page.summary[:1000]
|
|
204
|
-
|
|
205
|
-
def method_to_invoke_application_prompty(query: str):
|
|
206
|
-
try:
|
|
207
|
-
current_dir = os.path.dirname(__file__)
|
|
208
|
-
prompty_path = os.path.join(current_dir, "application.prompty")
|
|
209
|
-
_flow = load_flow(source=prompty_path, model={
|
|
210
|
-
"configuration": azure_ai_project
|
|
211
|
-
})
|
|
212
|
-
response = _flow(
|
|
213
|
-
query=query,
|
|
214
|
-
context=context,
|
|
215
|
-
conversation_history=messages_list
|
|
216
|
-
)
|
|
217
|
-
return response
|
|
218
|
-
except:
|
|
219
|
-
print("Something went wrong invoking the prompty")
|
|
220
|
-
return "something went wrong"
|
|
221
|
-
|
|
222
|
-
async def callback(
|
|
223
|
-
messages: List[Dict],
|
|
224
|
-
stream: bool = False,
|
|
225
|
-
session_state: Any = None, # noqa: ANN401
|
|
226
|
-
context: Optional[Dict[str, Any]] = None,
|
|
227
|
-
) -> dict:
|
|
228
|
-
messages_list = messages["messages"]
|
|
229
|
-
# get last message
|
|
230
|
-
latest_message = messages_list[-1]
|
|
231
|
-
query = latest_message["content"]
|
|
232
|
-
context = None
|
|
233
|
-
# call your endpoint or ai application here
|
|
234
|
-
response = method_to_invoke_application_prompty(query)
|
|
235
|
-
# we are formatting the response to follow the openAI chat protocol format
|
|
236
|
-
formatted_response = {
|
|
237
|
-
"content": response,
|
|
238
|
-
"role": "assistant",
|
|
239
|
-
"context": {
|
|
240
|
-
"citations": None,
|
|
241
|
-
},
|
|
242
|
-
}
|
|
243
|
-
messages["messages"].append(formatted_response)
|
|
244
|
-
return {"messages": messages["messages"], "stream": stream, "session_state": session_state, "context": context}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
async def main():
|
|
249
|
-
simulator = Simulator(azure_ai_project=azure_ai_project, credential=DefaultAzureCredential())
|
|
250
|
-
outputs = await simulator(
|
|
251
|
-
target=callback,
|
|
252
|
-
text=text,
|
|
253
|
-
num_queries=2,
|
|
254
|
-
max_conversation_turns=4,
|
|
255
|
-
user_persona=[
|
|
256
|
-
f"I am a student and I want to learn more about {wiki_search_term}",
|
|
257
|
-
f"I am a teacher and I want to teach my students about {wiki_search_term}"
|
|
258
|
-
],
|
|
259
|
-
)
|
|
260
|
-
print(json.dumps(outputs))
|
|
261
|
-
|
|
262
|
-
if __name__ == "__main__":
|
|
263
|
-
os.environ["AZURE_SUBSCRIPTION_ID"] = ""
|
|
264
|
-
os.environ["RESOURCE_GROUP"] = ""
|
|
265
|
-
os.environ["PROJECT_NAME"] = ""
|
|
266
|
-
os.environ["AZURE_OPENAI_API_KEY"] = ""
|
|
267
|
-
os.environ["AZURE_OPENAI_ENDPOINT"] = ""
|
|
268
|
-
os.environ["AZURE_DEPLOYMENT"] = ""
|
|
269
|
-
asyncio.run(main())
|
|
270
|
-
print("done!")
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
#### Adversarial Simulator
|
|
274
|
-
|
|
275
|
-
```python
|
|
276
|
-
from from azure.ai.evaluation.simulator import AdversarialSimulator, AdversarialScenario
|
|
277
|
-
from azure.identity import DefaultAzureCredential
|
|
278
|
-
from typing import Any, Dict, List, Optional
|
|
279
|
-
import asyncio
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
azure_ai_project = {
|
|
283
|
-
"subscription_id": <subscription_id>,
|
|
284
|
-
"resource_group_name": <resource_group_name>,
|
|
285
|
-
"project_name": <project_name>
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
async def callback(
|
|
289
|
-
messages: List[Dict],
|
|
290
|
-
stream: bool = False,
|
|
291
|
-
session_state: Any = None,
|
|
292
|
-
context: Dict[str, Any] = None
|
|
293
|
-
) -> dict:
|
|
294
|
-
messages_list = messages["messages"]
|
|
295
|
-
# get last message
|
|
296
|
-
latest_message = messages_list[-1]
|
|
297
|
-
query = latest_message["content"]
|
|
298
|
-
context = None
|
|
299
|
-
if 'file_content' in messages["template_parameters"]:
|
|
300
|
-
query += messages["template_parameters"]['file_content']
|
|
301
|
-
# the next few lines explains how to use the AsyncAzureOpenAI's chat.completions
|
|
302
|
-
# to respond to the simulator. You should replace it with a call to your model/endpoint/application
|
|
303
|
-
# make sure you pass the `query` and format the response as we have shown below
|
|
304
|
-
from openai import AsyncAzureOpenAI
|
|
305
|
-
oai_client = AsyncAzureOpenAI(
|
|
306
|
-
api_key=<api_key>,
|
|
307
|
-
azure_endpoint=<endpoint>,
|
|
308
|
-
api_version="2023-12-01-preview",
|
|
309
|
-
)
|
|
310
|
-
try:
|
|
311
|
-
response_from_oai_chat_completions = await oai_client.chat.completions.create(messages=[{"content": query, "role": "user"}], model="gpt-4", max_tokens=300)
|
|
312
|
-
except Exception as e:
|
|
313
|
-
print(f"Error: {e}")
|
|
314
|
-
# to continue the conversation, return the messages, else you can fail the adversarial with an exception
|
|
315
|
-
message = {
|
|
316
|
-
"content": "Something went wrong. Check the exception e for more details.",
|
|
317
|
-
"role": "assistant",
|
|
318
|
-
"context": None,
|
|
319
|
-
}
|
|
320
|
-
messages["messages"].append(message)
|
|
321
|
-
return {
|
|
322
|
-
"messages": messages["messages"],
|
|
323
|
-
"stream": stream,
|
|
324
|
-
"session_state": session_state
|
|
325
|
-
}
|
|
326
|
-
response_result = response_from_oai_chat_completions.choices[0].message.content
|
|
327
|
-
formatted_response = {
|
|
328
|
-
"content": response_result,
|
|
329
|
-
"role": "assistant",
|
|
330
|
-
"context": {},
|
|
331
|
-
}
|
|
332
|
-
messages["messages"].append(formatted_response)
|
|
333
|
-
return {
|
|
334
|
-
"messages": messages["messages"],
|
|
335
|
-
"stream": stream,
|
|
336
|
-
"session_state": session_state,
|
|
337
|
-
"context": context
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
#### Adversarial QA
|
|
343
|
-
|
|
344
|
-
```python
|
|
345
|
-
scenario = AdversarialScenario.ADVERSARIAL_QA
|
|
346
|
-
simulator = AdversarialSimulator(azure_ai_project=azure_ai_project, credential=DefaultAzureCredential())
|
|
347
|
-
|
|
348
|
-
outputs = asyncio.run(
|
|
349
|
-
simulator(
|
|
350
|
-
scenario=scenario,
|
|
351
|
-
max_conversation_turns=1,
|
|
352
|
-
max_simulation_results=3,
|
|
353
|
-
target=callback
|
|
354
|
-
)
|
|
355
|
-
)
|
|
356
|
-
|
|
357
|
-
print(outputs.to_eval_qa_json_lines())
|
|
358
|
-
```
|
|
359
|
-
#### Direct Attack Simulator
|
|
360
|
-
|
|
361
|
-
```python
|
|
362
|
-
scenario = AdversarialScenario.ADVERSARIAL_QA
|
|
363
|
-
simulator = DirectAttackSimulator(azure_ai_project=azure_ai_project, credential=DefaultAzureCredential())
|
|
364
|
-
|
|
365
|
-
outputs = asyncio.run(
|
|
366
|
-
simulator(
|
|
367
|
-
scenario=scenario,
|
|
368
|
-
max_conversation_turns=1,
|
|
369
|
-
max_simulation_results=2,
|
|
370
|
-
target=callback
|
|
371
|
-
)
|
|
372
|
-
)
|
|
373
|
-
|
|
374
|
-
print(outputs)
|
|
375
|
-
```
|
|
376
|
-
## Troubleshooting
|
|
377
|
-
|
|
378
|
-
### General
|
|
379
|
-
|
|
380
|
-
Azure ML clients raise exceptions defined in [Azure Core][azure_core_readme].
|
|
381
|
-
|
|
382
|
-
### Logging
|
|
383
|
-
|
|
384
|
-
This library uses the standard
|
|
385
|
-
[logging][python_logging] library for logging.
|
|
386
|
-
Basic information about HTTP sessions (URLs, headers, etc.) is logged at INFO
|
|
387
|
-
level.
|
|
388
|
-
|
|
389
|
-
Detailed DEBUG level logging, including request/response bodies and unredacted
|
|
390
|
-
headers, can be enabled on a client with the `logging_enable` argument.
|
|
391
|
-
|
|
392
|
-
See full SDK logging documentation with examples [here][sdk_logging_docs].
|
|
393
|
-
|
|
394
|
-
## Next steps
|
|
395
|
-
|
|
396
|
-
- View our [samples][evaluation_samples].
|
|
397
|
-
- View our [documentation][product_documentation]
|
|
398
|
-
|
|
399
|
-
## Contributing
|
|
400
|
-
|
|
401
|
-
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit [cla.microsoft.com][cla].
|
|
402
|
-
|
|
403
|
-
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
|
|
404
|
-
|
|
405
|
-
This project has adopted the [Microsoft Open Source Code of Conduct][code_of_conduct]. For more information see the [Code of Conduct FAQ][coc_faq] or contact [opencode@microsoft.com][coc_contact] with any additional questions or comments.
|
|
406
|
-
|
|
407
|
-
<!-- LINKS -->
|
|
408
|
-
|
|
409
|
-
[source_code]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/evaluation/azure-ai-evaluation
|
|
410
|
-
[evaluation_pypi]: https://pypi.org/project/azure-ai-evaluation/
|
|
411
|
-
[evaluation_ref_docs]: https://learn.microsoft.com/python/api/azure-ai-evaluation/azure.ai.evaluation?view=azure-python-preview
|
|
412
|
-
[evaluation_samples]: https://github.com/Azure-Samples/azureai-samples/tree/main/scenarios
|
|
413
|
-
[product_documentation]: https://learn.microsoft.com/azure/ai-studio/how-to/develop/evaluate-sdk
|
|
414
|
-
[python_logging]: https://docs.python.org/3/library/logging.html
|
|
415
|
-
[sdk_logging_docs]: https://docs.microsoft.com/azure/developer/python/azure-sdk-logging
|
|
416
|
-
[azure_core_readme]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md
|
|
417
|
-
[pip_link]: https://pypi.org/project/pip/
|
|
418
|
-
[azure_core_ref_docs]: https://aka.ms/azsdk-python-core-policies
|
|
419
|
-
[azure_core]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md
|
|
420
|
-
[azure_identity]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
|
|
421
|
-
[cla]: https://cla.microsoft.com
|
|
422
|
-
[code_of_conduct]: https://opensource.microsoft.com/codeofconduct/
|
|
423
|
-
[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/
|
|
424
|
-
[coc_contact]: mailto:opencode@microsoft.com
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
# Release History
|
|
428
|
-
|
|
429
|
-
## 1.0.0b2 (2024-09-24)
|
|
430
|
-
|
|
431
|
-
### Breaking Changes
|
|
432
|
-
|
|
433
|
-
- `data` and `evaluators` are now required keywords in `evaluate`.
|
|
434
|
-
|
|
435
|
-
## 1.0.0b1 (2024-09-20)
|
|
436
|
-
|
|
437
|
-
### Breaking Changes
|
|
438
|
-
|
|
439
|
-
- The `synthetic` namespace has been renamed to `simulator`, and sub-namespaces under this module have been removed
|
|
440
|
-
- The `evaluate` and `evaluators` namespaces have been removed, and everything previously exposed in those modules has been added to the root namespace `azure.ai.evaluation`
|
|
441
|
-
- The parameter name `project_scope` in content safety evaluators have been renamed to `azure_ai_project` for consistency with evaluate API and simulators.
|
|
442
|
-
- Model configurations classes are now of type `TypedDict` and are exposed in the `azure.ai.evaluation` module instead of coming from `promptflow.core`.
|
|
443
|
-
- Updated the parameter names for `question` and `answer` in built-in evaluators to more generic terms: `query` and `response`.
|
|
444
|
-
|
|
445
|
-
### Features Added
|
|
446
|
-
|
|
447
|
-
- First preview
|
|
448
|
-
- This package is port of `promptflow-evals`. New features will be added only to this package moving forward.
|
|
449
|
-
- Added a `TypedDict` for `AzureAIProject` that allows for better intellisense and type checking when passing in project information
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
azure/ai/evaluation/__init__.py,sha256=7ff0POpQe1C1L9eD4yz9P9y9BtFWNr5wHEtSOR2xVA0,1967
|
|
2
|
-
azure/ai/evaluation/_constants.py,sha256=cWnrEjJuPok2CPbibJ40XyX2VSlw4-x_dob3DjFsd5U,1683
|
|
3
|
-
azure/ai/evaluation/_exceptions.py,sha256=HUMfvguDc7ygcbs3MTK14R3PK7UxGNWQQHH3hYXIV3U,4168
|
|
4
|
-
azure/ai/evaluation/_http_utils.py,sha256=kpAuxuoC6ZK-ZHw6qScOC8ePJQXLwf7SJWP5S4OWwUs,13983
|
|
5
|
-
azure/ai/evaluation/_model_configurations.py,sha256=D02AzOdyO6LQCia0k232Msd7ro35-EcwmlQ0tOD_5H0,652
|
|
6
|
-
azure/ai/evaluation/_user_agent.py,sha256=O2y-QPBAcw7w7qQ6M2aRPC3Vy3TKd789u5lcs2yuFaI,290
|
|
7
|
-
azure/ai/evaluation/_version.py,sha256=Fx-4qD0RW2DqdKCStZHT4KOjqxKVEeT05DbGkqnTSF4,201
|
|
8
|
-
azure/ai/evaluation/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
azure/ai/evaluation/_common/__init__.py,sha256=LHTkf6dMLLxikrGNgbUuREBVQcs4ORHR6Eryo4bm9M8,586
|
|
10
|
-
azure/ai/evaluation/_common/constants.py,sha256=ZKHGVgGA1Fc6Pvo22X-CeOUX6-m0q_UwpOKOWATTSuI,1639
|
|
11
|
-
azure/ai/evaluation/_common/rai_service.py,sha256=R-1jtWi4Fu4IT4v0j0hKsWyN-D5nwH5HQr1x0AtCp8Q,17539
|
|
12
|
-
azure/ai/evaluation/_common/utils.py,sha256=orrvIGY3L2o8uHEJkTdfNa4jV_8OsscWyL3CzX96U9o,2991
|
|
13
|
-
azure/ai/evaluation/_evaluate/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
14
|
-
azure/ai/evaluation/_evaluate/_eval_run.py,sha256=EVCSRjIwOkXfYlIBTv7hosyUqcMTmVqGQ44yvHmm2Eg,20943
|
|
15
|
-
azure/ai/evaluation/_evaluate/_evaluate.py,sha256=50djPOmW-K3f7lbTttPWcgGx96_b-zTeG5iBHuPArRY,29141
|
|
16
|
-
azure/ai/evaluation/_evaluate/_utils.py,sha256=9I29KAFsYJCp6frlLXb5vwZJzmiNzfzku9CD1eslaHU,9880
|
|
17
|
-
azure/ai/evaluation/_evaluate/_batch_run_client/__init__.py,sha256=BkxhojWca3e2QM3hFwO2xrLiiQ0i-3f8wsMfOx1zchs,361
|
|
18
|
-
azure/ai/evaluation/_evaluate/_batch_run_client/batch_run_context.py,sha256=sn7k9nM7vVZDt5CgNwwQrvQwV--SwfsfLjfjahk23DM,2984
|
|
19
|
-
azure/ai/evaluation/_evaluate/_batch_run_client/code_client.py,sha256=zuACg8pNe4d5lckhghjkDA8Hk4WQ9ih3W2AJ-M3hVGk,7890
|
|
20
|
-
azure/ai/evaluation/_evaluate/_batch_run_client/proxy_client.py,sha256=WDmtnRmIlBmJASxRlX9vAT4CpgZszv7juyfJrj892vo,2598
|
|
21
|
-
azure/ai/evaluation/_evaluate/_telemetry/__init__.py,sha256=6kkbiTCsz7BNV5WxOdwCBv96u7c0k0bk84m9vQ0mHXY,6627
|
|
22
|
-
azure/ai/evaluation/_evaluators/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
23
|
-
azure/ai/evaluation/_evaluators/_bleu/__init__.py,sha256=quKKO0kvOSkky5hcoNBvgBuMeeVRFCE9GSv70mAdGP4,260
|
|
24
|
-
azure/ai/evaluation/_evaluators/_bleu/_bleu.py,sha256=6EJCG9DnL2Y4pU_vhY4o3UOrumvI-6HI92tzEuCoyXk,2413
|
|
25
|
-
azure/ai/evaluation/_evaluators/_chat/__init__.py,sha256=xOsSHYNGJJiZvBMPbmLd_-ZZs8_15Sblvk-OF7iVoIo,250
|
|
26
|
-
azure/ai/evaluation/_evaluators/_chat/_chat.py,sha256=ZCm7L50bRaAvj2-Gw6T_9u4RTHRF6neCYnjDCunRjKw,14787
|
|
27
|
-
azure/ai/evaluation/_evaluators/_chat/retrieval/__init__.py,sha256=DmBjBkwDDlCsSGpBeXfpfMM9ekxIJs62dij4rBXND7k,273
|
|
28
|
-
azure/ai/evaluation/_evaluators/_chat/retrieval/_retrieval.py,sha256=HKkQdvYVD3Mr5kPUzKLBYsct94k1hAcLu5v9MCxZ6lA,5579
|
|
29
|
-
azure/ai/evaluation/_evaluators/_chat/retrieval/retrieval.prompty,sha256=NoHNDf_UE8BGAixqZPhRQ4ecxOUi9w9gO8HfHhJuxaY,1761
|
|
30
|
-
azure/ai/evaluation/_evaluators/_coherence/__init__.py,sha256=GRqcSCQse02Spyki0UsRNWMIXiea2lLtPPXNGvkJzQ0,258
|
|
31
|
-
azure/ai/evaluation/_evaluators/_coherence/_coherence.py,sha256=XMymhai4cw9Gqy9Lfa9IvIcw9s_cnCM1pbyVVnpF53M,3958
|
|
32
|
-
azure/ai/evaluation/_evaluators/_coherence/coherence.prompty,sha256=WVEXxKmh_Gbb11_00N2WCIIJSMgPssFxJ5h2--rMG-w,2725
|
|
33
|
-
azure/ai/evaluation/_evaluators/_content_safety/__init__.py,sha256=mR5CbcMyxV9GQoY71Saoi0bQTpEB74HrYmM8gcVhnAg,746
|
|
34
|
-
azure/ai/evaluation/_evaluators/_content_safety/_content_safety.py,sha256=uM6BL9jwtv5nJpSchezTYc-E514_VCTN2pACy7oxHuU,3928
|
|
35
|
-
azure/ai/evaluation/_evaluators/_content_safety/_content_safety_base.py,sha256=VlBDKrB2uNXX8ccV7aKsHM74_mK6JLUZ9SAGcvR3Lk8,2733
|
|
36
|
-
azure/ai/evaluation/_evaluators/_content_safety/_content_safety_chat.py,sha256=n5fdL0TPelJY_AuiamkLO7Jiv7P-7gIZqipo5ShyoR8,11958
|
|
37
|
-
azure/ai/evaluation/_evaluators/_content_safety/_hate_unfairness.py,sha256=uA_FecBD9M1C0_hfnbqR9shZNMFbhmBcCAhKgTxv8rI,2807
|
|
38
|
-
azure/ai/evaluation/_evaluators/_content_safety/_self_harm.py,sha256=6_FK2zDAyS3wQTbYe3FmNXxw7qWwYOGqLUKopWUWKvQ,2608
|
|
39
|
-
azure/ai/evaluation/_evaluators/_content_safety/_sexual.py,sha256=d8LZD368nqppZi-Kdimo4Lt8QOTFtc6csPjY66G7SMQ,2576
|
|
40
|
-
azure/ai/evaluation/_evaluators/_content_safety/_violence.py,sha256=e0ZeUcD1YKWPzqfaLBxFdNHmod69K55zIOgLOJAMe_4,2600
|
|
41
|
-
azure/ai/evaluation/_evaluators/_eci/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
azure/ai/evaluation/_evaluators/_eci/_eci.py,sha256=Amrch3q5BG2BFAB7GdShnTX19f5IoGY6VF66_M6hbZs,3990
|
|
43
|
-
azure/ai/evaluation/_evaluators/_f1_score/__init__.py,sha256=aEVbO7iMoF20obdpLQKcKm69Yyu3mYnblKELLqu8OGI,260
|
|
44
|
-
azure/ai/evaluation/_evaluators/_f1_score/_f1_score.py,sha256=Cgp-hANXtrNfe1q6SVm-CUG3UEP8Gj1pvH293ay57OI,4554
|
|
45
|
-
azure/ai/evaluation/_evaluators/_fluency/__init__.py,sha256=EEJw39xRa0bOAA1rELTTKXQu2s60n_7CZQRD0Gu2QVw,259
|
|
46
|
-
azure/ai/evaluation/_evaluators/_fluency/_fluency.py,sha256=MhDOoP9oD-rw7uT90pU6O1XP6vqfOP6e608tp1qRy7Y,3919
|
|
47
|
-
azure/ai/evaluation/_evaluators/_fluency/fluency.prompty,sha256=RparSdDZs-xiGbq7lRifz9z7jaD10ldXDU3E7sO0v2s,2579
|
|
48
|
-
azure/ai/evaluation/_evaluators/_gleu/__init__.py,sha256=Ae2EvQ7gqiYAoNO3LwGIhdAAjJPJDfT85rQGKrRrmbA,260
|
|
49
|
-
azure/ai/evaluation/_evaluators/_gleu/_gleu.py,sha256=m02wmIGjdoXjp9dwjnFQAKA8hGOUOTvpppDf2CD4QQo,2326
|
|
50
|
-
azure/ai/evaluation/_evaluators/_groundedness/__init__.py,sha256=UYNJUeRvBwcSVFyZpdsf29un5eyaDzYoo3QvC1gvlLg,274
|
|
51
|
-
azure/ai/evaluation/_evaluators/_groundedness/_groundedness.py,sha256=3HcNMOBxbslIJmmhJWU3itPOL3TOiLqQYiYr_n8wTqU,4138
|
|
52
|
-
azure/ai/evaluation/_evaluators/_groundedness/groundedness.prompty,sha256=dDclp_YowBjeiGhwmCxCnS4A3K9r4v2tzsUm-ccLt-I,3199
|
|
53
|
-
azure/ai/evaluation/_evaluators/_meteor/__init__.py,sha256=209na3pPsdmcuYpYHUYtqQybCpc3yZkc93HnRdicSlI,266
|
|
54
|
-
azure/ai/evaluation/_evaluators/_meteor/_meteor.py,sha256=K3EdRuRcuEZYVIlI2jMEp0O9KJYXQB2o6h08q43oKWY,3316
|
|
55
|
-
azure/ai/evaluation/_evaluators/_protected_material/__init__.py,sha256=eRAQIU9diVXfO5bp6aLWxZoYUvOsrDIfy1gnDOeNTiI,109
|
|
56
|
-
azure/ai/evaluation/_evaluators/_protected_material/_protected_material.py,sha256=LnbyS3xVu_7Q1nDuoOxnQnzXhZVrDMSnEzNdu66g6DY,4165
|
|
57
|
-
azure/ai/evaluation/_evaluators/_protected_materials/__init__.py,sha256=A12UsRVIebGvy9FtZLBPsOIAWUskBt8iuhRdILyRcSo,112
|
|
58
|
-
azure/ai/evaluation/_evaluators/_protected_materials/_protected_materials.py,sha256=xF5jHhM29OXh2sHrnXkYtiRYltuVU-fqC7xToiI3WOM,4136
|
|
59
|
-
azure/ai/evaluation/_evaluators/_qa/__init__.py,sha256=bcXfT--C0hjym2haqd1B2-u9bDciyM0ThOFtU1Q69sk,244
|
|
60
|
-
azure/ai/evaluation/_evaluators/_qa/_qa.py,sha256=w9XJOfDof78mfOpc7tbPF5wec9dGPFmXXAdR5yx2buI,3502
|
|
61
|
-
azure/ai/evaluation/_evaluators/_relevance/__init__.py,sha256=JlxytW32Nl8pbE-fI3GRpfgVuY9EG6zxIAn5VZGSwyc,265
|
|
62
|
-
azure/ai/evaluation/_evaluators/_relevance/_relevance.py,sha256=iMky4Gf1kJB1kvBLaNWwCOBKLSWfhtSSLU0tPTU6ruE,4344
|
|
63
|
-
azure/ai/evaluation/_evaluators/_relevance/relevance.prompty,sha256=AO70ho2nMhBtKcl_q4nKFW4kA1LjYsmSfymNa-Cbcrw,3735
|
|
64
|
-
azure/ai/evaluation/_evaluators/_rouge/__init__.py,sha256=kusCDaYcXogDugGefRP8MQSn9xv107oDbrMCqZ6K4GA,291
|
|
65
|
-
azure/ai/evaluation/_evaluators/_rouge/_rouge.py,sha256=28vqjjleeJR5VRsQP5VCCMX_PVUUVxkgh4c3xIvwmXE,3526
|
|
66
|
-
azure/ai/evaluation/_evaluators/_similarity/__init__.py,sha256=V2Mspog99_WBltxTkRHG5NpN5s9XoiTSN4I8POWEkLA,268
|
|
67
|
-
azure/ai/evaluation/_evaluators/_similarity/_similarity.py,sha256=T-aTYausFvIfxCe0u8Lbd3ehKwxRtRLk2gHZ2pJ9YkE,4332
|
|
68
|
-
azure/ai/evaluation/_evaluators/_similarity/similarity.prompty,sha256=p2Tb4IW6QnP2BaGRQsAicW4V0B23Oezhf5l3Hau0nxU,4770
|
|
69
|
-
azure/ai/evaluation/_evaluators/_xpia/__init__.py,sha256=VMEL8WrpJQeh4sQiOLzP7hRFPnjzsvwfvTzaGCVJPCM,88
|
|
70
|
-
azure/ai/evaluation/_evaluators/_xpia/xpia.py,sha256=iYXjGt0F_gfc7SF6Q_d3Z_0Bkniqad91wljtBwR6BDM,5750
|
|
71
|
-
azure/ai/evaluation/simulator/__init__.py,sha256=UtlcXo3SteIQEW_hW2WMhtqLNiDiIGLeW_lIkEUNoMc,486
|
|
72
|
-
azure/ai/evaluation/simulator/_adversarial_scenario.py,sha256=SxpyMw5wmM5-fiUjl1_oJH0GQEnsa7ASso10MAr2Hjw,1030
|
|
73
|
-
azure/ai/evaluation/simulator/_adversarial_simulator.py,sha256=kOL31FcD7vXTpkeFUooASXNaFTe9Vme5st_i0Qa_9sA,20542
|
|
74
|
-
azure/ai/evaluation/simulator/_constants.py,sha256=xM-Or2x7RytfoeBM3N7Vt4JQDJX66UdL3CPz0YN5rvE,485
|
|
75
|
-
azure/ai/evaluation/simulator/_direct_attack_simulator.py,sha256=zFYYdk8Sdg4-_HSd_rumM0LizPevcR57HjqvEdowv8c,11691
|
|
76
|
-
azure/ai/evaluation/simulator/_indirect_attack_simulator.py,sha256=qALFN3LG5o1kSjMjdlLeJInax8GcjD1iPUZCayJp0Kc,9628
|
|
77
|
-
azure/ai/evaluation/simulator/_simulator.py,sha256=MpB8fcCmuge7AvHmoV-K3L9tdEwWHcfpkiU22MJfZ-A,31642
|
|
78
|
-
azure/ai/evaluation/simulator/_tracing.py,sha256=LRPjsVLe9VohmXowFr9aCK_VwD0MHd1CBe8rl9jGQhU,3032
|
|
79
|
-
azure/ai/evaluation/simulator/_utils.py,sha256=aXH5GdzQrwluKvYofWtdT0s_nzgVHS2hP6x4rc5zt-E,4287
|
|
80
|
-
azure/ai/evaluation/simulator/_conversation/__init__.py,sha256=MNfFW4UDsVrk1p2ysIvmYlLzHqjKfxExktQXfSRiBPk,12774
|
|
81
|
-
azure/ai/evaluation/simulator/_conversation/_conversation.py,sha256=ajJeFlHv4APXOinMYMzDYqKbDLtAdu4fE9FvP1gt2XA,7300
|
|
82
|
-
azure/ai/evaluation/simulator/_conversation/constants.py,sha256=3v7zkjPwJAPbSpJYIK6VOZZy70bJXMo_QTVqSFGlq9A,984
|
|
83
|
-
azure/ai/evaluation/simulator/_helpers/__init__.py,sha256=YTwBf9B_uWGZSbS5vDBde4UpFszxzi3hSlcPtZ4Slcg,259
|
|
84
|
-
azure/ai/evaluation/simulator/_helpers/_experimental.py,sha256=xHOiIoe6SBX0OkkuDNZ_hkMZBwq5fEXUPQvlu8jMH28,5277
|
|
85
|
-
azure/ai/evaluation/simulator/_helpers/_language_suffix_mapping.py,sha256=7BBLH78b7YDelHDLbAIwf-IO9s9cAEtn-RRXmNReHdc,1017
|
|
86
|
-
azure/ai/evaluation/simulator/_helpers/_simulator_data_classes.py,sha256=Cc2ceVVyGXXfreQbes1x8XNNd5KZYoDS9eJ5EbgpAXE,2157
|
|
87
|
-
azure/ai/evaluation/simulator/_model_tools/__init__.py,sha256=aMv5apb7uVjuhMF9ohhA5kQmo652hrGIJlhdl3y2R1I,835
|
|
88
|
-
azure/ai/evaluation/simulator/_model_tools/_identity_manager.py,sha256=qhYmG2r4IAKDePtf9DdqgvNGYlc0xjH4x5sShGxS-lA,5070
|
|
89
|
-
azure/ai/evaluation/simulator/_model_tools/_proxy_completion_model.py,sha256=bwTV6cz01uOFl_BrYlgBfl63tdwzve8wGTbs8mJgaeY,8396
|
|
90
|
-
azure/ai/evaluation/simulator/_model_tools/_rai_client.py,sha256=Bi0tLNlJmz295mdoVaE9_6a_UJVRmCH5uAmxjslS_eQ,7037
|
|
91
|
-
azure/ai/evaluation/simulator/_model_tools/_template_handler.py,sha256=gGSMvveKWn0LKSQ4FS5AxIwcsxj6iqCbUP53yjvndPw,5471
|
|
92
|
-
azure/ai/evaluation/simulator/_model_tools/models.py,sha256=11O6jcj3Zwo4FZvmF-X0walNp22ux1k3ghi3KFtbdy0,21762
|
|
93
|
-
azure/ai/evaluation/simulator/_prompty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
|
-
azure/ai/evaluation/simulator/_prompty/task_query_response.prompty,sha256=lNSioz2XiGQJb-AXRNYm2JCLMivZKa3JlHfol2Jd7fY,2244
|
|
95
|
-
azure/ai/evaluation/simulator/_prompty/task_simulate.prompty,sha256=00zLVfNgHZdlbC2XvBedSrwDJOaAhl3B1ohE3LKsGg4,928
|
|
96
|
-
azure_ai_evaluation-1.0.0b2.dist-info/METADATA,sha256=t8N3Aanv8JY6JHI4bElRml_Iy0Bm1wSESBG0K78Ou4Y,15520
|
|
97
|
-
azure_ai_evaluation-1.0.0b2.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
|
|
98
|
-
azure_ai_evaluation-1.0.0b2.dist-info/top_level.txt,sha256=S7DhWV9m80TBzAhOFjxDUiNbKszzoThbnrSz5MpbHSQ,6
|
|
99
|
-
azure_ai_evaluation-1.0.0b2.dist-info/RECORD,,
|
{azure_ai_evaluation-1.0.0b2.dist-info → azure_ai_evaluation-1.13.3.dist-info}/top_level.txt
RENAMED
|
File without changes
|