azure-ai-evaluation 1.1.0__py3-none-any.whl → 1.3.0__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.
- azure/ai/evaluation/__init__.py +1 -15
- azure/ai/evaluation/_azure/_clients.py +24 -8
- azure/ai/evaluation/_azure/_models.py +2 -2
- azure/ai/evaluation/_common/utils.py +8 -8
- azure/ai/evaluation/_constants.py +21 -0
- azure/ai/evaluation/_evaluate/_batch_run/__init__.py +2 -1
- azure/ai/evaluation/_evaluate/_eval_run.py +3 -1
- azure/ai/evaluation/_evaluate/_evaluate.py +74 -14
- azure/ai/evaluation/_evaluate/_utils.py +27 -0
- azure/ai/evaluation/_evaluators/_bleu/_bleu.py +46 -25
- azure/ai/evaluation/_evaluators/_common/__init__.py +2 -0
- azure/ai/evaluation/_evaluators/_common/_base_eval.py +69 -4
- azure/ai/evaluation/_evaluators/_common/_base_multi_eval.py +61 -0
- azure/ai/evaluation/_evaluators/_common/_base_rai_svc_eval.py +7 -1
- azure/ai/evaluation/_evaluators/_common/_conversation_aggregators.py +49 -0
- azure/ai/evaluation/_evaluators/_content_safety/_content_safety.py +5 -42
- azure/ai/evaluation/_evaluators/_content_safety/_hate_unfairness.py +2 -0
- azure/ai/evaluation/_evaluators/_content_safety/_self_harm.py +2 -0
- azure/ai/evaluation/_evaluators/_content_safety/_sexual.py +2 -0
- azure/ai/evaluation/_evaluators/_content_safety/_violence.py +2 -0
- azure/ai/evaluation/_evaluators/_f1_score/_f1_score.py +61 -68
- azure/ai/evaluation/_evaluators/_gleu/_gleu.py +45 -23
- azure/ai/evaluation/_evaluators/_meteor/_meteor.py +55 -34
- azure/ai/evaluation/_evaluators/_qa/_qa.py +32 -27
- azure/ai/evaluation/_evaluators/_rouge/_rouge.py +44 -23
- azure/ai/evaluation/_evaluators/_similarity/_similarity.py +41 -81
- azure/ai/evaluation/_exceptions.py +0 -1
- azure/ai/evaluation/_safety_evaluation/__init__.py +3 -0
- azure/ai/evaluation/_safety_evaluation/_safety_evaluation.py +640 -0
- azure/ai/evaluation/_version.py +2 -1
- azure/ai/evaluation/simulator/_adversarial_simulator.py +10 -3
- azure/ai/evaluation/simulator/_conversation/__init__.py +4 -5
- azure/ai/evaluation/simulator/_conversation/_conversation.py +4 -0
- azure/ai/evaluation/simulator/_model_tools/_proxy_completion_model.py +2 -0
- azure/ai/evaluation/simulator/_simulator.py +21 -13
- {azure_ai_evaluation-1.1.0.dist-info → azure_ai_evaluation-1.3.0.dist-info}/METADATA +77 -7
- {azure_ai_evaluation-1.1.0.dist-info → azure_ai_evaluation-1.3.0.dist-info}/RECORD +40 -44
- azure/ai/evaluation/_evaluators/_multimodal/__init__.py +0 -20
- azure/ai/evaluation/_evaluators/_multimodal/_content_safety_multimodal.py +0 -132
- azure/ai/evaluation/_evaluators/_multimodal/_content_safety_multimodal_base.py +0 -55
- azure/ai/evaluation/_evaluators/_multimodal/_hate_unfairness.py +0 -100
- azure/ai/evaluation/_evaluators/_multimodal/_protected_material.py +0 -124
- azure/ai/evaluation/_evaluators/_multimodal/_self_harm.py +0 -100
- azure/ai/evaluation/_evaluators/_multimodal/_sexual.py +0 -100
- azure/ai/evaluation/_evaluators/_multimodal/_violence.py +0 -100
- {azure_ai_evaluation-1.1.0.dist-info → azure_ai_evaluation-1.3.0.dist-info}/NOTICE.txt +0 -0
- {azure_ai_evaluation-1.1.0.dist-info → azure_ai_evaluation-1.3.0.dist-info}/WHEEL +0 -0
- {azure_ai_evaluation-1.1.0.dist-info → azure_ai_evaluation-1.3.0.dist-info}/top_level.txt +0 -0
|
@@ -7,6 +7,7 @@ import asyncio
|
|
|
7
7
|
import logging
|
|
8
8
|
import random
|
|
9
9
|
from typing import Any, Callable, Dict, List, Optional, Union, cast
|
|
10
|
+
import uuid
|
|
10
11
|
|
|
11
12
|
from tqdm import tqdm
|
|
12
13
|
|
|
@@ -187,6 +188,8 @@ class AdversarialSimulator:
|
|
|
187
188
|
)
|
|
188
189
|
self._ensure_service_dependencies()
|
|
189
190
|
templates = await self.adversarial_template_handler._get_content_harm_template_collections(scenario.value)
|
|
191
|
+
simulation_id = str(uuid.uuid4())
|
|
192
|
+
logger.warning("Use simulation_id to help debug the issue: %s", str(simulation_id))
|
|
190
193
|
concurrent_async_task = min(concurrent_async_task, 1000)
|
|
191
194
|
semaphore = asyncio.Semaphore(concurrent_async_task)
|
|
192
195
|
sim_results = []
|
|
@@ -236,6 +239,7 @@ class AdversarialSimulator:
|
|
|
236
239
|
language=language,
|
|
237
240
|
semaphore=semaphore,
|
|
238
241
|
scenario=scenario,
|
|
242
|
+
simulation_id=simulation_id,
|
|
239
243
|
)
|
|
240
244
|
)
|
|
241
245
|
)
|
|
@@ -298,9 +302,10 @@ class AdversarialSimulator:
|
|
|
298
302
|
language: SupportedLanguages,
|
|
299
303
|
semaphore: asyncio.Semaphore,
|
|
300
304
|
scenario: Union[AdversarialScenario, AdversarialScenarioJailbreak],
|
|
305
|
+
simulation_id: str = "",
|
|
301
306
|
) -> List[Dict]:
|
|
302
307
|
user_bot = self._setup_bot(
|
|
303
|
-
role=ConversationRole.USER, template=template, parameters=parameters, scenario=scenario
|
|
308
|
+
role=ConversationRole.USER, template=template, parameters=parameters, scenario=scenario, simulation_id=simulation_id
|
|
304
309
|
)
|
|
305
310
|
system_bot = self._setup_bot(
|
|
306
311
|
target=target, role=ConversationRole.ASSISTANT, template=template, parameters=parameters, scenario=scenario
|
|
@@ -329,7 +334,7 @@ class AdversarialSimulator:
|
|
|
329
334
|
)
|
|
330
335
|
|
|
331
336
|
def _get_user_proxy_completion_model(
|
|
332
|
-
self, template_key: str, template_parameters: TemplateParameters
|
|
337
|
+
self, template_key: str, template_parameters: TemplateParameters, simulation_id: str = ""
|
|
333
338
|
) -> ProxyChatCompletionsModel:
|
|
334
339
|
return ProxyChatCompletionsModel(
|
|
335
340
|
name="raisvc_proxy_model",
|
|
@@ -340,6 +345,7 @@ class AdversarialSimulator:
|
|
|
340
345
|
api_version="2023-07-01-preview",
|
|
341
346
|
max_tokens=1200,
|
|
342
347
|
temperature=0.0,
|
|
348
|
+
simulation_id=simulation_id,
|
|
343
349
|
)
|
|
344
350
|
|
|
345
351
|
def _setup_bot(
|
|
@@ -350,10 +356,11 @@ class AdversarialSimulator:
|
|
|
350
356
|
parameters: TemplateParameters,
|
|
351
357
|
target: Optional[Callable] = None,
|
|
352
358
|
scenario: Union[AdversarialScenario, AdversarialScenarioJailbreak],
|
|
359
|
+
simulation_id: str = "",
|
|
353
360
|
) -> ConversationBot:
|
|
354
361
|
if role is ConversationRole.USER:
|
|
355
362
|
model = self._get_user_proxy_completion_model(
|
|
356
|
-
template_key=template.template_name, template_parameters=parameters
|
|
363
|
+
template_key=template.template_name, template_parameters=parameters, simulation_id=simulation_id,
|
|
357
364
|
)
|
|
358
365
|
return ConversationBot(
|
|
359
366
|
role=role,
|
|
@@ -128,19 +128,15 @@ class ConversationBot:
|
|
|
128
128
|
self.conversation_starter: Optional[Union[str, jinja2.Template, Dict]] = None
|
|
129
129
|
if role == ConversationRole.USER:
|
|
130
130
|
if "conversation_starter" in self.persona_template_args:
|
|
131
|
-
print(self.persona_template_args)
|
|
132
131
|
conversation_starter_content = self.persona_template_args["conversation_starter"]
|
|
133
132
|
if isinstance(conversation_starter_content, dict):
|
|
134
133
|
self.conversation_starter = conversation_starter_content
|
|
135
|
-
print(f"Conversation starter content: {conversation_starter_content}")
|
|
136
134
|
else:
|
|
137
135
|
try:
|
|
138
136
|
self.conversation_starter = jinja2.Template(
|
|
139
137
|
conversation_starter_content, undefined=jinja2.StrictUndefined
|
|
140
138
|
)
|
|
141
|
-
print("Successfully created a Jinja2 template for the conversation starter.")
|
|
142
139
|
except jinja2.exceptions.TemplateSyntaxError as e: # noqa: F841
|
|
143
|
-
print(f"Template syntax error: {e}. Using raw content.")
|
|
144
140
|
self.conversation_starter = conversation_starter_content
|
|
145
141
|
else:
|
|
146
142
|
self.logger.info(
|
|
@@ -153,6 +149,7 @@ class ConversationBot:
|
|
|
153
149
|
conversation_history: List[ConversationTurn],
|
|
154
150
|
max_history: int,
|
|
155
151
|
turn_number: int = 0,
|
|
152
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
156
153
|
) -> Tuple[dict, dict, float, dict]:
|
|
157
154
|
"""
|
|
158
155
|
Prompt the ConversationBot for a response.
|
|
@@ -262,6 +259,7 @@ class CallbackConversationBot(ConversationBot):
|
|
|
262
259
|
conversation_history: List[Any],
|
|
263
260
|
max_history: int,
|
|
264
261
|
turn_number: int = 0,
|
|
262
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
265
263
|
) -> Tuple[dict, dict, float, dict]:
|
|
266
264
|
chat_protocol_message = self._to_chat_protocol(
|
|
267
265
|
self.user_template, conversation_history, self.user_template_parameters
|
|
@@ -269,7 +267,7 @@ class CallbackConversationBot(ConversationBot):
|
|
|
269
267
|
msg_copy = copy.deepcopy(chat_protocol_message)
|
|
270
268
|
result = {}
|
|
271
269
|
start_time = time.time()
|
|
272
|
-
result = await self.callback(msg_copy)
|
|
270
|
+
result = await self.callback(msg_copy, session_state=session_state)
|
|
273
271
|
end_time = time.time()
|
|
274
272
|
if not result:
|
|
275
273
|
result = {
|
|
@@ -348,6 +346,7 @@ class MultiModalConversationBot(ConversationBot):
|
|
|
348
346
|
conversation_history: List[Any],
|
|
349
347
|
max_history: int,
|
|
350
348
|
turn_number: int = 0,
|
|
349
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
351
350
|
) -> Tuple[dict, dict, float, dict]:
|
|
352
351
|
previous_prompt = conversation_history[-1]
|
|
353
352
|
chat_protocol_message = await self._to_chat_protocol(conversation_history, self.user_template_parameters)
|
|
@@ -101,6 +101,7 @@ async def simulate_conversation(
|
|
|
101
101
|
:rtype: Tuple[Optional[str], List[ConversationTurn]]
|
|
102
102
|
"""
|
|
103
103
|
|
|
104
|
+
session_state = {}
|
|
104
105
|
# Read the first prompt.
|
|
105
106
|
(first_response, request, _, full_response) = await bots[0].generate_response(
|
|
106
107
|
session=session,
|
|
@@ -149,7 +150,10 @@ async def simulate_conversation(
|
|
|
149
150
|
conversation_history=conversation_history,
|
|
150
151
|
max_history=history_limit,
|
|
151
152
|
turn_number=current_turn,
|
|
153
|
+
session_state=session_state,
|
|
152
154
|
)
|
|
155
|
+
if "session_state" in full_response and full_response["session_state"] is not None:
|
|
156
|
+
session_state.update(full_response["session_state"])
|
|
153
157
|
|
|
154
158
|
# check if conversation id is null, which means conversation starter was used. use id from next turn
|
|
155
159
|
if conversation_id is None and "id" in response:
|
|
@@ -89,6 +89,7 @@ class ProxyChatCompletionsModel(OpenAIChatCompletionsModel):
|
|
|
89
89
|
self.tkey = template_key
|
|
90
90
|
self.tparam = template_parameters
|
|
91
91
|
self.result_url: Optional[str] = None
|
|
92
|
+
self.simulation_id: Optional[str] = kwargs.pop("simulation_id", "")
|
|
92
93
|
|
|
93
94
|
super().__init__(name=name, **kwargs)
|
|
94
95
|
|
|
@@ -169,6 +170,7 @@ class ProxyChatCompletionsModel(OpenAIChatCompletionsModel):
|
|
|
169
170
|
"Content-Type": "application/json",
|
|
170
171
|
"X-CV": f"{uuid.uuid4()}",
|
|
171
172
|
"X-ModelType": self.model or "",
|
|
173
|
+
"x-ms-client-request-id": self.simulation_id,
|
|
172
174
|
}
|
|
173
175
|
# add all additional headers
|
|
174
176
|
headers.update(self.additional_headers) # type: ignore[arg-type]
|
|
@@ -157,7 +157,7 @@ class Simulator:
|
|
|
157
157
|
f"You have specified 'num_queries' < len('tasks') ({num_queries} < {len(tasks)}). "
|
|
158
158
|
f"Only the first {num_queries} lines of the specified tasks will be simulated."
|
|
159
159
|
)
|
|
160
|
-
|
|
160
|
+
|
|
161
161
|
max_conversation_turns *= 2 # account for both user and assistant turns
|
|
162
162
|
|
|
163
163
|
prompty_model_config = self.model_config
|
|
@@ -586,7 +586,10 @@ class Simulator:
|
|
|
586
586
|
for i, query_response_pair in enumerate(query_responses):
|
|
587
587
|
query = query_response_pair["q"]
|
|
588
588
|
response = query_response_pair["r"]
|
|
589
|
-
|
|
589
|
+
try:
|
|
590
|
+
task = tasks[i]
|
|
591
|
+
except IndexError:
|
|
592
|
+
task = None
|
|
590
593
|
|
|
591
594
|
conversation = await self._complete_conversation(
|
|
592
595
|
conversation_starter=query,
|
|
@@ -621,7 +624,7 @@ class Simulator:
|
|
|
621
624
|
*,
|
|
622
625
|
conversation_starter: str,
|
|
623
626
|
max_conversation_turns: int,
|
|
624
|
-
task: str,
|
|
627
|
+
task: Optional[str],
|
|
625
628
|
user_simulator_prompty: Optional[str],
|
|
626
629
|
user_simulator_prompty_options: Dict[str, Any],
|
|
627
630
|
target: Callable,
|
|
@@ -659,16 +662,21 @@ class Simulator:
|
|
|
659
662
|
user_simulator_prompty_options=user_simulator_prompty_options,
|
|
660
663
|
)
|
|
661
664
|
if len(conversation_history) == 0:
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
665
|
+
if task:
|
|
666
|
+
conversation_starter_from_simulated_user = await user_flow(
|
|
667
|
+
task=task,
|
|
668
|
+
conversation_history=[
|
|
669
|
+
{
|
|
670
|
+
"role": "assistant",
|
|
671
|
+
"content": conversation_starter,
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
action="rewrite the assistant's message as you have to accomplish the task by asking the right questions. Make sure the original question is not lost in your rewrite.",
|
|
675
|
+
)
|
|
676
|
+
else:
|
|
677
|
+
conversation_starter_from_simulated_user = {
|
|
678
|
+
"content": conversation_starter,
|
|
679
|
+
}
|
|
672
680
|
else:
|
|
673
681
|
conversation_starter_from_simulated_user = await user_flow(
|
|
674
682
|
task=task,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: azure-ai-evaluation
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: Microsoft Azure Evaluation Library for Python
|
|
5
5
|
Home-page: https://github.com/Azure/azure-sdk-for-python
|
|
6
6
|
Author: Microsoft Corporation
|
|
@@ -13,17 +13,16 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: License :: OSI Approved :: MIT License
|
|
21
20
|
Classifier: Operating System :: OS Independent
|
|
22
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.9
|
|
23
22
|
Description-Content-Type: text/markdown
|
|
24
23
|
License-File: NOTICE.txt
|
|
25
|
-
Requires-Dist: promptflow-devkit >=1.
|
|
26
|
-
Requires-Dist: promptflow-core >=1.
|
|
24
|
+
Requires-Dist: promptflow-devkit >=1.17.1
|
|
25
|
+
Requires-Dist: promptflow-core >=1.17.1
|
|
27
26
|
Requires-Dist: pyjwt >=2.8.0
|
|
28
27
|
Requires-Dist: azure-identity >=1.16.0
|
|
29
28
|
Requires-Dist: azure-core >=1.30.2
|
|
@@ -54,7 +53,7 @@ Azure AI SDK provides following to evaluate Generative AI Applications:
|
|
|
54
53
|
|
|
55
54
|
### Prerequisites
|
|
56
55
|
|
|
57
|
-
- Python 3.
|
|
56
|
+
- Python 3.9 or later is required to use this package.
|
|
58
57
|
- [Optional] You must have [Azure AI Project][ai_project] or [Azure Open AI][azure_openai] to use AI-assisted evaluators
|
|
59
58
|
|
|
60
59
|
### Install the package
|
|
@@ -378,11 +377,82 @@ This project has adopted the [Microsoft Open Source Code of Conduct][code_of_con
|
|
|
378
377
|
|
|
379
378
|
# Release History
|
|
380
379
|
|
|
381
|
-
## 1.
|
|
380
|
+
## 1.3.0 (2025-02-28)
|
|
381
|
+
|
|
382
|
+
### Breaking Changes
|
|
383
|
+
- Multimodal specific evaluators `ContentSafetyMultimodalEvaluator`, `ViolenceMultimodalEvaluator`, `SexualMultimodalEvaluator`, `SelfHarmMultimodalEvaluator`, `HateUnfairnessMultimodalEvaluator` and `ProtectedMaterialMultimodalEvaluator` has been removed. Please use `ContentSafetyEvaluator`, `ViolenceEvaluator`, `SexualEvaluator`, `SelfHarmEvaluator`, `HateUnfairnessEvaluator` and `ProtectedMaterialEvaluator` instead.
|
|
384
|
+
- Metric name in ProtectedMaterialEvaluator's output is changed from `protected_material.fictional_characters_label` to `protected_material.fictional_characters_defect_rate`. It's now consistent with other evaluator's metric names (ending with `_defect_rate`).
|
|
385
|
+
|
|
386
|
+
## 1.2.0 (2025-01-27)
|
|
387
|
+
|
|
388
|
+
### Features Added
|
|
389
|
+
- CSV files are now supported as data file inputs with `evaluate()` API. The CSV file should have a header row with column names that match the `data` and `target` fields in the `evaluate()` method and the filename should be passed as the `data` parameter. Column name 'Conversation' in CSV file is not fully supported yet.
|
|
390
|
+
|
|
391
|
+
### Breaking Changes
|
|
392
|
+
- `ViolenceMultimodalEvaluator`, `SexualMultimodalEvaluator`, `SelfHarmMultimodalEvaluator`, `HateUnfairnessMultimodalEvaluator` and `ProtectedMaterialMultimodalEvaluator` will be removed in next release.
|
|
382
393
|
|
|
383
394
|
### Bugs Fixed
|
|
384
395
|
- Removed `[remote]` extra. This is no longer needed when tracking results in Azure AI Studio.
|
|
385
396
|
- Fixed `AttributeError: 'NoneType' object has no attribute 'get'` while running simulator with 1000+ results
|
|
397
|
+
- Fixed the non adversarial simulator to run in task-free mode
|
|
398
|
+
- Content safety evaluators (violence, self harm, sexual, hate/unfairness) return the maximum result as the
|
|
399
|
+
main score when aggregating per-turn evaluations from a conversation into an overall
|
|
400
|
+
evaluation score. Other conversation-capable evaluators still default to a mean for aggregation.
|
|
401
|
+
- Fixed bug in non adversarial simulator sample where `tasks` undefined
|
|
402
|
+
|
|
403
|
+
### Other Changes
|
|
404
|
+
- Changed minimum required python version to use this package from 3.8 to 3.9
|
|
405
|
+
- Stop dependency on the local promptflow service. No promptflow service will automatically start when running evaluation.
|
|
406
|
+
- Evaluators internally allow for custom aggregation. However, this causes serialization failures if evaluated while the
|
|
407
|
+
environment variable `AI_EVALS_BATCH_USE_ASYNC` is set to false.
|
|
408
|
+
|
|
409
|
+
## 1.1.0 (2024-12-12)
|
|
410
|
+
|
|
411
|
+
### Features Added
|
|
412
|
+
- Added image support in `ContentSafetyEvaluator`, `ViolenceEvaluator`, `SexualEvaluator`, `SelfHarmEvaluator`, `HateUnfairnessEvaluator` and `ProtectedMaterialEvaluator`. Provide image URLs or base64 encoded images in `conversation` input for image evaluation. See below for an example:
|
|
413
|
+
|
|
414
|
+
```python
|
|
415
|
+
evaluator = ContentSafetyEvaluator(credential=azure_cred, azure_ai_project=project_scope)
|
|
416
|
+
conversation = {
|
|
417
|
+
"messages": [
|
|
418
|
+
{
|
|
419
|
+
"role": "system",
|
|
420
|
+
"content": [
|
|
421
|
+
{"type": "text", "text": "You are an AI assistant that understands images."}
|
|
422
|
+
],
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"role": "user",
|
|
426
|
+
"content": [
|
|
427
|
+
{"type": "text", "text": "Can you describe this image?"},
|
|
428
|
+
{
|
|
429
|
+
"type": "image_url",
|
|
430
|
+
"image_url": {
|
|
431
|
+
"url": "https://cdn.britannica.com/68/178268-050-5B4E7FB6/Tom-Cruise-2013.jpg"
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"role": "assistant",
|
|
438
|
+
"content": [
|
|
439
|
+
{
|
|
440
|
+
"type": "text",
|
|
441
|
+
"text": "The image shows a man with short brown hair smiling, wearing a dark-colored shirt.",
|
|
442
|
+
}
|
|
443
|
+
],
|
|
444
|
+
},
|
|
445
|
+
]
|
|
446
|
+
}
|
|
447
|
+
print("Calling Content Safety Evaluator for multi-modal")
|
|
448
|
+
score = evaluator(conversation=conversation)
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
- Please switch to generic evaluators for image evaluations as mentioned above. `ContentSafetyMultimodalEvaluator`, `ContentSafetyMultimodalEvaluatorBase`, `ViolenceMultimodalEvaluator`, `SexualMultimodalEvaluator`, `SelfHarmMultimodalEvaluator`, `HateUnfairnessMultimodalEvaluator` and `ProtectedMaterialMultimodalEvaluator` will be deprecated in the next release.
|
|
452
|
+
|
|
453
|
+
### Bugs Fixed
|
|
454
|
+
- Removed `[remote]` extra. This is no longer needed when tracking results in Azure AI Foundry portal.
|
|
455
|
+
- Fixed `AttributeError: 'NoneType' object has no attribute 'get'` while running simulator with 1000+ results
|
|
386
456
|
|
|
387
457
|
## 1.0.1 (2024-11-15)
|
|
388
458
|
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
azure/ai/evaluation/__init__.py,sha256=
|
|
2
|
-
azure/ai/evaluation/_constants.py,sha256=
|
|
3
|
-
azure/ai/evaluation/_exceptions.py,sha256=
|
|
1
|
+
azure/ai/evaluation/__init__.py,sha256=3lV2dhUqPzUz4lBo8DoEr5o4PEF_Lh5yWQtuLDUQZCM,2192
|
|
2
|
+
azure/ai/evaluation/_constants.py,sha256=Avp26R4qPqaze024EJXzAX8A457DExF5rnIKMWcE8X4,2881
|
|
3
|
+
azure/ai/evaluation/_exceptions.py,sha256=o3AjCyIAIBo_rkJAH_TsAT-hEZ4SMKd9Uo0eLmD9VHY,5085
|
|
4
4
|
azure/ai/evaluation/_http_utils.py,sha256=1bGce6pKAL-vmaUGRPxVX7DVO05XVQ8YPIwIQ3q7mfA,17221
|
|
5
5
|
azure/ai/evaluation/_model_configurations.py,sha256=MNN6cQlz7P9vNfHmfEKsUcly3j1FEOEFsA8WV7GPuKQ,4043
|
|
6
6
|
azure/ai/evaluation/_user_agent.py,sha256=O2y-QPBAcw7w7qQ6M2aRPC3Vy3TKd789u5lcs2yuFaI,290
|
|
7
|
-
azure/ai/evaluation/_version.py,sha256=
|
|
7
|
+
azure/ai/evaluation/_version.py,sha256=xsol5X6WDVwo8FFtHWt28TPyzT0is0sJ3N5i9_ikPVI,229
|
|
8
8
|
azure/ai/evaluation/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
azure/ai/evaluation/_azure/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
10
|
-
azure/ai/evaluation/_azure/_clients.py,sha256=
|
|
11
|
-
azure/ai/evaluation/_azure/_models.py,sha256=
|
|
10
|
+
azure/ai/evaluation/_azure/_clients.py,sha256=N1V-LyQkItPuoKl0aieypFPdGSRSld9lQqH1x-n3L7U,9119
|
|
11
|
+
azure/ai/evaluation/_azure/_models.py,sha256=7EHmrCAFOscYY3H90wfmdPPdy0sqnOlgGFvraq_L-2Q,12517
|
|
12
12
|
azure/ai/evaluation/_azure/_token_manager.py,sha256=1NZHwgEc9BMXWPz5Ear_J5-oYjouD77crLHHqNLldEw,5193
|
|
13
13
|
azure/ai/evaluation/_common/__init__.py,sha256=LHTkf6dMLLxikrGNgbUuREBVQcs4ORHR6Eryo4bm9M8,586
|
|
14
14
|
azure/ai/evaluation/_common/_experimental.py,sha256=GVtSn9r1CeR_yEa578dJVNDJ3P24eqe8WYdH7llbiQY,5694
|
|
15
15
|
azure/ai/evaluation/_common/constants.py,sha256=OsExttFGLnTAyZa26jnY5_PCDTb7uJNFqtE2qsRZ1mg,1957
|
|
16
16
|
azure/ai/evaluation/_common/math.py,sha256=d4bwWe35_RWDIZNcbV1BTBbHNx2QHQ4-I3EofDyyNE0,2863
|
|
17
17
|
azure/ai/evaluation/_common/rai_service.py,sha256=DcakzdOour9qNdMXU-8UFfvLb12oexAoiJXG8XFTRBs,26462
|
|
18
|
-
azure/ai/evaluation/_common/utils.py,sha256=
|
|
18
|
+
azure/ai/evaluation/_common/utils.py,sha256=wssBc9i0JrWwsrvtp45P5_z5ceB7kVGf-KKzpfVQQH4,17594
|
|
19
19
|
azure/ai/evaluation/_evaluate/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
20
|
-
azure/ai/evaluation/_evaluate/_eval_run.py,sha256=
|
|
21
|
-
azure/ai/evaluation/_evaluate/_evaluate.py,sha256=
|
|
22
|
-
azure/ai/evaluation/_evaluate/_utils.py,sha256=
|
|
23
|
-
azure/ai/evaluation/_evaluate/_batch_run/__init__.py,sha256=
|
|
20
|
+
azure/ai/evaluation/_evaluate/_eval_run.py,sha256=QBtNBwUxqxsIVmKPU-_H8MDFkF4s_bW7arQYXAniRpo,21965
|
|
21
|
+
azure/ai/evaluation/_evaluate/_evaluate.py,sha256=pyl0HscBAPllpq385p9lMqR2sqip3RZ5BGfcBa4X334,39068
|
|
22
|
+
azure/ai/evaluation/_evaluate/_utils.py,sha256=sKj_4iN-QjrRlEkiZwA9UNiWozS4LgJcUZ6AWdHrTY4,14231
|
|
23
|
+
azure/ai/evaluation/_evaluate/_batch_run/__init__.py,sha256=Z-TQdSxKTn0bjsF0YosIJMbQFQHDUv_b9zCBu1TeogQ,474
|
|
24
24
|
azure/ai/evaluation/_evaluate/_batch_run/code_client.py,sha256=XQLaXfswF6ReHLpQthHLuLLa65Pts8uawGp7kRqmMDs,8260
|
|
25
25
|
azure/ai/evaluation/_evaluate/_batch_run/eval_run_context.py,sha256=p3Bsg_shGs5RXvysOlvo0CQb4Te5herSvX1OP6ylFUQ,3543
|
|
26
26
|
azure/ai/evaluation/_evaluate/_batch_run/proxy_client.py,sha256=T_QRHScDMBM4O6ejkkKdBmHPjH2NOF6owW48aVUYF6k,3775
|
|
@@ -28,47 +28,41 @@ azure/ai/evaluation/_evaluate/_batch_run/target_run_context.py,sha256=SMos3bVmD7
|
|
|
28
28
|
azure/ai/evaluation/_evaluate/_telemetry/__init__.py,sha256=fhLqE41qxdjfBOGi23cpk6QgUe-s1Fw2xhAAUjNESF0,7045
|
|
29
29
|
azure/ai/evaluation/_evaluators/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
30
30
|
azure/ai/evaluation/_evaluators/_bleu/__init__.py,sha256=quKKO0kvOSkky5hcoNBvgBuMeeVRFCE9GSv70mAdGP4,260
|
|
31
|
-
azure/ai/evaluation/_evaluators/_bleu/_bleu.py,sha256=
|
|
31
|
+
azure/ai/evaluation/_evaluators/_bleu/_bleu.py,sha256=Px3KxTyNIuxy-4U3SE4XJHCd4r144JeVrlIGMdbaqBk,3425
|
|
32
32
|
azure/ai/evaluation/_evaluators/_coherence/__init__.py,sha256=GRqcSCQse02Spyki0UsRNWMIXiea2lLtPPXNGvkJzQ0,258
|
|
33
33
|
azure/ai/evaluation/_evaluators/_coherence/_coherence.py,sha256=uG9hX2XWkMREKfMAWRoosjicoI4Lg3ptR3UcLEgKd0c,4643
|
|
34
34
|
azure/ai/evaluation/_evaluators/_coherence/coherence.prompty,sha256=ANvh9mDFW7KMejrgdWqBLjj4SIqEO5WW9gg5pE0RLJk,6798
|
|
35
|
-
azure/ai/evaluation/_evaluators/_common/__init__.py,sha256=
|
|
36
|
-
azure/ai/evaluation/_evaluators/_common/_base_eval.py,sha256=
|
|
35
|
+
azure/ai/evaluation/_evaluators/_common/__init__.py,sha256=xAymP_CZy4aPzWplMdXgQUQVDIUEMI-0nbgdm_umFYY,498
|
|
36
|
+
azure/ai/evaluation/_evaluators/_common/_base_eval.py,sha256=LtlTsA0TUywMXEYj3mVggv43G0TfKnNkDG6ZgA_dWa4,23328
|
|
37
|
+
azure/ai/evaluation/_evaluators/_common/_base_multi_eval.py,sha256=6WFmFMsobJjju3wzVFKx7EjuHqbBV9YXzlhbwu5vzio,2509
|
|
37
38
|
azure/ai/evaluation/_evaluators/_common/_base_prompty_eval.py,sha256=hvJD7jR2ESePkRPN17ytoFhFiS0iTotOfeqmTwG2IMs,4531
|
|
38
|
-
azure/ai/evaluation/_evaluators/_common/_base_rai_svc_eval.py,sha256=
|
|
39
|
+
azure/ai/evaluation/_evaluators/_common/_base_rai_svc_eval.py,sha256=1ZwWu2dwN2y6bVOU3Ws4VvJoMVQ80tzYNutSEfmpYmg,7830
|
|
40
|
+
azure/ai/evaluation/_evaluators/_common/_conversation_aggregators.py,sha256=gjDBjRxJKwaHbshWH0j2idjlzfzNMnT9a9RL0fQiKeM,2129
|
|
39
41
|
azure/ai/evaluation/_evaluators/_content_safety/__init__.py,sha256=PEYMIybfP64f7byhuTaiq4RiqsYbjqejpW1JsJIG1jA,556
|
|
40
|
-
azure/ai/evaluation/_evaluators/_content_safety/_content_safety.py,sha256=
|
|
41
|
-
azure/ai/evaluation/_evaluators/_content_safety/_hate_unfairness.py,sha256=
|
|
42
|
-
azure/ai/evaluation/_evaluators/_content_safety/_self_harm.py,sha256=
|
|
43
|
-
azure/ai/evaluation/_evaluators/_content_safety/_sexual.py,sha256=
|
|
44
|
-
azure/ai/evaluation/_evaluators/_content_safety/_violence.py,sha256=
|
|
42
|
+
azure/ai/evaluation/_evaluators/_content_safety/_content_safety.py,sha256=XKnIlxbzkB65cRXXcOGsv0W37QKxo_jsHbR3gijMZ78,4654
|
|
43
|
+
azure/ai/evaluation/_evaluators/_content_safety/_hate_unfairness.py,sha256=LcnJuePAwByoaXAQ5CVKnkO2IVCCRdVnFTUYbOyQTbs,6043
|
|
44
|
+
azure/ai/evaluation/_evaluators/_content_safety/_self_harm.py,sha256=Nl_hTIRXO_UdAjUatPzbCTextsngkgib1ECzsmDHUvE,5280
|
|
45
|
+
azure/ai/evaluation/_evaluators/_content_safety/_sexual.py,sha256=z8bDdkZHW09D6NTY9mlK2abNMOy9hRAJwwTQs5vjvAc,5520
|
|
46
|
+
azure/ai/evaluation/_evaluators/_content_safety/_violence.py,sha256=z9dM3GOBSIw_WoEELPHRE3DSK3ol7MZbDkFJyuYENVk,5591
|
|
45
47
|
azure/ai/evaluation/_evaluators/_eci/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
48
|
azure/ai/evaluation/_evaluators/_eci/_eci.py,sha256=a36sLZPHKi3YAdl0JvpL6vboZMqgGjnmz0qZ-o8vcWY,2934
|
|
47
49
|
azure/ai/evaluation/_evaluators/_f1_score/__init__.py,sha256=aEVbO7iMoF20obdpLQKcKm69Yyu3mYnblKELLqu8OGI,260
|
|
48
|
-
azure/ai/evaluation/_evaluators/_f1_score/_f1_score.py,sha256=
|
|
50
|
+
azure/ai/evaluation/_evaluators/_f1_score/_f1_score.py,sha256=nDUAz-vmkIR0Sj7JfMm3mVHfE3XnKrZnTzOUa6QKskk,5399
|
|
49
51
|
azure/ai/evaluation/_evaluators/_fluency/__init__.py,sha256=EEJw39xRa0bOAA1rELTTKXQu2s60n_7CZQRD0Gu2QVw,259
|
|
50
52
|
azure/ai/evaluation/_evaluators/_fluency/_fluency.py,sha256=mHQCismdL4cCeANcqWrDHCiVgr4UAWj0yIYJXt2pFDA,4399
|
|
51
53
|
azure/ai/evaluation/_evaluators/_fluency/fluency.prompty,sha256=n9v0W9eYwgIO-JSsLTSKEM_ApJuxxuKWQpNblrTEkFY,4861
|
|
52
54
|
azure/ai/evaluation/_evaluators/_gleu/__init__.py,sha256=Ae2EvQ7gqiYAoNO3LwGIhdAAjJPJDfT85rQGKrRrmbA,260
|
|
53
|
-
azure/ai/evaluation/_evaluators/_gleu/_gleu.py,sha256=
|
|
55
|
+
azure/ai/evaluation/_evaluators/_gleu/_gleu.py,sha256=E_HeUuDAW2pPhsbaWLHMMxqgUxPOgBv2Bnr_Z9M6AAs,3359
|
|
54
56
|
azure/ai/evaluation/_evaluators/_groundedness/__init__.py,sha256=UYNJUeRvBwcSVFyZpdsf29un5eyaDzYoo3QvC1gvlLg,274
|
|
55
57
|
azure/ai/evaluation/_evaluators/_groundedness/_groundedness.py,sha256=Zil5S7BXaVvW2wBUlsF3oGzZLOYrvSzGAY4TqKfFUX8,6876
|
|
56
58
|
azure/ai/evaluation/_evaluators/_groundedness/groundedness_with_query.prompty,sha256=v7TOm75DyW_1gOU6gSiZoPcRnHcJ65DrzR2cL_ucWDY,5814
|
|
57
59
|
azure/ai/evaluation/_evaluators/_groundedness/groundedness_without_query.prompty,sha256=8kNShdfxQvkII7GnqjmdqQ5TNelA2B6cjnqWZk8FFe4,5296
|
|
58
60
|
azure/ai/evaluation/_evaluators/_meteor/__init__.py,sha256=209na3pPsdmcuYpYHUYtqQybCpc3yZkc93HnRdicSlI,266
|
|
59
|
-
azure/ai/evaluation/_evaluators/_meteor/_meteor.py,sha256=
|
|
60
|
-
azure/ai/evaluation/_evaluators/_multimodal/__init__.py,sha256=tPvsY0nv8T3VtiiAwJM6wT5A9FhKP2XXwUlCH994xl4,906
|
|
61
|
-
azure/ai/evaluation/_evaluators/_multimodal/_content_safety_multimodal.py,sha256=x0l6eLQhxVP85jEyGfFCl27C2okMgD0S3aJ_qrgB3Q8,5219
|
|
62
|
-
azure/ai/evaluation/_evaluators/_multimodal/_content_safety_multimodal_base.py,sha256=X2IVw0YvymDD3e4Vx-TfjqgqtYiAKVhUumjBowCpOmA,2441
|
|
63
|
-
azure/ai/evaluation/_evaluators/_multimodal/_hate_unfairness.py,sha256=ral1AAbP5pfsygDe30MtuwajuydiXoXzzCeuLBzIkWc,3779
|
|
64
|
-
azure/ai/evaluation/_evaluators/_multimodal/_protected_material.py,sha256=gMrfyn3KHcV6SoowuEjR7Fon9vVLN7GOPM4rkJRK6xU,4906
|
|
65
|
-
azure/ai/evaluation/_evaluators/_multimodal/_self_harm.py,sha256=QwOCBb618ZXSs-OoVXyNM65N4ZEL7IZt-S1Nqd8xNbY,3703
|
|
66
|
-
azure/ai/evaluation/_evaluators/_multimodal/_sexual.py,sha256=6zz89yzr_SdldqBVv-3wOErz3H5sBO6wYgNh39aHXmY,3668
|
|
67
|
-
azure/ai/evaluation/_evaluators/_multimodal/_violence.py,sha256=t1h3bY6N7SwlSgP_1P-90KGTsq1oWvTYDJpy_uMvzjA,3694
|
|
61
|
+
azure/ai/evaluation/_evaluators/_meteor/_meteor.py,sha256=OpugAjIgcTcNQ6g6Rks_8GVhcRiH524PbmBKH3bTefs,4369
|
|
68
62
|
azure/ai/evaluation/_evaluators/_protected_material/__init__.py,sha256=eRAQIU9diVXfO5bp6aLWxZoYUvOsrDIfy1gnDOeNTiI,109
|
|
69
63
|
azure/ai/evaluation/_evaluators/_protected_material/_protected_material.py,sha256=IABs1YMBZdIi1u57dPi-aQpSiPWIGxEZ4hyt97jvdNA,4604
|
|
70
64
|
azure/ai/evaluation/_evaluators/_qa/__init__.py,sha256=bcXfT--C0hjym2haqd1B2-u9bDciyM0ThOFtU1Q69sk,244
|
|
71
|
-
azure/ai/evaluation/_evaluators/_qa/_qa.py,sha256=
|
|
65
|
+
azure/ai/evaluation/_evaluators/_qa/_qa.py,sha256=HG4JiSt5S20D70LmzW8t24qWg5_uiIKwIxjJ13ygfDo,3670
|
|
72
66
|
azure/ai/evaluation/_evaluators/_relevance/__init__.py,sha256=JlxytW32Nl8pbE-fI3GRpfgVuY9EG6zxIAn5VZGSwyc,265
|
|
73
67
|
azure/ai/evaluation/_evaluators/_relevance/_relevance.py,sha256=S1J5BR1-ZyCLQOTbdAHLDzzY1ccVnPyy9uVUlivmCx0,5287
|
|
74
68
|
azure/ai/evaluation/_evaluators/_relevance/relevance.prompty,sha256=VHKzVlC2Cv1xuholgIGmerPspspAI0t6IgJ2cxOuYDE,4811
|
|
@@ -76,14 +70,16 @@ azure/ai/evaluation/_evaluators/_retrieval/__init__.py,sha256=kMu47ZyTZ7f-4Yh6H3
|
|
|
76
70
|
azure/ai/evaluation/_evaluators/_retrieval/_retrieval.py,sha256=fmd8zNOVSGQGT5icSAI6PwgnS7kKz_ZMKMnxKIchYl8,5085
|
|
77
71
|
azure/ai/evaluation/_evaluators/_retrieval/retrieval.prompty,sha256=_YVoO4Gt_WD42bUcj5n6BDW0dMUqNf0yF3Nj5XMOX2c,16490
|
|
78
72
|
azure/ai/evaluation/_evaluators/_rouge/__init__.py,sha256=kusCDaYcXogDugGefRP8MQSn9xv107oDbrMCqZ6K4GA,291
|
|
79
|
-
azure/ai/evaluation/_evaluators/_rouge/_rouge.py,sha256=
|
|
73
|
+
azure/ai/evaluation/_evaluators/_rouge/_rouge.py,sha256=xTsAF9em2QpWcgCHOmDCEcuRwrob5kPUUpkgul9E5jA,4642
|
|
80
74
|
azure/ai/evaluation/_evaluators/_service_groundedness/__init__.py,sha256=0DODUGTOgaYyFbO9_zxuwifixDL3SIm3EkwP1sdwn6M,288
|
|
81
75
|
azure/ai/evaluation/_evaluators/_service_groundedness/_service_groundedness.py,sha256=GPvufAgTnoQ2HYs6Xnnpmh23n5E3XxnUV0NGuwjDyU0,6648
|
|
82
76
|
azure/ai/evaluation/_evaluators/_similarity/__init__.py,sha256=V2Mspog99_WBltxTkRHG5NpN5s9XoiTSN4I8POWEkLA,268
|
|
83
|
-
azure/ai/evaluation/_evaluators/_similarity/_similarity.py,sha256=
|
|
77
|
+
azure/ai/evaluation/_evaluators/_similarity/_similarity.py,sha256=AeqJ_OJUAsdu9Cac4OLVPF2zbrBmpXD7_5oOs_cxKsk,4244
|
|
84
78
|
azure/ai/evaluation/_evaluators/_similarity/similarity.prompty,sha256=eoludASychZoGL625bFCaZai-OY7DIAg90ZLax_o4XE,4594
|
|
85
79
|
azure/ai/evaluation/_evaluators/_xpia/__init__.py,sha256=VMEL8WrpJQeh4sQiOLzP7hRFPnjzsvwfvTzaGCVJPCM,88
|
|
86
80
|
azure/ai/evaluation/_evaluators/_xpia/xpia.py,sha256=Nv14lU7jN0yXKbHgHRXMHEy6pn1rXmesBOYI2Ge9ewk,5849
|
|
81
|
+
azure/ai/evaluation/_safety_evaluation/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
82
|
+
azure/ai/evaluation/_safety_evaluation/_safety_evaluation.py,sha256=HtT6aKdZ4EP6Dx-JuExdysO_CBERFMwRWmGTWeHQ_NU,33890
|
|
87
83
|
azure/ai/evaluation/_vendor/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
88
84
|
azure/ai/evaluation/_vendor/rouge_score/__init__.py,sha256=03OkyfS_UmzRnHv6-z9juTaJ6OXJoEJM989hgifIZbc,607
|
|
89
85
|
azure/ai/evaluation/_vendor/rouge_score/rouge_scorer.py,sha256=DtNSeshHipzc6vFnvx7kbs5viXe4LNq-ZrgllFvfR4U,11299
|
|
@@ -92,15 +88,15 @@ azure/ai/evaluation/_vendor/rouge_score/tokenize.py,sha256=IyHVsWY6IFFZdB23cLiJs
|
|
|
92
88
|
azure/ai/evaluation/_vendor/rouge_score/tokenizers.py,sha256=3_-y1TyvyluHuERhSJ5CdXSwnpcMA7aAKU6PCz9wH_Q,1745
|
|
93
89
|
azure/ai/evaluation/simulator/__init__.py,sha256=JbrPZ8pvTBalyX94SvZ9btHNoovX8rbZV03KmzxxWys,552
|
|
94
90
|
azure/ai/evaluation/simulator/_adversarial_scenario.py,sha256=9rpAPz594tYjxzM3XMeDq6CZSc2yvf5YaNaGC7nzYhM,1710
|
|
95
|
-
azure/ai/evaluation/simulator/_adversarial_simulator.py,sha256=
|
|
91
|
+
azure/ai/evaluation/simulator/_adversarial_simulator.py,sha256=2QEt5hHOKnNqMySt3SNsr-LY22DvFyusVnPkvAyur1I,22100
|
|
96
92
|
azure/ai/evaluation/simulator/_constants.py,sha256=nCL7_1BnYh6k0XvxudxsDVMbiG9MMEvYw5wO9FZHHZ8,857
|
|
97
93
|
azure/ai/evaluation/simulator/_direct_attack_simulator.py,sha256=FTtWf655dHJF5FLJi0xGSBgIlGWNiVWyqaLDJSud9XA,10199
|
|
98
94
|
azure/ai/evaluation/simulator/_indirect_attack_simulator.py,sha256=nweIU_AkUIR50qLQpjmljf_OkpsCPth2Ebf4vusygCA,10226
|
|
99
|
-
azure/ai/evaluation/simulator/_simulator.py,sha256=
|
|
95
|
+
azure/ai/evaluation/simulator/_simulator.py,sha256=LBzez7qvObpVjTwmlGS_PfhDLo8pRknh5epra2yo9X8,36484
|
|
100
96
|
azure/ai/evaluation/simulator/_tracing.py,sha256=frZ4-usrzINast9F4-ONRzEGGox71y8bYw0UHNufL1Y,3069
|
|
101
97
|
azure/ai/evaluation/simulator/_utils.py,sha256=16NltlywpbMtoFtULwTKqeURguIS1kSKSo3g8uKV8TA,5181
|
|
102
|
-
azure/ai/evaluation/simulator/_conversation/__init__.py,sha256=
|
|
103
|
-
azure/ai/evaluation/simulator/_conversation/_conversation.py,sha256=
|
|
98
|
+
azure/ai/evaluation/simulator/_conversation/__init__.py,sha256=LOR5h7vSACrv_cmaS6r7KUqjJcHYg7PAgkDbdvOmd4g,17726
|
|
99
|
+
azure/ai/evaluation/simulator/_conversation/_conversation.py,sha256=h8OHq0sWKiTH821tC5zF44CJ-QgutTgDnEYsFEA7Cw0,7635
|
|
104
100
|
azure/ai/evaluation/simulator/_conversation/constants.py,sha256=3v7zkjPwJAPbSpJYIK6VOZZy70bJXMo_QTVqSFGlq9A,984
|
|
105
101
|
azure/ai/evaluation/simulator/_data_sources/__init__.py,sha256=Yx1Iq2GNKQ5lYxTotvPwkPL4u0cm6YVxUe-iVbu1clI,180
|
|
106
102
|
azure/ai/evaluation/simulator/_data_sources/grounding.json,sha256=jqdqHrCgS7hN7K2kXSEcPCmzFjV4cv_qcCSR-Hutwx4,1257075
|
|
@@ -109,15 +105,15 @@ azure/ai/evaluation/simulator/_helpers/_language_suffix_mapping.py,sha256=7BBLH7
|
|
|
109
105
|
azure/ai/evaluation/simulator/_helpers/_simulator_data_classes.py,sha256=BOttMTec3muMiA4OzwD_iW08GTrhja7PL9XVjRCN3jM,3029
|
|
110
106
|
azure/ai/evaluation/simulator/_model_tools/__init__.py,sha256=aMv5apb7uVjuhMF9ohhA5kQmo652hrGIJlhdl3y2R1I,835
|
|
111
107
|
azure/ai/evaluation/simulator/_model_tools/_identity_manager.py,sha256=-hptp2vpJIcfjvtd0E2c7ry00LVh23LxuYGevsNFfgs,6385
|
|
112
|
-
azure/ai/evaluation/simulator/_model_tools/_proxy_completion_model.py,sha256=
|
|
108
|
+
azure/ai/evaluation/simulator/_model_tools/_proxy_completion_model.py,sha256=D2Am07l2gq_v-vztqDBTX2MxZTUumm5ysaVSL2L0rxQ,9118
|
|
113
109
|
azure/ai/evaluation/simulator/_model_tools/_rai_client.py,sha256=40MGzIXGv7oVshWH7AbOPLCigI4HlMrqbF2Rq5jFMGo,8755
|
|
114
110
|
azure/ai/evaluation/simulator/_model_tools/_template_handler.py,sha256=NQWqjE7csSzkhb2XdW82AoCA-DxixpTrfBxAnOt2Wlc,7075
|
|
115
111
|
azure/ai/evaluation/simulator/_model_tools/models.py,sha256=bfVm0PV3vfH_8DkdmTMZqYVN-G51hZ6Y0TOO-NiysJY,21811
|
|
116
112
|
azure/ai/evaluation/simulator/_prompty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
113
|
azure/ai/evaluation/simulator/_prompty/task_query_response.prompty,sha256=2BzSqDDYilDushvR56vMRDmqFIaIYAewdUlUZg_elMg,2182
|
|
118
114
|
azure/ai/evaluation/simulator/_prompty/task_simulate.prompty,sha256=NE6lH4bfmibgMn4NgJtm9_l3PMoHSFrfjjosDJEKM0g,939
|
|
119
|
-
azure_ai_evaluation-1.
|
|
120
|
-
azure_ai_evaluation-1.
|
|
121
|
-
azure_ai_evaluation-1.
|
|
122
|
-
azure_ai_evaluation-1.
|
|
123
|
-
azure_ai_evaluation-1.
|
|
115
|
+
azure_ai_evaluation-1.3.0.dist-info/METADATA,sha256=msxfA0EnNspmcqbsGuYtdEESA3kLPnEfWBpzf7yFHEw,32885
|
|
116
|
+
azure_ai_evaluation-1.3.0.dist-info/NOTICE.txt,sha256=4tzi_Yq4-eBGhBvveobWHCgUIVF-ZeouGN0m7hVq5Mk,3592
|
|
117
|
+
azure_ai_evaluation-1.3.0.dist-info/WHEEL,sha256=pL8R0wFFS65tNSRnaOVrsw9EOkOqxLrlUPenUYnJKNo,91
|
|
118
|
+
azure_ai_evaluation-1.3.0.dist-info/top_level.txt,sha256=S7DhWV9m80TBzAhOFjxDUiNbKszzoThbnrSz5MpbHSQ,6
|
|
119
|
+
azure_ai_evaluation-1.3.0.dist-info/RECORD,,
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# ---------------------------------------------------------
|
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
# ---------------------------------------------------------
|
|
4
|
-
from ._content_safety_multimodal import ContentSafetyMultimodalEvaluator
|
|
5
|
-
from ._content_safety_multimodal_base import ContentSafetyMultimodalEvaluatorBase
|
|
6
|
-
from ._hate_unfairness import HateUnfairnessMultimodalEvaluator
|
|
7
|
-
from ._self_harm import SelfHarmMultimodalEvaluator
|
|
8
|
-
from ._sexual import SexualMultimodalEvaluator
|
|
9
|
-
from ._violence import ViolenceMultimodalEvaluator
|
|
10
|
-
from ._protected_material import ProtectedMaterialMultimodalEvaluator
|
|
11
|
-
|
|
12
|
-
__all__ = [
|
|
13
|
-
"ContentSafetyMultimodalEvaluator",
|
|
14
|
-
"ContentSafetyMultimodalEvaluatorBase",
|
|
15
|
-
"ViolenceMultimodalEvaluator",
|
|
16
|
-
"SexualMultimodalEvaluator",
|
|
17
|
-
"SelfHarmMultimodalEvaluator",
|
|
18
|
-
"HateUnfairnessMultimodalEvaluator",
|
|
19
|
-
"ProtectedMaterialMultimodalEvaluator",
|
|
20
|
-
]
|