nvidia-nat 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.
- aiq/agent/__init__.py +0 -0
- aiq/agent/base.py +239 -0
- aiq/agent/dual_node.py +67 -0
- aiq/agent/react_agent/__init__.py +0 -0
- aiq/agent/react_agent/agent.py +355 -0
- aiq/agent/react_agent/output_parser.py +104 -0
- aiq/agent/react_agent/prompt.py +41 -0
- aiq/agent/react_agent/register.py +149 -0
- aiq/agent/reasoning_agent/__init__.py +0 -0
- aiq/agent/reasoning_agent/reasoning_agent.py +225 -0
- aiq/agent/register.py +23 -0
- aiq/agent/rewoo_agent/__init__.py +0 -0
- aiq/agent/rewoo_agent/agent.py +411 -0
- aiq/agent/rewoo_agent/prompt.py +108 -0
- aiq/agent/rewoo_agent/register.py +158 -0
- aiq/agent/tool_calling_agent/__init__.py +0 -0
- aiq/agent/tool_calling_agent/agent.py +119 -0
- aiq/agent/tool_calling_agent/register.py +106 -0
- aiq/authentication/__init__.py +14 -0
- aiq/authentication/api_key/__init__.py +14 -0
- aiq/authentication/api_key/api_key_auth_provider.py +96 -0
- aiq/authentication/api_key/api_key_auth_provider_config.py +124 -0
- aiq/authentication/api_key/register.py +26 -0
- aiq/authentication/exceptions/__init__.py +14 -0
- aiq/authentication/exceptions/api_key_exceptions.py +38 -0
- aiq/authentication/http_basic_auth/__init__.py +0 -0
- aiq/authentication/http_basic_auth/http_basic_auth_provider.py +81 -0
- aiq/authentication/http_basic_auth/register.py +30 -0
- aiq/authentication/interfaces.py +93 -0
- aiq/authentication/oauth2/__init__.py +14 -0
- aiq/authentication/oauth2/oauth2_auth_code_flow_provider.py +107 -0
- aiq/authentication/oauth2/oauth2_auth_code_flow_provider_config.py +39 -0
- aiq/authentication/oauth2/register.py +25 -0
- aiq/authentication/register.py +21 -0
- aiq/builder/__init__.py +0 -0
- aiq/builder/builder.py +285 -0
- aiq/builder/component_utils.py +316 -0
- aiq/builder/context.py +264 -0
- aiq/builder/embedder.py +24 -0
- aiq/builder/eval_builder.py +161 -0
- aiq/builder/evaluator.py +29 -0
- aiq/builder/framework_enum.py +24 -0
- aiq/builder/front_end.py +73 -0
- aiq/builder/function.py +344 -0
- aiq/builder/function_base.py +380 -0
- aiq/builder/function_info.py +627 -0
- aiq/builder/intermediate_step_manager.py +174 -0
- aiq/builder/llm.py +25 -0
- aiq/builder/retriever.py +25 -0
- aiq/builder/user_interaction_manager.py +74 -0
- aiq/builder/workflow.py +148 -0
- aiq/builder/workflow_builder.py +1117 -0
- aiq/cli/__init__.py +14 -0
- aiq/cli/cli_utils/__init__.py +0 -0
- aiq/cli/cli_utils/config_override.py +231 -0
- aiq/cli/cli_utils/validation.py +37 -0
- aiq/cli/commands/__init__.py +0 -0
- aiq/cli/commands/configure/__init__.py +0 -0
- aiq/cli/commands/configure/channel/__init__.py +0 -0
- aiq/cli/commands/configure/channel/add.py +28 -0
- aiq/cli/commands/configure/channel/channel.py +36 -0
- aiq/cli/commands/configure/channel/remove.py +30 -0
- aiq/cli/commands/configure/channel/update.py +30 -0
- aiq/cli/commands/configure/configure.py +33 -0
- aiq/cli/commands/evaluate.py +139 -0
- aiq/cli/commands/info/__init__.py +14 -0
- aiq/cli/commands/info/info.py +39 -0
- aiq/cli/commands/info/list_channels.py +32 -0
- aiq/cli/commands/info/list_components.py +129 -0
- aiq/cli/commands/info/list_mcp.py +213 -0
- aiq/cli/commands/registry/__init__.py +14 -0
- aiq/cli/commands/registry/publish.py +88 -0
- aiq/cli/commands/registry/pull.py +118 -0
- aiq/cli/commands/registry/registry.py +38 -0
- aiq/cli/commands/registry/remove.py +108 -0
- aiq/cli/commands/registry/search.py +155 -0
- aiq/cli/commands/sizing/__init__.py +14 -0
- aiq/cli/commands/sizing/calc.py +297 -0
- aiq/cli/commands/sizing/sizing.py +27 -0
- aiq/cli/commands/start.py +246 -0
- aiq/cli/commands/uninstall.py +81 -0
- aiq/cli/commands/validate.py +47 -0
- aiq/cli/commands/workflow/__init__.py +14 -0
- aiq/cli/commands/workflow/templates/__init__.py.j2 +0 -0
- aiq/cli/commands/workflow/templates/config.yml.j2 +16 -0
- aiq/cli/commands/workflow/templates/pyproject.toml.j2 +22 -0
- aiq/cli/commands/workflow/templates/register.py.j2 +5 -0
- aiq/cli/commands/workflow/templates/workflow.py.j2 +36 -0
- aiq/cli/commands/workflow/workflow.py +37 -0
- aiq/cli/commands/workflow/workflow_commands.py +313 -0
- aiq/cli/entrypoint.py +135 -0
- aiq/cli/main.py +44 -0
- aiq/cli/register_workflow.py +488 -0
- aiq/cli/type_registry.py +1000 -0
- aiq/data_models/__init__.py +14 -0
- aiq/data_models/api_server.py +694 -0
- aiq/data_models/authentication.py +231 -0
- aiq/data_models/common.py +171 -0
- aiq/data_models/component.py +54 -0
- aiq/data_models/component_ref.py +168 -0
- aiq/data_models/config.py +406 -0
- aiq/data_models/dataset_handler.py +123 -0
- aiq/data_models/discovery_metadata.py +335 -0
- aiq/data_models/embedder.py +27 -0
- aiq/data_models/evaluate.py +127 -0
- aiq/data_models/evaluator.py +26 -0
- aiq/data_models/front_end.py +26 -0
- aiq/data_models/function.py +30 -0
- aiq/data_models/function_dependencies.py +72 -0
- aiq/data_models/interactive.py +246 -0
- aiq/data_models/intermediate_step.py +302 -0
- aiq/data_models/invocation_node.py +38 -0
- aiq/data_models/llm.py +27 -0
- aiq/data_models/logging.py +26 -0
- aiq/data_models/memory.py +27 -0
- aiq/data_models/object_store.py +44 -0
- aiq/data_models/profiler.py +54 -0
- aiq/data_models/registry_handler.py +26 -0
- aiq/data_models/retriever.py +30 -0
- aiq/data_models/retry_mixin.py +35 -0
- aiq/data_models/span.py +187 -0
- aiq/data_models/step_adaptor.py +64 -0
- aiq/data_models/streaming.py +33 -0
- aiq/data_models/swe_bench_model.py +54 -0
- aiq/data_models/telemetry_exporter.py +26 -0
- aiq/data_models/ttc_strategy.py +30 -0
- aiq/embedder/__init__.py +0 -0
- aiq/embedder/langchain_client.py +41 -0
- aiq/embedder/nim_embedder.py +59 -0
- aiq/embedder/openai_embedder.py +43 -0
- aiq/embedder/register.py +24 -0
- aiq/eval/__init__.py +14 -0
- aiq/eval/config.py +60 -0
- aiq/eval/dataset_handler/__init__.py +0 -0
- aiq/eval/dataset_handler/dataset_downloader.py +106 -0
- aiq/eval/dataset_handler/dataset_filter.py +52 -0
- aiq/eval/dataset_handler/dataset_handler.py +254 -0
- aiq/eval/evaluate.py +506 -0
- aiq/eval/evaluator/__init__.py +14 -0
- aiq/eval/evaluator/base_evaluator.py +73 -0
- aiq/eval/evaluator/evaluator_model.py +45 -0
- aiq/eval/intermediate_step_adapter.py +99 -0
- aiq/eval/rag_evaluator/__init__.py +0 -0
- aiq/eval/rag_evaluator/evaluate.py +178 -0
- aiq/eval/rag_evaluator/register.py +143 -0
- aiq/eval/register.py +23 -0
- aiq/eval/remote_workflow.py +133 -0
- aiq/eval/runners/__init__.py +14 -0
- aiq/eval/runners/config.py +39 -0
- aiq/eval/runners/multi_eval_runner.py +54 -0
- aiq/eval/runtime_event_subscriber.py +52 -0
- aiq/eval/swe_bench_evaluator/__init__.py +0 -0
- aiq/eval/swe_bench_evaluator/evaluate.py +215 -0
- aiq/eval/swe_bench_evaluator/register.py +36 -0
- aiq/eval/trajectory_evaluator/__init__.py +0 -0
- aiq/eval/trajectory_evaluator/evaluate.py +75 -0
- aiq/eval/trajectory_evaluator/register.py +40 -0
- aiq/eval/tunable_rag_evaluator/__init__.py +0 -0
- aiq/eval/tunable_rag_evaluator/evaluate.py +245 -0
- aiq/eval/tunable_rag_evaluator/register.py +52 -0
- aiq/eval/usage_stats.py +41 -0
- aiq/eval/utils/__init__.py +0 -0
- aiq/eval/utils/output_uploader.py +140 -0
- aiq/eval/utils/tqdm_position_registry.py +40 -0
- aiq/eval/utils/weave_eval.py +184 -0
- aiq/experimental/__init__.py +0 -0
- aiq/experimental/decorators/__init__.py +0 -0
- aiq/experimental/decorators/experimental_warning_decorator.py +130 -0
- aiq/experimental/test_time_compute/__init__.py +0 -0
- aiq/experimental/test_time_compute/editing/__init__.py +0 -0
- aiq/experimental/test_time_compute/editing/iterative_plan_refinement_editor.py +147 -0
- aiq/experimental/test_time_compute/editing/llm_as_a_judge_editor.py +204 -0
- aiq/experimental/test_time_compute/editing/motivation_aware_summarization.py +107 -0
- aiq/experimental/test_time_compute/functions/__init__.py +0 -0
- aiq/experimental/test_time_compute/functions/execute_score_select_function.py +105 -0
- aiq/experimental/test_time_compute/functions/its_tool_orchestration_function.py +205 -0
- aiq/experimental/test_time_compute/functions/its_tool_wrapper_function.py +146 -0
- aiq/experimental/test_time_compute/functions/plan_select_execute_function.py +224 -0
- aiq/experimental/test_time_compute/models/__init__.py +0 -0
- aiq/experimental/test_time_compute/models/editor_config.py +132 -0
- aiq/experimental/test_time_compute/models/scoring_config.py +112 -0
- aiq/experimental/test_time_compute/models/search_config.py +120 -0
- aiq/experimental/test_time_compute/models/selection_config.py +154 -0
- aiq/experimental/test_time_compute/models/stage_enums.py +43 -0
- aiq/experimental/test_time_compute/models/strategy_base.py +66 -0
- aiq/experimental/test_time_compute/models/tool_use_config.py +41 -0
- aiq/experimental/test_time_compute/models/ttc_item.py +48 -0
- aiq/experimental/test_time_compute/register.py +36 -0
- aiq/experimental/test_time_compute/scoring/__init__.py +0 -0
- aiq/experimental/test_time_compute/scoring/llm_based_agent_scorer.py +168 -0
- aiq/experimental/test_time_compute/scoring/llm_based_plan_scorer.py +168 -0
- aiq/experimental/test_time_compute/scoring/motivation_aware_scorer.py +111 -0
- aiq/experimental/test_time_compute/search/__init__.py +0 -0
- aiq/experimental/test_time_compute/search/multi_llm_planner.py +128 -0
- aiq/experimental/test_time_compute/search/multi_query_retrieval_search.py +122 -0
- aiq/experimental/test_time_compute/search/single_shot_multi_plan_planner.py +128 -0
- aiq/experimental/test_time_compute/selection/__init__.py +0 -0
- aiq/experimental/test_time_compute/selection/best_of_n_selector.py +63 -0
- aiq/experimental/test_time_compute/selection/llm_based_agent_output_selector.py +131 -0
- aiq/experimental/test_time_compute/selection/llm_based_output_merging_selector.py +159 -0
- aiq/experimental/test_time_compute/selection/llm_based_plan_selector.py +128 -0
- aiq/experimental/test_time_compute/selection/threshold_selector.py +58 -0
- aiq/front_ends/__init__.py +14 -0
- aiq/front_ends/console/__init__.py +14 -0
- aiq/front_ends/console/authentication_flow_handler.py +233 -0
- aiq/front_ends/console/console_front_end_config.py +32 -0
- aiq/front_ends/console/console_front_end_plugin.py +96 -0
- aiq/front_ends/console/register.py +25 -0
- aiq/front_ends/cron/__init__.py +14 -0
- aiq/front_ends/fastapi/__init__.py +14 -0
- aiq/front_ends/fastapi/auth_flow_handlers/__init__.py +0 -0
- aiq/front_ends/fastapi/auth_flow_handlers/http_flow_handler.py +27 -0
- aiq/front_ends/fastapi/auth_flow_handlers/websocket_flow_handler.py +107 -0
- aiq/front_ends/fastapi/fastapi_front_end_config.py +234 -0
- aiq/front_ends/fastapi/fastapi_front_end_controller.py +68 -0
- aiq/front_ends/fastapi/fastapi_front_end_plugin.py +116 -0
- aiq/front_ends/fastapi/fastapi_front_end_plugin_worker.py +1092 -0
- aiq/front_ends/fastapi/html_snippets/__init__.py +14 -0
- aiq/front_ends/fastapi/html_snippets/auth_code_grant_success.py +35 -0
- aiq/front_ends/fastapi/intermediate_steps_subscriber.py +80 -0
- aiq/front_ends/fastapi/job_store.py +183 -0
- aiq/front_ends/fastapi/main.py +72 -0
- aiq/front_ends/fastapi/message_handler.py +298 -0
- aiq/front_ends/fastapi/message_validator.py +345 -0
- aiq/front_ends/fastapi/register.py +25 -0
- aiq/front_ends/fastapi/response_helpers.py +195 -0
- aiq/front_ends/fastapi/step_adaptor.py +321 -0
- aiq/front_ends/mcp/__init__.py +14 -0
- aiq/front_ends/mcp/mcp_front_end_config.py +32 -0
- aiq/front_ends/mcp/mcp_front_end_plugin.py +93 -0
- aiq/front_ends/mcp/register.py +27 -0
- aiq/front_ends/mcp/tool_converter.py +242 -0
- aiq/front_ends/register.py +22 -0
- aiq/front_ends/simple_base/__init__.py +14 -0
- aiq/front_ends/simple_base/simple_front_end_plugin_base.py +54 -0
- aiq/llm/__init__.py +0 -0
- aiq/llm/aws_bedrock_llm.py +57 -0
- aiq/llm/nim_llm.py +46 -0
- aiq/llm/openai_llm.py +46 -0
- aiq/llm/register.py +23 -0
- aiq/llm/utils/__init__.py +14 -0
- aiq/llm/utils/env_config_value.py +94 -0
- aiq/llm/utils/error.py +17 -0
- aiq/memory/__init__.py +20 -0
- aiq/memory/interfaces.py +183 -0
- aiq/memory/models.py +112 -0
- aiq/meta/module_to_distro.json +3 -0
- aiq/meta/pypi.md +58 -0
- aiq/object_store/__init__.py +20 -0
- aiq/object_store/in_memory_object_store.py +76 -0
- aiq/object_store/interfaces.py +84 -0
- aiq/object_store/models.py +36 -0
- aiq/object_store/register.py +20 -0
- aiq/observability/__init__.py +14 -0
- aiq/observability/exporter/__init__.py +14 -0
- aiq/observability/exporter/base_exporter.py +449 -0
- aiq/observability/exporter/exporter.py +78 -0
- aiq/observability/exporter/file_exporter.py +33 -0
- aiq/observability/exporter/processing_exporter.py +322 -0
- aiq/observability/exporter/raw_exporter.py +52 -0
- aiq/observability/exporter/span_exporter.py +265 -0
- aiq/observability/exporter_manager.py +335 -0
- aiq/observability/mixin/__init__.py +14 -0
- aiq/observability/mixin/batch_config_mixin.py +26 -0
- aiq/observability/mixin/collector_config_mixin.py +23 -0
- aiq/observability/mixin/file_mixin.py +288 -0
- aiq/observability/mixin/file_mode.py +23 -0
- aiq/observability/mixin/resource_conflict_mixin.py +134 -0
- aiq/observability/mixin/serialize_mixin.py +61 -0
- aiq/observability/mixin/type_introspection_mixin.py +183 -0
- aiq/observability/processor/__init__.py +14 -0
- aiq/observability/processor/batching_processor.py +310 -0
- aiq/observability/processor/callback_processor.py +42 -0
- aiq/observability/processor/intermediate_step_serializer.py +28 -0
- aiq/observability/processor/processor.py +71 -0
- aiq/observability/register.py +96 -0
- aiq/observability/utils/__init__.py +14 -0
- aiq/observability/utils/dict_utils.py +236 -0
- aiq/observability/utils/time_utils.py +31 -0
- aiq/plugins/.namespace +1 -0
- aiq/profiler/__init__.py +0 -0
- aiq/profiler/calc/__init__.py +14 -0
- aiq/profiler/calc/calc_runner.py +627 -0
- aiq/profiler/calc/calculations.py +288 -0
- aiq/profiler/calc/data_models.py +188 -0
- aiq/profiler/calc/plot.py +345 -0
- aiq/profiler/callbacks/__init__.py +0 -0
- aiq/profiler/callbacks/agno_callback_handler.py +295 -0
- aiq/profiler/callbacks/base_callback_class.py +20 -0
- aiq/profiler/callbacks/langchain_callback_handler.py +290 -0
- aiq/profiler/callbacks/llama_index_callback_handler.py +205 -0
- aiq/profiler/callbacks/semantic_kernel_callback_handler.py +238 -0
- aiq/profiler/callbacks/token_usage_base_model.py +27 -0
- aiq/profiler/data_frame_row.py +51 -0
- aiq/profiler/data_models.py +24 -0
- aiq/profiler/decorators/__init__.py +0 -0
- aiq/profiler/decorators/framework_wrapper.py +131 -0
- aiq/profiler/decorators/function_tracking.py +254 -0
- aiq/profiler/forecasting/__init__.py +0 -0
- aiq/profiler/forecasting/config.py +18 -0
- aiq/profiler/forecasting/model_trainer.py +75 -0
- aiq/profiler/forecasting/models/__init__.py +22 -0
- aiq/profiler/forecasting/models/forecasting_base_model.py +40 -0
- aiq/profiler/forecasting/models/linear_model.py +196 -0
- aiq/profiler/forecasting/models/random_forest_regressor.py +268 -0
- aiq/profiler/inference_metrics_model.py +28 -0
- aiq/profiler/inference_optimization/__init__.py +0 -0
- aiq/profiler/inference_optimization/bottleneck_analysis/__init__.py +0 -0
- aiq/profiler/inference_optimization/bottleneck_analysis/nested_stack_analysis.py +460 -0
- aiq/profiler/inference_optimization/bottleneck_analysis/simple_stack_analysis.py +258 -0
- aiq/profiler/inference_optimization/data_models.py +386 -0
- aiq/profiler/inference_optimization/experimental/__init__.py +0 -0
- aiq/profiler/inference_optimization/experimental/concurrency_spike_analysis.py +468 -0
- aiq/profiler/inference_optimization/experimental/prefix_span_analysis.py +405 -0
- aiq/profiler/inference_optimization/llm_metrics.py +212 -0
- aiq/profiler/inference_optimization/prompt_caching.py +163 -0
- aiq/profiler/inference_optimization/token_uniqueness.py +107 -0
- aiq/profiler/inference_optimization/workflow_runtimes.py +72 -0
- aiq/profiler/intermediate_property_adapter.py +102 -0
- aiq/profiler/profile_runner.py +473 -0
- aiq/profiler/utils.py +184 -0
- aiq/registry_handlers/__init__.py +0 -0
- aiq/registry_handlers/local/__init__.py +0 -0
- aiq/registry_handlers/local/local_handler.py +176 -0
- aiq/registry_handlers/local/register_local.py +37 -0
- aiq/registry_handlers/metadata_factory.py +60 -0
- aiq/registry_handlers/package_utils.py +567 -0
- aiq/registry_handlers/pypi/__init__.py +0 -0
- aiq/registry_handlers/pypi/pypi_handler.py +251 -0
- aiq/registry_handlers/pypi/register_pypi.py +40 -0
- aiq/registry_handlers/register.py +21 -0
- aiq/registry_handlers/registry_handler_base.py +157 -0
- aiq/registry_handlers/rest/__init__.py +0 -0
- aiq/registry_handlers/rest/register_rest.py +56 -0
- aiq/registry_handlers/rest/rest_handler.py +237 -0
- aiq/registry_handlers/schemas/__init__.py +0 -0
- aiq/registry_handlers/schemas/headers.py +42 -0
- aiq/registry_handlers/schemas/package.py +68 -0
- aiq/registry_handlers/schemas/publish.py +63 -0
- aiq/registry_handlers/schemas/pull.py +82 -0
- aiq/registry_handlers/schemas/remove.py +36 -0
- aiq/registry_handlers/schemas/search.py +91 -0
- aiq/registry_handlers/schemas/status.py +47 -0
- aiq/retriever/__init__.py +0 -0
- aiq/retriever/interface.py +37 -0
- aiq/retriever/milvus/__init__.py +14 -0
- aiq/retriever/milvus/register.py +81 -0
- aiq/retriever/milvus/retriever.py +228 -0
- aiq/retriever/models.py +74 -0
- aiq/retriever/nemo_retriever/__init__.py +14 -0
- aiq/retriever/nemo_retriever/register.py +60 -0
- aiq/retriever/nemo_retriever/retriever.py +190 -0
- aiq/retriever/register.py +22 -0
- aiq/runtime/__init__.py +14 -0
- aiq/runtime/loader.py +215 -0
- aiq/runtime/runner.py +190 -0
- aiq/runtime/session.py +158 -0
- aiq/runtime/user_metadata.py +130 -0
- aiq/settings/__init__.py +0 -0
- aiq/settings/global_settings.py +318 -0
- aiq/test/.namespace +1 -0
- aiq/tool/__init__.py +0 -0
- aiq/tool/chat_completion.py +74 -0
- aiq/tool/code_execution/README.md +151 -0
- aiq/tool/code_execution/__init__.py +0 -0
- aiq/tool/code_execution/code_sandbox.py +267 -0
- aiq/tool/code_execution/local_sandbox/.gitignore +1 -0
- aiq/tool/code_execution/local_sandbox/Dockerfile.sandbox +60 -0
- aiq/tool/code_execution/local_sandbox/__init__.py +13 -0
- aiq/tool/code_execution/local_sandbox/local_sandbox_server.py +198 -0
- aiq/tool/code_execution/local_sandbox/sandbox.requirements.txt +6 -0
- aiq/tool/code_execution/local_sandbox/start_local_sandbox.sh +50 -0
- aiq/tool/code_execution/register.py +74 -0
- aiq/tool/code_execution/test_code_execution_sandbox.py +414 -0
- aiq/tool/code_execution/utils.py +100 -0
- aiq/tool/datetime_tools.py +42 -0
- aiq/tool/document_search.py +141 -0
- aiq/tool/github_tools/__init__.py +0 -0
- aiq/tool/github_tools/create_github_commit.py +133 -0
- aiq/tool/github_tools/create_github_issue.py +87 -0
- aiq/tool/github_tools/create_github_pr.py +106 -0
- aiq/tool/github_tools/get_github_file.py +106 -0
- aiq/tool/github_tools/get_github_issue.py +166 -0
- aiq/tool/github_tools/get_github_pr.py +256 -0
- aiq/tool/github_tools/update_github_issue.py +100 -0
- aiq/tool/mcp/__init__.py +14 -0
- aiq/tool/mcp/exceptions.py +142 -0
- aiq/tool/mcp/mcp_client.py +255 -0
- aiq/tool/mcp/mcp_tool.py +96 -0
- aiq/tool/memory_tools/__init__.py +0 -0
- aiq/tool/memory_tools/add_memory_tool.py +79 -0
- aiq/tool/memory_tools/delete_memory_tool.py +67 -0
- aiq/tool/memory_tools/get_memory_tool.py +72 -0
- aiq/tool/nvidia_rag.py +95 -0
- aiq/tool/register.py +38 -0
- aiq/tool/retriever.py +89 -0
- aiq/tool/server_tools.py +66 -0
- aiq/utils/__init__.py +0 -0
- aiq/utils/data_models/__init__.py +0 -0
- aiq/utils/data_models/schema_validator.py +58 -0
- aiq/utils/debugging_utils.py +43 -0
- aiq/utils/dump_distro_mapping.py +32 -0
- aiq/utils/exception_handlers/__init__.py +0 -0
- aiq/utils/exception_handlers/automatic_retries.py +289 -0
- aiq/utils/exception_handlers/mcp.py +211 -0
- aiq/utils/exception_handlers/schemas.py +114 -0
- aiq/utils/io/__init__.py +0 -0
- aiq/utils/io/model_processing.py +28 -0
- aiq/utils/io/yaml_tools.py +119 -0
- aiq/utils/log_utils.py +37 -0
- aiq/utils/metadata_utils.py +74 -0
- aiq/utils/optional_imports.py +142 -0
- aiq/utils/producer_consumer_queue.py +178 -0
- aiq/utils/reactive/__init__.py +0 -0
- aiq/utils/reactive/base/__init__.py +0 -0
- aiq/utils/reactive/base/observable_base.py +65 -0
- aiq/utils/reactive/base/observer_base.py +55 -0
- aiq/utils/reactive/base/subject_base.py +79 -0
- aiq/utils/reactive/observable.py +59 -0
- aiq/utils/reactive/observer.py +76 -0
- aiq/utils/reactive/subject.py +131 -0
- aiq/utils/reactive/subscription.py +49 -0
- aiq/utils/settings/__init__.py +0 -0
- aiq/utils/settings/global_settings.py +197 -0
- aiq/utils/string_utils.py +38 -0
- aiq/utils/type_converter.py +290 -0
- aiq/utils/type_utils.py +484 -0
- aiq/utils/url_utils.py +27 -0
- nvidia_nat-1.2.0rc5.dist-info/METADATA +363 -0
- nvidia_nat-1.2.0rc5.dist-info/RECORD +435 -0
- nvidia_nat-1.2.0rc5.dist-info/WHEEL +5 -0
- nvidia_nat-1.2.0rc5.dist-info/entry_points.txt +20 -0
- nvidia_nat-1.2.0rc5.dist-info/licenses/LICENSE-3rd-party.txt +3686 -0
- nvidia_nat-1.2.0rc5.dist-info/licenses/LICENSE.md +201 -0
- nvidia_nat-1.2.0rc5.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,488 @@
|
|
|
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
|
+
from contextlib import asynccontextmanager
|
|
17
|
+
|
|
18
|
+
from aiq.builder.framework_enum import LLMFrameworkEnum
|
|
19
|
+
from aiq.cli.type_registry import AuthProviderBuildCallableT
|
|
20
|
+
from aiq.cli.type_registry import AuthProviderRegisteredCallableT
|
|
21
|
+
from aiq.cli.type_registry import EmbedderClientBuildCallableT
|
|
22
|
+
from aiq.cli.type_registry import EmbedderClientRegisteredCallableT
|
|
23
|
+
from aiq.cli.type_registry import EmbedderProviderBuildCallableT
|
|
24
|
+
from aiq.cli.type_registry import EmbedderProviderRegisteredCallableT
|
|
25
|
+
from aiq.cli.type_registry import EvaluatorBuildCallableT
|
|
26
|
+
from aiq.cli.type_registry import EvaluatorRegisteredCallableT
|
|
27
|
+
from aiq.cli.type_registry import FrontEndBuildCallableT
|
|
28
|
+
from aiq.cli.type_registry import FrontEndRegisteredCallableT
|
|
29
|
+
from aiq.cli.type_registry import FunctionBuildCallableT
|
|
30
|
+
from aiq.cli.type_registry import FunctionRegisteredCallableT
|
|
31
|
+
from aiq.cli.type_registry import LLMClientBuildCallableT
|
|
32
|
+
from aiq.cli.type_registry import LLMClientRegisteredCallableT
|
|
33
|
+
from aiq.cli.type_registry import LLMProviderBuildCallableT
|
|
34
|
+
from aiq.cli.type_registry import LoggingMethodBuildCallableT
|
|
35
|
+
from aiq.cli.type_registry import LoggingMethodConfigT
|
|
36
|
+
from aiq.cli.type_registry import LoggingMethodRegisteredCallableT
|
|
37
|
+
from aiq.cli.type_registry import MemoryBuildCallableT
|
|
38
|
+
from aiq.cli.type_registry import MemoryRegisteredCallableT
|
|
39
|
+
from aiq.cli.type_registry import ObjectStoreBuildCallableT
|
|
40
|
+
from aiq.cli.type_registry import ObjectStoreRegisteredCallableT
|
|
41
|
+
from aiq.cli.type_registry import RegisteredLoggingMethod
|
|
42
|
+
from aiq.cli.type_registry import RegisteredTelemetryExporter
|
|
43
|
+
from aiq.cli.type_registry import RegisteredToolWrapper
|
|
44
|
+
from aiq.cli.type_registry import RegistryHandlerBuildCallableT
|
|
45
|
+
from aiq.cli.type_registry import RegistryHandlerRegisteredCallableT
|
|
46
|
+
from aiq.cli.type_registry import RetrieverClientBuildCallableT
|
|
47
|
+
from aiq.cli.type_registry import RetrieverClientRegisteredCallableT
|
|
48
|
+
from aiq.cli.type_registry import RetrieverProviderBuildCallableT
|
|
49
|
+
from aiq.cli.type_registry import RetrieverProviderRegisteredCallableT
|
|
50
|
+
from aiq.cli.type_registry import TeleExporterRegisteredCallableT
|
|
51
|
+
from aiq.cli.type_registry import TelemetryExporterBuildCallableT
|
|
52
|
+
from aiq.cli.type_registry import TelemetryExporterConfigT
|
|
53
|
+
from aiq.cli.type_registry import ToolWrapperBuildCallableT
|
|
54
|
+
from aiq.cli.type_registry import TTCStrategyBuildCallableT
|
|
55
|
+
from aiq.cli.type_registry import TTCStrategyRegisterCallableT
|
|
56
|
+
from aiq.data_models.authentication import AuthProviderBaseConfigT
|
|
57
|
+
from aiq.data_models.component import AIQComponentEnum
|
|
58
|
+
from aiq.data_models.discovery_metadata import DiscoveryMetadata
|
|
59
|
+
from aiq.data_models.embedder import EmbedderBaseConfigT
|
|
60
|
+
from aiq.data_models.evaluator import EvaluatorBaseConfigT
|
|
61
|
+
from aiq.data_models.front_end import FrontEndConfigT
|
|
62
|
+
from aiq.data_models.function import FunctionConfigT
|
|
63
|
+
from aiq.data_models.llm import LLMBaseConfigT
|
|
64
|
+
from aiq.data_models.memory import MemoryBaseConfigT
|
|
65
|
+
from aiq.data_models.object_store import ObjectStoreBaseConfigT
|
|
66
|
+
from aiq.data_models.registry_handler import RegistryHandlerBaseConfigT
|
|
67
|
+
from aiq.data_models.retriever import RetrieverBaseConfigT
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def register_telemetry_exporter(config_type: type[TelemetryExporterConfigT]):
|
|
71
|
+
"""
|
|
72
|
+
Register a workflow with optional framework_wrappers for automatic profiler hooking.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
def register_inner(
|
|
76
|
+
fn: TelemetryExporterBuildCallableT[TelemetryExporterConfigT]
|
|
77
|
+
) -> TeleExporterRegisteredCallableT[TelemetryExporterConfigT]:
|
|
78
|
+
from .type_registry import GlobalTypeRegistry
|
|
79
|
+
|
|
80
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
81
|
+
|
|
82
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
83
|
+
component_type=AIQComponentEnum.TRACING)
|
|
84
|
+
|
|
85
|
+
GlobalTypeRegistry.get().register_telemetry_exporter(
|
|
86
|
+
RegisteredTelemetryExporter(full_type=config_type.full_type,
|
|
87
|
+
config_type=config_type,
|
|
88
|
+
build_fn=context_manager_fn,
|
|
89
|
+
discovery_metadata=discovery_metadata))
|
|
90
|
+
|
|
91
|
+
return context_manager_fn
|
|
92
|
+
|
|
93
|
+
return register_inner
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def register_logging_method(config_type: type[LoggingMethodConfigT]):
|
|
97
|
+
|
|
98
|
+
def register_inner(
|
|
99
|
+
fn: LoggingMethodBuildCallableT[LoggingMethodConfigT]
|
|
100
|
+
) -> LoggingMethodRegisteredCallableT[LoggingMethodConfigT]:
|
|
101
|
+
from .type_registry import GlobalTypeRegistry
|
|
102
|
+
|
|
103
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
104
|
+
|
|
105
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
106
|
+
component_type=AIQComponentEnum.LOGGING)
|
|
107
|
+
|
|
108
|
+
GlobalTypeRegistry.get().register_logging_method(
|
|
109
|
+
RegisteredLoggingMethod(full_type=config_type.full_type,
|
|
110
|
+
config_type=config_type,
|
|
111
|
+
build_fn=context_manager_fn,
|
|
112
|
+
discovery_metadata=discovery_metadata))
|
|
113
|
+
|
|
114
|
+
return context_manager_fn
|
|
115
|
+
|
|
116
|
+
return register_inner
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def register_front_end(config_type: type[FrontEndConfigT]):
|
|
120
|
+
"""
|
|
121
|
+
Register a front end which is responsible for hosting a workflow.
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
def register_front_end_inner(
|
|
125
|
+
fn: FrontEndBuildCallableT[FrontEndConfigT]) -> FrontEndRegisteredCallableT[FrontEndConfigT]:
|
|
126
|
+
from .type_registry import GlobalTypeRegistry
|
|
127
|
+
from .type_registry import RegisteredFrontEndInfo
|
|
128
|
+
|
|
129
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
130
|
+
|
|
131
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
132
|
+
component_type=AIQComponentEnum.FRONT_END)
|
|
133
|
+
|
|
134
|
+
GlobalTypeRegistry.get().register_front_end(
|
|
135
|
+
RegisteredFrontEndInfo(full_type=config_type.full_type,
|
|
136
|
+
config_type=config_type,
|
|
137
|
+
build_fn=context_manager_fn,
|
|
138
|
+
discovery_metadata=discovery_metadata))
|
|
139
|
+
|
|
140
|
+
return context_manager_fn
|
|
141
|
+
|
|
142
|
+
return register_front_end_inner
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def register_function(config_type: type[FunctionConfigT],
|
|
146
|
+
framework_wrappers: list[LLMFrameworkEnum | str] | None = None):
|
|
147
|
+
"""
|
|
148
|
+
Register a workflow with optional framework_wrappers for automatic profiler hooking.
|
|
149
|
+
"""
|
|
150
|
+
|
|
151
|
+
def register_function_inner(
|
|
152
|
+
fn: FunctionBuildCallableT[FunctionConfigT]) -> FunctionRegisteredCallableT[FunctionConfigT]:
|
|
153
|
+
from .type_registry import GlobalTypeRegistry
|
|
154
|
+
from .type_registry import RegisteredFunctionInfo
|
|
155
|
+
|
|
156
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
157
|
+
|
|
158
|
+
if framework_wrappers is None:
|
|
159
|
+
framework_wrappers_list: list[str] = []
|
|
160
|
+
else:
|
|
161
|
+
framework_wrappers_list = list(framework_wrappers)
|
|
162
|
+
|
|
163
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
164
|
+
component_type=AIQComponentEnum.FUNCTION)
|
|
165
|
+
|
|
166
|
+
GlobalTypeRegistry.get().register_function(
|
|
167
|
+
RegisteredFunctionInfo(
|
|
168
|
+
full_type=config_type.full_type,
|
|
169
|
+
config_type=config_type,
|
|
170
|
+
build_fn=context_manager_fn,
|
|
171
|
+
framework_wrappers=framework_wrappers_list,
|
|
172
|
+
discovery_metadata=discovery_metadata,
|
|
173
|
+
))
|
|
174
|
+
|
|
175
|
+
return context_manager_fn
|
|
176
|
+
|
|
177
|
+
return register_function_inner
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def register_llm_provider(config_type: type[LLMBaseConfigT]):
|
|
181
|
+
|
|
182
|
+
def register_llm_provider_inner(
|
|
183
|
+
fn: LLMProviderBuildCallableT[LLMBaseConfigT]) -> LLMClientRegisteredCallableT[LLMBaseConfigT]:
|
|
184
|
+
from .type_registry import GlobalTypeRegistry
|
|
185
|
+
from .type_registry import RegisteredLLMProviderInfo
|
|
186
|
+
|
|
187
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
188
|
+
|
|
189
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
190
|
+
component_type=AIQComponentEnum.LLM_PROVIDER)
|
|
191
|
+
|
|
192
|
+
GlobalTypeRegistry.get().register_llm_provider(
|
|
193
|
+
RegisteredLLMProviderInfo(full_type=config_type.full_type,
|
|
194
|
+
config_type=config_type,
|
|
195
|
+
build_fn=context_manager_fn,
|
|
196
|
+
discovery_metadata=discovery_metadata))
|
|
197
|
+
|
|
198
|
+
return context_manager_fn
|
|
199
|
+
|
|
200
|
+
return register_llm_provider_inner
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def register_auth_provider(config_type: type[AuthProviderBaseConfigT]):
|
|
204
|
+
|
|
205
|
+
def register_auth_provider_inner(
|
|
206
|
+
fn: AuthProviderBuildCallableT[AuthProviderBaseConfigT]
|
|
207
|
+
) -> AuthProviderRegisteredCallableT[AuthProviderBaseConfigT]:
|
|
208
|
+
from .type_registry import GlobalTypeRegistry
|
|
209
|
+
from .type_registry import RegisteredAuthProviderInfo
|
|
210
|
+
|
|
211
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
212
|
+
|
|
213
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
214
|
+
component_type=AIQComponentEnum.AUTHENTICATION_PROVIDER)
|
|
215
|
+
|
|
216
|
+
GlobalTypeRegistry.get().register_auth_provider(
|
|
217
|
+
RegisteredAuthProviderInfo(full_type=config_type.full_type,
|
|
218
|
+
config_type=config_type,
|
|
219
|
+
build_fn=context_manager_fn,
|
|
220
|
+
discovery_metadata=discovery_metadata))
|
|
221
|
+
|
|
222
|
+
return context_manager_fn
|
|
223
|
+
|
|
224
|
+
return register_auth_provider_inner
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def register_llm_client(config_type: type[LLMBaseConfigT], wrapper_type: LLMFrameworkEnum | str):
|
|
228
|
+
|
|
229
|
+
def register_llm_client_inner(
|
|
230
|
+
fn: LLMClientBuildCallableT[LLMBaseConfigT]) -> LLMClientRegisteredCallableT[LLMBaseConfigT]:
|
|
231
|
+
from .type_registry import GlobalTypeRegistry
|
|
232
|
+
from .type_registry import RegisteredLLMClientInfo
|
|
233
|
+
|
|
234
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
235
|
+
|
|
236
|
+
discovery_metadata = DiscoveryMetadata.from_provider_framework_map(config_type=config_type,
|
|
237
|
+
wrapper_type=wrapper_type,
|
|
238
|
+
provider_type=AIQComponentEnum.LLM_PROVIDER,
|
|
239
|
+
component_type=AIQComponentEnum.LLM_CLIENT)
|
|
240
|
+
GlobalTypeRegistry.get().register_llm_client(
|
|
241
|
+
RegisteredLLMClientInfo(full_type=config_type.full_type,
|
|
242
|
+
config_type=config_type,
|
|
243
|
+
build_fn=context_manager_fn,
|
|
244
|
+
llm_framework=wrapper_type,
|
|
245
|
+
discovery_metadata=discovery_metadata))
|
|
246
|
+
|
|
247
|
+
return context_manager_fn
|
|
248
|
+
|
|
249
|
+
return register_llm_client_inner
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
def register_embedder_provider(config_type: type[EmbedderBaseConfigT]):
|
|
253
|
+
|
|
254
|
+
def register_embedder_provider_inner(
|
|
255
|
+
fn: EmbedderProviderBuildCallableT[EmbedderBaseConfigT]
|
|
256
|
+
) -> EmbedderProviderRegisteredCallableT[EmbedderBaseConfigT]:
|
|
257
|
+
from .type_registry import GlobalTypeRegistry
|
|
258
|
+
from .type_registry import RegisteredEmbedderProviderInfo
|
|
259
|
+
|
|
260
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
261
|
+
|
|
262
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
263
|
+
component_type=AIQComponentEnum.EMBEDDER_PROVIDER)
|
|
264
|
+
|
|
265
|
+
GlobalTypeRegistry.get().register_embedder_provider(
|
|
266
|
+
RegisteredEmbedderProviderInfo(full_type=config_type.full_type,
|
|
267
|
+
config_type=config_type,
|
|
268
|
+
build_fn=context_manager_fn,
|
|
269
|
+
discovery_metadata=discovery_metadata))
|
|
270
|
+
|
|
271
|
+
return context_manager_fn
|
|
272
|
+
|
|
273
|
+
return register_embedder_provider_inner
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
def register_embedder_client(config_type: type[EmbedderBaseConfigT], wrapper_type: LLMFrameworkEnum | str):
|
|
277
|
+
|
|
278
|
+
def register_embedder_client_inner(
|
|
279
|
+
fn: EmbedderClientBuildCallableT[EmbedderBaseConfigT]
|
|
280
|
+
) -> EmbedderClientRegisteredCallableT[EmbedderBaseConfigT]:
|
|
281
|
+
from .type_registry import GlobalTypeRegistry
|
|
282
|
+
from .type_registry import RegisteredEmbedderClientInfo
|
|
283
|
+
|
|
284
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
285
|
+
|
|
286
|
+
discovery_metadata = DiscoveryMetadata.from_provider_framework_map(
|
|
287
|
+
config_type=config_type,
|
|
288
|
+
wrapper_type=wrapper_type,
|
|
289
|
+
provider_type=AIQComponentEnum.EMBEDDER_PROVIDER,
|
|
290
|
+
component_type=AIQComponentEnum.EMBEDDER_CLIENT)
|
|
291
|
+
|
|
292
|
+
GlobalTypeRegistry.get().register_embedder_client(
|
|
293
|
+
RegisteredEmbedderClientInfo(full_type=config_type.full_type,
|
|
294
|
+
config_type=config_type,
|
|
295
|
+
build_fn=context_manager_fn,
|
|
296
|
+
llm_framework=wrapper_type,
|
|
297
|
+
discovery_metadata=discovery_metadata))
|
|
298
|
+
|
|
299
|
+
return context_manager_fn
|
|
300
|
+
|
|
301
|
+
return register_embedder_client_inner
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
def register_evaluator(config_type: type[EvaluatorBaseConfigT]):
|
|
305
|
+
|
|
306
|
+
def register_evaluator_inner(
|
|
307
|
+
fn: EvaluatorBuildCallableT[EvaluatorBaseConfigT]) -> EvaluatorRegisteredCallableT[EvaluatorBaseConfigT]:
|
|
308
|
+
from .type_registry import GlobalTypeRegistry
|
|
309
|
+
from .type_registry import RegisteredEvaluatorInfo
|
|
310
|
+
|
|
311
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
312
|
+
|
|
313
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
314
|
+
component_type=AIQComponentEnum.EVALUATOR)
|
|
315
|
+
|
|
316
|
+
GlobalTypeRegistry.get().register_evaluator(
|
|
317
|
+
RegisteredEvaluatorInfo(full_type=config_type.full_type,
|
|
318
|
+
config_type=config_type,
|
|
319
|
+
build_fn=context_manager_fn,
|
|
320
|
+
discovery_metadata=discovery_metadata))
|
|
321
|
+
|
|
322
|
+
return context_manager_fn
|
|
323
|
+
|
|
324
|
+
return register_evaluator_inner
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
def register_memory(config_type: type[MemoryBaseConfigT]):
|
|
328
|
+
|
|
329
|
+
def register_memory_inner(
|
|
330
|
+
fn: MemoryBuildCallableT[MemoryBaseConfigT]) -> MemoryRegisteredCallableT[MemoryBaseConfigT]:
|
|
331
|
+
from .type_registry import GlobalTypeRegistry
|
|
332
|
+
from .type_registry import RegisteredMemoryInfo
|
|
333
|
+
|
|
334
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
335
|
+
|
|
336
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
337
|
+
component_type=AIQComponentEnum.MEMORY)
|
|
338
|
+
|
|
339
|
+
GlobalTypeRegistry.get().register_memory(
|
|
340
|
+
RegisteredMemoryInfo(full_type=config_type.full_type,
|
|
341
|
+
config_type=config_type,
|
|
342
|
+
build_fn=context_manager_fn,
|
|
343
|
+
discovery_metadata=discovery_metadata))
|
|
344
|
+
|
|
345
|
+
return context_manager_fn
|
|
346
|
+
|
|
347
|
+
return register_memory_inner
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
def register_object_store(config_type: type[ObjectStoreBaseConfigT]):
|
|
351
|
+
|
|
352
|
+
def register_kv_store_inner(
|
|
353
|
+
fn: ObjectStoreBuildCallableT[ObjectStoreBaseConfigT]
|
|
354
|
+
) -> ObjectStoreRegisteredCallableT[ObjectStoreBaseConfigT]:
|
|
355
|
+
from .type_registry import GlobalTypeRegistry
|
|
356
|
+
from .type_registry import RegisteredObjectStoreInfo
|
|
357
|
+
|
|
358
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
359
|
+
|
|
360
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
361
|
+
component_type=AIQComponentEnum.OBJECT_STORE)
|
|
362
|
+
|
|
363
|
+
GlobalTypeRegistry.get().register_object_store(
|
|
364
|
+
RegisteredObjectStoreInfo(full_type=config_type.full_type,
|
|
365
|
+
config_type=config_type,
|
|
366
|
+
build_fn=context_manager_fn,
|
|
367
|
+
discovery_metadata=discovery_metadata))
|
|
368
|
+
|
|
369
|
+
return context_manager_fn
|
|
370
|
+
|
|
371
|
+
return register_kv_store_inner
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
def register_ttc_strategy(config_type: type[TTCStrategyRegisterCallableT]):
|
|
375
|
+
|
|
376
|
+
def register_ttc_strategy_inner(
|
|
377
|
+
fn: TTCStrategyBuildCallableT[TTCStrategyRegisterCallableT]
|
|
378
|
+
) -> TTCStrategyRegisterCallableT[TTCStrategyRegisterCallableT]:
|
|
379
|
+
from .type_registry import GlobalTypeRegistry
|
|
380
|
+
from .type_registry import RegisteredTTCStrategyInfo
|
|
381
|
+
|
|
382
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
383
|
+
|
|
384
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
385
|
+
component_type=AIQComponentEnum.TTC_STRATEGY)
|
|
386
|
+
|
|
387
|
+
GlobalTypeRegistry.get().register_ttc_strategy(
|
|
388
|
+
RegisteredTTCStrategyInfo(full_type=config_type.full_type,
|
|
389
|
+
config_type=config_type,
|
|
390
|
+
build_fn=context_manager_fn,
|
|
391
|
+
discovery_metadata=discovery_metadata))
|
|
392
|
+
|
|
393
|
+
return context_manager_fn
|
|
394
|
+
|
|
395
|
+
return register_ttc_strategy_inner
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
def register_retriever_provider(config_type: type[RetrieverBaseConfigT]):
|
|
399
|
+
|
|
400
|
+
def register_retriever_provider_inner(
|
|
401
|
+
fn: RetrieverProviderBuildCallableT[RetrieverBaseConfigT]
|
|
402
|
+
) -> RetrieverProviderRegisteredCallableT[RetrieverBaseConfigT]:
|
|
403
|
+
from .type_registry import GlobalTypeRegistry
|
|
404
|
+
from .type_registry import RegisteredRetrieverProviderInfo
|
|
405
|
+
|
|
406
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
407
|
+
|
|
408
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
409
|
+
component_type=AIQComponentEnum.RETRIEVER_PROVIDER)
|
|
410
|
+
|
|
411
|
+
GlobalTypeRegistry.get().register_retriever_provider(
|
|
412
|
+
RegisteredRetrieverProviderInfo(full_type=config_type.full_type,
|
|
413
|
+
config_type=config_type,
|
|
414
|
+
build_fn=context_manager_fn,
|
|
415
|
+
discovery_metadata=discovery_metadata))
|
|
416
|
+
|
|
417
|
+
return context_manager_fn
|
|
418
|
+
|
|
419
|
+
return register_retriever_provider_inner
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
def register_retriever_client(config_type: type[RetrieverBaseConfigT], wrapper_type: LLMFrameworkEnum | str | None):
|
|
423
|
+
|
|
424
|
+
def register_retriever_client_inner(
|
|
425
|
+
fn: RetrieverClientBuildCallableT[RetrieverBaseConfigT]
|
|
426
|
+
) -> RetrieverClientRegisteredCallableT[RetrieverBaseConfigT]:
|
|
427
|
+
from .type_registry import GlobalTypeRegistry
|
|
428
|
+
from .type_registry import RegisteredRetrieverClientInfo
|
|
429
|
+
|
|
430
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
431
|
+
|
|
432
|
+
discovery_metadata = DiscoveryMetadata.from_provider_framework_map(
|
|
433
|
+
config_type=config_type,
|
|
434
|
+
wrapper_type=wrapper_type,
|
|
435
|
+
provider_type=AIQComponentEnum.RETRIEVER_PROVIDER,
|
|
436
|
+
component_type=AIQComponentEnum.RETRIEVER_CLIENT,
|
|
437
|
+
)
|
|
438
|
+
|
|
439
|
+
GlobalTypeRegistry.get().register_retriever_client(
|
|
440
|
+
RegisteredRetrieverClientInfo(full_type=config_type.full_type,
|
|
441
|
+
config_type=config_type,
|
|
442
|
+
build_fn=context_manager_fn,
|
|
443
|
+
llm_framework=wrapper_type,
|
|
444
|
+
discovery_metadata=discovery_metadata))
|
|
445
|
+
|
|
446
|
+
return context_manager_fn
|
|
447
|
+
|
|
448
|
+
return register_retriever_client_inner
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
def register_tool_wrapper(wrapper_type: LLMFrameworkEnum | str):
|
|
452
|
+
|
|
453
|
+
def _inner(fn: ToolWrapperBuildCallableT) -> ToolWrapperBuildCallableT:
|
|
454
|
+
from .type_registry import GlobalTypeRegistry
|
|
455
|
+
|
|
456
|
+
discovery_metadata = DiscoveryMetadata.from_fn_wrapper(fn=fn,
|
|
457
|
+
wrapper_type=wrapper_type,
|
|
458
|
+
component_type=AIQComponentEnum.TOOL_WRAPPER)
|
|
459
|
+
GlobalTypeRegistry.get().register_tool_wrapper(
|
|
460
|
+
RegisteredToolWrapper(llm_framework=wrapper_type, build_fn=fn, discovery_metadata=discovery_metadata))
|
|
461
|
+
|
|
462
|
+
return fn
|
|
463
|
+
|
|
464
|
+
return _inner
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
def register_registry_handler(config_type: type[RegistryHandlerBaseConfigT]):
|
|
468
|
+
|
|
469
|
+
def register_registry_handler_inner(
|
|
470
|
+
fn: RegistryHandlerBuildCallableT[RegistryHandlerBaseConfigT]
|
|
471
|
+
) -> RegistryHandlerRegisteredCallableT[RegistryHandlerBaseConfigT]:
|
|
472
|
+
from .type_registry import GlobalTypeRegistry
|
|
473
|
+
from .type_registry import RegisteredRegistryHandlerInfo
|
|
474
|
+
|
|
475
|
+
context_manager_fn = asynccontextmanager(fn)
|
|
476
|
+
|
|
477
|
+
discovery_metadata = DiscoveryMetadata.from_config_type(config_type=config_type,
|
|
478
|
+
component_type=AIQComponentEnum.REGISTRY_HANDLER)
|
|
479
|
+
|
|
480
|
+
GlobalTypeRegistry.get().register_registry_handler(
|
|
481
|
+
RegisteredRegistryHandlerInfo(full_type=config_type.full_type,
|
|
482
|
+
config_type=config_type,
|
|
483
|
+
build_fn=context_manager_fn,
|
|
484
|
+
discovery_metadata=discovery_metadata))
|
|
485
|
+
|
|
486
|
+
return context_manager_fn
|
|
487
|
+
|
|
488
|
+
return register_registry_handler_inner
|