aiqtoolkit 1.2.0rc4__py3-none-any.whl → 1.2.0rc5__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.

Files changed (441) hide show
  1. aiqtoolkit-1.2.0rc5.dist-info/METADATA +29 -0
  2. aiqtoolkit-1.2.0rc5.dist-info/RECORD +4 -0
  3. aiqtoolkit-1.2.0rc5.dist-info/top_level.txt +1 -0
  4. aiq/agent/__init__.py +0 -0
  5. aiq/agent/base.py +0 -239
  6. aiq/agent/dual_node.py +0 -67
  7. aiq/agent/react_agent/__init__.py +0 -0
  8. aiq/agent/react_agent/agent.py +0 -355
  9. aiq/agent/react_agent/output_parser.py +0 -104
  10. aiq/agent/react_agent/prompt.py +0 -41
  11. aiq/agent/react_agent/register.py +0 -149
  12. aiq/agent/reasoning_agent/__init__.py +0 -0
  13. aiq/agent/reasoning_agent/reasoning_agent.py +0 -225
  14. aiq/agent/register.py +0 -23
  15. aiq/agent/rewoo_agent/__init__.py +0 -0
  16. aiq/agent/rewoo_agent/agent.py +0 -411
  17. aiq/agent/rewoo_agent/prompt.py +0 -108
  18. aiq/agent/rewoo_agent/register.py +0 -158
  19. aiq/agent/tool_calling_agent/__init__.py +0 -0
  20. aiq/agent/tool_calling_agent/agent.py +0 -119
  21. aiq/agent/tool_calling_agent/register.py +0 -106
  22. aiq/authentication/__init__.py +0 -14
  23. aiq/authentication/api_key/__init__.py +0 -14
  24. aiq/authentication/api_key/api_key_auth_provider.py +0 -96
  25. aiq/authentication/api_key/api_key_auth_provider_config.py +0 -124
  26. aiq/authentication/api_key/register.py +0 -26
  27. aiq/authentication/exceptions/__init__.py +0 -14
  28. aiq/authentication/exceptions/api_key_exceptions.py +0 -38
  29. aiq/authentication/exceptions/auth_code_grant_exceptions.py +0 -86
  30. aiq/authentication/exceptions/call_back_exceptions.py +0 -38
  31. aiq/authentication/exceptions/request_exceptions.py +0 -54
  32. aiq/authentication/http_basic_auth/__init__.py +0 -0
  33. aiq/authentication/http_basic_auth/http_basic_auth_provider.py +0 -81
  34. aiq/authentication/http_basic_auth/register.py +0 -30
  35. aiq/authentication/interfaces.py +0 -93
  36. aiq/authentication/oauth2/__init__.py +0 -14
  37. aiq/authentication/oauth2/oauth2_auth_code_flow_provider.py +0 -107
  38. aiq/authentication/oauth2/oauth2_auth_code_flow_provider_config.py +0 -39
  39. aiq/authentication/oauth2/register.py +0 -25
  40. aiq/authentication/register.py +0 -21
  41. aiq/builder/__init__.py +0 -0
  42. aiq/builder/builder.py +0 -285
  43. aiq/builder/component_utils.py +0 -316
  44. aiq/builder/context.py +0 -264
  45. aiq/builder/embedder.py +0 -24
  46. aiq/builder/eval_builder.py +0 -161
  47. aiq/builder/evaluator.py +0 -29
  48. aiq/builder/framework_enum.py +0 -24
  49. aiq/builder/front_end.py +0 -73
  50. aiq/builder/function.py +0 -344
  51. aiq/builder/function_base.py +0 -380
  52. aiq/builder/function_info.py +0 -627
  53. aiq/builder/intermediate_step_manager.py +0 -174
  54. aiq/builder/llm.py +0 -25
  55. aiq/builder/retriever.py +0 -25
  56. aiq/builder/user_interaction_manager.py +0 -74
  57. aiq/builder/workflow.py +0 -148
  58. aiq/builder/workflow_builder.py +0 -1117
  59. aiq/cli/__init__.py +0 -14
  60. aiq/cli/cli_utils/__init__.py +0 -0
  61. aiq/cli/cli_utils/config_override.py +0 -231
  62. aiq/cli/cli_utils/validation.py +0 -37
  63. aiq/cli/commands/__init__.py +0 -0
  64. aiq/cli/commands/configure/__init__.py +0 -0
  65. aiq/cli/commands/configure/channel/__init__.py +0 -0
  66. aiq/cli/commands/configure/channel/add.py +0 -28
  67. aiq/cli/commands/configure/channel/channel.py +0 -36
  68. aiq/cli/commands/configure/channel/remove.py +0 -30
  69. aiq/cli/commands/configure/channel/update.py +0 -30
  70. aiq/cli/commands/configure/configure.py +0 -33
  71. aiq/cli/commands/evaluate.py +0 -139
  72. aiq/cli/commands/info/__init__.py +0 -14
  73. aiq/cli/commands/info/info.py +0 -39
  74. aiq/cli/commands/info/list_channels.py +0 -32
  75. aiq/cli/commands/info/list_components.py +0 -129
  76. aiq/cli/commands/info/list_mcp.py +0 -213
  77. aiq/cli/commands/registry/__init__.py +0 -14
  78. aiq/cli/commands/registry/publish.py +0 -88
  79. aiq/cli/commands/registry/pull.py +0 -118
  80. aiq/cli/commands/registry/registry.py +0 -38
  81. aiq/cli/commands/registry/remove.py +0 -108
  82. aiq/cli/commands/registry/search.py +0 -155
  83. aiq/cli/commands/sizing/__init__.py +0 -14
  84. aiq/cli/commands/sizing/calc.py +0 -297
  85. aiq/cli/commands/sizing/sizing.py +0 -27
  86. aiq/cli/commands/start.py +0 -246
  87. aiq/cli/commands/uninstall.py +0 -81
  88. aiq/cli/commands/validate.py +0 -47
  89. aiq/cli/commands/workflow/__init__.py +0 -14
  90. aiq/cli/commands/workflow/templates/__init__.py.j2 +0 -0
  91. aiq/cli/commands/workflow/templates/config.yml.j2 +0 -16
  92. aiq/cli/commands/workflow/templates/pyproject.toml.j2 +0 -22
  93. aiq/cli/commands/workflow/templates/register.py.j2 +0 -5
  94. aiq/cli/commands/workflow/templates/workflow.py.j2 +0 -36
  95. aiq/cli/commands/workflow/workflow.py +0 -37
  96. aiq/cli/commands/workflow/workflow_commands.py +0 -313
  97. aiq/cli/entrypoint.py +0 -135
  98. aiq/cli/main.py +0 -44
  99. aiq/cli/register_workflow.py +0 -488
  100. aiq/cli/type_registry.py +0 -1000
  101. aiq/data_models/__init__.py +0 -14
  102. aiq/data_models/api_server.py +0 -694
  103. aiq/data_models/authentication.py +0 -231
  104. aiq/data_models/common.py +0 -171
  105. aiq/data_models/component.py +0 -54
  106. aiq/data_models/component_ref.py +0 -168
  107. aiq/data_models/config.py +0 -406
  108. aiq/data_models/dataset_handler.py +0 -123
  109. aiq/data_models/discovery_metadata.py +0 -335
  110. aiq/data_models/embedder.py +0 -27
  111. aiq/data_models/evaluate.py +0 -127
  112. aiq/data_models/evaluator.py +0 -26
  113. aiq/data_models/front_end.py +0 -26
  114. aiq/data_models/function.py +0 -30
  115. aiq/data_models/function_dependencies.py +0 -72
  116. aiq/data_models/interactive.py +0 -246
  117. aiq/data_models/intermediate_step.py +0 -302
  118. aiq/data_models/invocation_node.py +0 -38
  119. aiq/data_models/its_strategy.py +0 -30
  120. aiq/data_models/llm.py +0 -27
  121. aiq/data_models/logging.py +0 -26
  122. aiq/data_models/memory.py +0 -27
  123. aiq/data_models/object_store.py +0 -44
  124. aiq/data_models/profiler.py +0 -54
  125. aiq/data_models/registry_handler.py +0 -26
  126. aiq/data_models/retriever.py +0 -30
  127. aiq/data_models/retry_mixin.py +0 -35
  128. aiq/data_models/span.py +0 -187
  129. aiq/data_models/step_adaptor.py +0 -64
  130. aiq/data_models/streaming.py +0 -33
  131. aiq/data_models/swe_bench_model.py +0 -54
  132. aiq/data_models/telemetry_exporter.py +0 -26
  133. aiq/embedder/__init__.py +0 -0
  134. aiq/embedder/langchain_client.py +0 -41
  135. aiq/embedder/nim_embedder.py +0 -59
  136. aiq/embedder/openai_embedder.py +0 -43
  137. aiq/embedder/register.py +0 -24
  138. aiq/eval/__init__.py +0 -14
  139. aiq/eval/config.py +0 -60
  140. aiq/eval/dataset_handler/__init__.py +0 -0
  141. aiq/eval/dataset_handler/dataset_downloader.py +0 -106
  142. aiq/eval/dataset_handler/dataset_filter.py +0 -52
  143. aiq/eval/dataset_handler/dataset_handler.py +0 -254
  144. aiq/eval/evaluate.py +0 -506
  145. aiq/eval/evaluator/__init__.py +0 -14
  146. aiq/eval/evaluator/base_evaluator.py +0 -73
  147. aiq/eval/evaluator/evaluator_model.py +0 -45
  148. aiq/eval/intermediate_step_adapter.py +0 -99
  149. aiq/eval/rag_evaluator/__init__.py +0 -0
  150. aiq/eval/rag_evaluator/evaluate.py +0 -178
  151. aiq/eval/rag_evaluator/register.py +0 -143
  152. aiq/eval/register.py +0 -23
  153. aiq/eval/remote_workflow.py +0 -133
  154. aiq/eval/runners/__init__.py +0 -14
  155. aiq/eval/runners/config.py +0 -39
  156. aiq/eval/runners/multi_eval_runner.py +0 -54
  157. aiq/eval/runtime_event_subscriber.py +0 -52
  158. aiq/eval/swe_bench_evaluator/__init__.py +0 -0
  159. aiq/eval/swe_bench_evaluator/evaluate.py +0 -215
  160. aiq/eval/swe_bench_evaluator/register.py +0 -36
  161. aiq/eval/trajectory_evaluator/__init__.py +0 -0
  162. aiq/eval/trajectory_evaluator/evaluate.py +0 -75
  163. aiq/eval/trajectory_evaluator/register.py +0 -40
  164. aiq/eval/tunable_rag_evaluator/__init__.py +0 -0
  165. aiq/eval/tunable_rag_evaluator/evaluate.py +0 -245
  166. aiq/eval/tunable_rag_evaluator/register.py +0 -52
  167. aiq/eval/usage_stats.py +0 -41
  168. aiq/eval/utils/__init__.py +0 -0
  169. aiq/eval/utils/output_uploader.py +0 -140
  170. aiq/eval/utils/tqdm_position_registry.py +0 -40
  171. aiq/eval/utils/weave_eval.py +0 -184
  172. aiq/experimental/__init__.py +0 -0
  173. aiq/experimental/decorators/__init__.py +0 -0
  174. aiq/experimental/decorators/experimental_warning_decorator.py +0 -130
  175. aiq/experimental/inference_time_scaling/__init__.py +0 -0
  176. aiq/experimental/inference_time_scaling/editing/__init__.py +0 -0
  177. aiq/experimental/inference_time_scaling/editing/iterative_plan_refinement_editor.py +0 -147
  178. aiq/experimental/inference_time_scaling/editing/llm_as_a_judge_editor.py +0 -204
  179. aiq/experimental/inference_time_scaling/editing/motivation_aware_summarization.py +0 -107
  180. aiq/experimental/inference_time_scaling/functions/__init__.py +0 -0
  181. aiq/experimental/inference_time_scaling/functions/execute_score_select_function.py +0 -105
  182. aiq/experimental/inference_time_scaling/functions/its_tool_orchestration_function.py +0 -205
  183. aiq/experimental/inference_time_scaling/functions/its_tool_wrapper_function.py +0 -146
  184. aiq/experimental/inference_time_scaling/functions/plan_select_execute_function.py +0 -224
  185. aiq/experimental/inference_time_scaling/models/__init__.py +0 -0
  186. aiq/experimental/inference_time_scaling/models/editor_config.py +0 -132
  187. aiq/experimental/inference_time_scaling/models/its_item.py +0 -48
  188. aiq/experimental/inference_time_scaling/models/scoring_config.py +0 -112
  189. aiq/experimental/inference_time_scaling/models/search_config.py +0 -120
  190. aiq/experimental/inference_time_scaling/models/selection_config.py +0 -154
  191. aiq/experimental/inference_time_scaling/models/stage_enums.py +0 -43
  192. aiq/experimental/inference_time_scaling/models/strategy_base.py +0 -66
  193. aiq/experimental/inference_time_scaling/models/tool_use_config.py +0 -41
  194. aiq/experimental/inference_time_scaling/register.py +0 -36
  195. aiq/experimental/inference_time_scaling/scoring/__init__.py +0 -0
  196. aiq/experimental/inference_time_scaling/scoring/llm_based_agent_scorer.py +0 -168
  197. aiq/experimental/inference_time_scaling/scoring/llm_based_plan_scorer.py +0 -168
  198. aiq/experimental/inference_time_scaling/scoring/motivation_aware_scorer.py +0 -111
  199. aiq/experimental/inference_time_scaling/search/__init__.py +0 -0
  200. aiq/experimental/inference_time_scaling/search/multi_llm_planner.py +0 -128
  201. aiq/experimental/inference_time_scaling/search/multi_query_retrieval_search.py +0 -122
  202. aiq/experimental/inference_time_scaling/search/single_shot_multi_plan_planner.py +0 -128
  203. aiq/experimental/inference_time_scaling/selection/__init__.py +0 -0
  204. aiq/experimental/inference_time_scaling/selection/best_of_n_selector.py +0 -63
  205. aiq/experimental/inference_time_scaling/selection/llm_based_agent_output_selector.py +0 -131
  206. aiq/experimental/inference_time_scaling/selection/llm_based_output_merging_selector.py +0 -159
  207. aiq/experimental/inference_time_scaling/selection/llm_based_plan_selector.py +0 -128
  208. aiq/experimental/inference_time_scaling/selection/threshold_selector.py +0 -58
  209. aiq/front_ends/__init__.py +0 -14
  210. aiq/front_ends/console/__init__.py +0 -14
  211. aiq/front_ends/console/authentication_flow_handler.py +0 -233
  212. aiq/front_ends/console/console_front_end_config.py +0 -32
  213. aiq/front_ends/console/console_front_end_plugin.py +0 -96
  214. aiq/front_ends/console/register.py +0 -25
  215. aiq/front_ends/cron/__init__.py +0 -14
  216. aiq/front_ends/fastapi/__init__.py +0 -14
  217. aiq/front_ends/fastapi/auth_flow_handlers/__init__.py +0 -0
  218. aiq/front_ends/fastapi/auth_flow_handlers/http_flow_handler.py +0 -27
  219. aiq/front_ends/fastapi/auth_flow_handlers/websocket_flow_handler.py +0 -107
  220. aiq/front_ends/fastapi/fastapi_front_end_config.py +0 -234
  221. aiq/front_ends/fastapi/fastapi_front_end_controller.py +0 -68
  222. aiq/front_ends/fastapi/fastapi_front_end_plugin.py +0 -116
  223. aiq/front_ends/fastapi/fastapi_front_end_plugin_worker.py +0 -1092
  224. aiq/front_ends/fastapi/html_snippets/__init__.py +0 -14
  225. aiq/front_ends/fastapi/html_snippets/auth_code_grant_success.py +0 -35
  226. aiq/front_ends/fastapi/intermediate_steps_subscriber.py +0 -80
  227. aiq/front_ends/fastapi/job_store.py +0 -183
  228. aiq/front_ends/fastapi/main.py +0 -72
  229. aiq/front_ends/fastapi/message_handler.py +0 -298
  230. aiq/front_ends/fastapi/message_validator.py +0 -345
  231. aiq/front_ends/fastapi/register.py +0 -25
  232. aiq/front_ends/fastapi/response_helpers.py +0 -195
  233. aiq/front_ends/fastapi/step_adaptor.py +0 -321
  234. aiq/front_ends/mcp/__init__.py +0 -14
  235. aiq/front_ends/mcp/mcp_front_end_config.py +0 -32
  236. aiq/front_ends/mcp/mcp_front_end_plugin.py +0 -93
  237. aiq/front_ends/mcp/register.py +0 -27
  238. aiq/front_ends/mcp/tool_converter.py +0 -242
  239. aiq/front_ends/register.py +0 -22
  240. aiq/front_ends/simple_base/__init__.py +0 -14
  241. aiq/front_ends/simple_base/simple_front_end_plugin_base.py +0 -54
  242. aiq/llm/__init__.py +0 -0
  243. aiq/llm/aws_bedrock_llm.py +0 -57
  244. aiq/llm/nim_llm.py +0 -46
  245. aiq/llm/openai_llm.py +0 -46
  246. aiq/llm/register.py +0 -23
  247. aiq/llm/utils/__init__.py +0 -14
  248. aiq/llm/utils/env_config_value.py +0 -94
  249. aiq/llm/utils/error.py +0 -17
  250. aiq/memory/__init__.py +0 -20
  251. aiq/memory/interfaces.py +0 -183
  252. aiq/memory/models.py +0 -112
  253. aiq/meta/module_to_distro.json +0 -3
  254. aiq/meta/pypi.md +0 -58
  255. aiq/object_store/__init__.py +0 -20
  256. aiq/object_store/in_memory_object_store.py +0 -76
  257. aiq/object_store/interfaces.py +0 -84
  258. aiq/object_store/models.py +0 -36
  259. aiq/object_store/register.py +0 -20
  260. aiq/observability/__init__.py +0 -14
  261. aiq/observability/exporter/__init__.py +0 -14
  262. aiq/observability/exporter/base_exporter.py +0 -449
  263. aiq/observability/exporter/exporter.py +0 -78
  264. aiq/observability/exporter/file_exporter.py +0 -33
  265. aiq/observability/exporter/processing_exporter.py +0 -322
  266. aiq/observability/exporter/raw_exporter.py +0 -52
  267. aiq/observability/exporter/span_exporter.py +0 -265
  268. aiq/observability/exporter_manager.py +0 -335
  269. aiq/observability/mixin/__init__.py +0 -14
  270. aiq/observability/mixin/batch_config_mixin.py +0 -26
  271. aiq/observability/mixin/collector_config_mixin.py +0 -23
  272. aiq/observability/mixin/file_mixin.py +0 -288
  273. aiq/observability/mixin/file_mode.py +0 -23
  274. aiq/observability/mixin/resource_conflict_mixin.py +0 -134
  275. aiq/observability/mixin/serialize_mixin.py +0 -61
  276. aiq/observability/mixin/type_introspection_mixin.py +0 -183
  277. aiq/observability/processor/__init__.py +0 -14
  278. aiq/observability/processor/batching_processor.py +0 -309
  279. aiq/observability/processor/callback_processor.py +0 -42
  280. aiq/observability/processor/intermediate_step_serializer.py +0 -28
  281. aiq/observability/processor/processor.py +0 -71
  282. aiq/observability/register.py +0 -96
  283. aiq/observability/utils/__init__.py +0 -14
  284. aiq/observability/utils/dict_utils.py +0 -236
  285. aiq/observability/utils/time_utils.py +0 -31
  286. aiq/plugins/.namespace +0 -1
  287. aiq/profiler/__init__.py +0 -0
  288. aiq/profiler/calc/__init__.py +0 -14
  289. aiq/profiler/calc/calc_runner.py +0 -627
  290. aiq/profiler/calc/calculations.py +0 -288
  291. aiq/profiler/calc/data_models.py +0 -188
  292. aiq/profiler/calc/plot.py +0 -345
  293. aiq/profiler/callbacks/__init__.py +0 -0
  294. aiq/profiler/callbacks/agno_callback_handler.py +0 -295
  295. aiq/profiler/callbacks/base_callback_class.py +0 -20
  296. aiq/profiler/callbacks/langchain_callback_handler.py +0 -290
  297. aiq/profiler/callbacks/llama_index_callback_handler.py +0 -205
  298. aiq/profiler/callbacks/semantic_kernel_callback_handler.py +0 -238
  299. aiq/profiler/callbacks/token_usage_base_model.py +0 -27
  300. aiq/profiler/data_frame_row.py +0 -51
  301. aiq/profiler/data_models.py +0 -24
  302. aiq/profiler/decorators/__init__.py +0 -0
  303. aiq/profiler/decorators/framework_wrapper.py +0 -131
  304. aiq/profiler/decorators/function_tracking.py +0 -254
  305. aiq/profiler/forecasting/__init__.py +0 -0
  306. aiq/profiler/forecasting/config.py +0 -18
  307. aiq/profiler/forecasting/model_trainer.py +0 -75
  308. aiq/profiler/forecasting/models/__init__.py +0 -22
  309. aiq/profiler/forecasting/models/forecasting_base_model.py +0 -40
  310. aiq/profiler/forecasting/models/linear_model.py +0 -196
  311. aiq/profiler/forecasting/models/random_forest_regressor.py +0 -268
  312. aiq/profiler/inference_metrics_model.py +0 -28
  313. aiq/profiler/inference_optimization/__init__.py +0 -0
  314. aiq/profiler/inference_optimization/bottleneck_analysis/__init__.py +0 -0
  315. aiq/profiler/inference_optimization/bottleneck_analysis/nested_stack_analysis.py +0 -460
  316. aiq/profiler/inference_optimization/bottleneck_analysis/simple_stack_analysis.py +0 -258
  317. aiq/profiler/inference_optimization/data_models.py +0 -386
  318. aiq/profiler/inference_optimization/experimental/__init__.py +0 -0
  319. aiq/profiler/inference_optimization/experimental/concurrency_spike_analysis.py +0 -468
  320. aiq/profiler/inference_optimization/experimental/prefix_span_analysis.py +0 -405
  321. aiq/profiler/inference_optimization/llm_metrics.py +0 -212
  322. aiq/profiler/inference_optimization/prompt_caching.py +0 -163
  323. aiq/profiler/inference_optimization/token_uniqueness.py +0 -107
  324. aiq/profiler/inference_optimization/workflow_runtimes.py +0 -72
  325. aiq/profiler/intermediate_property_adapter.py +0 -102
  326. aiq/profiler/profile_runner.py +0 -473
  327. aiq/profiler/utils.py +0 -184
  328. aiq/registry_handlers/__init__.py +0 -0
  329. aiq/registry_handlers/local/__init__.py +0 -0
  330. aiq/registry_handlers/local/local_handler.py +0 -176
  331. aiq/registry_handlers/local/register_local.py +0 -37
  332. aiq/registry_handlers/metadata_factory.py +0 -60
  333. aiq/registry_handlers/package_utils.py +0 -567
  334. aiq/registry_handlers/pypi/__init__.py +0 -0
  335. aiq/registry_handlers/pypi/pypi_handler.py +0 -251
  336. aiq/registry_handlers/pypi/register_pypi.py +0 -40
  337. aiq/registry_handlers/register.py +0 -21
  338. aiq/registry_handlers/registry_handler_base.py +0 -157
  339. aiq/registry_handlers/rest/__init__.py +0 -0
  340. aiq/registry_handlers/rest/register_rest.py +0 -56
  341. aiq/registry_handlers/rest/rest_handler.py +0 -237
  342. aiq/registry_handlers/schemas/__init__.py +0 -0
  343. aiq/registry_handlers/schemas/headers.py +0 -42
  344. aiq/registry_handlers/schemas/package.py +0 -68
  345. aiq/registry_handlers/schemas/publish.py +0 -63
  346. aiq/registry_handlers/schemas/pull.py +0 -82
  347. aiq/registry_handlers/schemas/remove.py +0 -36
  348. aiq/registry_handlers/schemas/search.py +0 -91
  349. aiq/registry_handlers/schemas/status.py +0 -47
  350. aiq/retriever/__init__.py +0 -0
  351. aiq/retriever/interface.py +0 -37
  352. aiq/retriever/milvus/__init__.py +0 -14
  353. aiq/retriever/milvus/register.py +0 -81
  354. aiq/retriever/milvus/retriever.py +0 -228
  355. aiq/retriever/models.py +0 -74
  356. aiq/retriever/nemo_retriever/__init__.py +0 -14
  357. aiq/retriever/nemo_retriever/register.py +0 -60
  358. aiq/retriever/nemo_retriever/retriever.py +0 -190
  359. aiq/retriever/register.py +0 -22
  360. aiq/runtime/__init__.py +0 -14
  361. aiq/runtime/loader.py +0 -215
  362. aiq/runtime/runner.py +0 -190
  363. aiq/runtime/session.py +0 -158
  364. aiq/runtime/user_metadata.py +0 -130
  365. aiq/settings/__init__.py +0 -0
  366. aiq/settings/global_settings.py +0 -318
  367. aiq/test/.namespace +0 -1
  368. aiq/tool/__init__.py +0 -0
  369. aiq/tool/chat_completion.py +0 -74
  370. aiq/tool/code_execution/README.md +0 -151
  371. aiq/tool/code_execution/__init__.py +0 -0
  372. aiq/tool/code_execution/code_sandbox.py +0 -267
  373. aiq/tool/code_execution/local_sandbox/.gitignore +0 -1
  374. aiq/tool/code_execution/local_sandbox/Dockerfile.sandbox +0 -60
  375. aiq/tool/code_execution/local_sandbox/__init__.py +0 -13
  376. aiq/tool/code_execution/local_sandbox/local_sandbox_server.py +0 -198
  377. aiq/tool/code_execution/local_sandbox/sandbox.requirements.txt +0 -6
  378. aiq/tool/code_execution/local_sandbox/start_local_sandbox.sh +0 -50
  379. aiq/tool/code_execution/register.py +0 -74
  380. aiq/tool/code_execution/test_code_execution_sandbox.py +0 -414
  381. aiq/tool/code_execution/utils.py +0 -100
  382. aiq/tool/datetime_tools.py +0 -42
  383. aiq/tool/document_search.py +0 -141
  384. aiq/tool/github_tools/__init__.py +0 -0
  385. aiq/tool/github_tools/create_github_commit.py +0 -133
  386. aiq/tool/github_tools/create_github_issue.py +0 -87
  387. aiq/tool/github_tools/create_github_pr.py +0 -106
  388. aiq/tool/github_tools/get_github_file.py +0 -106
  389. aiq/tool/github_tools/get_github_issue.py +0 -166
  390. aiq/tool/github_tools/get_github_pr.py +0 -256
  391. aiq/tool/github_tools/update_github_issue.py +0 -100
  392. aiq/tool/mcp/__init__.py +0 -14
  393. aiq/tool/mcp/exceptions.py +0 -142
  394. aiq/tool/mcp/mcp_client.py +0 -255
  395. aiq/tool/mcp/mcp_tool.py +0 -96
  396. aiq/tool/memory_tools/__init__.py +0 -0
  397. aiq/tool/memory_tools/add_memory_tool.py +0 -79
  398. aiq/tool/memory_tools/delete_memory_tool.py +0 -67
  399. aiq/tool/memory_tools/get_memory_tool.py +0 -72
  400. aiq/tool/nvidia_rag.py +0 -95
  401. aiq/tool/register.py +0 -38
  402. aiq/tool/retriever.py +0 -89
  403. aiq/tool/server_tools.py +0 -66
  404. aiq/utils/__init__.py +0 -0
  405. aiq/utils/data_models/__init__.py +0 -0
  406. aiq/utils/data_models/schema_validator.py +0 -58
  407. aiq/utils/debugging_utils.py +0 -43
  408. aiq/utils/dump_distro_mapping.py +0 -32
  409. aiq/utils/exception_handlers/__init__.py +0 -0
  410. aiq/utils/exception_handlers/automatic_retries.py +0 -289
  411. aiq/utils/exception_handlers/mcp.py +0 -211
  412. aiq/utils/exception_handlers/schemas.py +0 -114
  413. aiq/utils/io/__init__.py +0 -0
  414. aiq/utils/io/model_processing.py +0 -28
  415. aiq/utils/io/yaml_tools.py +0 -119
  416. aiq/utils/log_utils.py +0 -37
  417. aiq/utils/metadata_utils.py +0 -74
  418. aiq/utils/optional_imports.py +0 -142
  419. aiq/utils/producer_consumer_queue.py +0 -178
  420. aiq/utils/reactive/__init__.py +0 -0
  421. aiq/utils/reactive/base/__init__.py +0 -0
  422. aiq/utils/reactive/base/observable_base.py +0 -65
  423. aiq/utils/reactive/base/observer_base.py +0 -55
  424. aiq/utils/reactive/base/subject_base.py +0 -79
  425. aiq/utils/reactive/observable.py +0 -59
  426. aiq/utils/reactive/observer.py +0 -76
  427. aiq/utils/reactive/subject.py +0 -131
  428. aiq/utils/reactive/subscription.py +0 -49
  429. aiq/utils/settings/__init__.py +0 -0
  430. aiq/utils/settings/global_settings.py +0 -197
  431. aiq/utils/string_utils.py +0 -38
  432. aiq/utils/type_converter.py +0 -290
  433. aiq/utils/type_utils.py +0 -484
  434. aiq/utils/url_utils.py +0 -27
  435. aiqtoolkit-1.2.0rc4.dist-info/METADATA +0 -363
  436. aiqtoolkit-1.2.0rc4.dist-info/RECORD +0 -438
  437. aiqtoolkit-1.2.0rc4.dist-info/entry_points.txt +0 -20
  438. aiqtoolkit-1.2.0rc4.dist-info/licenses/LICENSE-3rd-party.txt +0 -3686
  439. aiqtoolkit-1.2.0rc4.dist-info/licenses/LICENSE.md +0 -201
  440. aiqtoolkit-1.2.0rc4.dist-info/top_level.txt +0 -1
  441. {aiqtoolkit-1.2.0rc4.dist-info → aiqtoolkit-1.2.0rc5.dist-info}/WHEEL +0 -0
