deepeval 3.5.2__py3-none-any.whl → 3.5.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -967,6 +967,93 @@ def observe(
967
967
  def decorator(func):
968
968
  func_name = func.__name__ # Get func_name outside wrappers
969
969
 
970
+ # Async generator function
971
+ if inspect.isasyncgenfunction(func):
972
+
973
+ @functools.wraps(func)
974
+ def asyncgen_wrapper(*args, **func_kwargs):
975
+
976
+ sig = inspect.signature(func)
977
+ bound = sig.bind(*args, **func_kwargs)
978
+ bound.apply_defaults()
979
+
980
+ complete_kwargs = dict(bound.arguments)
981
+ if "self" in complete_kwargs:
982
+ complete_kwargs["self"] = replace_self_with_class_name(
983
+ complete_kwargs["self"]
984
+ )
985
+ observer_kwargs = {
986
+ "observe_kwargs": observe_kwargs,
987
+ "function_kwargs": complete_kwargs,
988
+ }
989
+
990
+ observer = Observer(
991
+ type,
992
+ metrics=metrics,
993
+ metric_collection=metric_collection,
994
+ func_name=func_name,
995
+ **observer_kwargs,
996
+ )
997
+ observer.__enter__()
998
+ agen = func(*args, **func_kwargs)
999
+
1000
+ async def gen():
1001
+ try:
1002
+ async for chunk in agen:
1003
+ yield chunk
1004
+ observer.__exit__(None, None, None)
1005
+ except Exception as e:
1006
+ observer.__exit__(type(e), e, e.__traceback__)
1007
+ raise
1008
+
1009
+ return gen()
1010
+
1011
+ setattr(asyncgen_wrapper, "_is_deepeval_observed", True)
1012
+ return asyncgen_wrapper
1013
+
1014
+ # Sync generator function
1015
+ if inspect.isgeneratorfunction(func):
1016
+
1017
+ @functools.wraps(func)
1018
+ def gen_wrapper(*args, **func_kwargs):
1019
+
1020
+ sig = inspect.signature(func)
1021
+ bound = sig.bind(*args, **func_kwargs)
1022
+ bound.apply_defaults()
1023
+ complete_kwargs = dict(bound.arguments)
1024
+
1025
+ if "self" in complete_kwargs:
1026
+ complete_kwargs["self"] = replace_self_with_class_name(
1027
+ complete_kwargs["self"]
1028
+ )
1029
+ observer_kwargs = {
1030
+ "observe_kwargs": observe_kwargs,
1031
+ "function_kwargs": make_json_serializable(complete_kwargs),
1032
+ }
1033
+
1034
+ observer = Observer(
1035
+ type,
1036
+ metrics=metrics,
1037
+ metric_collection=metric_collection,
1038
+ func_name=func_name,
1039
+ **observer_kwargs,
1040
+ )
1041
+ observer.__enter__()
1042
+ original_gen = func(*args, **func_kwargs)
1043
+
1044
+ def gen():
1045
+ try:
1046
+ yield from original_gen
1047
+ observer.__exit__(None, None, None)
1048
+ except Exception as e:
1049
+ observer.__exit__(type(e), e, e.__traceback__)
1050
+ raise
1051
+
1052
+ return gen()
1053
+
1054
+ setattr(gen_wrapper, "_is_deepeval_observed", True)
1055
+ return gen_wrapper
1056
+
970
1057
  if asyncio.iscoroutinefunction(func):
971
1058
 
972
1059
  @functools.wraps(func)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepeval
3
- Version: 3.5.2
3
+ Version: 3.5.3
4
4
  Summary: The LLM Evaluation Framework
5
5
  Home-page: https://github.com/confident-ai/deepeval
6
6
  License: Apache-2.0
@@ -1,5 +1,5 @@
1
1
  deepeval/__init__.py,sha256=6fsb813LD_jNhqR-xZnSdE5E-KsBbC3tc4oIg5ZMgTw,2115
2
- deepeval/_version.py,sha256=xrdspux9T8axqghaRzqAZCb9C7a2XybhBmnSkenaUv0,27
2
+ deepeval/_version.py,sha256=FauBIJ2kq1CmkcSxNhoO0BZN8gc3azHQFgdBkDjya18,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
@@ -141,10 +141,10 @@ deepeval/confident/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVG
141
141
  deepeval/confident/api.py,sha256=bOC71TaVAEgoXFtJ9yMo0-atmUUdBuvaclMGczMcR6o,8455
142
142
  deepeval/confident/types.py,sha256=-slFhDof_1maMgpLxqDRZv6kz6ZVY2hP_0uj_aveJKU,533
143
143
  deepeval/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- deepeval/config/settings.py,sha256=e7sk6_3I14hG457e75DoJd9Ojo3rOkpBZzsMYlj4gKQ,18139
144
+ deepeval/config/settings.py,sha256=h-hHrzTItfMkR1ZnMCF6xUeJ3DBwdOgO354QaEH-VaE,20861
145
145
  deepeval/config/settings_manager.py,sha256=PsBS_5dRJASak2AUDwjhjLSiezNz1fje0R3onoFCKC0,4014
146
- deepeval/config/utils.py,sha256=EG2MwGlUEb7bGuZ77jUo7QLoMeqkcK5gl7Wgk-pcS4g,2443
147
- deepeval/constants.py,sha256=XNcTEdhtO4aDnQaHi815A_24iEE9o09Vxnthm7xlfnw,796
146
+ deepeval/config/utils.py,sha256=gSOVv18Tx1R72GucbdQesbZLFL-Y9EzbS4p7qd2w_xE,3799
147
+ deepeval/constants.py,sha256=ZXIA1Hsjy03SvfaIx2hbj_oxHp-gJ-kYIyktnFD1AGg,1337
148
148
  deepeval/dataset/__init__.py,sha256=rcum_VjBXu8eisCdr6sl84BgoZUs3x0tYbB2PnPtHGY,212
149
149
  deepeval/dataset/api.py,sha256=ZxkEqAF4nZH_Ys_1f5r9N2LFI_vBcAJxt8eJm7Mplpw,831
150
150
  deepeval/dataset/dataset.py,sha256=dkUDYtK1z9sDn6A-HOohoHHUobWuaCiuHEABLAfP4kQ,49396
@@ -322,7 +322,7 @@ deepeval/metrics/non_advice/non_advice.py,sha256=DebtVrzAdwvoJ1eWovC6ahjY1qdsxUC
322
322
  deepeval/metrics/non_advice/schema.py,sha256=bODTV8jfjIYTwnYRHz32p47tqdXkTRqLXj_s5ZUxYAQ,299
323
323
  deepeval/metrics/non_advice/template.py,sha256=KiRoU_Re3JFHylKZ1O8hztZ3yEQf3vW_HWwHxQjDb6o,2864
324
324
  deepeval/metrics/pii_leakage/__init__.py,sha256=tBc9OGp4gmgoYz6FA3ipr48fpsCMvq6WtlwOjMqhCD0,42
325
- deepeval/metrics/pii_leakage/pii_leakage.py,sha256=5Bf-85g4eENObCwEj0z1Mf3TPkh-ZlJ7ftLAfqcJ7_0,10838
325
+ deepeval/metrics/pii_leakage/pii_leakage.py,sha256=sZPCjlegbs_djexoOGg5WEiYUgEYZQFPPYlRDk_FRUc,10851
326
326
  deepeval/metrics/pii_leakage/schema.py,sha256=Jk9jdf4HAa76J237mnosWOCV71pBBNdLfaVhf-4dKEg,313
327
327
  deepeval/metrics/pii_leakage/template.py,sha256=DEW21CyR2lEI1y2C_fXgZnGJlYw0fvnB-LF-HEKZnqo,2418
328
328
  deepeval/metrics/prompt_alignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -363,29 +363,29 @@ deepeval/models/answer_relevancy_model.py,sha256=SLOA6uUImNOuxpPGfTg2AH7MIkf9Qso
363
363
  deepeval/models/base_model.py,sha256=P7L7RAix7lxpUhYLMPdnmnkMeWspMuaTeZy175ZtdSk,4033
364
364
  deepeval/models/detoxify_model.py,sha256=UY67y-3aL_ojY06aZEhD_dW9TEaV5LJ_GVDyP0_2fyQ,991
365
365
  deepeval/models/embedding_models/__init__.py,sha256=5nsvahw_sZj_8WTInPYyGJEQrxNYBhDf6lkYQMKlgRw,230
366
- deepeval/models/embedding_models/azure_embedding_model.py,sha256=BvERq8zcHkcsqPjRYJx_BVFT_lPx7eAzpludr4QVSoo,2738
367
- deepeval/models/embedding_models/local_embedding_model.py,sha256=1a_2VkWpfxWDz0W0BiiB9gqQ2yM0V1H0Au31EkhFoFE,2018
368
- deepeval/models/embedding_models/ollama_embedding_model.py,sha256=kmJEVmo6nHdoDgLnKFJEZAoH4Wncg7143OkUGgoJVTk,2047
369
- deepeval/models/embedding_models/openai_embedding_model.py,sha256=n1ER4gb4PGE7J7HICNoHAync9w9VaSl4tiU0d36T6Fs,2249
366
+ deepeval/models/embedding_models/azure_embedding_model.py,sha256=6adG8dTohW4oNOSPnCecMRkkx0LWJXFuhzExesQpI90,3671
367
+ deepeval/models/embedding_models/local_embedding_model.py,sha256=Dm35cvn8hynP5IEXyZVDljIXngr9FAqxXN5TUqlBWl0,3371
368
+ deepeval/models/embedding_models/ollama_embedding_model.py,sha256=w3etdIdWvYfVIEjCZd_Q_VPsLLo64VEFbCtahWpbHAY,2582
369
+ deepeval/models/embedding_models/openai_embedding_model.py,sha256=Z1--e3CnNNmwryqmUMxBCaTURjtgKWHqADuUeCqFlSc,3545
370
370
  deepeval/models/hallucination_model.py,sha256=ABi978VKLE_jNHbDzM96kJ08EsZ5ZlvOlJHA_ptSkfQ,1003
371
371
  deepeval/models/llms/__init__.py,sha256=qmvv7wnmTDvys2uUTwQRo-_3DlFV3fGLiewPeQYRsAI,670
372
- deepeval/models/llms/amazon_bedrock_model.py,sha256=0AxdftPxYs86y2ILbRYhWRP38vP_yZl8E-ZrSLIlrOQ,5373
373
- deepeval/models/llms/anthropic_model.py,sha256=T55-jKRbM3_B3Db9M3ruklm2cVVU1JDGAzicLTCBtgU,5151
374
- deepeval/models/llms/azure_model.py,sha256=MG6sVGUgIy2RURwFWvRP7O_RF6QAg2dpqXIJhIsgY60,10994
375
- deepeval/models/llms/deepseek_model.py,sha256=mz0U0uqazAVr8vv8SF74GRTr4ZEVc3Q1v9o5TVbmz_8,5440
376
- deepeval/models/llms/gemini_model.py,sha256=QXf9mjopfWwJxpm0gbkXo6op_Wtu1GaIt1BfzS3OU8Q,8174
377
- deepeval/models/llms/grok_model.py,sha256=zPBmPnNCRGrtg_709gFv5A4iz7WilTmDpAyOpjXTa_M,5986
378
- deepeval/models/llms/kimi_model.py,sha256=ZcvEwWgnv1dtmbq7LgMQJAjpkjxZr-l5eBi9KGqRbb0,6726
372
+ deepeval/models/llms/amazon_bedrock_model.py,sha256=xaNV7BnqcsH31ghIKBcacKzetORlFRGHtuBlfr8vbnQ,6183
373
+ deepeval/models/llms/anthropic_model.py,sha256=5gYRNkYUD7Zl3U0SibBG2YGCQsD6DdTsaBhqdaJlKIw,6072
374
+ deepeval/models/llms/azure_model.py,sha256=dqINcfoJNqdd9zh5iTPwQ_ToGMOF7iH6YUB-UWRSOlc,10730
375
+ deepeval/models/llms/deepseek_model.py,sha256=EqBJkKa7rXppCmlnIt_D-Z_r9fbsOUsOAVvN2jWA-Hk,6404
376
+ deepeval/models/llms/gemini_model.py,sha256=aGiD-hEgknctlqi7WdRwPNw9w76D6KMdNS-DIGpovLc,8409
377
+ deepeval/models/llms/grok_model.py,sha256=iZPFCmRbrK9yUdADn3oNeA-ysPMaJdnFDqorNP6wkAk,7492
378
+ deepeval/models/llms/kimi_model.py,sha256=ldTefdSVitZYJJQ-_ZsP87iiT5iZ4QCVdfi-YzdSMtU,7691
379
379
  deepeval/models/llms/litellm_model.py,sha256=iu4-_JCpd9LdEa-eCWseD2iLTA-r7OSgYGWQ0IxB4eA,11527
380
- deepeval/models/llms/local_model.py,sha256=PeF6ofMR8jBMTLzkCkgmkBJix9kHbWV5vTKGx8nehFs,3605
381
- deepeval/models/llms/ollama_model.py,sha256=foL6sMza37Z0HH8qPStyIr1g-xEaD6Ce53L2C8Er-P8,3055
382
- deepeval/models/llms/openai_model.py,sha256=84c_g6jegbQwncrqYYaodJqDgj1SIfoSy2p44ghZfR8,17231
380
+ deepeval/models/llms/local_model.py,sha256=hEyKVA6pkQm9dICUKsMNgjVI3w6gnyMdmBt_EylkWDk,4473
381
+ deepeval/models/llms/ollama_model.py,sha256=xPO4d4jMY-cQAyHAcMuFvWS8JMWwCUbKP9CMi838Nuc,3307
382
+ deepeval/models/llms/openai_model.py,sha256=F02N8BgbiEXH7F6y-a6DkjVcBXFEzr87SEB2gVn4xlU,17192
383
383
  deepeval/models/llms/utils.py,sha256=ZMZ02kjXAAleq0bIEyjj-gZwe6Gp0b0mK8YMuid2-20,722
384
384
  deepeval/models/mlllms/__init__.py,sha256=19nN6kUB5XI0nUWUQX0aD9GBUMM8WWGvsDgKjuT4EF4,144
385
- deepeval/models/mlllms/gemini_model.py,sha256=bWJe5x_ayHvxtZffKFcrFWkc4_W-hcLu8ErFjecoF_0,9593
386
- deepeval/models/mlllms/ollama_model.py,sha256=3i79vflDPS1f4R105VMi26SwlZVkyQFCTJT4OJtU5q4,3823
387
- deepeval/models/mlllms/openai_model.py,sha256=q1pe6UfQ39IUFrPSRYyM1h-kz4L5YNkqtzHQsNqAl9M,9786
388
- deepeval/models/retry_policy.py,sha256=AQWACiUfs8ud-etXUMhd0NKxB6NmDlGvHmTcbT6SxS8,9072
385
+ deepeval/models/mlllms/gemini_model.py,sha256=7tHIWD4w_fBz3L7jkKWygn1QpBPk9nl2Kw-yb0Jc3PI,10167
386
+ deepeval/models/mlllms/ollama_model.py,sha256=_YtYtw8oIMVVI-CFsDicsdeEJUPhw_9ArPxB_1olsJA,4798
387
+ deepeval/models/mlllms/openai_model.py,sha256=KgvYgQwWZ1A_Gcl6-4-W7IMqbUF9K8sNY37j5Ag7kQQ,9014
388
+ deepeval/models/retry_policy.py,sha256=U7DjJJcCPei14Ws_7U6-JK8ZZYCGVx9YgMPySYr0HtM,24545
389
389
  deepeval/models/summac_model.py,sha256=wKeH7pWQRXrTlzlIw_r1YCb8b7jUhWq6jUz9FiNUCSg,1992
390
390
  deepeval/models/unbias_model.py,sha256=umOMhQLTmnD7uOuhiQufEl4Wlti4q2s3EtKOpds7zhs,597
391
391
  deepeval/models/utils.py,sha256=-3XDgg1U7PZ0jpLFiYXxqdBhp7idvlo7RPZv5SoD8lc,1130
@@ -456,12 +456,12 @@ deepeval/tracing/otel/exporter.py,sha256=dXQd834zm5rm1ss9pWkBBlk-JSdtiw7aFLso2hM
456
456
  deepeval/tracing/otel/utils.py,sha256=g8yAzhqbPh1fOKCWkfNekC6AVotLfu1SUcfNMo6zii8,9786
457
457
  deepeval/tracing/patchers.py,sha256=DAPNkhrDtoeyJIVeQDUMhTz-xGcXu00eqjQZmov8FiU,3096
458
458
  deepeval/tracing/perf_epoch_bridge.py,sha256=iyAPddB6Op7NpMtPHJ29lDm53Btz9yLaN6xSCfTRQm4,1825
459
- deepeval/tracing/tracing.py,sha256=Ot0wzUHxhaK4wZov8cgai-i6kiyZUvNzj9MyRhbjZUg,39191
459
+ deepeval/tracing/tracing.py,sha256=vOVFdN6fVMW53XhyqTZSfp4vI7DCqRez4TKNhdhr-sg,42277
460
460
  deepeval/tracing/types.py,sha256=l_utWKerNlE5H3mOKpeUJLsvpP3cMyjH7HRANNgTmSQ,5306
461
461
  deepeval/tracing/utils.py,sha256=w_kdhuyBCygllnbqLpDdKJqpJo42t3ZMlGhNicV2A8c,6467
462
462
  deepeval/utils.py,sha256=r8tV_NYJSi6ib-oQw6cLw3L7ZSe4KIJVJc1ng6-kDX4,17179
463
- deepeval-3.5.2.dist-info/LICENSE.md,sha256=0ATkuLv6QgsJTBODUHC5Rak_PArA6gv2t7inJzNTP38,11352
464
- deepeval-3.5.2.dist-info/METADATA,sha256=XcG2jqrQcOL-84Gwj5DM-Am_lNNrK6y1_36-NcYV53M,18682
465
- deepeval-3.5.2.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
466
- deepeval-3.5.2.dist-info/entry_points.txt,sha256=fVr8UphXTfJe9I2rObmUtfU3gkSrYeM0pLy-NbJYg10,94
467
- deepeval-3.5.2.dist-info/RECORD,,
463
+ deepeval-3.5.3.dist-info/LICENSE.md,sha256=0ATkuLv6QgsJTBODUHC5Rak_PArA6gv2t7inJzNTP38,11352
464
+ deepeval-3.5.3.dist-info/METADATA,sha256=WDYyYAc2YdYGWufFtlvsEFsV___80J_xPPCMkvlwau8,18682
465
+ deepeval-3.5.3.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
466
+ deepeval-3.5.3.dist-info/entry_points.txt,sha256=fVr8UphXTfJe9I2rObmUtfU3gkSrYeM0pLy-NbJYg10,94
467
+ deepeval-3.5.3.dist-info/RECORD,,