deepeval 3.6.9__py3-none-any.whl → 3.7.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.
- deepeval/_version.py +1 -1
- deepeval/anthropic/__init__.py +19 -0
- deepeval/anthropic/extractors.py +94 -0
- deepeval/anthropic/patch.py +169 -0
- deepeval/anthropic/utils.py +225 -0
- deepeval/benchmarks/drop/drop.py +40 -14
- deepeval/benchmarks/ifeval/ifeval.py +2 -2
- deepeval/confident/types.py +4 -2
- deepeval/config/settings.py +154 -11
- deepeval/config/settings_manager.py +4 -0
- deepeval/integrations/crewai/handler.py +36 -0
- deepeval/integrations/langchain/callback.py +27 -2
- deepeval/integrations/llama_index/handler.py +58 -4
- deepeval/integrations/llama_index/utils.py +24 -0
- deepeval/metrics/__init__.py +5 -0
- deepeval/metrics/exact_match/__init__.py +0 -0
- deepeval/metrics/exact_match/exact_match.py +94 -0
- deepeval/metrics/pattern_match/__init__.py +0 -0
- deepeval/metrics/pattern_match/pattern_match.py +103 -0
- deepeval/metrics/task_completion/task_completion.py +9 -2
- deepeval/model_integrations/__init__.py +0 -0
- deepeval/model_integrations/utils.py +116 -0
- deepeval/models/base_model.py +3 -1
- deepeval/openai/__init__.py +3 -1
- deepeval/openai/extractors.py +2 -2
- deepeval/openai/utils.py +7 -31
- deepeval/prompt/api.py +11 -10
- deepeval/prompt/prompt.py +5 -4
- deepeval/telemetry.py +3 -3
- deepeval/test_case/llm_test_case.py +3 -2
- deepeval/test_run/api.py +3 -2
- deepeval/test_run/cache.py +4 -3
- deepeval/test_run/test_run.py +24 -5
- deepeval/tracing/api.py +11 -10
- deepeval/tracing/otel/exporter.py +11 -0
- deepeval/tracing/patchers.py +102 -1
- deepeval/tracing/trace_context.py +13 -4
- deepeval/tracing/tracing.py +10 -1
- deepeval/tracing/types.py +8 -8
- deepeval/tracing/utils.py +9 -0
- deepeval/utils.py +44 -2
- {deepeval-3.6.9.dist-info → deepeval-3.7.0.dist-info}/METADATA +2 -2
- {deepeval-3.6.9.dist-info → deepeval-3.7.0.dist-info}/RECORD +47 -37
- /deepeval/{openai → model_integrations}/types.py +0 -0
- {deepeval-3.6.9.dist-info → deepeval-3.7.0.dist-info}/LICENSE.md +0 -0
- {deepeval-3.6.9.dist-info → deepeval-3.7.0.dist-info}/WHEEL +0 -0
- {deepeval-3.6.9.dist-info → deepeval-3.7.0.dist-info}/entry_points.txt +0 -0
|
@@ -493,6 +493,17 @@ class ConfidentSpanExporter(SpanExporter):
|
|
|
493
493
|
output_token_count = span.attributes.get(
|
|
494
494
|
"confident.llm.output_token_count"
|
|
495
495
|
)
|
|
496
|
+
|
|
497
|
+
# fallback to gen ai attributes if not found in confident attributes
|
|
498
|
+
if not input_token_count:
|
|
499
|
+
input_token_count = span.attributes.get(
|
|
500
|
+
"gen_ai.usage.input_tokens"
|
|
501
|
+
)
|
|
502
|
+
if not output_token_count:
|
|
503
|
+
output_token_count = span.attributes.get(
|
|
504
|
+
"gen_ai.usage.output_tokens"
|
|
505
|
+
)
|
|
506
|
+
|
|
496
507
|
cost_per_input_token = span.attributes.get(
|
|
497
508
|
"confident.llm.cost_per_input_token"
|
|
498
509
|
)
|
deepeval/tracing/patchers.py
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
from openai import OpenAI
|
|
2
1
|
import functools
|
|
3
2
|
|
|
3
|
+
from anthropic import Anthropic
|
|
4
|
+
from openai import OpenAI
|
|
5
|
+
|
|
4
6
|
from deepeval.tracing.context import update_current_span, update_llm_span
|
|
5
7
|
from deepeval.tracing.context import current_span_context
|
|
6
8
|
from deepeval.tracing.types import LlmSpan
|
|
@@ -82,3 +84,102 @@ def patch_openai_client(client: OpenAI):
|
|
|
82
84
|
return response
|
|
83
85
|
|
|
84
86
|
setattr(current_obj, method_name, wrapped_method)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def patch_anthropic_client(client: Anthropic):
|
|
90
|
+
"""
|
|
91
|
+
Patch an Anthropic client instance to add tracing capabilities.
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
client: An instance of Anthropic client to patch
|
|
95
|
+
"""
|
|
96
|
+
original_methods = {}
|
|
97
|
+
|
|
98
|
+
methods_to_patch = [
|
|
99
|
+
"messages.create",
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
for method_path in methods_to_patch:
|
|
103
|
+
parts = method_path.split(".")
|
|
104
|
+
current_obj = client
|
|
105
|
+
|
|
106
|
+
for part in parts[:-1]:
|
|
107
|
+
if not hasattr(current_obj, part):
|
|
108
|
+
print(f"Warning: Cannot find {part} in the path {method_path}")
|
|
109
|
+
continue
|
|
110
|
+
current_obj = getattr(current_obj, part)
|
|
111
|
+
|
|
112
|
+
method_name = parts[-1]
|
|
113
|
+
if not hasattr(current_obj, method_name):
|
|
114
|
+
print(
|
|
115
|
+
f"Warning: Cannot find method {method_name} in the path {method_path}"
|
|
116
|
+
)
|
|
117
|
+
continue
|
|
118
|
+
|
|
119
|
+
method = getattr(current_obj, method_name)
|
|
120
|
+
|
|
121
|
+
if callable(method) and not isinstance(method, type):
|
|
122
|
+
original_methods[method_path] = method
|
|
123
|
+
|
|
124
|
+
@functools.wraps(method)
|
|
125
|
+
def wrapped_method(*args, original_method=method, **kwargs):
|
|
126
|
+
current_span = current_span_context.get()
|
|
127
|
+
response = original_method(*args, **kwargs)
|
|
128
|
+
|
|
129
|
+
if isinstance(current_span, LlmSpan):
|
|
130
|
+
model = kwargs.get("model", None)
|
|
131
|
+
if model is None:
|
|
132
|
+
raise ValueError("model not found in client")
|
|
133
|
+
|
|
134
|
+
current_span.model = model
|
|
135
|
+
|
|
136
|
+
output = None
|
|
137
|
+
try:
|
|
138
|
+
if (
|
|
139
|
+
hasattr(response, "content")
|
|
140
|
+
and response.content
|
|
141
|
+
and len(response.content) > 0
|
|
142
|
+
):
|
|
143
|
+
for block in response.content:
|
|
144
|
+
if hasattr(block, "text"):
|
|
145
|
+
output = block.text
|
|
146
|
+
break
|
|
147
|
+
except Exception:
|
|
148
|
+
pass
|
|
149
|
+
|
|
150
|
+
input_token_count = None
|
|
151
|
+
output_token_count = None
|
|
152
|
+
try:
|
|
153
|
+
if hasattr(response, "usage"):
|
|
154
|
+
usage = response.usage
|
|
155
|
+
# usage can be a dict or an object with attributes
|
|
156
|
+
if isinstance(usage, dict):
|
|
157
|
+
input_token_count = usage.get(
|
|
158
|
+
"input_tokens", None
|
|
159
|
+
)
|
|
160
|
+
output_token_count = usage.get(
|
|
161
|
+
"output_tokens", None
|
|
162
|
+
)
|
|
163
|
+
else:
|
|
164
|
+
input_token_count = getattr(
|
|
165
|
+
usage, "input_tokens", None
|
|
166
|
+
)
|
|
167
|
+
output_token_count = getattr(
|
|
168
|
+
usage, "output_tokens", None
|
|
169
|
+
)
|
|
170
|
+
except Exception:
|
|
171
|
+
pass
|
|
172
|
+
|
|
173
|
+
update_current_span(
|
|
174
|
+
input=kwargs.get("messages", "INPUT_MESSAGE_NOT_FOUND"),
|
|
175
|
+
output=output if output else "OUTPUT_MESSAGE_NOT_FOUND",
|
|
176
|
+
)
|
|
177
|
+
update_llm_span(
|
|
178
|
+
input_token_count=input_token_count,
|
|
179
|
+
output_token_count=output_token_count,
|
|
180
|
+
)
|
|
181
|
+
return response
|
|
182
|
+
|
|
183
|
+
setattr(current_obj, method_name, wrapped_method)
|
|
184
|
+
|
|
185
|
+
return original_methods
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
from typing import Optional, List, Dict, Any
|
|
2
1
|
from contextvars import ContextVar
|
|
3
2
|
from contextlib import contextmanager
|
|
4
3
|
from dataclasses import dataclass
|
|
4
|
+
from typing import Optional, List, Dict, Any
|
|
5
5
|
|
|
6
|
-
from .tracing import trace_manager
|
|
7
|
-
from .context import current_trace_context, update_current_trace
|
|
8
|
-
from deepeval.prompt import Prompt
|
|
9
6
|
from deepeval.metrics import BaseMetric
|
|
7
|
+
from deepeval.prompt import Prompt
|
|
10
8
|
from deepeval.test_case.llm_test_case import ToolCall
|
|
9
|
+
from deepeval.tracing.context import current_trace_context, update_current_trace
|
|
10
|
+
from deepeval.tracing.tracing import trace_manager
|
|
11
|
+
from deepeval.tracing.types import TraceWorkerStatus
|
|
12
|
+
from deepeval.tracing.utils import is_async_context
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
@dataclass
|
|
@@ -59,6 +61,13 @@ def trace(
|
|
|
59
61
|
metrics: Optional[List[BaseMetric]] = None,
|
|
60
62
|
metric_collection: Optional[str] = None,
|
|
61
63
|
):
|
|
64
|
+
if is_async_context():
|
|
65
|
+
trace_manager._print_trace_status(
|
|
66
|
+
message="Warning: Detected use of the synchronous 'trace' context manager within an async method",
|
|
67
|
+
trace_worker_status=TraceWorkerStatus.WARNING,
|
|
68
|
+
description="Wrapping an async method with the synchronous 'trace' context manager may lead to unexpected behavior.",
|
|
69
|
+
)
|
|
70
|
+
|
|
62
71
|
current_trace = current_trace_context.get()
|
|
63
72
|
|
|
64
73
|
if not current_trace:
|
deepeval/tracing/tracing.py
CHANGED
|
@@ -19,6 +19,7 @@ import random
|
|
|
19
19
|
import atexit
|
|
20
20
|
import queue
|
|
21
21
|
import uuid
|
|
22
|
+
from anthropic import Anthropic
|
|
22
23
|
from openai import OpenAI
|
|
23
24
|
from rich.console import Console
|
|
24
25
|
from rich.progress import Progress
|
|
@@ -38,7 +39,10 @@ from deepeval.tracing.api import (
|
|
|
38
39
|
TraceSpanApiStatus,
|
|
39
40
|
)
|
|
40
41
|
from deepeval.telemetry import capture_send_trace
|
|
41
|
-
from deepeval.tracing.patchers import
|
|
42
|
+
from deepeval.tracing.patchers import (
|
|
43
|
+
patch_anthropic_client,
|
|
44
|
+
patch_openai_client,
|
|
45
|
+
)
|
|
42
46
|
from deepeval.tracing.types import (
|
|
43
47
|
AgentSpan,
|
|
44
48
|
BaseSpan,
|
|
@@ -111,6 +115,7 @@ class TraceManager:
|
|
|
111
115
|
|
|
112
116
|
self.sampling_rate = settings.CONFIDENT_TRACE_SAMPLE_RATE
|
|
113
117
|
validate_sampling_rate(self.sampling_rate)
|
|
118
|
+
self.anthropic_client = None
|
|
114
119
|
self.openai_client = None
|
|
115
120
|
self.tracing_enabled = True
|
|
116
121
|
|
|
@@ -149,6 +154,7 @@ class TraceManager:
|
|
|
149
154
|
environment: Optional[str] = None,
|
|
150
155
|
sampling_rate: Optional[float] = None,
|
|
151
156
|
confident_api_key: Optional[str] = None,
|
|
157
|
+
anthropic_client: Optional[Anthropic] = None,
|
|
152
158
|
openai_client: Optional[OpenAI] = None,
|
|
153
159
|
tracing_enabled: Optional[bool] = None,
|
|
154
160
|
) -> None:
|
|
@@ -165,6 +171,9 @@ class TraceManager:
|
|
|
165
171
|
if openai_client is not None:
|
|
166
172
|
self.openai_client = openai_client
|
|
167
173
|
patch_openai_client(openai_client)
|
|
174
|
+
if anthropic_client is not None:
|
|
175
|
+
self.anthropic_client = anthropic_client
|
|
176
|
+
patch_anthropic_client(anthropic_client)
|
|
168
177
|
if tracing_enabled is not None:
|
|
169
178
|
self.tracing_enabled = tracing_enabled
|
|
170
179
|
|
deepeval/tracing/types.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from enum import Enum
|
|
2
2
|
from dataclasses import dataclass, field
|
|
3
|
-
from pydantic import BaseModel, Field
|
|
3
|
+
from pydantic import BaseModel, Field, ConfigDict
|
|
4
4
|
from typing import Any, Dict, List, Optional, Union, Literal
|
|
5
5
|
from rich.progress import Progress
|
|
6
6
|
|
|
7
|
+
from deepeval.utils import make_model_config
|
|
8
|
+
|
|
7
9
|
from deepeval.prompt.prompt import Prompt
|
|
8
10
|
from deepeval.test_case.llm_test_case import ToolCall
|
|
9
11
|
from deepeval.test_case import LLMTestCase
|
|
@@ -55,6 +57,8 @@ class LlmOutput(BaseModel):
|
|
|
55
57
|
|
|
56
58
|
|
|
57
59
|
class BaseSpan(BaseModel):
|
|
60
|
+
model_config = make_model_config(arbitrary_types_allowed=True)
|
|
61
|
+
|
|
58
62
|
uuid: str
|
|
59
63
|
status: TraceSpanStatus
|
|
60
64
|
children: List["BaseSpan"] = Field(default_factory=list)
|
|
@@ -90,9 +94,6 @@ class BaseSpan(BaseModel):
|
|
|
90
94
|
None, serialization_alias="expectedTools"
|
|
91
95
|
)
|
|
92
96
|
|
|
93
|
-
class Config:
|
|
94
|
-
arbitrary_types_allowed = True
|
|
95
|
-
|
|
96
97
|
|
|
97
98
|
class AgentSpan(BaseSpan):
|
|
98
99
|
name: str
|
|
@@ -125,7 +126,7 @@ class LlmSpan(BaseSpan):
|
|
|
125
126
|
# output_metadata: Optional[Dict[str, Any]] = Field(None, serialization_alias="outputMetadata")
|
|
126
127
|
|
|
127
128
|
# for serializing `prompt`
|
|
128
|
-
model_config =
|
|
129
|
+
model_config = make_model_config(arbitrary_types_allowed=True)
|
|
129
130
|
|
|
130
131
|
|
|
131
132
|
class RetrieverSpan(BaseSpan):
|
|
@@ -140,6 +141,8 @@ class ToolSpan(BaseSpan):
|
|
|
140
141
|
|
|
141
142
|
|
|
142
143
|
class Trace(BaseModel):
|
|
144
|
+
model_config = make_model_config(arbitrary_types_allowed=True)
|
|
145
|
+
|
|
143
146
|
uuid: str = Field(serialization_alias="uuid")
|
|
144
147
|
status: TraceSpanStatus
|
|
145
148
|
root_spans: List[BaseSpan] = Field(serialization_alias="rootSpans")
|
|
@@ -174,9 +177,6 @@ class Trace(BaseModel):
|
|
|
174
177
|
None, serialization_alias="expectedTools"
|
|
175
178
|
)
|
|
176
179
|
|
|
177
|
-
class Config:
|
|
178
|
-
arbitrary_types_allowed = True
|
|
179
|
-
|
|
180
180
|
|
|
181
181
|
class TraceAttributes(BaseModel):
|
|
182
182
|
name: Optional[str] = None
|
deepeval/tracing/utils.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import os
|
|
2
3
|
from typing import Dict, Any
|
|
3
4
|
from datetime import datetime, timezone
|
|
@@ -191,3 +192,11 @@ def prepare_tool_call_input_parameters(output: Any) -> Dict[str, Any]:
|
|
|
191
192
|
if res and not isinstance(res, dict):
|
|
192
193
|
res = {"output": res}
|
|
193
194
|
return res
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
def is_async_context() -> bool:
|
|
198
|
+
try:
|
|
199
|
+
asyncio.get_running_loop()
|
|
200
|
+
return True
|
|
201
|
+
except RuntimeError:
|
|
202
|
+
return False
|
deepeval/utils.py
CHANGED
|
@@ -21,7 +21,6 @@ from pydantic import BaseModel
|
|
|
21
21
|
from rich.progress import Progress
|
|
22
22
|
from rich.console import Console, Theme
|
|
23
23
|
|
|
24
|
-
from deepeval.confident.api import set_confident_api_key
|
|
25
24
|
from deepeval.config.settings import get_settings
|
|
26
25
|
from deepeval.config.utils import (
|
|
27
26
|
get_env_bool,
|
|
@@ -29,6 +28,48 @@ from deepeval.config.utils import (
|
|
|
29
28
|
)
|
|
30
29
|
|
|
31
30
|
|
|
31
|
+
#####################
|
|
32
|
+
# Pydantic Compat #
|
|
33
|
+
#####################
|
|
34
|
+
|
|
35
|
+
import pydantic
|
|
36
|
+
|
|
37
|
+
PYDANTIC_V2 = pydantic.VERSION.startswith("2")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def make_model_config(**kwargs):
|
|
41
|
+
"""
|
|
42
|
+
Create a model configuration that works with both Pydantic v1 and v2.
|
|
43
|
+
|
|
44
|
+
Usage in a model (Pydantic v2 style):
|
|
45
|
+
class MyModel(BaseModel):
|
|
46
|
+
model_config = make_model_config(arbitrary_types_allowed=True)
|
|
47
|
+
field: str
|
|
48
|
+
|
|
49
|
+
This will work correctly in both v1 and v2:
|
|
50
|
+
- In v2: Returns ConfigDict(**kwargs)
|
|
51
|
+
- In v1: Returns a Config class with the attributes set
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
**kwargs: Configuration options (e.g., use_enum_values=True, arbitrary_types_allowed=True)
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
ConfigDict (v2) or Config class (v1)
|
|
58
|
+
"""
|
|
59
|
+
if PYDANTIC_V2:
|
|
60
|
+
from pydantic import ConfigDict
|
|
61
|
+
|
|
62
|
+
return ConfigDict(**kwargs)
|
|
63
|
+
else:
|
|
64
|
+
# For Pydantic v1, create an inner Config class
|
|
65
|
+
class Config:
|
|
66
|
+
pass
|
|
67
|
+
|
|
68
|
+
for key, value in kwargs.items():
|
|
69
|
+
setattr(Config, key, value)
|
|
70
|
+
return Config
|
|
71
|
+
|
|
72
|
+
|
|
32
73
|
###############
|
|
33
74
|
# Local Types #
|
|
34
75
|
###############
|
|
@@ -232,6 +273,7 @@ def login(api_key: str):
|
|
|
232
273
|
raise ValueError("Unable to login, please provide a non-empty api key.")
|
|
233
274
|
|
|
234
275
|
from rich import print
|
|
276
|
+
from deepeval.confident.api import set_confident_api_key
|
|
235
277
|
|
|
236
278
|
set_confident_api_key(api_key)
|
|
237
279
|
print(
|
|
@@ -751,7 +793,7 @@ custom_console = Console(theme=my_theme)
|
|
|
751
793
|
|
|
752
794
|
|
|
753
795
|
def format_error_text(
|
|
754
|
-
exc: BaseException, *, with_stack: bool
|
|
796
|
+
exc: BaseException, *, with_stack: Optional[bool] = None
|
|
755
797
|
) -> str:
|
|
756
798
|
if with_stack is None:
|
|
757
799
|
with_stack = logging.getLogger("deepeval").isEnabledFor(logging.DEBUG)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: deepeval
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.7.0
|
|
4
4
|
Summary: The LLM Evaluation Framework
|
|
5
5
|
Home-page: https://github.com/confident-ai/deepeval
|
|
6
6
|
License: Apache-2.0
|
|
@@ -25,7 +25,7 @@ Requires-Dist: opentelemetry-api (>=1.24.0,<2.0.0)
|
|
|
25
25
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (>=1.24.0,<2.0.0)
|
|
26
26
|
Requires-Dist: opentelemetry-sdk (>=1.24.0,<2.0.0)
|
|
27
27
|
Requires-Dist: portalocker
|
|
28
|
-
Requires-Dist: posthog (>=
|
|
28
|
+
Requires-Dist: posthog (>=5.4.0,<6.0.0)
|
|
29
29
|
Requires-Dist: pydantic (>=2.11.7,<3.0.0)
|
|
30
30
|
Requires-Dist: pydantic-settings (>=2.10.1,<3.0.0)
|
|
31
31
|
Requires-Dist: pyfiglet
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
deepeval/__init__.py,sha256=IqShG98ALpA1gm_qL2Jq56AJoafAHpcUTSvpgH4HpZM,3062
|
|
2
|
-
deepeval/_version.py,sha256=
|
|
2
|
+
deepeval/_version.py,sha256=bPhKx4EQ2NERTgvbEyhCN4T_xM09gnHtx-cpi5u28n4,27
|
|
3
3
|
deepeval/annotation/__init__.py,sha256=ZFhUVNNuH_YgQSZJ-m5E9iUb9TkAkEV33a6ouMDZ8EI,111
|
|
4
4
|
deepeval/annotation/annotation.py,sha256=3j3-syeJepAcEj3u3e4T_BeRDzNr7yXGDIoNQGMKpwQ,2298
|
|
5
5
|
deepeval/annotation/api.py,sha256=EYN33ACVzVxsFleRYm60KB4Exvff3rPJKt1VBuuX970,2147
|
|
6
|
+
deepeval/anthropic/__init__.py,sha256=D-ZcS8ifsHftChpoZaiCTCBr5oh7jHAP0SrufJx6rCU,595
|
|
7
|
+
deepeval/anthropic/extractors.py,sha256=BKw8oVoyE3vxjO9IlZ2AeJ_CSM7viaCTFOqgu-4Vqik,2892
|
|
8
|
+
deepeval/anthropic/patch.py,sha256=rt7cfM_-tO2hUqviCjbg6TzM-T0nSF-MHwdyXoWfrfU,5184
|
|
9
|
+
deepeval/anthropic/utils.py,sha256=3utMDJx1qUniRg1ciD_109A3Utp2wnkRHLZPDmBt9kM,8460
|
|
6
10
|
deepeval/benchmarks/__init__.py,sha256=pLVwayKpbS0atJ_fIx2GRV9O5Z9ahLgInqydQvMDfvg,901
|
|
7
11
|
deepeval/benchmarks/arc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
12
|
deepeval/benchmarks/arc/arc.py,sha256=GOp6I9PhmHIj4eoximHzLHm4O3Af1YihjAaHDhlWXfc,6317
|
|
@@ -77,7 +81,7 @@ deepeval/benchmarks/bool_q/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
77
81
|
deepeval/benchmarks/bool_q/bool_q.py,sha256=wJM4-wSybT8EwgDJVB4p3QYXGNzLD3tdrpGE1cNEz_E,5507
|
|
78
82
|
deepeval/benchmarks/bool_q/template.py,sha256=pgNj4RR6-4VJDDySwnKt-MpghBCjVlZ7fPKY6PltllQ,4055
|
|
79
83
|
deepeval/benchmarks/drop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
-
deepeval/benchmarks/drop/drop.py,sha256=
|
|
84
|
+
deepeval/benchmarks/drop/drop.py,sha256=IL-6L9lfavclKYYVlmJji8dxGqeN2-oSpYGo6szE_DM,13341
|
|
81
85
|
deepeval/benchmarks/drop/task.py,sha256=RV7DEXF192IOsY-yIVdlGb_y-A_sS5APPn8PGOPn5yU,17950
|
|
82
86
|
deepeval/benchmarks/drop/template.py,sha256=1P0mx_71Bxr9juIA8nGpVRIrP8NSoDILkIicjWvqE94,1376
|
|
83
87
|
deepeval/benchmarks/equity_med_qa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -96,7 +100,7 @@ deepeval/benchmarks/human_eval/human_eval.py,sha256=cx4x5OAeCrTjuUdQI7gjeSY_pUL3
|
|
|
96
100
|
deepeval/benchmarks/human_eval/task.py,sha256=lEHJpEiRbw5cXUKA_id0J5gQwae1G1T1JCJAeeTpXGg,5412
|
|
97
101
|
deepeval/benchmarks/human_eval/template.py,sha256=rcCHSb0wP_FS9DQPaoBn-iwgicI1OyEdFCkZLQ1vxPk,647
|
|
98
102
|
deepeval/benchmarks/ifeval/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
99
|
-
deepeval/benchmarks/ifeval/ifeval.py,sha256=
|
|
103
|
+
deepeval/benchmarks/ifeval/ifeval.py,sha256=xz_23g_cSJrKXxtQYTXScAXZtGiqy5vjuINWhmopb1g,22286
|
|
100
104
|
deepeval/benchmarks/ifeval/template.py,sha256=lt_TNYlfcAm7JTmWvbqdmay62Qq_RFtj0ugIChqwVnU,5023
|
|
101
105
|
deepeval/benchmarks/lambada/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
106
|
deepeval/benchmarks/lambada/lambada.py,sha256=FExZLpDBgQfYe9o-MBS0LEy0-i4jHGeFHo8XCbMW_io,5556
|
|
@@ -139,11 +143,11 @@ deepeval/cli/types.py,sha256=_7KdthstHNc-JKCWrfpDQCf_j8h9PMxh0qJCHmVXJr0,310
|
|
|
139
143
|
deepeval/cli/utils.py,sha256=F4-yuONzk4ojDoSLjI9RYERB7HOD412iZ2lNlSCq4wk,5601
|
|
140
144
|
deepeval/confident/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
141
145
|
deepeval/confident/api.py,sha256=V3TaJzbc7SEf9ZZCKyiSbK7rI6hzv2D7ojD54aVrvq4,8564
|
|
142
|
-
deepeval/confident/types.py,sha256
|
|
146
|
+
deepeval/confident/types.py,sha256=9bgePDaU31yY7JGwCLZcc7pev9VGtNDZLbjsVpCLVdc,574
|
|
143
147
|
deepeval/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
144
148
|
deepeval/config/logging.py,sha256=ivqmhOSB-oHOOU3MvnhImrZwkkxzxKJgoKxesnWfHjg,1314
|
|
145
|
-
deepeval/config/settings.py,sha256=
|
|
146
|
-
deepeval/config/settings_manager.py,sha256=
|
|
149
|
+
deepeval/config/settings.py,sha256=k--thAcgGcDu8hBgQGcNk9Rfh7jUejcZnvQpBC3ScWI,36435
|
|
150
|
+
deepeval/config/settings_manager.py,sha256=Ynebm2BKDrzajc6DEq2eYIwyRAAtUQOkTnl46albxLk,4187
|
|
147
151
|
deepeval/config/utils.py,sha256=bWeXj3fhGnLHIr_GuYaTp30x_PUOSAWJeS3lbZ4i3R8,3972
|
|
148
152
|
deepeval/constants.py,sha256=J5rNXGsMKTFYJ_9Wi49qchZXuUityZjnvuy3I3TO5zk,1667
|
|
149
153
|
deepeval/contextvars.py,sha256=oqXtuYiKd4Zvc1rNoR1gcRBxzZYCGTMVn7XostwvkRI,524
|
|
@@ -165,7 +169,7 @@ deepeval/evaluate/types.py,sha256=6w-0v8Rh10-qceP4iWe0yMTlee4J3immWAuqDS8LF2o,93
|
|
|
165
169
|
deepeval/evaluate/utils.py,sha256=RRU6TOeRBq8jTfR1rgikybsMu4t8UZiDj2yqNQLhp8w,20631
|
|
166
170
|
deepeval/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
171
|
deepeval/integrations/crewai/__init__.py,sha256=Uu7-MNV6uXnDoXlZJzt69Y73thJXlMM4xfQdv3mrlHw,227
|
|
168
|
-
deepeval/integrations/crewai/handler.py,sha256=
|
|
172
|
+
deepeval/integrations/crewai/handler.py,sha256=SbwosamuRQXOSmKPKKV7MMQ9vn-sDFiufCIHw-xxYKk,7882
|
|
169
173
|
deepeval/integrations/crewai/subs.py,sha256=UP6aY8Nrl_lHDwxG84aRMNjxzP-X2QWTtOu9DgXMabM,1477
|
|
170
174
|
deepeval/integrations/crewai/tool.py,sha256=6Uw3XuJO0STDq3YAL6bp_xh5ZJcza0L4kkuotFYj79s,2558
|
|
171
175
|
deepeval/integrations/crewai/wrapper.py,sha256=r4szLNUz1O7U9eMps7czMbHyIEEQ4lfPdBb417gYPfc,3726
|
|
@@ -175,19 +179,19 @@ deepeval/integrations/hugging_face/rich_manager.py,sha256=WvFtPGpPmGeg2Ftsnojga6
|
|
|
175
179
|
deepeval/integrations/hugging_face/tests/test_callbacks.py,sha256=88Wyg-aDaXujj9jHeGdFF3ITSl2-y7eaJGWgSyvvDi8,4607
|
|
176
180
|
deepeval/integrations/hugging_face/utils.py,sha256=HUKdQcTIb76Ct69AS737oPxmlVxk5fw2UbT2pLn-o8k,1817
|
|
177
181
|
deepeval/integrations/langchain/__init__.py,sha256=G1Qey5WkKou2-PA34KwWgmayQ_TbvXqPyotTbzmD8tw,84
|
|
178
|
-
deepeval/integrations/langchain/callback.py,sha256=
|
|
182
|
+
deepeval/integrations/langchain/callback.py,sha256=kN2AHdtvCL3XlmQTnwUQ8YEfklrpGciNGhqBpleoKQc,11938
|
|
179
183
|
deepeval/integrations/langchain/patch.py,sha256=fCHfZXU9xX3IJ6SG8GEYzn3qrifyUkT0i_uUABTsmcs,1255
|
|
180
184
|
deepeval/integrations/langchain/utils.py,sha256=6kuVsuepjPxj1sdlq1QgBeGhMByyXuNmb_FFflLVMhc,10070
|
|
181
185
|
deepeval/integrations/llama_index/__init__.py,sha256=Ujs9ZBJFkuCWUDBJOF88UbM1Y-S6QFQhxSo0oQnEWNw,90
|
|
182
|
-
deepeval/integrations/llama_index/handler.py,sha256=
|
|
183
|
-
deepeval/integrations/llama_index/utils.py,sha256=
|
|
186
|
+
deepeval/integrations/llama_index/handler.py,sha256=uTvNXmAF4xBh8t9bBm5sBFX6ETp8SrkOZlFlE_GWdmM,10771
|
|
187
|
+
deepeval/integrations/llama_index/utils.py,sha256=onmmo1vpn6cpOY5EhfTc0Uui7X6l1M0HD3sq-KVAesg,3380
|
|
184
188
|
deepeval/integrations/pydantic_ai/__init__.py,sha256=UIkXn_g6h9LTQXG1PaWu1eCFkCssIwG48WSvN46UWgU,202
|
|
185
189
|
deepeval/integrations/pydantic_ai/agent.py,sha256=4wRV25O1tC-txH2j3TNJWry6gDNBqqThj7zgFKBxJpw,606
|
|
186
190
|
deepeval/integrations/pydantic_ai/instrumentator.py,sha256=BJJkavaQkGelIFLAGeZFnvT1DFi5DGeos6H9AkzIl3I,10886
|
|
187
191
|
deepeval/integrations/pydantic_ai/otel.py,sha256=0OuIpmaMtEt1dFWFZtYAiZ9hVCWweEWr1TRHYcDb4I8,1918
|
|
188
192
|
deepeval/integrations/pydantic_ai/test_instrumentator.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
189
193
|
deepeval/key_handler.py,sha256=damdQEBLGy4IVk5DR5-E3blIZdLbcMtyeGAFn_4_SG4,6505
|
|
190
|
-
deepeval/metrics/__init__.py,sha256=
|
|
194
|
+
deepeval/metrics/__init__.py,sha256=q0yC5KkwZ9p1Mzl2VRdCZ4St3SKYaXUv3KbWe0aI494,4733
|
|
191
195
|
deepeval/metrics/answer_relevancy/__init__.py,sha256=WbZUpoSg2GQoqJ4VIRirVVQ1JDx5xwT-RskwqNKfWGM,46
|
|
192
196
|
deepeval/metrics/answer_relevancy/answer_relevancy.py,sha256=bkh7_1YoV3BsGzERujzWg4UDDYkWpI1K1z_7mltTve8,11500
|
|
193
197
|
deepeval/metrics/answer_relevancy/schema.py,sha256=N8wIBh4qwk4-BZOEyPJM-MB2_0dbkqXHv0aCfsIkROo,405
|
|
@@ -238,6 +242,8 @@ deepeval/metrics/dag/nodes.py,sha256=tlVOySeflRHiM5j6vIyIP0hD0dsfySUvHnZrJ1TH5Lw
|
|
|
238
242
|
deepeval/metrics/dag/schema.py,sha256=9C3CCqR1D9cdM_XiElKmen_ihxNECaxO11QC_4B4v8Q,366
|
|
239
243
|
deepeval/metrics/dag/templates.py,sha256=rJjjTeHqOcm9mZKchuuLsjxbuXbqEyowVgpS1h7udT4,2148
|
|
240
244
|
deepeval/metrics/dag/utils.py,sha256=66D88fpjIUdVwZvYV8a1L9TlX1wvbCVuE6Y8BFTbpkE,6069
|
|
245
|
+
deepeval/metrics/exact_match/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
246
|
+
deepeval/metrics/exact_match/exact_match.py,sha256=UjJPvOFeWPeCIRVnH-nvutl2uclSIjv0QB_SAjky2Mw,2866
|
|
241
247
|
deepeval/metrics/faithfulness/__init__.py,sha256=RffAtTOSdtWO1gHVMnPI-imJahf3JENOoJRiNw-Xv4g,43
|
|
242
248
|
deepeval/metrics/faithfulness/faithfulness.py,sha256=1dpbDoSDF0pYlDxuDOHw-HdtlUAA-OnNhtmacKVROhU,13751
|
|
243
249
|
deepeval/metrics/faithfulness/schema.py,sha256=2dU9dwwmqpGJcWvY2webERWIfH_tn02xgLghHkAY_eM,437
|
|
@@ -329,6 +335,8 @@ deepeval/metrics/non_advice/__init__.py,sha256=GP55jVADpkODABIjzK0JX1MKpFNZ0bM7Q
|
|
|
329
335
|
deepeval/metrics/non_advice/non_advice.py,sha256=9YrZEcYhaMBA49w1_Lyk7V1JY5t_DjmV2BBJtx6_9MY,11815
|
|
330
336
|
deepeval/metrics/non_advice/schema.py,sha256=bODTV8jfjIYTwnYRHz32p47tqdXkTRqLXj_s5ZUxYAQ,299
|
|
331
337
|
deepeval/metrics/non_advice/template.py,sha256=KiRoU_Re3JFHylKZ1O8hztZ3yEQf3vW_HWwHxQjDb6o,2864
|
|
338
|
+
deepeval/metrics/pattern_match/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
339
|
+
deepeval/metrics/pattern_match/pattern_match.py,sha256=_33G3dY1wfyIgG4weYAy2NiNvJBgmkHWK-iUeR_p5M8,3173
|
|
332
340
|
deepeval/metrics/pii_leakage/__init__.py,sha256=tBc9OGp4gmgoYz6FA3ipr48fpsCMvq6WtlwOjMqhCD0,42
|
|
333
341
|
deepeval/metrics/pii_leakage/pii_leakage.py,sha256=s-NAj1Lb0MiXIuQz0lxM120enSdMCVG_ktbR65d9-6U,11418
|
|
334
342
|
deepeval/metrics/pii_leakage/schema.py,sha256=Jk9jdf4HAa76J237mnosWOCV71pBBNdLfaVhf-4dKEg,313
|
|
@@ -364,7 +372,7 @@ deepeval/metrics/summarization/summarization.py,sha256=rYghwnMED-JqM9eQ6GDXmnn0h
|
|
|
364
372
|
deepeval/metrics/summarization/template.py,sha256=ItMcwgxgMIgHEIc1FoSsCtgPbhMY48ZzD7kfq7et6KY,5465
|
|
365
373
|
deepeval/metrics/task_completion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
366
374
|
deepeval/metrics/task_completion/schema.py,sha256=JfnZkbCh7skWvrESy65GEo6Rvo0FDJUqP6H1uyBCks4,241
|
|
367
|
-
deepeval/metrics/task_completion/task_completion.py,sha256=
|
|
375
|
+
deepeval/metrics/task_completion/task_completion.py,sha256=fJJSPg8GRsrySEbXmOU6Y3FxeETMPTY62xFDe-uasjk,9375
|
|
368
376
|
deepeval/metrics/task_completion/template.py,sha256=4xjTBcGrPQxInbf8iwJOZyok9SQex1aCkbxKmfkXoA4,10437
|
|
369
377
|
deepeval/metrics/tool_correctness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
370
378
|
deepeval/metrics/tool_correctness/schema.py,sha256=N0fmpYfCZm0AHSUg9UZkYYpYohDyJLSBETH9oSp9Z1g,103
|
|
@@ -387,10 +395,13 @@ deepeval/metrics/turn_relevancy/schema.py,sha256=om0zFJcM6qu2GWS9aJTP3lUmuEXX8Kp
|
|
|
387
395
|
deepeval/metrics/turn_relevancy/template.py,sha256=klZ10QI8jo4ekf-KgcWgRxS9E3AK4vgKDNzjwAYGl48,2797
|
|
388
396
|
deepeval/metrics/turn_relevancy/turn_relevancy.py,sha256=cgMt0toBIwzDc8lE8Q3YztzQA_DqR4GfdDrlyX7ya6w,10385
|
|
389
397
|
deepeval/metrics/utils.py,sha256=6WWbaRToILdzuy2F1PvT6FdOTF4TVZuz_3JttEPDv5c,18752
|
|
398
|
+
deepeval/model_integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
399
|
+
deepeval/model_integrations/types.py,sha256=rbVMhC_2yWwD6JqzkRO9D7aMVC_KtXN686G_S7de7S8,630
|
|
400
|
+
deepeval/model_integrations/utils.py,sha256=Zt9SYPgTxlGsQFZgpZvh_a5fWuL8mmIFVSe6uoQywZ4,3562
|
|
390
401
|
deepeval/models/__init__.py,sha256=0x4EsoqtSf7sLOg28DoOoInL_D5fKPWCakkE2gJa2pM,1195
|
|
391
402
|
deepeval/models/_summac_model.py,sha256=xflanxl_IBuzuainlYCVX7UvjHCnAckKSvNR2NwZI6k,19750
|
|
392
403
|
deepeval/models/answer_relevancy_model.py,sha256=SLOA6uUImNOuxpPGfTg2AH7MIkf9QsotYixvI1jcVC8,2197
|
|
393
|
-
deepeval/models/base_model.py,sha256=
|
|
404
|
+
deepeval/models/base_model.py,sha256=owmHhVBppPe5Zt6GK9p87dE31hoqtn5_8F9TWr97aRE,4112
|
|
394
405
|
deepeval/models/detoxify_model.py,sha256=UY67y-3aL_ojY06aZEhD_dW9TEaV5LJ_GVDyP0_2fyQ,991
|
|
395
406
|
deepeval/models/embedding_models/__init__.py,sha256=5nsvahw_sZj_8WTInPYyGJEQrxNYBhDf6lkYQMKlgRw,230
|
|
396
407
|
deepeval/models/embedding_models/azure_embedding_model.py,sha256=2tMlRh5k0BJkAesC5zXg3gyNcZ5N_yzN8fBLHXzTVdc,3917
|
|
@@ -419,11 +430,10 @@ deepeval/models/retry_policy.py,sha256=sCluLDM0kshOhGwQzeA80dDXXc2Oc8TXyWMCG1kEU
|
|
|
419
430
|
deepeval/models/summac_model.py,sha256=wKeH7pWQRXrTlzlIw_r1YCb8b7jUhWq6jUz9FiNUCSg,1992
|
|
420
431
|
deepeval/models/unbias_model.py,sha256=umOMhQLTmnD7uOuhiQufEl4Wlti4q2s3EtKOpds7zhs,597
|
|
421
432
|
deepeval/models/utils.py,sha256=-3XDgg1U7PZ0jpLFiYXxqdBhp7idvlo7RPZv5SoD8lc,1130
|
|
422
|
-
deepeval/openai/__init__.py,sha256=
|
|
423
|
-
deepeval/openai/extractors.py,sha256=
|
|
433
|
+
deepeval/openai/__init__.py,sha256=YamU9-x8Ep1hfW6TuLX1nVBfiU7tglNQm84OSkJIP4o,555
|
|
434
|
+
deepeval/openai/extractors.py,sha256=82pB3J4RbRI7qJqjDJNOEeFAK4PjfQUBx7KhsWcD7sg,6018
|
|
424
435
|
deepeval/openai/patch.py,sha256=yAreqmE3BTK2gih-4Ek6Adsakai85akvhlVvkrBWrz8,9332
|
|
425
|
-
deepeval/openai/
|
|
426
|
-
deepeval/openai/utils.py,sha256=Pw09BhZNmMJgjCJl38WsCR2-ClEgdQGxOnv6OPar3Rs,7565
|
|
436
|
+
deepeval/openai/utils.py,sha256=Hh4_i_ZcdyxIH8X9s4UIPI0fSwIktMk7LKYF7mBMgCY,7024
|
|
427
437
|
deepeval/openai_agents/__init__.py,sha256=F4c6MtsdV7LWj0YamQcMGs4_u5sOYZJXWOQP8kV5xUg,314
|
|
428
438
|
deepeval/openai_agents/agent.py,sha256=_SQdd0JzZK-ZvpP7yPEi22Y7fVk16PC00ROahdDQdCQ,951
|
|
429
439
|
deepeval/openai_agents/callback_handler.py,sha256=4Tt2OAGfYd35C5LBMekxz0SDivYryKGm3lxls1WT7cY,4842
|
|
@@ -434,8 +444,8 @@ deepeval/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
|
434
444
|
deepeval/plugins/plugin.py,sha256=_dwsdx4Dg9DbXxK3f7zJY4QWTJQWc7QE1HmIg2Zjjag,1515
|
|
435
445
|
deepeval/progress_context.py,sha256=ZSKpxrE9sdgt9G3REKnVeXAv7GJXHHVGgLynpG1Pudw,3557
|
|
436
446
|
deepeval/prompt/__init__.py,sha256=rDU99KjydxDRKhuQJCBs_bpDJrWb2mpHtvyv6AEwFC8,367
|
|
437
|
-
deepeval/prompt/api.py,sha256=
|
|
438
|
-
deepeval/prompt/prompt.py,sha256=
|
|
447
|
+
deepeval/prompt/api.py,sha256=JLQFJFKsJSadCnp7vLvapmPoCoVyBbEsXZrxPAolpiA,6329
|
|
448
|
+
deepeval/prompt/prompt.py,sha256=jSycLAgpVYEd9sjiG1E9Wxkqt4qJy_EMk8-tYHABY7A,31147
|
|
439
449
|
deepeval/prompt/utils.py,sha256=knjgPU2066OtYWMb3NqMPChr9zQgKfXo_QTLTtSkmYg,7620
|
|
440
450
|
deepeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
441
451
|
deepeval/red_teaming/README.md,sha256=BY5rAdpp3-sMMToEKwq0Nsd9ivkGDzPE16DeDb8GY7U,154
|
|
@@ -460,23 +470,23 @@ deepeval/synthesizer/templates/template_extraction.py,sha256=NkpzP-MkoefokVJBZn9
|
|
|
460
470
|
deepeval/synthesizer/templates/template_prompt.py,sha256=cqtG3X2DQIs7NaaQeJrNcS4zdwgDn_l8go8ZeVHRdgI,12531
|
|
461
471
|
deepeval/synthesizer/types.py,sha256=wUZntvCAE29sM9K8hk9RPwUpkTip1ObOCExyMEo3sME,493
|
|
462
472
|
deepeval/synthesizer/utils.py,sha256=o-9z5gApQcHqDqusgrD0LagXWAju17LVc27BxtaA7og,1018
|
|
463
|
-
deepeval/telemetry.py,sha256=
|
|
473
|
+
deepeval/telemetry.py,sha256=0k6oVhRBi1Ap6JC6SNe_9-nBnlG-uReUoS3KTrPayhk,21716
|
|
464
474
|
deepeval/test_case/__init__.py,sha256=hLkHxGH0-FFhx4MlJwIbzNHL4pgyLGquh8l0qD-z_cQ,731
|
|
465
475
|
deepeval/test_case/api.py,sha256=aPghn6TFTR6TfsUSoY0WUZgLSnJtWkQuzqm_cKt08mc,4418
|
|
466
476
|
deepeval/test_case/arena_test_case.py,sha256=PcfDxadlc4yW4AEDdvN32AeUpx2Sms1jvnbX31Xu65o,957
|
|
467
477
|
deepeval/test_case/conversational_test_case.py,sha256=lF0V1yCGCInQetggm2wbXx-MkuMRs2ScwqIXCSwb1Fs,7534
|
|
468
|
-
deepeval/test_case/llm_test_case.py,sha256=
|
|
478
|
+
deepeval/test_case/llm_test_case.py,sha256=Ktz0ws43_sVQg6QvRMU40TAozy2J2ZNpRlARZNLVY_4,12317
|
|
469
479
|
deepeval/test_case/mcp.py,sha256=Z625NLvz0E_UJpbyfyuAi_4nsqKH6DByBf0rfKd70xU,1879
|
|
470
480
|
deepeval/test_case/mllm_test_case.py,sha256=8a0YoE72geX_fLI6yk_cObSxCPddwW-DOb-5OPE1-W8,5414
|
|
471
481
|
deepeval/test_case/utils.py,sha256=5lT7QmhItsQHt44-qQfspuktilcrEyvl2cS0cgUJxds,809
|
|
472
482
|
deepeval/test_run/__init__.py,sha256=cwH9sqz821ifdcviZiO3EajsYbh7GaUxA4LFur8g2ms,787
|
|
473
|
-
deepeval/test_run/api.py,sha256=
|
|
474
|
-
deepeval/test_run/cache.py,sha256=
|
|
483
|
+
deepeval/test_run/api.py,sha256=AQApwrodHLJbr3qHJrqfeDOgIGaYOzjHHuCNKAKh--M,5524
|
|
484
|
+
deepeval/test_run/cache.py,sha256=43jx2bBbOnqP_9D2re0OxbYjf0E4O2_UesLuz4TaXpU,12842
|
|
475
485
|
deepeval/test_run/hooks.py,sha256=Qnd06bk9RJN4WmFUzJrBAi3Xj261hzyzI2iRmG8wbKw,375
|
|
476
486
|
deepeval/test_run/hyperparameters.py,sha256=JKuKLilfrzgmkS7UBugsyZeHeb53DreISae6FIfy1mE,3762
|
|
477
|
-
deepeval/test_run/test_run.py,sha256=
|
|
487
|
+
deepeval/test_run/test_run.py,sha256=Mu3G_yUdAjNGKVwolAoTlizLDbsP6pOMSvUbp5eaj74,40789
|
|
478
488
|
deepeval/tracing/__init__.py,sha256=aSOk_ZgL-K7CZzcyiaIa5peAiaPViDST5GhpHA3Adc8,614
|
|
479
|
-
deepeval/tracing/api.py,sha256=
|
|
489
|
+
deepeval/tracing/api.py,sha256=GbtpUDdGpchl6rPXtZT6IBKjAhwux6qOlKLdP3dRVHU,4996
|
|
480
490
|
deepeval/tracing/context.py,sha256=rzm42zYzP7jmQJO08AV-Qmw86ik45qRfF4UQNpGcmJw,5338
|
|
481
491
|
deepeval/tracing/offline_evals/__init__.py,sha256=bEniJAl7PmS9u2ksiOTfHtlCPJ9_CJV5R6umrUOX5MM,102
|
|
482
492
|
deepeval/tracing/offline_evals/api.py,sha256=eBfqh2uWyeRkIeGhjrN1bTQzAEow-XPubs-42WEZ2QQ,510
|
|
@@ -484,19 +494,19 @@ deepeval/tracing/offline_evals/span.py,sha256=pXqTVXs-WnjRVpCYYEbNe0zSM6Wz9GsKHs
|
|
|
484
494
|
deepeval/tracing/offline_evals/thread.py,sha256=bcSGFcZJKnszArOLIlWvnCyt0zSmsd7Xsw5rl4RTVFg,1981
|
|
485
495
|
deepeval/tracing/offline_evals/trace.py,sha256=vTflaTKysKRiYvKA-Nx6PUJ3J6NrRLXiIdWieVcm90E,1868
|
|
486
496
|
deepeval/tracing/otel/__init__.py,sha256=HQsaF5yLPwyW5qg8AOV81_nG_7pFHnatOTHi9Wx3HEk,88
|
|
487
|
-
deepeval/tracing/otel/exporter.py,sha256=
|
|
497
|
+
deepeval/tracing/otel/exporter.py,sha256=Yh6v-NBxqEqS_ht_Xb4fmTuzNXCyCIQ1UOpx6AU0LEw,29042
|
|
488
498
|
deepeval/tracing/otel/test_exporter.py,sha256=bezihPGWJpwUEF3ZghxqhhorocVFTO2b43jRM-JHYMU,1076
|
|
489
499
|
deepeval/tracing/otel/utils.py,sha256=NVMN07JtxuvVPtdyTW7KFdTqQL3TpoCO-JdZeghQJBY,17859
|
|
490
|
-
deepeval/tracing/patchers.py,sha256=
|
|
500
|
+
deepeval/tracing/patchers.py,sha256=c-8Fjc5VIWB5VD9ONKq735ypW6O1pZIFQWsHR3lRh0E,6832
|
|
491
501
|
deepeval/tracing/perf_epoch_bridge.py,sha256=iyAPddB6Op7NpMtPHJ29lDm53Btz9yLaN6xSCfTRQm4,1825
|
|
492
|
-
deepeval/tracing/trace_context.py,sha256=
|
|
502
|
+
deepeval/tracing/trace_context.py,sha256=Z0n0Cu1A5g9dXiZnzTFO5TzeOYHKeNuO6v3_EU_Gi_c,3568
|
|
493
503
|
deepeval/tracing/trace_test_manager.py,sha256=wt4y7EWTRc4Bw938-UFFtXHkdFFOrnx6JaIk7J5Iulw,555
|
|
494
|
-
deepeval/tracing/tracing.py,sha256=
|
|
495
|
-
deepeval/tracing/types.py,sha256=
|
|
496
|
-
deepeval/tracing/utils.py,sha256=
|
|
497
|
-
deepeval/utils.py,sha256=
|
|
498
|
-
deepeval-3.
|
|
499
|
-
deepeval-3.
|
|
500
|
-
deepeval-3.
|
|
501
|
-
deepeval-3.
|
|
502
|
-
deepeval-3.
|
|
504
|
+
deepeval/tracing/tracing.py,sha256=FC9nDWs-7s_e_Le97rEYZz2oZyXZlcbsijc0rUBbLiM,45988
|
|
505
|
+
deepeval/tracing/types.py,sha256=WhnxefUc5I8jcAOBQ-tsZ8_zVZfGqSvCWHD5XUN6Ggw,6040
|
|
506
|
+
deepeval/tracing/utils.py,sha256=mdvhYAxDNsdnusaEXJd-c-_O2Jn6S3xSuzRvLO1Jz4U,5684
|
|
507
|
+
deepeval/utils.py,sha256=22h0mxijAb0NBKQ1cbfyOWuzfKwl_a6mkGfrTxXs6TY,23146
|
|
508
|
+
deepeval-3.7.0.dist-info/LICENSE.md,sha256=0ATkuLv6QgsJTBODUHC5Rak_PArA6gv2t7inJzNTP38,11352
|
|
509
|
+
deepeval-3.7.0.dist-info/METADATA,sha256=-2wsknTbODZydmGcJYHES-jdzdT8dgJWid2z20EuTJk,18754
|
|
510
|
+
deepeval-3.7.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
|
511
|
+
deepeval-3.7.0.dist-info/entry_points.txt,sha256=fVr8UphXTfJe9I2rObmUtfU3gkSrYeM0pLy-NbJYg10,94
|
|
512
|
+
deepeval-3.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|