aiqtoolkit 1.2.0a20250526__py3-none-any.whl → 1.2.0a20250528__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.

Potentially problematic release.


This version of aiqtoolkit might be problematic. Click here for more details.

aiq/cli/commands/start.py CHANGED
@@ -33,7 +33,7 @@ from aiq.utils.type_utils import DecomposedType
33
33
  logger = logging.getLogger(__name__)
34
34
 
35
35
 
36
- class StartCommandGroup(click.MultiCommand):
36
+ class StartCommandGroup(click.Group):
37
37
 
38
38
  # pylint: disable=too-many-positional-arguments
39
39
  def __init__(
aiq/eval/evaluate.py CHANGED
@@ -84,15 +84,19 @@ class EvaluationRun: # pylint: disable=too-many-public-methods
84
84
  return "", []
85
85
 
86
86
  async with session_manager.run(item.input_obj) as runner:
87
+ if not session_manager.workflow.has_single_output:
88
+ # raise an error if the workflow has multiple outputs
89
+ raise NotImplementedError("Multiple outputs are not supported")
90
+
91
+ runner_result = None
92
+ intermediate_future = None
93
+
87
94
  try:
95
+
88
96
  # Start usage stats and intermediate steps collection in parallel
89
97
  intermediate_future = pull_intermediate()
90
-
91
- if session_manager.workflow.has_single_output:
92
- base_output = await runner.result()
93
- else:
94
- # raise an error if the workflow has multiple outputs
95
- raise NotImplementedError("Multiple outputs are not supported")
98
+ runner_result = runner.result()
99
+ base_output = await runner_result
96
100
  intermediate_steps = await intermediate_future
97
101
  except NotImplementedError as e:
98
102
  # raise original error
@@ -101,6 +105,13 @@ class EvaluationRun: # pylint: disable=too-many-public-methods
101
105
  logger.exception("Failed to run the workflow: %s", e, exc_info=True)
102
106
  # stop processing if a workflow error occurs
103
107
  self.workflow_interrupted = True
108
+
109
+ # Cancel any coroutines that are still running, avoiding a warning about unawaited coroutines
110
+ # (typically one of these two is what raised the exception and the other is still running)
111
+ for coro in (runner_result, intermediate_future):
112
+ if coro is not None:
113
+ asyncio.ensure_future(coro).cancel()
114
+
104
115
  stop_event.set()
105
116
  return
106
117
 
@@ -15,6 +15,7 @@
15
15
 
16
16
  import logging
17
17
  import re
18
+ import warnings
18
19
  from contextlib import asynccontextmanager
19
20
  from contextlib import contextmanager
20
21
  from typing import Any
@@ -30,10 +31,20 @@ from aiq.utils.optional_imports import TelemetryOptionalImportError
30
31
  from aiq.utils.optional_imports import try_import_opentelemetry
31
32
 
32
33
  try:
33
- from weave.trace.context import weave_client_context
34
- from weave.trace.context.call_context import get_current_call
35
- from weave.trace.context.call_context import set_call_stack
36
- from weave.trace.weave_client import Call
34
+ with warnings.catch_warnings():
35
+ # Ignore deprecation warnings being triggered by weave. https://github.com/wandb/weave/issues/3666
36
+ # and https://github.com/wandb/weave/issues/4533
37
+ warnings.filterwarnings("ignore", category=DeprecationWarning, message=r"^`sentry_sdk\.Hub` is deprecated")
38
+ warnings.filterwarnings("ignore",
39
+ category=DeprecationWarning,
40
+ message=r"^Using extra keyword arguments on `Field` is deprecated")
41
+ warnings.filterwarnings("ignore",
42
+ category=DeprecationWarning,
43
+ message=r"^`include` is deprecated and does nothing")
44
+ from weave.trace.context import weave_client_context
45
+ from weave.trace.context.call_context import get_current_call
46
+ from weave.trace.context.call_context import set_call_stack
47
+ from weave.trace.weave_client import Call
37
48
  WEAVE_AVAILABLE = True
38
49
  except ImportError:
39
50
  WEAVE_AVAILABLE = False
@@ -220,7 +220,7 @@ class CallNode(BaseModel):
220
220
  return "\n".join([info] + child_strs)
221
221
 
222
222
 
223
- CallNode.update_forward_refs()
223
+ CallNode.model_rebuild()
224
224
 
225
225
 
226
226
  class NodeMetrics(BaseModel):
@@ -296,7 +296,7 @@ class ConcurrencyCallNode(CallNode):
296
296
  llm_text_output: str | None = None
297
297
 
298
298
 
299
- ConcurrencyCallNode.update_forward_refs()
299
+ ConcurrencyCallNode.model_rebuild()
300
300
 
301
301
 
302
302
  class ConcurrencySpikeInfo(BaseModel):
@@ -176,8 +176,8 @@ class LLMMetrics:
176
176
  return subdf
177
177
 
178
178
  # Apply the group metrics
179
- df = (df.groupby(['example_number', 'function_name'],
180
- group_keys=False).apply(_compute_group_metrics).sort_index())
179
+ df_group = df.groupby(['example_number', 'function_name'], group_keys=False)
180
+ df = df_group[df.columns].apply(_compute_group_metrics).sort_index()
181
181
 
182
182
  # ---------------------------------------------------------------------
183
183
  # 5. NOVA-Predicted-OSL
aiq/runtime/loader.py CHANGED
@@ -132,7 +132,7 @@ def discover_entrypoints(plugin_type: PluginTypes):
132
132
  plugin_groups.append("aiq.evaluators")
133
133
 
134
134
  # Get the entry points for the specified groups
135
- aiq_plugins = reduce(lambda x, y: x + y, [entry_points.select(group=y) for y in plugin_groups])
135
+ aiq_plugins = reduce(lambda x, y: list(x) + list(y), [entry_points.select(group=y) for y in plugin_groups])
136
136
 
137
137
  return aiq_plugins
138
138
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiqtoolkit
3
- Version: 1.2.0a20250526
3
+ Version: 1.2.0a20250528
4
4
  Summary: NVIDIA Agent Intelligence toolkit
5
5
  Author: NVIDIA Corporation
6
6
  Maintainer: NVIDIA Corporation
@@ -44,7 +44,7 @@ aiq/cli/cli_utils/config_override.py,sha256=WuX9ki1W0Z6jTqjm553U_owWFxbVzjbKRWGJ
44
44
  aiq/cli/cli_utils/validation.py,sha256=GlKpoi3HfE5HELjmz5wk8ezGbb5iZeY0zmA3uxmCrBU,1302
45
45
  aiq/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  aiq/cli/commands/evaluate.py,sha256=_pqAuvrNKBf0DvGpZFO28vAKBWp6izMpaLbAVnP57_4,4783
47
- aiq/cli/commands/start.py,sha256=7vBtp6BE82bp_G4H0mtTdll7ynrq90HBO4Fy7KB4Aok,9995
47
+ aiq/cli/commands/start.py,sha256=tP0V8I6i0abPBKAVrMObgekIZICtijkG17G7z_m83wM,9988
48
48
  aiq/cli/commands/uninstall.py,sha256=tTb5WsyRPPXo511yAGSvSG7U19swbQs8Cf_B4rh7mxQ,3248
49
49
  aiq/cli/commands/validate.py,sha256=YfYNRK7m5te_jkKp1klhGp4PdUVCuDyVG4LRW1YXZk0,1669
50
50
  aiq/cli/commands/configure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -107,7 +107,7 @@ aiq/embedder/openai_embedder.py,sha256=5FO3xsyNvEmbLBsZb3xsCpbN1Soxio4yf4b5gTPVx
107
107
  aiq/embedder/register.py,sha256=3MTZrfNQKp6AZTbfaA-PpTnyXiMyu-8HH9JnDCC0v9o,978
108
108
  aiq/eval/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
109
109
  aiq/eval/config.py,sha256=IlOr2o618kbkXP0G1F-AklZfsKYVos9UB4Dvlxf66xk,1431
110
- aiq/eval/evaluate.py,sha256=WPGLBeJ46mwIlnprbtia1cm2MwMqZ-GskXoTn6R4oV0,14624
110
+ aiq/eval/evaluate.py,sha256=FFKIWRse9C3z6A7Fyu8GN0ZHMrxGspw9LnhQ7ulEYSE,15125
111
111
  aiq/eval/intermediate_step_adapter.py,sha256=4cSsGgFBvNjXnclk5FvZnQaFEdeulp7VEdRWKLcREAQ,4498
112
112
  aiq/eval/register.py,sha256=QOHJqA2CQixeWMC9InyKbzXo1jByvrntD_m9-2Mvg9k,1076
113
113
  aiq/eval/remote_workflow.py,sha256=Fb7Z6gdP2L_gqyWB--AEWfcXe9xPpQ_hPsf9lmqGXjI,5524
@@ -173,7 +173,7 @@ aiq/memory/models.py,sha256=c5dA7nKHQ4AS1_ptQZcfC_oXO495-ehocnf_qXTE6c8,4319
173
173
  aiq/meta/module_to_distro.json,sha256=1XV7edobFrdDKvsSoynfodXg_hczUWpDrQzGkW9qqEs,28
174
174
  aiq/meta/pypi.md,sha256=Ukj1J--Q6GF7Zh1tKonygttN3aiq_Lf2-445nz0sE-o,4362
175
175
  aiq/observability/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
- aiq/observability/async_otel_listener.py,sha256=oyDO_8XNzQqyiFe-8iJhZr3z9kWsEJEuKEoOPf7L-Bk,17667
176
+ aiq/observability/async_otel_listener.py,sha256=gR8fEdpZ9L8vGZiXLI7FwbwtSiGgQHMDDj5d-vKjZGc,18407
177
177
  aiq/observability/register.py,sha256=ZDQOaSuy9igc7nAKG7XWP2u6JanC2T8yufMWItNpPJI,4245
178
178
  aiq/plugins/.namespace,sha256=Gace0pOC3ETEJf-TBVuNw0TQV6J_KtOPpEiSzMH-odo,215
179
179
  aiq/profiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -200,8 +200,8 @@ aiq/profiler/forecasting/models/forecasting_base_model.py,sha256=6-oe3jn-X9_m3Qv
200
200
  aiq/profiler/forecasting/models/linear_model.py,sha256=quIKTY0NxaKB4-VIffP6YHmnWXuqp1FV0a2Nt9nYWPI,6993
201
201
  aiq/profiler/forecasting/models/random_forest_regressor.py,sha256=139cOJTnJKkYOOU9ZDxPq9BvJ5nj1sV0JZIcjpy1JfU,9533
202
202
  aiq/profiler/inference_optimization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
- aiq/profiler/inference_optimization/data_models.py,sha256=wMXJBJUUHo-3W85vuPoiBT1YZHeNel7bMrwGyBOOgwI,11896
204
- aiq/profiler/inference_optimization/llm_metrics.py,sha256=uRQv21x5nIVF4S4XYNz-qW_6Qu4dFTj7qQ-Mf1vjKas,9469
203
+ aiq/profiler/inference_optimization/data_models.py,sha256=lK6EPAgEPtJMMpe3SFoDqx4BntJVo8fMQzLfqOMKpB0,11884
204
+ aiq/profiler/inference_optimization/llm_metrics.py,sha256=uvd2KMPPiEjZbuLqK7iJFK8UUrOUb5F3n53T76vKzd8,9482
205
205
  aiq/profiler/inference_optimization/prompt_caching.py,sha256=LGfxJG4R2y4vMFoiFztJkdeBivhBOO4sk7cKY-llTXk,6505
206
206
  aiq/profiler/inference_optimization/token_uniqueness.py,sha256=OCNlVmemMLS2kt0OZIXOGt8MbrTy5mbdhSMPYHs31a4,4571
207
207
  aiq/profiler/inference_optimization/workflow_runtimes.py,sha256=lnGa0eTpHiDEbx9rX-tcx100qSd6amePLlgb4Gx7JBc,2664
@@ -244,7 +244,7 @@ aiq/retriever/nemo_retriever/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W
244
244
  aiq/retriever/nemo_retriever/register.py,sha256=ODV-TZfXzDs1VJHHLdj2kC05odirtlQZSeh9c1zw8AQ,2893
245
245
  aiq/retriever/nemo_retriever/retriever.py,sha256=IvScUr9XuDLiMR__I3QsboLaM52N5D5Qu94qtTOGQw8,6958
246
246
  aiq/runtime/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
247
- aiq/runtime/loader.py,sha256=jw_ZPM1vBJkyDtuXeyx42ACpu3EyXeimbo3Fb6k9-gM,6811
247
+ aiq/runtime/loader.py,sha256=4K96mko9BfSEdYg2cLZ6a5G8j-6PAkl6JSigSOshg1A,6823
248
248
  aiq/runtime/runner.py,sha256=WUAiliqI5Se9OgRmimpeFdrl38d9gRTJQ8uf59lvk7U,5836
249
249
  aiq/runtime/session.py,sha256=Hd92_MjYkPNdjbuoxQVV5EOJ0d_X2re449O6XHDlJZI,5039
250
250
  aiq/runtime/user_metadata.py,sha256=d7K5CFdOvaXpP2NCUIFBY2lHxB1FnjqV4yOlT4C7fuU,3697
@@ -307,10 +307,10 @@ aiq/utils/reactive/base/observer_base.py,sha256=UAlyAY_ky4q2t0P81RVFo2Bs_R7z5Nde
307
307
  aiq/utils/reactive/base/subject_base.py,sha256=Ed-AC6P7cT3qkW1EXjzbd5M9WpVoeN_9KCe3OM3FLU4,2521
308
308
  aiq/utils/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
309
309
  aiq/utils/settings/global_settings.py,sha256=U9TCLdoZsKq5qOVGjREipGVv9e-FlStzqy5zv82_VYk,7454
310
- aiqtoolkit-1.2.0a20250526.dist-info/licenses/LICENSE-3rd-party.txt,sha256=8o7aySJa9CBvFshPcsRdJbczzdNyDGJ8b0J67WRUQ2k,183936
311
- aiqtoolkit-1.2.0a20250526.dist-info/licenses/LICENSE.md,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
312
- aiqtoolkit-1.2.0a20250526.dist-info/METADATA,sha256=OERp4WxL1pg6wyXVwNFtsG7a6rbpdcpcuFgK8Bx56sg,20174
313
- aiqtoolkit-1.2.0a20250526.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
314
- aiqtoolkit-1.2.0a20250526.dist-info/entry_points.txt,sha256=gRlPfR5g21t328WNEQ4CcEz80S1sJNS8A7rMDYnzl4A,452
315
- aiqtoolkit-1.2.0a20250526.dist-info/top_level.txt,sha256=fo7AzYcNhZ_tRWrhGumtxwnxMew4xrT1iwouDy_f0Kc,4
316
- aiqtoolkit-1.2.0a20250526.dist-info/RECORD,,
310
+ aiqtoolkit-1.2.0a20250528.dist-info/licenses/LICENSE-3rd-party.txt,sha256=8o7aySJa9CBvFshPcsRdJbczzdNyDGJ8b0J67WRUQ2k,183936
311
+ aiqtoolkit-1.2.0a20250528.dist-info/licenses/LICENSE.md,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
312
+ aiqtoolkit-1.2.0a20250528.dist-info/METADATA,sha256=Py9XOHitu4SU0eFhE8TK3IXPmDqwvJIr-O0CwiDYnIM,20174
313
+ aiqtoolkit-1.2.0a20250528.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
314
+ aiqtoolkit-1.2.0a20250528.dist-info/entry_points.txt,sha256=gRlPfR5g21t328WNEQ4CcEz80S1sJNS8A7rMDYnzl4A,452
315
+ aiqtoolkit-1.2.0a20250528.dist-info/top_level.txt,sha256=fo7AzYcNhZ_tRWrhGumtxwnxMew4xrT1iwouDy_f0Kc,4
316
+ aiqtoolkit-1.2.0a20250528.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5