validmind 2.7.7__py3-none-any.whl → 2.7.9__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.
validmind/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "2.7.7"
1
+ __version__ = "2.7.9"
@@ -8,6 +8,7 @@ import re
8
8
  from concurrent.futures import ThreadPoolExecutor
9
9
  from typing import List, Optional, Union
10
10
 
11
+ import tiktoken
11
12
  from jinja2 import Template
12
13
 
13
14
  from ..client_config import client_config
@@ -82,6 +83,29 @@ def _get_llm_global_context():
82
83
  return context if context_enabled and context else None
83
84
 
84
85
 
86
+ def _truncate_summary(summary: str, test_id: str, max_tokens: int = 100_000):
87
+ if len(summary) < max_tokens:
88
+ # since string itself is less than max_tokens, definitely small enough
89
+ return summary
90
+
91
+ # TODO: better context length handling
92
+ encoding = tiktoken.encoding_for_model("gpt-4o")
93
+ summary_tokens = encoding.encode(summary)
94
+
95
+ if len(summary_tokens) > max_tokens:
96
+ logger.warning(
97
+ f"Truncating {test_id} due to context length restrictions..."
98
+ " Generated description may be innacurate"
99
+ )
100
+ summary = (
101
+ encoding.decode(summary_tokens[:max_tokens])
102
+ + "...[truncated]"
103
+ + encoding.decode(summary_tokens[-100:])
104
+ )
105
+
106
+ return summary
107
+
108
+
85
109
  def generate_description(
86
110
  test_id: str,
87
111
  test_description: str,
@@ -127,7 +151,7 @@ def generate_description(
127
151
  "test_name": test_name,
128
152
  "test_description": test_description,
129
153
  "title": title,
130
- "summary": summary,
154
+ "summary": _truncate_summary(summary, test_id),
131
155
  "figures": [figure._get_b64_url() for figure in ([] if tables else figures)],
132
156
  "context": context,
133
157
  }
@@ -165,7 +189,13 @@ def background_generate_description(
165
189
  title=title,
166
190
  )
167
191
  except Exception as e:
168
- logger.error(f"Failed to generate description: {e}")
192
+ if "maximum context length" in str(e):
193
+ logger.warning(
194
+ f"Test result {test_id} is too large to generate a description"
195
+ )
196
+ else:
197
+ logger.warning(f"Failed to generate description for {test_id}: {e}")
198
+ logger.warning(f"Using default description for {test_id}")
169
199
 
170
200
  return test_description
171
201
 
validmind/tests/run.py CHANGED
@@ -3,11 +3,11 @@
3
3
  # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
4
 
5
5
  import platform
6
+ import pprint
6
7
  import subprocess
7
8
  import time
8
9
  from datetime import datetime
9
10
  from inspect import getdoc
10
- import pprint
11
11
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
12
12
  from uuid import uuid4
13
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: validmind
3
- Version: 2.7.7
3
+ Version: 2.7.9
4
4
  Summary: ValidMind Library
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -1,6 +1,6 @@
1
1
  validmind/__init__.py,sha256=7qIV3pfZ9K4Gnq11Nkm8TutNKdAmPtUY9DZ0N_OaKks,2738
2
- validmind/__version__.py,sha256=BstYW0haMt-goLq3EVcbRg5TXefKX8m8z0lydYJ7KnQ,22
3
- validmind/ai/test_descriptions.py,sha256=OpdMyLkZqlvegxjKfg2iJ0o4PwjnRv4_kEzePyuQiYs,7345
2
+ validmind/__version__.py,sha256=_43Rb_ixjzQz00TkrUhA8ua5QXQmT2qU8OCNFLRevrs,22
3
+ validmind/ai/test_descriptions.py,sha256=ZApQ9PGBP1PI6HgyRG7Dwfo1C8t_89WRhVv1-H-i0Y4,8438
4
4
  validmind/ai/test_result_description/config.yaml,sha256=E1gPd-uv-MzdrWZA_rP6LSk8pVmkYijx6v78hZ8ceL0,787
5
5
  validmind/ai/test_result_description/context.py,sha256=ebKulFMpXTDLqd6lOHAsG200GmLNnhnu7sMDnbo2Dhc,2339
6
6
  validmind/ai/test_result_description/image_processing.py,sha256=JNaO1zyM9293WWuyzUp1meQQbHuut0XN4kKUGzQTwYY,4061
@@ -291,7 +291,7 @@ validmind/tests/prompt_validation/Robustness.py,sha256=4FShTFGzHcfg9ePfd_lbVt28M
291
291
  validmind/tests/prompt_validation/Specificity.py,sha256=nBKoBvE4vFisXNZX085h0rJN_m1cS9c05J4Ku53tuwQ,4790
292
292
  validmind/tests/prompt_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
293
  validmind/tests/prompt_validation/ai_powered_test.py,sha256=Lc8WU-rJ50e_NbLGV3YZ-W9t6Vj2T-o7hMxZbUrv3pw,2229
294
- validmind/tests/run.py,sha256=-SBh55d_byouC0zx8vswo-pd1f0tmefX3SulgggSFvk,13497
294
+ validmind/tests/run.py,sha256=sO1YUFcM7Ng3yuVdC9cOR-7iOqmJF5EiE7gfuAateZg,13497
295
295
  validmind/tests/test_providers.py,sha256=BceVuM_-bfQ4Zp-a5wwcP_wHeM6IOUpPIq1-MeT2-VY,6250
296
296
  validmind/tests/utils.py,sha256=mQuf1qgewPiE_pFN8iOoPSCGdyFqb4jbMFBVN3S3S2o,3526
297
297
  validmind/unit_metrics/__init__.py,sha256=lXeTJh8uq0TBRQHDBVhzKiHoV2eG9xOkHkI_pDXnkPU,952
@@ -327,8 +327,8 @@ validmind/vm_models/test_suite/runner.py,sha256=Cpl9WKwHzJD5Zvrh71FzbEhGZkHM0x0M
327
327
  validmind/vm_models/test_suite/summary.py,sha256=Ug3nMvpPL2DSTDujWagWMCrFiW9oDy0AqJL_zXN8pH0,4642
328
328
  validmind/vm_models/test_suite/test.py,sha256=uImjmPlBlLrlVPavsUzbaDK55bvpOn3PuFyWeyYyTac,3908
329
329
  validmind/vm_models/test_suite/test_suite.py,sha256=5Jppt2UXSMgvJ6FO5LIAKA4oN_-hh9SMr8APAFJzk9g,5080
330
- validmind-2.7.7.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
331
- validmind-2.7.7.dist-info/METADATA,sha256=RZQqiNFAIH_CFnKj7YApmD4BIe8ORG-17VJSWn3LOfo,6084
332
- validmind-2.7.7.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
333
- validmind-2.7.7.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
334
- validmind-2.7.7.dist-info/RECORD,,
330
+ validmind-2.7.9.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
331
+ validmind-2.7.9.dist-info/METADATA,sha256=jzQS-5FdwOi9PjQmKrHKhfh9xmdri5w5DlFK6Yeex9c,6084
332
+ validmind-2.7.9.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
333
+ validmind-2.7.9.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
334
+ validmind-2.7.9.dist-info/RECORD,,