deepeval 3.8.0__py3-none-any.whl → 3.8.2__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.
- deepeval/_version.py +1 -1
- deepeval/annotation/annotation.py +2 -2
- deepeval/confident/api.py +31 -3
- deepeval/config/settings.py +3 -0
- deepeval/dataset/dataset.py +6 -4
- deepeval/integrations/langchain/callback.py +307 -15
- deepeval/integrations/langchain/utils.py +75 -24
- deepeval/integrations/pydantic_ai/instrumentator.py +43 -11
- deepeval/integrations/pydantic_ai/otel.py +9 -0
- deepeval/metrics/contextual_recall/contextual_recall.py +25 -6
- deepeval/metrics/contextual_recall/schema.py +6 -0
- deepeval/metrics/multimodal_metrics/image_coherence/image_coherence.py +10 -1
- deepeval/metrics/multimodal_metrics/image_helpfulness/image_helpfulness.py +10 -1
- deepeval/metrics/multimodal_metrics/image_reference/image_reference.py +10 -1
- deepeval/metrics/utils.py +12 -1
- deepeval/models/llms/amazon_bedrock_model.py +51 -6
- deepeval/models/llms/azure_model.py +33 -7
- deepeval/models/llms/gemini_model.py +6 -1
- deepeval/prompt/prompt.py +7 -5
- deepeval/simulator/conversation_simulator.py +4 -2
- deepeval/telemetry.py +12 -91
- deepeval/test_case/llm_test_case.py +1 -0
- deepeval/tracing/tracing.py +6 -5
- {deepeval-3.8.0.dist-info → deepeval-3.8.2.dist-info}/METADATA +1 -1
- {deepeval-3.8.0.dist-info → deepeval-3.8.2.dist-info}/RECORD +28 -28
- {deepeval-3.8.0.dist-info → deepeval-3.8.2.dist-info}/LICENSE.md +0 -0
- {deepeval-3.8.0.dist-info → deepeval-3.8.2.dist-info}/WHEEL +0 -0
- {deepeval-3.8.0.dist-info → deepeval-3.8.2.dist-info}/entry_points.txt +0 -0
deepeval/prompt/prompt.py
CHANGED
|
@@ -114,6 +114,7 @@ class Prompt:
|
|
|
114
114
|
output_type: Optional[OutputType] = None,
|
|
115
115
|
output_schema: Optional[Type[BaseModel]] = None,
|
|
116
116
|
interpolation_type: Optional[PromptInterpolationType] = None,
|
|
117
|
+
confident_api_key: Optional[str] = None,
|
|
117
118
|
):
|
|
118
119
|
if text_template and messages_template:
|
|
119
120
|
raise TypeError(
|
|
@@ -129,6 +130,7 @@ class Prompt:
|
|
|
129
130
|
self.interpolation_type: PromptInterpolationType = (
|
|
130
131
|
interpolation_type or PromptInterpolationType.FSTRING
|
|
131
132
|
)
|
|
133
|
+
self.confident_api_key = confident_api_key
|
|
132
134
|
|
|
133
135
|
self._version = None
|
|
134
136
|
self._prompt_version_id: Optional[str] = None
|
|
@@ -244,7 +246,7 @@ class Prompt:
|
|
|
244
246
|
raise ValueError(
|
|
245
247
|
"Prompt alias is not set. Please set an alias to continue."
|
|
246
248
|
)
|
|
247
|
-
api = Api()
|
|
249
|
+
api = Api(api_key=self.confident_api_key)
|
|
248
250
|
data, _ = api.send_request(
|
|
249
251
|
method=HttpMethods.GET,
|
|
250
252
|
endpoint=Endpoints.PROMPTS_VERSIONS_ENDPOINT,
|
|
@@ -496,7 +498,7 @@ class Prompt:
|
|
|
496
498
|
except Exception:
|
|
497
499
|
pass
|
|
498
500
|
|
|
499
|
-
api = Api()
|
|
501
|
+
api = Api(api_key=self.confident_api_key)
|
|
500
502
|
with Progress(
|
|
501
503
|
SpinnerColumn(style="rgb(106,0,255)"),
|
|
502
504
|
BarColumn(bar_width=60),
|
|
@@ -635,7 +637,7 @@ class Prompt:
|
|
|
635
637
|
# Pydantic version below 2.0
|
|
636
638
|
body = body.dict(by_alias=True, exclude_none=True)
|
|
637
639
|
|
|
638
|
-
api = Api()
|
|
640
|
+
api = Api(api_key=self.confident_api_key)
|
|
639
641
|
_, link = api.send_request(
|
|
640
642
|
method=HttpMethods.POST,
|
|
641
643
|
endpoint=Endpoints.PROMPTS_ENDPOINT,
|
|
@@ -692,7 +694,7 @@ class Prompt:
|
|
|
692
694
|
)
|
|
693
695
|
except AttributeError:
|
|
694
696
|
body = body.dict(by_alias=True, exclude_none=True)
|
|
695
|
-
api = Api()
|
|
697
|
+
api = Api(api_key=self.confident_api_key)
|
|
696
698
|
data, _ = api.send_request(
|
|
697
699
|
method=HttpMethods.PUT,
|
|
698
700
|
endpoint=Endpoints.PROMPTS_VERSION_ID_ENDPOINT,
|
|
@@ -765,7 +767,7 @@ class Prompt:
|
|
|
765
767
|
while True:
|
|
766
768
|
await asyncio.sleep(self._refresh_map[CACHE_KEY][cache_value])
|
|
767
769
|
|
|
768
|
-
api = Api()
|
|
770
|
+
api = Api(api_key=self.confident_api_key)
|
|
769
771
|
try:
|
|
770
772
|
if label:
|
|
771
773
|
data, _ = api.send_request(
|
|
@@ -610,7 +610,8 @@ class ConversationSimulator:
|
|
|
610
610
|
) -> BaseModel:
|
|
611
611
|
if self.using_native_model:
|
|
612
612
|
res, cost = self.simulator_model.generate(prompt, schema=schema)
|
|
613
|
-
|
|
613
|
+
if cost is not None:
|
|
614
|
+
self.simulation_cost += cost
|
|
614
615
|
return res
|
|
615
616
|
else:
|
|
616
617
|
try:
|
|
@@ -630,7 +631,8 @@ class ConversationSimulator:
|
|
|
630
631
|
res, cost = await self.simulator_model.a_generate(
|
|
631
632
|
prompt, schema=schema
|
|
632
633
|
)
|
|
633
|
-
|
|
634
|
+
if cost is not None:
|
|
635
|
+
self.simulation_cost += cost
|
|
634
636
|
return res
|
|
635
637
|
else:
|
|
636
638
|
try:
|
deepeval/telemetry.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from contextlib import contextmanager
|
|
2
|
-
import logging
|
|
3
2
|
import os
|
|
4
3
|
import socket
|
|
5
4
|
import sys
|
|
@@ -85,13 +84,6 @@ if not telemetry_opt_out():
|
|
|
85
84
|
anonymous_public_ip = None
|
|
86
85
|
|
|
87
86
|
if not telemetry_opt_out():
|
|
88
|
-
from opentelemetry import trace
|
|
89
|
-
from opentelemetry.sdk.trace import TracerProvider
|
|
90
|
-
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
91
|
-
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
|
|
92
|
-
OTLPSpanExporter,
|
|
93
|
-
)
|
|
94
|
-
|
|
95
87
|
anonymous_public_ip = get_anonymous_public_ip()
|
|
96
88
|
sentry_sdk.init(
|
|
97
89
|
dsn="https://5ef587d58109ee45d6544f3657efdd1f@o4506098477236224.ingest.sentry.io/4506098479136768",
|
|
@@ -102,27 +94,6 @@ if not telemetry_opt_out():
|
|
|
102
94
|
default_integrations=False, # Disable Sentry's default integrations
|
|
103
95
|
)
|
|
104
96
|
|
|
105
|
-
# Set up the Tracer Provider
|
|
106
|
-
trace.set_tracer_provider(TracerProvider())
|
|
107
|
-
tracer_provider = trace.get_tracer_provider()
|
|
108
|
-
|
|
109
|
-
# New Relic License Key and OTLP Endpoint
|
|
110
|
-
NEW_RELIC_LICENSE_KEY = "1711c684db8a30361a7edb0d0398772cFFFFNRAL"
|
|
111
|
-
NEW_RELIC_OTLP_ENDPOINT = "https://otlp.nr-data.net:4317"
|
|
112
|
-
otlp_exporter = OTLPSpanExporter(
|
|
113
|
-
endpoint=NEW_RELIC_OTLP_ENDPOINT,
|
|
114
|
-
headers={"api-key": NEW_RELIC_LICENSE_KEY},
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
# Add the OTLP exporter to the span processor
|
|
118
|
-
span_processor = BatchSpanProcessor(otlp_exporter)
|
|
119
|
-
tracer_provider.add_span_processor(span_processor)
|
|
120
|
-
|
|
121
|
-
logging.getLogger("opentelemetry.exporter.otlp").setLevel(logging.CRITICAL)
|
|
122
|
-
|
|
123
|
-
# Create a tracer for your application
|
|
124
|
-
tracer = trace.get_tracer(__name__)
|
|
125
|
-
|
|
126
97
|
# Initialize PostHog
|
|
127
98
|
posthog = Posthog(
|
|
128
99
|
project_api_key="phc_IXvGRcscJJoIb049PtjIZ65JnXQguOUZ5B5MncunFdB",
|
|
@@ -199,11 +170,7 @@ def capture_evaluation_run(type: str):
|
|
|
199
170
|
posthog.capture(
|
|
200
171
|
distinct_id=distinct_id, event=event, properties=properties
|
|
201
172
|
)
|
|
202
|
-
|
|
203
|
-
with tracer.start_as_current_span(event) as span:
|
|
204
|
-
for property, value in properties.items():
|
|
205
|
-
span.set_attribute(property, value)
|
|
206
|
-
yield span
|
|
173
|
+
yield
|
|
207
174
|
|
|
208
175
|
|
|
209
176
|
@contextmanager
|
|
@@ -227,11 +194,7 @@ def capture_recommend_metrics():
|
|
|
227
194
|
posthog.capture(
|
|
228
195
|
distinct_id=distinct_id, event=event, properties=properties
|
|
229
196
|
)
|
|
230
|
-
|
|
231
|
-
with tracer.start_as_current_span(event) as span:
|
|
232
|
-
for property, value in properties.items():
|
|
233
|
-
span.set_attribute(property, value)
|
|
234
|
-
yield span
|
|
197
|
+
yield
|
|
235
198
|
|
|
236
199
|
|
|
237
200
|
@contextmanager
|
|
@@ -259,11 +222,7 @@ def capture_metric_type(
|
|
|
259
222
|
posthog.capture(
|
|
260
223
|
distinct_id=distinct_id, event=event, properties=properties
|
|
261
224
|
)
|
|
262
|
-
|
|
263
|
-
with tracer.start_as_current_span(event) as span:
|
|
264
|
-
for property, value in properties.items():
|
|
265
|
-
span.set_attribute(property, value)
|
|
266
|
-
yield span
|
|
225
|
+
yield
|
|
267
226
|
|
|
268
227
|
|
|
269
228
|
@contextmanager
|
|
@@ -297,11 +256,7 @@ def capture_synthesizer_run(
|
|
|
297
256
|
posthog.capture(
|
|
298
257
|
distinct_id=distinct_id, event=event, properties=properties
|
|
299
258
|
)
|
|
300
|
-
|
|
301
|
-
with tracer.start_as_current_span(event) as span:
|
|
302
|
-
for property, value in properties.items():
|
|
303
|
-
span.set_attribute(property, value)
|
|
304
|
-
yield span
|
|
259
|
+
yield
|
|
305
260
|
|
|
306
261
|
|
|
307
262
|
@contextmanager
|
|
@@ -330,11 +285,7 @@ def capture_conversation_simulator_run(num_conversations: int):
|
|
|
330
285
|
posthog.capture(
|
|
331
286
|
distinct_id=distinct_id, event=event, properties=properties
|
|
332
287
|
)
|
|
333
|
-
|
|
334
|
-
with tracer.start_as_current_span(event) as span:
|
|
335
|
-
for property, value in properties.items():
|
|
336
|
-
span.set_attribute(property, value)
|
|
337
|
-
yield span
|
|
288
|
+
yield
|
|
338
289
|
|
|
339
290
|
|
|
340
291
|
@contextmanager
|
|
@@ -360,11 +311,7 @@ def capture_guardrails(guards: List[str]):
|
|
|
360
311
|
posthog.capture(
|
|
361
312
|
distinct_id=distinct_id, event=event, properties=properties
|
|
362
313
|
)
|
|
363
|
-
|
|
364
|
-
with tracer.start_as_current_span(event) as span:
|
|
365
|
-
for property, value in properties.items():
|
|
366
|
-
span.set_attribute(property, value)
|
|
367
|
-
yield span
|
|
314
|
+
yield
|
|
368
315
|
|
|
369
316
|
|
|
370
317
|
@contextmanager
|
|
@@ -391,11 +338,7 @@ def capture_benchmark_run(benchmark: str, num_tasks: int):
|
|
|
391
338
|
posthog.capture(
|
|
392
339
|
distinct_id=distinct_id, event=event, properties=properties
|
|
393
340
|
)
|
|
394
|
-
|
|
395
|
-
with tracer.start_as_current_span(event) as span:
|
|
396
|
-
for property, value in properties.items():
|
|
397
|
-
span.set_attribute(property, value)
|
|
398
|
-
yield span
|
|
341
|
+
yield
|
|
399
342
|
|
|
400
343
|
|
|
401
344
|
@contextmanager
|
|
@@ -421,11 +364,7 @@ def capture_login_event():
|
|
|
421
364
|
posthog.capture(
|
|
422
365
|
distinct_id=distinct_id, event=event, properties=properties
|
|
423
366
|
)
|
|
424
|
-
|
|
425
|
-
with tracer.start_as_current_span(event) as span:
|
|
426
|
-
for property, value in properties.items():
|
|
427
|
-
span.set_attribute(property, value)
|
|
428
|
-
yield span
|
|
367
|
+
yield
|
|
429
368
|
|
|
430
369
|
|
|
431
370
|
@contextmanager
|
|
@@ -451,11 +390,7 @@ def capture_view_event():
|
|
|
451
390
|
posthog.capture(
|
|
452
391
|
distinct_id=distinct_id, event=event, properties=properties
|
|
453
392
|
)
|
|
454
|
-
|
|
455
|
-
with tracer.start_as_current_span(event) as span:
|
|
456
|
-
for property, value in properties.items():
|
|
457
|
-
span.set_attribute(property, value)
|
|
458
|
-
yield span
|
|
393
|
+
yield
|
|
459
394
|
|
|
460
395
|
|
|
461
396
|
@contextmanager
|
|
@@ -478,11 +413,7 @@ def capture_pull_dataset():
|
|
|
478
413
|
posthog.capture(
|
|
479
414
|
distinct_id=distinct_id, event=event, properties=properties
|
|
480
415
|
)
|
|
481
|
-
|
|
482
|
-
with tracer.start_as_current_span(event) as span:
|
|
483
|
-
for property, value in properties.items():
|
|
484
|
-
span.set_attribute(property, value)
|
|
485
|
-
yield span
|
|
416
|
+
yield
|
|
486
417
|
|
|
487
418
|
|
|
488
419
|
# track metrics that are components and metrics that aren't components
|
|
@@ -509,11 +440,7 @@ def capture_send_trace():
|
|
|
509
440
|
posthog.capture(
|
|
510
441
|
distinct_id=distinct_id, event=event, properties=properties
|
|
511
442
|
)
|
|
512
|
-
|
|
513
|
-
with tracer.start_as_current_span(event) as span:
|
|
514
|
-
for property, value in properties.items():
|
|
515
|
-
span.set_attribute(property, value)
|
|
516
|
-
yield span
|
|
443
|
+
yield
|
|
517
444
|
|
|
518
445
|
|
|
519
446
|
# tracing integration
|
|
@@ -542,13 +469,7 @@ def capture_tracing_integration(integration_name: str):
|
|
|
542
469
|
posthog.capture(
|
|
543
470
|
distinct_id=distinct_id, event=event, properties=properties
|
|
544
471
|
)
|
|
545
|
-
|
|
546
|
-
with tracer.start_as_current_span(event) as span:
|
|
547
|
-
for property, value in properties.items():
|
|
548
|
-
span.set_attribute(property, value)
|
|
549
|
-
# OTEL/New Relic filtering attributes
|
|
550
|
-
span.set_attribute("integration.name", integration_name)
|
|
551
|
-
yield span
|
|
472
|
+
yield
|
|
552
473
|
|
|
553
474
|
|
|
554
475
|
#########################################################
|
|
@@ -386,6 +386,7 @@ class LLMTestCase(BaseModel):
|
|
|
386
386
|
[
|
|
387
387
|
re.search(pattern, self.input or "") is not None,
|
|
388
388
|
re.search(pattern, self.actual_output or "") is not None,
|
|
389
|
+
re.search(pattern, self.expected_output or "") is not None,
|
|
389
390
|
]
|
|
390
391
|
)
|
|
391
392
|
if isinstance(self.input, str)
|
deepeval/tracing/tracing.py
CHANGED
|
@@ -969,9 +969,9 @@ class Observer:
|
|
|
969
969
|
else:
|
|
970
970
|
current_trace = current_trace_context.get()
|
|
971
971
|
if current_trace.input is None:
|
|
972
|
-
current_trace.input = self.function_kwargs
|
|
972
|
+
current_trace.input = trace_manager.mask(self.function_kwargs)
|
|
973
973
|
if current_trace.output is None:
|
|
974
|
-
current_trace.output = self.result
|
|
974
|
+
current_trace.output = trace_manager.mask(self.result)
|
|
975
975
|
if current_span.status == TraceSpanStatus.ERRORED:
|
|
976
976
|
current_trace.status = TraceSpanStatus.ERRORED
|
|
977
977
|
if current_trace and current_trace.uuid == current_span.trace_uuid:
|
|
@@ -1037,7 +1037,8 @@ class Observer:
|
|
|
1037
1037
|
return RetrieverSpan(**span_kwargs, embedder=embedder)
|
|
1038
1038
|
|
|
1039
1039
|
elif self.span_type == SpanType.TOOL.value:
|
|
1040
|
-
|
|
1040
|
+
description = self.observe_kwargs.get("description", None)
|
|
1041
|
+
return ToolSpan(**span_kwargs, description=description)
|
|
1041
1042
|
else:
|
|
1042
1043
|
return BaseSpan(**span_kwargs)
|
|
1043
1044
|
|
|
@@ -1107,7 +1108,7 @@ def observe(
|
|
|
1107
1108
|
yield chunk
|
|
1108
1109
|
observer.__exit__(None, None, None)
|
|
1109
1110
|
except Exception as e:
|
|
1110
|
-
observer.__exit__(
|
|
1111
|
+
observer.__exit__(e.__class__, e, e.__traceback__)
|
|
1111
1112
|
raise
|
|
1112
1113
|
|
|
1113
1114
|
return gen()
|
|
@@ -1150,7 +1151,7 @@ def observe(
|
|
|
1150
1151
|
yield from original_gen
|
|
1151
1152
|
observer.__exit__(None, None, None)
|
|
1152
1153
|
except Exception as e:
|
|
1153
|
-
observer.__exit__(
|
|
1154
|
+
observer.__exit__(e.__class__, e, e.__traceback__)
|
|
1154
1155
|
raise
|
|
1155
1156
|
|
|
1156
1157
|
return gen()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
deepeval/__init__.py,sha256=tle4lT4FONApg3OeztGPEdrpGMEGLWajyGTu7bEd3s0,2976
|
|
2
|
-
deepeval/_version.py,sha256=
|
|
2
|
+
deepeval/_version.py,sha256=A8HjzlffHmJot3rBAExqN_D-QxaG8UT8zqiP26xCL2M,27
|
|
3
3
|
deepeval/annotation/__init__.py,sha256=ZFhUVNNuH_YgQSZJ-m5E9iUb9TkAkEV33a6ouMDZ8EI,111
|
|
4
|
-
deepeval/annotation/annotation.py,sha256=
|
|
4
|
+
deepeval/annotation/annotation.py,sha256=WLFZRkx6wRJcNzaOMMGXuTfw6Q1_1Mv5A4jpD7Ea4sU,2300
|
|
5
5
|
deepeval/annotation/api.py,sha256=EYN33ACVzVxsFleRYm60KB4Exvff3rPJKt1VBuuX970,2147
|
|
6
6
|
deepeval/anthropic/__init__.py,sha256=D-ZcS8ifsHftChpoZaiCTCBr5oh7jHAP0SrufJx6rCU,595
|
|
7
7
|
deepeval/anthropic/extractors.py,sha256=BKw8oVoyE3vxjO9IlZ2AeJ_CSM7viaCTFOqgu-4Vqik,2892
|
|
@@ -142,19 +142,19 @@ deepeval/cli/test.py,sha256=aoBPMfk0HTvOqb2xdvMykkx_s4SHst7lEnoUiSXo1lU,5483
|
|
|
142
142
|
deepeval/cli/types.py,sha256=_7KdthstHNc-JKCWrfpDQCf_j8h9PMxh0qJCHmVXJr0,310
|
|
143
143
|
deepeval/cli/utils.py,sha256=3fgH5WPTTe7Cz_QOLCHyflXB81kmFaSxXHJ2tnxvFLw,10649
|
|
144
144
|
deepeval/confident/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
145
|
-
deepeval/confident/api.py,sha256=
|
|
145
|
+
deepeval/confident/api.py,sha256=rxMNMK5VYPQKdEDSRsovlULV14QlGW3TNDkARLj_Pt4,9589
|
|
146
146
|
deepeval/confident/types.py,sha256=9bgePDaU31yY7JGwCLZcc7pev9VGtNDZLbjsVpCLVdc,574
|
|
147
147
|
deepeval/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
148
148
|
deepeval/config/dotenv_handler.py,sha256=lOosoC7fm9RljriY8EFl5ywSGfSiQsVf_vmYqzpbZ8s,588
|
|
149
149
|
deepeval/config/logging.py,sha256=ivqmhOSB-oHOOU3MvnhImrZwkkxzxKJgoKxesnWfHjg,1314
|
|
150
|
-
deepeval/config/settings.py,sha256=
|
|
150
|
+
deepeval/config/settings.py,sha256=rGigXXW5r50tyWtNhBYL_cZnTRGxsm71A6fBAmHawpk,57117
|
|
151
151
|
deepeval/config/settings_manager.py,sha256=Ynebm2BKDrzajc6DEq2eYIwyRAAtUQOkTnl46albxLk,4187
|
|
152
152
|
deepeval/config/utils.py,sha256=bJGljeAXoEYuUlYSvHSOsUnqINTwo6wOwfFHFpWxiaQ,4238
|
|
153
153
|
deepeval/constants.py,sha256=MvwjLC1IHUY35FnnSsWVcHScmdbYBbPr8eTnsLWn40Y,1697
|
|
154
154
|
deepeval/contextvars.py,sha256=oqXtuYiKd4Zvc1rNoR1gcRBxzZYCGTMVn7XostwvkRI,524
|
|
155
155
|
deepeval/dataset/__init__.py,sha256=N2c-rkuxWYiiJSOZArw0H02Cwo7cnfzFuNYJlvsIBEg,249
|
|
156
156
|
deepeval/dataset/api.py,sha256=bZ95HfIaxYB1IwTnp7x4AaKXWuII17T5uqVkhUXNc7I,1650
|
|
157
|
-
deepeval/dataset/dataset.py,sha256=
|
|
157
|
+
deepeval/dataset/dataset.py,sha256=0tZaMVzhgnyWkwEBLcDW-MQQjIx0zCWuFSJPkgcDNMY,59402
|
|
158
158
|
deepeval/dataset/golden.py,sha256=zuUUih0PBuHGaXo0zNyzwGLL-PT-ScZ3vofexDBuBzY,7326
|
|
159
159
|
deepeval/dataset/test_run_tracer.py,sha256=RiINq8743l0D1M0FKuQRN05v0-xO4BYdUp1xHjHSGAo,2514
|
|
160
160
|
deepeval/dataset/types.py,sha256=CWeOIBPK2WdmRUqjFa9gfN-w2da0r8Ilzl3ToDpJQoQ,558
|
|
@@ -180,16 +180,16 @@ deepeval/integrations/hugging_face/rich_manager.py,sha256=WvFtPGpPmGeg2Ftsnojga6
|
|
|
180
180
|
deepeval/integrations/hugging_face/tests/test_callbacks.py,sha256=88Wyg-aDaXujj9jHeGdFF3ITSl2-y7eaJGWgSyvvDi8,4607
|
|
181
181
|
deepeval/integrations/hugging_face/utils.py,sha256=HUKdQcTIb76Ct69AS737oPxmlVxk5fw2UbT2pLn-o8k,1817
|
|
182
182
|
deepeval/integrations/langchain/__init__.py,sha256=G1Qey5WkKou2-PA34KwWgmayQ_TbvXqPyotTbzmD8tw,84
|
|
183
|
-
deepeval/integrations/langchain/callback.py,sha256=
|
|
183
|
+
deepeval/integrations/langchain/callback.py,sha256=uZrhmlzw2dcFunqQzNPfMo9vWkHCX7PbGbazKRhBbBY,32687
|
|
184
184
|
deepeval/integrations/langchain/patch.py,sha256=fCHfZXU9xX3IJ6SG8GEYzn3qrifyUkT0i_uUABTsmcs,1255
|
|
185
|
-
deepeval/integrations/langchain/utils.py,sha256=
|
|
185
|
+
deepeval/integrations/langchain/utils.py,sha256=mhv0anU5ZnbBsESMuCooT9FSNPkx2ObrVLlq7QNEZOI,13104
|
|
186
186
|
deepeval/integrations/llama_index/__init__.py,sha256=Ujs9ZBJFkuCWUDBJOF88UbM1Y-S6QFQhxSo0oQnEWNw,90
|
|
187
187
|
deepeval/integrations/llama_index/handler.py,sha256=uTvNXmAF4xBh8t9bBm5sBFX6ETp8SrkOZlFlE_GWdmM,10771
|
|
188
188
|
deepeval/integrations/llama_index/utils.py,sha256=onmmo1vpn6cpOY5EhfTc0Uui7X6l1M0HD3sq-KVAesg,3380
|
|
189
189
|
deepeval/integrations/pydantic_ai/__init__.py,sha256=UIkXn_g6h9LTQXG1PaWu1eCFkCssIwG48WSvN46UWgU,202
|
|
190
190
|
deepeval/integrations/pydantic_ai/agent.py,sha256=-NKvpTUw3AxRNhuxVFcx9mw5BWCujzOwsaC8u7K0ubc,1178
|
|
191
|
-
deepeval/integrations/pydantic_ai/instrumentator.py,sha256=
|
|
192
|
-
deepeval/integrations/pydantic_ai/otel.py,sha256=
|
|
191
|
+
deepeval/integrations/pydantic_ai/instrumentator.py,sha256=COqw4FJsUZacaP4Dfn1aaOXvUTvZOuhcqqQD-_sLD04,13047
|
|
192
|
+
deepeval/integrations/pydantic_ai/otel.py,sha256=xWYnMT1HwcAmyWdoJa6C1sHwd5frP9_IcR8dj9sKsG0,2386
|
|
193
193
|
deepeval/integrations/pydantic_ai/test_instrumentator.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
194
194
|
deepeval/key_handler.py,sha256=lajMBgF2lCzbQpW4e6Y7cD9FOw0Qk5UOKS4_kIIHj6Y,9562
|
|
195
195
|
deepeval/metrics/__init__.py,sha256=19Df323r8aAlx2sRfV9BHJLicORhTLpogR8M1deJetw,4680
|
|
@@ -217,8 +217,8 @@ deepeval/metrics/contextual_precision/contextual_precision.py,sha256=hfjRzRCEjrq
|
|
|
217
217
|
deepeval/metrics/contextual_precision/schema.py,sha256=NVJjkfdEc72u9M0lx0EyHe8-J1XUkCPFwU3v3xdZK5A,278
|
|
218
218
|
deepeval/metrics/contextual_precision/template.py,sha256=OozJGaNGvBjMk87_-87PQN9Ky-OhBZjlYk_7HqJ_-Ts,6166
|
|
219
219
|
deepeval/metrics/contextual_recall/__init__.py,sha256=WMaP3SE8g0oh6mdnfvLBmjjgYV0WkBMg0YRuYNrTxcI,47
|
|
220
|
-
deepeval/metrics/contextual_recall/contextual_recall.py,sha256=
|
|
221
|
-
deepeval/metrics/contextual_recall/schema.py,sha256=
|
|
220
|
+
deepeval/metrics/contextual_recall/contextual_recall.py,sha256=7OUHwaJ-YHxjDN_WXo90kWDPcromnChtikfLxj8JV6c,10692
|
|
221
|
+
deepeval/metrics/contextual_recall/schema.py,sha256=s9l50XUWa-GyDegB9oz9dGSHfRN43HkPciIzfqpyzRg,373
|
|
222
222
|
deepeval/metrics/contextual_recall/template.py,sha256=00KHbcs9PF37MSBKAKoEd7LgIOLYP8NJnVI0ghiO7S8,6012
|
|
223
223
|
deepeval/metrics/contextual_relevancy/__init__.py,sha256=u3k3j3-DsCX0cF59An-hGP6KT-dkINgDyDqDRKFdzTs,50
|
|
224
224
|
deepeval/metrics/contextual_relevancy/contextual_relevancy.py,sha256=QeCYwMiUD9uo-pbigh3sBKDFTW_DkGs6nzfizUl2Q84,9850
|
|
@@ -286,7 +286,7 @@ deepeval/metrics/misuse/schema.py,sha256=UkPlbNXbDS8LyGfiEtMWv-odTG3q1ykzyXkXtmx
|
|
|
286
286
|
deepeval/metrics/misuse/template.py,sha256=afVNb5JJyb_1WJPhfxmvn2bfAzUo8NPafO4S2eGWZyo,3116
|
|
287
287
|
deepeval/metrics/multimodal_metrics/__init__.py,sha256=fXYb6Qm_iKjuZMFH8QO02LvDSwkkalmPnBK5iDSechk,323
|
|
288
288
|
deepeval/metrics/multimodal_metrics/image_coherence/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
289
|
-
deepeval/metrics/multimodal_metrics/image_coherence/image_coherence.py,sha256=
|
|
289
|
+
deepeval/metrics/multimodal_metrics/image_coherence/image_coherence.py,sha256=5UxUHIPQVUNpvaqSeDXioyTIezisPz6FtOG_SSVhdDM,13941
|
|
290
290
|
deepeval/metrics/multimodal_metrics/image_coherence/schema.py,sha256=NB38VAmRE5bZtCeSbOWMa7_nHBSBdEWndyEYWFh0aUA,123
|
|
291
291
|
deepeval/metrics/multimodal_metrics/image_coherence/template.py,sha256=bOXqf3xo3A6u6toFkFYFcIayYv1UsBtI6sK_hTQQuhA,1788
|
|
292
292
|
deepeval/metrics/multimodal_metrics/image_editing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -294,11 +294,11 @@ deepeval/metrics/multimodal_metrics/image_editing/image_editing.py,sha256=35FRCQ
|
|
|
294
294
|
deepeval/metrics/multimodal_metrics/image_editing/schema.py,sha256=ygt_RGnVlYh__mVCAMBsIFTQgLCk6hh0MPteomZX9UU,136
|
|
295
295
|
deepeval/metrics/multimodal_metrics/image_editing/template.py,sha256=KuDaJZbNikn4Jw6U1tF6YbVzHp-nARW2iTw3zxaJNXI,3104
|
|
296
296
|
deepeval/metrics/multimodal_metrics/image_helpfulness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
297
|
-
deepeval/metrics/multimodal_metrics/image_helpfulness/image_helpfulness.py,sha256=
|
|
297
|
+
deepeval/metrics/multimodal_metrics/image_helpfulness/image_helpfulness.py,sha256=4AC1v641vhi_JcMCO5WtbbplMs8_4J9mgWzOdFgH5vA,13968
|
|
298
298
|
deepeval/metrics/multimodal_metrics/image_helpfulness/schema.py,sha256=NB38VAmRE5bZtCeSbOWMa7_nHBSBdEWndyEYWFh0aUA,123
|
|
299
299
|
deepeval/metrics/multimodal_metrics/image_helpfulness/template.py,sha256=mu2tDUN_IeGAGfyZ7q2YaFepsWr8KnlXRIOyXUI9O0s,1884
|
|
300
300
|
deepeval/metrics/multimodal_metrics/image_reference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
301
|
-
deepeval/metrics/multimodal_metrics/image_reference/image_reference.py,sha256=
|
|
301
|
+
deepeval/metrics/multimodal_metrics/image_reference/image_reference.py,sha256=hoYSTIkl5KEXfrVk6Og3XAZ9LRIP_lXt6bIjEp_ZRbY,13942
|
|
302
302
|
deepeval/metrics/multimodal_metrics/image_reference/schema.py,sha256=NB38VAmRE5bZtCeSbOWMa7_nHBSBdEWndyEYWFh0aUA,123
|
|
303
303
|
deepeval/metrics/multimodal_metrics/image_reference/template.py,sha256=GdBGZu6atdmPaZfolWXF26wbxVFR2CSNMsYXEHSzDnU,1787
|
|
304
304
|
deepeval/metrics/multimodal_metrics/text_to_image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -384,7 +384,7 @@ deepeval/metrics/turn_relevancy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
384
384
|
deepeval/metrics/turn_relevancy/schema.py,sha256=om0zFJcM6qu2GWS9aJTP3lUmuEXX8KpoACEvCsJqfq4,234
|
|
385
385
|
deepeval/metrics/turn_relevancy/template.py,sha256=k02QVclRtCTVBZ7Xd4f-LdTrSO_dBxquQiFYqRYmiSA,3245
|
|
386
386
|
deepeval/metrics/turn_relevancy/turn_relevancy.py,sha256=gMx5o5vfPJjVKior96L_A-4o3IoAyxSoTgI8U9sJtRY,9468
|
|
387
|
-
deepeval/metrics/utils.py,sha256=
|
|
387
|
+
deepeval/metrics/utils.py,sha256=osdTrK0jMiMynfks3uUFx6KmhcbRmr41ZXoGMisx2xY,21932
|
|
388
388
|
deepeval/model_integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
389
389
|
deepeval/model_integrations/types.py,sha256=rbVMhC_2yWwD6JqzkRO9D7aMVC_KtXN686G_S7de7S8,630
|
|
390
390
|
deepeval/model_integrations/utils.py,sha256=Zt9SYPgTxlGsQFZgpZvh_a5fWuL8mmIFVSe6uoQywZ4,3562
|
|
@@ -400,12 +400,12 @@ deepeval/models/embedding_models/ollama_embedding_model.py,sha256=4uxrzdBlpWT-SM
|
|
|
400
400
|
deepeval/models/embedding_models/openai_embedding_model.py,sha256=S8uvWODbiTF4EYfeID5yEF0YvYkDs1dP_Kiur4sb67M,4477
|
|
401
401
|
deepeval/models/hallucination_model.py,sha256=ABi978VKLE_jNHbDzM96kJ08EsZ5ZlvOlJHA_ptSkfQ,1003
|
|
402
402
|
deepeval/models/llms/__init__.py,sha256=Mlkvw9eIbxJXJjTB9Nj0LoL-kSRCmewrEihDvFyzvJA,799
|
|
403
|
-
deepeval/models/llms/amazon_bedrock_model.py,sha256=
|
|
403
|
+
deepeval/models/llms/amazon_bedrock_model.py,sha256=iZR-T4DwXVHaWEJmcEKqjPOinS2ae9XZHie2P6I9CvU,12335
|
|
404
404
|
deepeval/models/llms/anthropic_model.py,sha256=08_nGK5EoGpf_F0I6JkhrEAswDc9DjLQqGYMX3emsoQ,10542
|
|
405
|
-
deepeval/models/llms/azure_model.py,sha256=
|
|
405
|
+
deepeval/models/llms/azure_model.py,sha256=8MrcQLXp-f2-tXTcBQTF7yKGeCuoSJmPleG3WcfjaH4,17793
|
|
406
406
|
deepeval/models/llms/constants.py,sha256=H6_FyTNkfF0wr3R8qUlvT2LuZGT5lbXFh9Hcq5T8A8k,72008
|
|
407
407
|
deepeval/models/llms/deepseek_model.py,sha256=OzEs0hnSixqICurVFo6T5GBAUeDrnWOlooEyJrgi5zE,8565
|
|
408
|
-
deepeval/models/llms/gemini_model.py,sha256=
|
|
408
|
+
deepeval/models/llms/gemini_model.py,sha256=drALKVMVtMRZGIrzbEhmL6x_6ztbSVhXsqRgrSCxVc0,15691
|
|
409
409
|
deepeval/models/llms/grok_model.py,sha256=zGU1WzKADrgap5NQJTDb6BY4SZNNJqAZ6phnK_HFJqw,10703
|
|
410
410
|
deepeval/models/llms/kimi_model.py,sha256=n5w2MeeKSMS7HvSpiDSQueZ2EQSv3c6pDb-C-ASHGwE,10441
|
|
411
411
|
deepeval/models/llms/litellm_model.py,sha256=lWfJvzWia7XCrLiRTNF0fUQXYOalsLV1y3Tq03loDP4,16533
|
|
@@ -461,14 +461,14 @@ deepeval/plugins/plugin.py,sha256=_dwsdx4Dg9DbXxK3f7zJY4QWTJQWc7QE1HmIg2Zjjag,15
|
|
|
461
461
|
deepeval/progress_context.py,sha256=ZSKpxrE9sdgt9G3REKnVeXAv7GJXHHVGgLynpG1Pudw,3557
|
|
462
462
|
deepeval/prompt/__init__.py,sha256=rDU99KjydxDRKhuQJCBs_bpDJrWb2mpHtvyv6AEwFC8,367
|
|
463
463
|
deepeval/prompt/api.py,sha256=DNhKouq3ntEKmN_VegNh5X1gu_2RGJwzBp07rEEyg6s,6359
|
|
464
|
-
deepeval/prompt/prompt.py,sha256=
|
|
464
|
+
deepeval/prompt/prompt.py,sha256=Ob1cIR2cLFoVzEpx2iCMDRIRT9rqAd3xQKnnOuZkg2A,31904
|
|
465
465
|
deepeval/prompt/utils.py,sha256=knjgPU2066OtYWMb3NqMPChr9zQgKfXo_QTLTtSkmYg,7620
|
|
466
466
|
deepeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
467
467
|
deepeval/red_teaming/README.md,sha256=BY5rAdpp3-sMMToEKwq0Nsd9ivkGDzPE16DeDb8GY7U,154
|
|
468
468
|
deepeval/scorer/__init__.py,sha256=hTvtoV3a4l0dSBjERm-jX7jveTtKZXK0c9JerQo0T_w,27
|
|
469
469
|
deepeval/scorer/scorer.py,sha256=EmXo1wEMMAL2it8WxNJ4cTqZLCH1ad4BY2VewoX6b10,18348
|
|
470
470
|
deepeval/simulator/__init__.py,sha256=wkyevg9nh46rsVnVrBjY3K5bHlkqjwx4TtrTfyjDCO0,96
|
|
471
|
-
deepeval/simulator/conversation_simulator.py,sha256=
|
|
471
|
+
deepeval/simulator/conversation_simulator.py,sha256=RfCZZmxiKNiSmd_g9CN-Un_ekkqeyDARP3aXcj3rUck,27282
|
|
472
472
|
deepeval/simulator/schema.py,sha256=16X2-m92plP52YTd-dvECt_-6gsz0U4j7Ut3UdI6gKY,252
|
|
473
473
|
deepeval/simulator/template.py,sha256=6wh6xiUaZQn-pvkBWgOK7pWfsv5nntgjGfTqUkcKn0A,6461
|
|
474
474
|
deepeval/singleton.py,sha256=irNbt0-IRI7rD4t05OZHsrNovpeva0XPc8PoieFytG8,532
|
|
@@ -486,12 +486,12 @@ deepeval/synthesizer/templates/template_extraction.py,sha256=jmvr8AOOUzDgsHYIOsq
|
|
|
486
486
|
deepeval/synthesizer/templates/template_prompt.py,sha256=bzfC71AXZqBrmoDWmBvuIQKD6hPJZ0ZAWX4hy-lPlnQ,21478
|
|
487
487
|
deepeval/synthesizer/types.py,sha256=wUZntvCAE29sM9K8hk9RPwUpkTip1ObOCExyMEo3sME,493
|
|
488
488
|
deepeval/synthesizer/utils.py,sha256=o-9z5gApQcHqDqusgrD0LagXWAju17LVc27BxtaA7og,1018
|
|
489
|
-
deepeval/telemetry.py,sha256=
|
|
489
|
+
deepeval/telemetry.py,sha256=VSPAv1XWS0jzDIjPzgAg42WDfYgqaR4Iwi8RrM_aPns,18041
|
|
490
490
|
deepeval/test_case/__init__.py,sha256=i1hIGeE_J1Zm-KmDVFqmogvBKzyOlIsENrfhL-3B8_M,658
|
|
491
491
|
deepeval/test_case/api.py,sha256=i9e1ggt4O9w_cu7tMSArw-LkiIZ_u_WPgpM2YAhfgks,3408
|
|
492
492
|
deepeval/test_case/arena_test_case.py,sha256=ngEU5_-YVQ-qPSOVVuSUJ_nuvdQR-MGA_QZQst5c8MI,1482
|
|
493
493
|
deepeval/test_case/conversational_test_case.py,sha256=kgZ3Ppj3dIKu_gERHEmqcU1AaKyBb7FOPUfoRksJmvY,10053
|
|
494
|
-
deepeval/test_case/llm_test_case.py,sha256=
|
|
494
|
+
deepeval/test_case/llm_test_case.py,sha256=pYyoNY-Q16LkQg9tj0OETMt9lIxTQ9feZI56MAfj2_g,18973
|
|
495
495
|
deepeval/test_case/mcp.py,sha256=Z625NLvz0E_UJpbyfyuAi_4nsqKH6DByBf0rfKd70xU,1879
|
|
496
496
|
deepeval/test_case/utils.py,sha256=uOeHza_H9epIMSmy63w9skrsmy0erGLFMDhtsd5_Hms,684
|
|
497
497
|
deepeval/test_run/__init__.py,sha256=cwH9sqz821ifdcviZiO3EajsYbh7GaUxA4LFur8g2ms,787
|
|
@@ -516,12 +516,12 @@ deepeval/tracing/patchers.py,sha256=Oi9wao3oDYhcviv7p0KoWBeS9ne7rHLa2gh9AR9EyiU,
|
|
|
516
516
|
deepeval/tracing/perf_epoch_bridge.py,sha256=iyAPddB6Op7NpMtPHJ29lDm53Btz9yLaN6xSCfTRQm4,1825
|
|
517
517
|
deepeval/tracing/trace_context.py,sha256=Z0n0Cu1A5g9dXiZnzTFO5TzeOYHKeNuO6v3_EU_Gi_c,3568
|
|
518
518
|
deepeval/tracing/trace_test_manager.py,sha256=wt4y7EWTRc4Bw938-UFFtXHkdFFOrnx6JaIk7J5Iulw,555
|
|
519
|
-
deepeval/tracing/tracing.py,sha256=
|
|
519
|
+
deepeval/tracing/tracing.py,sha256=ge3XXJkxlmCk5KfrqOOjxXIuA1CIXFOKJxhRTmXRSVQ,46849
|
|
520
520
|
deepeval/tracing/types.py,sha256=3QkF0toQ6f0fEDARYOUV6Iv9UJFbg14kSpn3dL1H5CE,6040
|
|
521
521
|
deepeval/tracing/utils.py,sha256=mdvhYAxDNsdnusaEXJd-c-_O2Jn6S3xSuzRvLO1Jz4U,5684
|
|
522
522
|
deepeval/utils.py,sha256=Wsu95g6t1wdttxWIESVwuUxbml7C-9ZTsV7qHCQI3Xg,27259
|
|
523
|
-
deepeval-3.8.
|
|
524
|
-
deepeval-3.8.
|
|
525
|
-
deepeval-3.8.
|
|
526
|
-
deepeval-3.8.
|
|
527
|
-
deepeval-3.8.
|
|
523
|
+
deepeval-3.8.2.dist-info/LICENSE.md,sha256=0ATkuLv6QgsJTBODUHC5Rak_PArA6gv2t7inJzNTP38,11352
|
|
524
|
+
deepeval-3.8.2.dist-info/METADATA,sha256=SUHVBa7pgBKF2XG3L3c_cItJWvuCdAQxzQSctzeAezQ,18752
|
|
525
|
+
deepeval-3.8.2.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
|
526
|
+
deepeval-3.8.2.dist-info/entry_points.txt,sha256=NoismUQfwLOojSGZmBrdcpwfaoFRAzUhBvZD3UwOKog,95
|
|
527
|
+
deepeval-3.8.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|