@@ -1,246 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import re
17
- import typing
18
- from enum import Enum
19
-
20
- from pydantic import BaseModel
21
- from pydantic import Discriminator
22
- from pydantic import Field
23
- from pydantic import field_validator
24
-
25
-
26
- class HumanPromptModelType(str, Enum):
27
- """
28
- Represents the type of an interaction model.
29
- """
30
- TEXT = "text"
31
- NOTIFICATION = "notification"
32
- BINARY_CHOICE = "binary_choice"
33
- RADIO = "radio"
34
- CHECKBOX = "checkbox"
35
- DROPDOWN = "dropdown"
36
- OAUTH_CONSENT = "oauth_consent"
37
-
38
-
39
- class BinaryChoiceOptionsType(str, Enum):
40
- """
41
- Represents the types of system interaction binary choice content
42
- """
43
- CONTINUE = "continue"
44
- CANCEL = "cancel"
45
-
46
-
47
- class MultipleChoiceOptionType(str, Enum):
48
- """
49
- Represents the types of system interaction multiple choice content
50
- """
51
- EMAIL = "email"
52
- SMS = "sms"
53
- PUSH = "push"
54
-
55
-
56
- class BinaryHumanPromptOption(BaseModel):
57
- """
58
- Represents a choice for a binary interaction.
59
- """
60
- id: str = Field(default="default", description="The ID of the choice.")
61
- label: str = Field(default="default", description="Label of the choice")
62
- value: typing.Any = Field(default="default", description="The value of the choice.")
63
-
64
-
65
- class MultipleChoiceOption(BaseModel):
66
- id: str = Field(default="default", description="The ID of the choice.")
67
- label: str = Field(default="default", description="The label for the multiple choice interaction.")
68
- value: str = Field(default="default", description="The value for the multiple choice interaction.")
69
- description: str = Field(default="default", description="The description for the multiple choice interaction.")
70
-
71
-
72
- class HumanResponseText(BaseModel):
73
- """
74
- Represents a text response to an interaction.
75
- """
76
- type: typing.Literal[HumanPromptModelType.TEXT] = HumanPromptModelType.TEXT
77
- text: str = Field(description="The text of the response.")
78
-
79
-
80
- class HumanResponseNotification(BaseModel):
81
- """
82
- Represents a notification response to an interaction.
83
- """
84
- type: typing.Literal[HumanPromptModelType.NOTIFICATION] = HumanPromptModelType.NOTIFICATION
85
- text: str = Field(default="Notification acknowledgement.", description="Default notification response text.")
86
-
87
-
88
- class HumanResponseBinary(BaseModel):
89
- """
90
- Represents a binary response to an interaction.
91
- """
92
- type: typing.Literal[HumanPromptModelType.BINARY_CHOICE] = HumanPromptModelType.BINARY_CHOICE
93
- selected_option: BinaryHumanPromptOption = Field(description="The selected binary response.")
94
-
95
-
96
- class HumanResponseRadio(BaseModel):
97
- """
98
- Represents a multiple choice radio response to an interaction.
99
- """
100
- type: typing.Literal[HumanPromptModelType.RADIO] = HumanPromptModelType.RADIO
101
- selected_option: MultipleChoiceOption = Field(description="The selected multiple choice radio response.")
102
-
103
-
104
- class HumanResponseCheckbox(BaseModel):
105
- """
106
- Represents a multiple choice checkbox response to an interaction.
107
- """
108
- type: typing.Literal[HumanPromptModelType.CHECKBOX] = HumanPromptModelType.CHECKBOX
109
- selected_option: MultipleChoiceOption = Field(description="The selected multiple choice checkbox response.")
110
-
111
-
112
- class HumanResponseDropdown(BaseModel):
113
- """
114
- Represents a multiple choice dropdown response to an interaction.
115
- """
116
- type: typing.Literal[HumanPromptModelType.DROPDOWN] = HumanPromptModelType.DROPDOWN
117
- selected_option: MultipleChoiceOption = Field(description="The selected multiple choice dropdown response.")
118
-
119
-
120
- HumanResponse = typing.Annotated[HumanResponseText | HumanResponseBinary | HumanResponseNotification
121
- | HumanResponseRadio | HumanResponseCheckbox
122
- | HumanResponseDropdown,
123
- Discriminator("type")]
124
-
125
-
126
- class HumanPromptBase(BaseModel):
127
- """
128
- Base interaction model to derive from
129
- """
130
- text: str = Field(description="Text prompt that will be displayed to the user.")
131
-
132
-
133
- class HumanPromptText(HumanPromptBase):
134
- """
135
- Represents a text interaction.
136
- """
137
- input_type: typing.Literal[HumanPromptModelType.TEXT] = HumanPromptModelType.TEXT
138
- placeholder: str | None = Field(description="The placeholder for the text.")
139
- required: bool = Field(default=True, description="Whether the interaction is required.")
140
-
141
-
142
- class HumanPromptNotification(HumanPromptBase):
143
- """
144
- Represents a notification interaction.
145
- """
146
- input_type: typing.Literal[HumanPromptModelType.NOTIFICATION] = HumanPromptModelType.NOTIFICATION
147
-
148
-
149
- class _HumanPromptOAuthConsent(HumanPromptBase):
150
- """
151
- Represents an OAuth consent prompt interaction used to notify the UI to open the authentication page for completing
152
- the consent flow.
153
- """
154
- input_type: typing.Literal[HumanPromptModelType.OAUTH_CONSENT] = HumanPromptModelType.OAUTH_CONSENT
155
-
156
-
157
- class HumanPromptBinary(HumanPromptBase):
158
- """
159
- Represents a binary interaction.
160
- """
161
- input_type: typing.Literal[HumanPromptModelType.BINARY_CHOICE] = HumanPromptModelType.BINARY_CHOICE
162
- options: list[BinaryHumanPromptOption] = Field(description="The options for the binary interaction.")
163
-
164
- # Field validator to make sure len(options) == 2
165
- @field_validator("options", mode="before")
166
- @classmethod
167
- def validate_options(cls, options):
168
- if len(options) != 2:
169
- raise ValueError("Binary interactions must have exactly two options.")
170
- return options
171
-
172
-
173
- class HumanPromptMultipleChoiceBase(HumanPromptBase):
174
- """
175
- Represents a multiple choice interaction.
176
- """
177
- options: list[MultipleChoiceOption] = Field(description="The options for the multiple choice interaction.")
178
-
179
-
180
- class HumanPromptRadio(HumanPromptMultipleChoiceBase):
181
- """
182
- Represents a radio interaction.
183
- """
184
- input_type: typing.Literal[HumanPromptModelType.RADIO] = HumanPromptModelType.RADIO
185
-
186
-
187
- class HumanPromptCheckbox(HumanPromptMultipleChoiceBase):
188
- """
189
- Represents a checkbox interaction.
190
- """
191
- input_type: typing.Literal[HumanPromptModelType.CHECKBOX] = HumanPromptModelType.CHECKBOX
192
-
193
-
194
- class HumanPromptDropdown(HumanPromptMultipleChoiceBase):
195
- """
196
- Represents a dropdown interaction.
197
- """
198
- input_type: typing.Literal[HumanPromptModelType.DROPDOWN] = HumanPromptModelType.DROPDOWN
199
-
200
-
201
- HumanPrompt = typing.Annotated[HumanPromptText | HumanPromptNotification | HumanPromptBinary | HumanPromptRadio
202
- | HumanPromptCheckbox | HumanPromptDropdown | _HumanPromptOAuthConsent,
203
- Discriminator("input_type")]
204
-
205
-
206
- class InteractionStatus(str, Enum):
207
- """
208
- Represents the status of an interaction.
209
- """
210
- PENDING = "pending"
211
- IN_PROGRESS = "in_progress"
212
- COMPLETED = "completed"
213
- FAILED = "failed"
214
-
215
-
216
- class InteractionBase(BaseModel):
217
- """
218
- Represents a system-human interaction.
219
- """
220
- id: str = Field(description="The ID of the interaction.")
221
- type: str = Field(default="system_human_interaction", description="The type of the interaction.")
222
- thread_id: str | None = Field(description="The thread ID of the interaction.", default=None)
223
- parent_id: str | None = Field(description="The parent ID of the interaction.", default=None)
224
- status: InteractionStatus = Field(description="The status of the interaction.", default=InteractionStatus.PENDING)
225
- timestamp: str = Field(description="The timestamp of the interaction.")
226
-
227
- @field_validator("timestamp", mode="before")
228
- @classmethod
229
- def validate_timestamp(cls, timestamp):
230
- if not re.match(r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z", timestamp):
231
- raise ValueError("Timestamp must be in the format 2025-01-13T10:00:03Z")
232
- return timestamp
233
-
234
-
235
- class InteractionPrompt(InteractionBase):
236
- """
237
- Represents a system-human interaction with a prompt.
238
- """
239
- content: HumanPrompt = Field(description="The content of the interaction.")
240
-
241
-
242
- class InteractionResponse(InteractionBase):
243
- """
244
- Represents a system-human interaction with a response.
245
- """
246
- content: HumanResponse = Field(description="The content of the interaction.")
@@ -1,302 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import time
17
- import typing
18
- import uuid
19
- from enum import Enum
20
- from typing import Literal
21
-
22
- from pydantic import BaseModel
23
- from pydantic import ConfigDict
24
- from pydantic import Field
25
- from pydantic import model_validator
26
-
27
- from aiq.builder.framework_enum import LLMFrameworkEnum
28
- from aiq.data_models.invocation_node import InvocationNode
29
- from aiq.profiler.callbacks.token_usage_base_model import TokenUsageBaseModel
30
-
31
-
32
- class IntermediateStepCategory(str, Enum):
33
- LLM = "LLM"
34
- TOOL = "TOOL"
35
- WORKFLOW = "WORKFLOW"
36
- TASK = "TASK"
37
- FUNCTION = "FUNCTION"
38
- CUSTOM = "CUSTOM"
39
- SPAN = "SPAN"
40
-
41
-
42
- class IntermediateStepType(str, Enum):
43
- LLM_START = "LLM_START"
44
- LLM_END = "LLM_END"
45
- LLM_NEW_TOKEN = "LLM_NEW_TOKEN"
46
- TOOL_START = "TOOL_START"
47
- TOOL_END = "TOOL_END"
48
- WORKFLOW_START = "WORKFLOW_START"
49
- WORKFLOW_END = "WORKFLOW_END"
50
- TASK_START = "TASK_START"
51
- TASK_END = "TASK_END"
52
- FUNCTION_START = "FUNCTION_START"
53
- FUNCTION_END = "FUNCTION_END"
54
- CUSTOM_START = "CUSTOM_START"
55
- CUSTOM_END = "CUSTOM_END"
56
- SPAN_START = "SPAN_START"
57
- SPAN_CHUNK = "SPAN_CHUNK"
58
- SPAN_END = "SPAN_END"
59
-
60
-
61
- class IntermediateStepState(str, Enum):
62
- START = "START"
63
- CHUNK = "CHUNK"
64
- END = "END"
65
-
66
-
67
- class StreamEventData(BaseModel):
68
- """
69
- AIQStreamEventData is a data model that represents the data field in an streaming event.
70
- """
71
-
72
- # Allow extra fields in the model_config to support derived models
73
- model_config = ConfigDict(extra="allow")
74
-
75
- input: typing.Any | None = None
76
- output: typing.Any | None = None
77
- chunk: typing.Any | None = None
78
-
79
-
80
- class UsageInfo(BaseModel):
81
- token_usage: TokenUsageBaseModel = TokenUsageBaseModel()
82
- num_llm_calls: int = 0
83
- seconds_between_calls: int = 0
84
-
85
-
86
- class ToolParameters(BaseModel):
87
- properties: dict[str, typing.Any] = Field(..., description="The properties of the function parameters.")
88
- required: list[str] = Field(default_factory=list, description="The required properties of the function parameters.")
89
- type_: Literal["object"] = Field(default="object", description="The type of the function parameters.", alias="type")
90
- additionalProperties: bool = Field(default=False,
91
- description="Enable function parameters allow additional properties.")
92
- strict: bool = Field(default=True, description="Ensure function calls reliably adhere to the function schema.")
93
-
94
-
95
- class ToolDetails(BaseModel):
96
- name: str = Field(..., description="The name of the function.")
97
- description: str = Field(..., description="The description of the function.")
98
- parameters: ToolParameters = Field(..., description="The parameters of the function.")
99
-
100
-
101
- class ToolSchema(BaseModel):
102
- type: Literal["function"] = Field(..., description="The type of the tool.")
103
- function: ToolDetails = Field(..., description="The function details.")
104
-
105
-
106
- class TraceMetadata(BaseModel):
107
- chat_responses: typing.Any | None = None
108
- chat_inputs: typing.Any | None = None
109
- tool_inputs: typing.Any | None = None
110
- tool_outputs: typing.Any | None = None
111
- tool_info: typing.Any | None = None
112
- span_inputs: typing.Any | None = None
113
- span_outputs: typing.Any | None = None
114
- provided_metadata: typing.Any | None = None
115
- tools_schema: list[ToolSchema] = Field(default_factory=list,
116
- description="The schema of tools used in a tool calling request.")
117
-
118
- # Allow extra fields in the model_config to support derived models
119
- model_config = ConfigDict(extra="allow")
120
-
121
-
122
- class IntermediateStepPayload(BaseModel):
123
- """
124
- AIQIntermediateStep is a data model that represents an intermediate step in the AIQ Toolkit. Intermediate steps are
125
- captured while a request is running and can be used to show progress or to evaluate the path a workflow took to get
126
- a response.
127
- """
128
-
129
- # Allow extra fields in the model_config to support derived models
130
- model_config = ConfigDict(extra="allow")
131
-
132
- event_type: IntermediateStepType
133
- # Create an event timestamp field with the default being a lambda that returns the current time
134
- event_timestamp: float = Field(default_factory=lambda: time.time())
135
- span_event_timestamp: float | None = None # Used for tracking the start time of a task if this is end
136
- framework: LLMFrameworkEnum | None = None
137
- name: str | None = None
138
- tags: list[str] | None = None
139
- metadata: dict[str, typing.Any] | TraceMetadata | None = None
140
- data: StreamEventData | None = None
141
- usage_info: UsageInfo | None = None
142
- UUID: str = Field(default_factory=lambda: str(uuid.uuid4()))
143
-
144
- @property
145
- def event_category(self) -> IntermediateStepCategory: # pylint: disable=too-many-return-statements
146
- match self.event_type:
147
- case IntermediateStepType.LLM_START:
148
- return IntermediateStepCategory.LLM
149
- case IntermediateStepType.LLM_END:
150
- return IntermediateStepCategory.LLM
151
- case IntermediateStepType.LLM_NEW_TOKEN:
152
- return IntermediateStepCategory.LLM
153
- case IntermediateStepType.TOOL_START:
154
- return IntermediateStepCategory.TOOL
155
- case IntermediateStepType.TOOL_END:
156
- return IntermediateStepCategory.TOOL
157
- case IntermediateStepType.WORKFLOW_START:
158
- return IntermediateStepCategory.WORKFLOW
159
- case IntermediateStepType.WORKFLOW_END:
160
- return IntermediateStepCategory.WORKFLOW
161
- case IntermediateStepType.TASK_START:
162
- return IntermediateStepCategory.TASK
163
- case IntermediateStepType.TASK_END:
164
- return IntermediateStepCategory.TASK
165
- case IntermediateStepType.FUNCTION_START:
166
- return IntermediateStepCategory.FUNCTION
167
- case IntermediateStepType.FUNCTION_END:
168
- return IntermediateStepCategory.FUNCTION
169
- case IntermediateStepType.CUSTOM_START:
170
- return IntermediateStepCategory.CUSTOM
171
- case IntermediateStepType.CUSTOM_END:
172
- return IntermediateStepCategory.CUSTOM
173
- case IntermediateStepType.SPAN_START:
174
- return IntermediateStepCategory.SPAN
175
- case IntermediateStepType.SPAN_CHUNK:
176
- return IntermediateStepCategory.SPAN
177
- case IntermediateStepType.SPAN_END:
178
- return IntermediateStepCategory.SPAN
179
- case _:
180
- raise ValueError(f"Unknown event type: {self.event_type}")
181
-
182
- @property
183
- def event_state(self) -> IntermediateStepState: # pylint: disable=too-many-return-statements
184
- match self.event_type:
185
- case IntermediateStepType.LLM_START:
186
- return IntermediateStepState.START
187
- case IntermediateStepType.LLM_END:
188
- return IntermediateStepState.END
189
- case IntermediateStepType.LLM_NEW_TOKEN:
190
- return IntermediateStepState.CHUNK
191
- case IntermediateStepType.TOOL_START:
192
- return IntermediateStepState.START
193
- case IntermediateStepType.TOOL_END:
194
- return IntermediateStepState.END
195
- case IntermediateStepType.WORKFLOW_START:
196
- return IntermediateStepState.START
197
- case IntermediateStepType.WORKFLOW_END:
198
- return IntermediateStepState.END
199
- case IntermediateStepType.TASK_START:
200
- return IntermediateStepState.START
201
- case IntermediateStepType.TASK_END:
202
- return IntermediateStepState.END
203
- case IntermediateStepType.FUNCTION_START:
204
- return IntermediateStepState.START
205
- case IntermediateStepType.FUNCTION_END:
206
- return IntermediateStepState.END
207
- case IntermediateStepType.CUSTOM_START:
208
- return IntermediateStepState.START
209
- case IntermediateStepType.CUSTOM_END:
210
- return IntermediateStepState.END
211
- case IntermediateStepType.SPAN_START:
212
- return IntermediateStepState.START
213
- case IntermediateStepType.SPAN_CHUNK:
214
- return IntermediateStepState.CHUNK
215
- case IntermediateStepType.SPAN_END:
216
- return IntermediateStepState.END
217
- case _:
218
- raise ValueError(f"Unknown event type: {self.event_type}")
219
-
220
- @model_validator(mode="after")
221
- def check_span_event_timestamp(self) -> "IntermediateStepPayload":
222
- if self.event_state != IntermediateStepState.END and self.span_event_timestamp is not None:
223
- raise ValueError("span_event_timestamp can only be provided for events with an END state")
224
- return self
225
-
226
-
227
- class IntermediateStep(BaseModel):
228
- """
229
- AIQIntermediateStep is a data model that represents an intermediate step in the AIQ Toolkit. Intermediate steps are
230
- captured while a request is running and can be used to show progress or to evaluate the path a workflow took to get
231
- a response.
232
- """
233
-
234
- # Allow extra fields in the model_config to support derived models
235
- model_config = ConfigDict(extra="forbid")
236
-
237
- parent_id: str
238
- """
239
- The parent step ID for the current step. The parent ID is the ID of the last START step which has a different UUID
240
- than the current step. This value is different from the function_ancestry.parent_id value which tracks the last
241
- parent FUNCTION step. For the first START step, the parent_id is 'root'.
242
- """
243
-
244
- function_ancestry: InvocationNode
245
- """
246
- The function ancestry for the current step showing the current AIQ function that was being executed when the step
247
- was created.
248
- """
249
-
250
- payload: IntermediateStepPayload
251
- """
252
- The payload for the current step.
253
- """
254
-
255
- # ===== Payload Properties =====
256
- @property
257
- def event_type(self) -> IntermediateStepType:
258
- return self.payload.event_type
259
-
260
- @property
261
- def event_timestamp(self) -> float:
262
- return self.payload.event_timestamp
263
-
264
- @property
265
- def span_event_timestamp(self) -> float | None:
266
- return self.payload.span_event_timestamp
267
-
268
- @property
269
- def framework(self) -> LLMFrameworkEnum | None:
270
- return self.payload.framework
271
-
272
- @property
273
- def name(self) -> str | None:
274
- return self.payload.name
275
-
276
- @property
277
- def tags(self) -> list[str] | None:
278
- return self.payload.tags
279
-
280
- @property
281
- def metadata(self) -> dict[str, typing.Any] | TraceMetadata | None:
282
- return self.payload.metadata
283
-
284
- @property
285
- def data(self) -> StreamEventData | None:
286
- return self.payload.data
287
-
288
- @property
289
- def usage_info(self) -> UsageInfo | None:
290
- return self.payload.usage_info
291
-
292
- @property
293
- def UUID(self) -> str: # pylint: disable=invalid-name
294
- return self.payload.UUID
295
-
296
- @property
297
- def event_category(self) -> IntermediateStepCategory:
298
- return self.payload.event_category
299
-
300
- @property
301
- def event_state(self) -> IntermediateStepState:
302
- return self.payload.event_state
@@ -1,38 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from pydantic import BaseModel
17
-
18
-
19
- class InvocationNode(BaseModel):
20
- """
21
- Represents a node in an invocation call graph.
22
-
23
- The InvocationNode class encapsulates the details of a specific function
24
- invocation within a call graph. It stores the unique identifier of the
25
- invocation, the function name, and optional details about the parent
26
- node (if any). This class is useful for tracing the execution flow
27
- in a system or application.
28
-
29
- Attributes:
30
- function_id (str): Unique identifier for the function invocation.
31
- function_name (str): Name of the function invoked.
32
- parent_id (str | None): Unique identifier of the parent invocation, if applicable. Defaults to None.
33
- parent_name (str | None): Name of the parent function invoked, if applicable. Defaults to None.
34
- """
35
- function_id: str
36
- function_name: str
37
- parent_id: str | None = None
38
- parent_name: str | None = None
@@ -1,30 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import typing
17
-
18
- from .common import BaseModelRegistryTag
19
- from .common import TypedBaseModel
20
-
21
-
22
- class ITSStrategyBaseConfig(TypedBaseModel, BaseModelRegistryTag):
23
- """
24
- Base configuration class for Inference Time Scaling (ITS) strategy.
25
- This class is used to define the structure of ITS strategy configurations.
26
- """
27
- pass
28
-
29
-
30
- ITSStrategyBaseConfigT = typing.TypeVar("ITSStrategyBaseConfigT", bound=ITSStrategyBaseConfig)
aiq/data_models/llm.py DELETED
@@ -1,27 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import typing
17
-
18
- from .common import BaseModelRegistryTag
19
- from .common import TypedBaseModel
20
-
21
-
22
- class LLMBaseConfig(TypedBaseModel, BaseModelRegistryTag):
23
- """Base configuration for LLM providers."""
24
- pass
25
-
26
-
27
- LLMBaseConfigT = typing.TypeVar("LLMBaseConfigT", bound=LLMBaseConfig)
@@ -1,26 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import typing
17
-
18
- from .common import BaseModelRegistryTag
19
- from .common import TypedBaseModel
20
-
21
-
22
- class LoggingBaseConfig(TypedBaseModel, BaseModelRegistryTag):
23
- pass
24
-
25
-
26
- LoggingMethodConfigT = typing.TypeVar("LoggingMethodConfigT", bound=LoggingBaseConfig)