nvidia-nat 1.2.0__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/__init__.py +66 -0
- nat/agent/__init__.py +0 -0
- nat/agent/base.py +256 -0
- nat/agent/dual_node.py +67 -0
- nat/agent/react_agent/__init__.py +0 -0
- nat/agent/react_agent/agent.py +363 -0
- nat/agent/react_agent/output_parser.py +104 -0
- nat/agent/react_agent/prompt.py +44 -0
- nat/agent/react_agent/register.py +149 -0
- nat/agent/reasoning_agent/__init__.py +0 -0
- nat/agent/reasoning_agent/reasoning_agent.py +225 -0
- nat/agent/register.py +23 -0
- nat/agent/rewoo_agent/__init__.py +0 -0
- nat/agent/rewoo_agent/agent.py +415 -0
- nat/agent/rewoo_agent/prompt.py +110 -0
- nat/agent/rewoo_agent/register.py +157 -0
- nat/agent/tool_calling_agent/__init__.py +0 -0
- nat/agent/tool_calling_agent/agent.py +119 -0
- nat/agent/tool_calling_agent/register.py +106 -0
- nat/authentication/__init__.py +14 -0
- nat/authentication/api_key/__init__.py +14 -0
- nat/authentication/api_key/api_key_auth_provider.py +96 -0
- nat/authentication/api_key/api_key_auth_provider_config.py +124 -0
- nat/authentication/api_key/register.py +26 -0
- nat/authentication/exceptions/__init__.py +14 -0
- nat/authentication/exceptions/api_key_exceptions.py +38 -0
- nat/authentication/http_basic_auth/__init__.py +0 -0
- nat/authentication/http_basic_auth/http_basic_auth_provider.py +81 -0
- nat/authentication/http_basic_auth/register.py +30 -0
- nat/authentication/interfaces.py +93 -0
- nat/authentication/oauth2/__init__.py +14 -0
- nat/authentication/oauth2/oauth2_auth_code_flow_provider.py +107 -0
- nat/authentication/oauth2/oauth2_auth_code_flow_provider_config.py +39 -0
- nat/authentication/oauth2/register.py +25 -0
- nat/authentication/register.py +21 -0
- nat/builder/__init__.py +0 -0
- nat/builder/builder.py +285 -0
- nat/builder/component_utils.py +316 -0
- nat/builder/context.py +270 -0
- nat/builder/embedder.py +24 -0
- nat/builder/eval_builder.py +161 -0
- nat/builder/evaluator.py +29 -0
- nat/builder/framework_enum.py +24 -0
- nat/builder/front_end.py +73 -0
- nat/builder/function.py +344 -0
- nat/builder/function_base.py +380 -0
- nat/builder/function_info.py +627 -0
- nat/builder/intermediate_step_manager.py +174 -0
- nat/builder/llm.py +25 -0
- nat/builder/retriever.py +25 -0
- nat/builder/user_interaction_manager.py +78 -0
- nat/builder/workflow.py +148 -0
- nat/builder/workflow_builder.py +1117 -0
- nat/cli/__init__.py +14 -0
- nat/cli/cli_utils/__init__.py +0 -0
- nat/cli/cli_utils/config_override.py +231 -0
- nat/cli/cli_utils/validation.py +37 -0
- nat/cli/commands/__init__.py +0 -0
- nat/cli/commands/configure/__init__.py +0 -0
- nat/cli/commands/configure/channel/__init__.py +0 -0
- nat/cli/commands/configure/channel/add.py +28 -0
- nat/cli/commands/configure/channel/channel.py +34 -0
- nat/cli/commands/configure/channel/remove.py +30 -0
- nat/cli/commands/configure/channel/update.py +30 -0
- nat/cli/commands/configure/configure.py +33 -0
- nat/cli/commands/evaluate.py +139 -0
- nat/cli/commands/info/__init__.py +14 -0
- nat/cli/commands/info/info.py +37 -0
- nat/cli/commands/info/list_channels.py +32 -0
- nat/cli/commands/info/list_components.py +129 -0
- nat/cli/commands/info/list_mcp.py +304 -0
- nat/cli/commands/registry/__init__.py +14 -0
- nat/cli/commands/registry/publish.py +88 -0
- nat/cli/commands/registry/pull.py +118 -0
- nat/cli/commands/registry/registry.py +36 -0
- nat/cli/commands/registry/remove.py +108 -0
- nat/cli/commands/registry/search.py +155 -0
- nat/cli/commands/sizing/__init__.py +14 -0
- nat/cli/commands/sizing/calc.py +297 -0
- nat/cli/commands/sizing/sizing.py +27 -0
- nat/cli/commands/start.py +246 -0
- nat/cli/commands/uninstall.py +81 -0
- nat/cli/commands/validate.py +47 -0
- nat/cli/commands/workflow/__init__.py +14 -0
- nat/cli/commands/workflow/templates/__init__.py.j2 +0 -0
- nat/cli/commands/workflow/templates/config.yml.j2 +16 -0
- nat/cli/commands/workflow/templates/pyproject.toml.j2 +22 -0
- nat/cli/commands/workflow/templates/register.py.j2 +5 -0
- nat/cli/commands/workflow/templates/workflow.py.j2 +36 -0
- nat/cli/commands/workflow/workflow.py +37 -0
- nat/cli/commands/workflow/workflow_commands.py +317 -0
- nat/cli/entrypoint.py +135 -0
- nat/cli/main.py +57 -0
- nat/cli/register_workflow.py +488 -0
- nat/cli/type_registry.py +1000 -0
- nat/data_models/__init__.py +14 -0
- nat/data_models/api_server.py +716 -0
- nat/data_models/authentication.py +231 -0
- nat/data_models/common.py +171 -0
- nat/data_models/component.py +58 -0
- nat/data_models/component_ref.py +168 -0
- nat/data_models/config.py +410 -0
- nat/data_models/dataset_handler.py +169 -0
- nat/data_models/discovery_metadata.py +305 -0
- nat/data_models/embedder.py +27 -0
- nat/data_models/evaluate.py +127 -0
- nat/data_models/evaluator.py +26 -0
- nat/data_models/front_end.py +26 -0
- nat/data_models/function.py +30 -0
- nat/data_models/function_dependencies.py +72 -0
- nat/data_models/interactive.py +246 -0
- nat/data_models/intermediate_step.py +302 -0
- nat/data_models/invocation_node.py +38 -0
- nat/data_models/llm.py +27 -0
- nat/data_models/logging.py +26 -0
- nat/data_models/memory.py +27 -0
- nat/data_models/object_store.py +44 -0
- nat/data_models/profiler.py +54 -0
- nat/data_models/registry_handler.py +26 -0
- nat/data_models/retriever.py +30 -0
- nat/data_models/retry_mixin.py +35 -0
- nat/data_models/span.py +190 -0
- nat/data_models/step_adaptor.py +64 -0
- nat/data_models/streaming.py +33 -0
- nat/data_models/swe_bench_model.py +54 -0
- nat/data_models/telemetry_exporter.py +26 -0
- nat/data_models/ttc_strategy.py +30 -0
- nat/embedder/__init__.py +0 -0
- nat/embedder/nim_embedder.py +59 -0
- nat/embedder/openai_embedder.py +43 -0
- nat/embedder/register.py +22 -0
- nat/eval/__init__.py +14 -0
- nat/eval/config.py +60 -0
- nat/eval/dataset_handler/__init__.py +0 -0
- nat/eval/dataset_handler/dataset_downloader.py +106 -0
- nat/eval/dataset_handler/dataset_filter.py +52 -0
- nat/eval/dataset_handler/dataset_handler.py +367 -0
- nat/eval/evaluate.py +510 -0
- nat/eval/evaluator/__init__.py +14 -0
- nat/eval/evaluator/base_evaluator.py +77 -0
- nat/eval/evaluator/evaluator_model.py +45 -0
- nat/eval/intermediate_step_adapter.py +99 -0
- nat/eval/rag_evaluator/__init__.py +0 -0
- nat/eval/rag_evaluator/evaluate.py +178 -0
- nat/eval/rag_evaluator/register.py +143 -0
- nat/eval/register.py +23 -0
- nat/eval/remote_workflow.py +133 -0
- nat/eval/runners/__init__.py +14 -0
- nat/eval/runners/config.py +39 -0
- nat/eval/runners/multi_eval_runner.py +54 -0
- nat/eval/runtime_event_subscriber.py +52 -0
- nat/eval/swe_bench_evaluator/__init__.py +0 -0
- nat/eval/swe_bench_evaluator/evaluate.py +215 -0
- nat/eval/swe_bench_evaluator/register.py +36 -0
- nat/eval/trajectory_evaluator/__init__.py +0 -0
- nat/eval/trajectory_evaluator/evaluate.py +75 -0
- nat/eval/trajectory_evaluator/register.py +40 -0
- nat/eval/tunable_rag_evaluator/__init__.py +0 -0
- nat/eval/tunable_rag_evaluator/evaluate.py +245 -0
- nat/eval/tunable_rag_evaluator/register.py +52 -0
- nat/eval/usage_stats.py +41 -0
- nat/eval/utils/__init__.py +0 -0
- nat/eval/utils/output_uploader.py +140 -0
- nat/eval/utils/tqdm_position_registry.py +40 -0
- nat/eval/utils/weave_eval.py +184 -0
- nat/experimental/__init__.py +0 -0
- nat/experimental/decorators/__init__.py +0 -0
- nat/experimental/decorators/experimental_warning_decorator.py +134 -0
- nat/experimental/test_time_compute/__init__.py +0 -0
- nat/experimental/test_time_compute/editing/__init__.py +0 -0
- nat/experimental/test_time_compute/editing/iterative_plan_refinement_editor.py +147 -0
- nat/experimental/test_time_compute/editing/llm_as_a_judge_editor.py +204 -0
- nat/experimental/test_time_compute/editing/motivation_aware_summarization.py +107 -0
- nat/experimental/test_time_compute/functions/__init__.py +0 -0
- nat/experimental/test_time_compute/functions/execute_score_select_function.py +105 -0
- nat/experimental/test_time_compute/functions/plan_select_execute_function.py +224 -0
- nat/experimental/test_time_compute/functions/ttc_tool_orchestration_function.py +205 -0
- nat/experimental/test_time_compute/functions/ttc_tool_wrapper_function.py +146 -0
- nat/experimental/test_time_compute/models/__init__.py +0 -0
- nat/experimental/test_time_compute/models/editor_config.py +132 -0
- nat/experimental/test_time_compute/models/scoring_config.py +112 -0
- nat/experimental/test_time_compute/models/search_config.py +120 -0
- nat/experimental/test_time_compute/models/selection_config.py +154 -0
- nat/experimental/test_time_compute/models/stage_enums.py +43 -0
- nat/experimental/test_time_compute/models/strategy_base.py +66 -0
- nat/experimental/test_time_compute/models/tool_use_config.py +41 -0
- nat/experimental/test_time_compute/models/ttc_item.py +48 -0
- nat/experimental/test_time_compute/register.py +36 -0
- nat/experimental/test_time_compute/scoring/__init__.py +0 -0
- nat/experimental/test_time_compute/scoring/llm_based_agent_scorer.py +168 -0
- nat/experimental/test_time_compute/scoring/llm_based_plan_scorer.py +168 -0
- nat/experimental/test_time_compute/scoring/motivation_aware_scorer.py +111 -0
- nat/experimental/test_time_compute/search/__init__.py +0 -0
- nat/experimental/test_time_compute/search/multi_llm_planner.py +128 -0
- nat/experimental/test_time_compute/search/multi_query_retrieval_search.py +122 -0
- nat/experimental/test_time_compute/search/single_shot_multi_plan_planner.py +128 -0
- nat/experimental/test_time_compute/selection/__init__.py +0 -0
- nat/experimental/test_time_compute/selection/best_of_n_selector.py +63 -0
- nat/experimental/test_time_compute/selection/llm_based_agent_output_selector.py +131 -0
- nat/experimental/test_time_compute/selection/llm_based_output_merging_selector.py +159 -0
- nat/experimental/test_time_compute/selection/llm_based_plan_selector.py +128 -0
- nat/experimental/test_time_compute/selection/threshold_selector.py +58 -0
- nat/front_ends/__init__.py +14 -0
- nat/front_ends/console/__init__.py +14 -0
- nat/front_ends/console/authentication_flow_handler.py +233 -0
- nat/front_ends/console/console_front_end_config.py +32 -0
- nat/front_ends/console/console_front_end_plugin.py +96 -0
- nat/front_ends/console/register.py +25 -0
- nat/front_ends/cron/__init__.py +14 -0
- nat/front_ends/fastapi/__init__.py +14 -0
- nat/front_ends/fastapi/auth_flow_handlers/__init__.py +0 -0
- nat/front_ends/fastapi/auth_flow_handlers/http_flow_handler.py +27 -0
- nat/front_ends/fastapi/auth_flow_handlers/websocket_flow_handler.py +107 -0
- nat/front_ends/fastapi/fastapi_front_end_config.py +241 -0
- nat/front_ends/fastapi/fastapi_front_end_controller.py +68 -0
- nat/front_ends/fastapi/fastapi_front_end_plugin.py +116 -0
- nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py +1087 -0
- nat/front_ends/fastapi/html_snippets/__init__.py +14 -0
- nat/front_ends/fastapi/html_snippets/auth_code_grant_success.py +35 -0
- nat/front_ends/fastapi/intermediate_steps_subscriber.py +80 -0
- nat/front_ends/fastapi/job_store.py +183 -0
- nat/front_ends/fastapi/main.py +72 -0
- nat/front_ends/fastapi/message_handler.py +320 -0
- nat/front_ends/fastapi/message_validator.py +352 -0
- nat/front_ends/fastapi/register.py +25 -0
- nat/front_ends/fastapi/response_helpers.py +195 -0
- nat/front_ends/fastapi/step_adaptor.py +319 -0
- nat/front_ends/mcp/__init__.py +14 -0
- nat/front_ends/mcp/mcp_front_end_config.py +36 -0
- nat/front_ends/mcp/mcp_front_end_plugin.py +81 -0
- nat/front_ends/mcp/mcp_front_end_plugin_worker.py +143 -0
- nat/front_ends/mcp/register.py +27 -0
- nat/front_ends/mcp/tool_converter.py +241 -0
- nat/front_ends/register.py +22 -0
- nat/front_ends/simple_base/__init__.py +14 -0
- nat/front_ends/simple_base/simple_front_end_plugin_base.py +54 -0
- nat/llm/__init__.py +0 -0
- nat/llm/aws_bedrock_llm.py +57 -0
- nat/llm/nim_llm.py +46 -0
- nat/llm/openai_llm.py +46 -0
- nat/llm/register.py +23 -0
- nat/llm/utils/__init__.py +14 -0
- nat/llm/utils/env_config_value.py +94 -0
- nat/llm/utils/error.py +17 -0
- nat/memory/__init__.py +20 -0
- nat/memory/interfaces.py +183 -0
- nat/memory/models.py +112 -0
- nat/meta/pypi.md +58 -0
- nat/object_store/__init__.py +20 -0
- nat/object_store/in_memory_object_store.py +76 -0
- nat/object_store/interfaces.py +84 -0
- nat/object_store/models.py +38 -0
- nat/object_store/register.py +20 -0
- nat/observability/__init__.py +14 -0
- nat/observability/exporter/__init__.py +14 -0
- nat/observability/exporter/base_exporter.py +449 -0
- nat/observability/exporter/exporter.py +78 -0
- nat/observability/exporter/file_exporter.py +33 -0
- nat/observability/exporter/processing_exporter.py +322 -0
- nat/observability/exporter/raw_exporter.py +52 -0
- nat/observability/exporter/span_exporter.py +288 -0
- nat/observability/exporter_manager.py +335 -0
- nat/observability/mixin/__init__.py +14 -0
- nat/observability/mixin/batch_config_mixin.py +26 -0
- nat/observability/mixin/collector_config_mixin.py +23 -0
- nat/observability/mixin/file_mixin.py +288 -0
- nat/observability/mixin/file_mode.py +23 -0
- nat/observability/mixin/resource_conflict_mixin.py +134 -0
- nat/observability/mixin/serialize_mixin.py +61 -0
- nat/observability/mixin/type_introspection_mixin.py +183 -0
- nat/observability/processor/__init__.py +14 -0
- nat/observability/processor/batching_processor.py +310 -0
- nat/observability/processor/callback_processor.py +42 -0
- nat/observability/processor/intermediate_step_serializer.py +28 -0
- nat/observability/processor/processor.py +71 -0
- nat/observability/register.py +96 -0
- nat/observability/utils/__init__.py +14 -0
- nat/observability/utils/dict_utils.py +236 -0
- nat/observability/utils/time_utils.py +31 -0
- nat/plugins/.namespace +1 -0
- nat/profiler/__init__.py +0 -0
- nat/profiler/calc/__init__.py +14 -0
- nat/profiler/calc/calc_runner.py +627 -0
- nat/profiler/calc/calculations.py +288 -0
- nat/profiler/calc/data_models.py +188 -0
- nat/profiler/calc/plot.py +345 -0
- nat/profiler/callbacks/__init__.py +0 -0
- nat/profiler/callbacks/agno_callback_handler.py +295 -0
- nat/profiler/callbacks/base_callback_class.py +20 -0
- nat/profiler/callbacks/langchain_callback_handler.py +290 -0
- nat/profiler/callbacks/llama_index_callback_handler.py +205 -0
- nat/profiler/callbacks/semantic_kernel_callback_handler.py +238 -0
- nat/profiler/callbacks/token_usage_base_model.py +27 -0
- nat/profiler/data_frame_row.py +51 -0
- nat/profiler/data_models.py +24 -0
- nat/profiler/decorators/__init__.py +0 -0
- nat/profiler/decorators/framework_wrapper.py +131 -0
- nat/profiler/decorators/function_tracking.py +254 -0
- nat/profiler/forecasting/__init__.py +0 -0
- nat/profiler/forecasting/config.py +18 -0
- nat/profiler/forecasting/model_trainer.py +75 -0
- nat/profiler/forecasting/models/__init__.py +22 -0
- nat/profiler/forecasting/models/forecasting_base_model.py +40 -0
- nat/profiler/forecasting/models/linear_model.py +197 -0
- nat/profiler/forecasting/models/random_forest_regressor.py +269 -0
- nat/profiler/inference_metrics_model.py +28 -0
- nat/profiler/inference_optimization/__init__.py +0 -0
- nat/profiler/inference_optimization/bottleneck_analysis/__init__.py +0 -0
- nat/profiler/inference_optimization/bottleneck_analysis/nested_stack_analysis.py +460 -0
- nat/profiler/inference_optimization/bottleneck_analysis/simple_stack_analysis.py +258 -0
- nat/profiler/inference_optimization/data_models.py +386 -0
- nat/profiler/inference_optimization/experimental/__init__.py +0 -0
- nat/profiler/inference_optimization/experimental/concurrency_spike_analysis.py +468 -0
- nat/profiler/inference_optimization/experimental/prefix_span_analysis.py +405 -0
- nat/profiler/inference_optimization/llm_metrics.py +212 -0
- nat/profiler/inference_optimization/prompt_caching.py +163 -0
- nat/profiler/inference_optimization/token_uniqueness.py +107 -0
- nat/profiler/inference_optimization/workflow_runtimes.py +72 -0
- nat/profiler/intermediate_property_adapter.py +102 -0
- nat/profiler/profile_runner.py +473 -0
- nat/profiler/utils.py +184 -0
- nat/registry_handlers/__init__.py +0 -0
- nat/registry_handlers/local/__init__.py +0 -0
- nat/registry_handlers/local/local_handler.py +176 -0
- nat/registry_handlers/local/register_local.py +37 -0
- nat/registry_handlers/metadata_factory.py +60 -0
- nat/registry_handlers/package_utils.py +571 -0
- nat/registry_handlers/pypi/__init__.py +0 -0
- nat/registry_handlers/pypi/pypi_handler.py +251 -0
- nat/registry_handlers/pypi/register_pypi.py +40 -0
- nat/registry_handlers/register.py +21 -0
- nat/registry_handlers/registry_handler_base.py +157 -0
- nat/registry_handlers/rest/__init__.py +0 -0
- nat/registry_handlers/rest/register_rest.py +56 -0
- nat/registry_handlers/rest/rest_handler.py +237 -0
- nat/registry_handlers/schemas/__init__.py +0 -0
- nat/registry_handlers/schemas/headers.py +42 -0
- nat/registry_handlers/schemas/package.py +68 -0
- nat/registry_handlers/schemas/publish.py +68 -0
- nat/registry_handlers/schemas/pull.py +82 -0
- nat/registry_handlers/schemas/remove.py +36 -0
- nat/registry_handlers/schemas/search.py +91 -0
- nat/registry_handlers/schemas/status.py +47 -0
- nat/retriever/__init__.py +0 -0
- nat/retriever/interface.py +41 -0
- nat/retriever/milvus/__init__.py +14 -0
- nat/retriever/milvus/register.py +81 -0
- nat/retriever/milvus/retriever.py +228 -0
- nat/retriever/models.py +77 -0
- nat/retriever/nemo_retriever/__init__.py +14 -0
- nat/retriever/nemo_retriever/register.py +60 -0
- nat/retriever/nemo_retriever/retriever.py +190 -0
- nat/retriever/register.py +22 -0
- nat/runtime/__init__.py +14 -0
- nat/runtime/loader.py +220 -0
- nat/runtime/runner.py +195 -0
- nat/runtime/session.py +162 -0
- nat/runtime/user_metadata.py +130 -0
- nat/settings/__init__.py +0 -0
- nat/settings/global_settings.py +318 -0
- nat/test/.namespace +1 -0
- nat/tool/__init__.py +0 -0
- nat/tool/chat_completion.py +74 -0
- nat/tool/code_execution/README.md +151 -0
- nat/tool/code_execution/__init__.py +0 -0
- nat/tool/code_execution/code_sandbox.py +267 -0
- nat/tool/code_execution/local_sandbox/.gitignore +1 -0
- nat/tool/code_execution/local_sandbox/Dockerfile.sandbox +60 -0
- nat/tool/code_execution/local_sandbox/__init__.py +13 -0
- nat/tool/code_execution/local_sandbox/local_sandbox_server.py +198 -0
- nat/tool/code_execution/local_sandbox/sandbox.requirements.txt +6 -0
- nat/tool/code_execution/local_sandbox/start_local_sandbox.sh +50 -0
- nat/tool/code_execution/register.py +74 -0
- nat/tool/code_execution/test_code_execution_sandbox.py +414 -0
- nat/tool/code_execution/utils.py +100 -0
- nat/tool/datetime_tools.py +42 -0
- nat/tool/document_search.py +141 -0
- nat/tool/github_tools/__init__.py +0 -0
- nat/tool/github_tools/create_github_commit.py +133 -0
- nat/tool/github_tools/create_github_issue.py +87 -0
- nat/tool/github_tools/create_github_pr.py +106 -0
- nat/tool/github_tools/get_github_file.py +106 -0
- nat/tool/github_tools/get_github_issue.py +166 -0
- nat/tool/github_tools/get_github_pr.py +256 -0
- nat/tool/github_tools/update_github_issue.py +100 -0
- nat/tool/mcp/__init__.py +14 -0
- nat/tool/mcp/exceptions.py +142 -0
- nat/tool/mcp/mcp_client.py +255 -0
- nat/tool/mcp/mcp_tool.py +96 -0
- nat/tool/memory_tools/__init__.py +0 -0
- nat/tool/memory_tools/add_memory_tool.py +79 -0
- nat/tool/memory_tools/delete_memory_tool.py +67 -0
- nat/tool/memory_tools/get_memory_tool.py +72 -0
- nat/tool/nvidia_rag.py +95 -0
- nat/tool/register.py +38 -0
- nat/tool/retriever.py +94 -0
- nat/tool/server_tools.py +66 -0
- nat/utils/__init__.py +0 -0
- nat/utils/data_models/__init__.py +0 -0
- nat/utils/data_models/schema_validator.py +58 -0
- nat/utils/debugging_utils.py +43 -0
- nat/utils/dump_distro_mapping.py +32 -0
- nat/utils/exception_handlers/__init__.py +0 -0
- nat/utils/exception_handlers/automatic_retries.py +289 -0
- nat/utils/exception_handlers/mcp.py +211 -0
- nat/utils/exception_handlers/schemas.py +114 -0
- nat/utils/io/__init__.py +0 -0
- nat/utils/io/model_processing.py +28 -0
- nat/utils/io/yaml_tools.py +119 -0
- nat/utils/log_utils.py +37 -0
- nat/utils/metadata_utils.py +74 -0
- nat/utils/optional_imports.py +142 -0
- nat/utils/producer_consumer_queue.py +178 -0
- nat/utils/reactive/__init__.py +0 -0
- nat/utils/reactive/base/__init__.py +0 -0
- nat/utils/reactive/base/observable_base.py +65 -0
- nat/utils/reactive/base/observer_base.py +55 -0
- nat/utils/reactive/base/subject_base.py +79 -0
- nat/utils/reactive/observable.py +59 -0
- nat/utils/reactive/observer.py +76 -0
- nat/utils/reactive/subject.py +131 -0
- nat/utils/reactive/subscription.py +49 -0
- nat/utils/settings/__init__.py +0 -0
- nat/utils/settings/global_settings.py +197 -0
- nat/utils/string_utils.py +38 -0
- nat/utils/type_converter.py +290 -0
- nat/utils/type_utils.py +484 -0
- nat/utils/url_utils.py +27 -0
- nvidia_nat-1.2.0.dist-info/METADATA +365 -0
- nvidia_nat-1.2.0.dist-info/RECORD +435 -0
- nvidia_nat-1.2.0.dist-info/WHEEL +5 -0
- nvidia_nat-1.2.0.dist-info/entry_points.txt +21 -0
- nvidia_nat-1.2.0.dist-info/licenses/LICENSE-3rd-party.txt +5478 -0
- nvidia_nat-1.2.0.dist-info/licenses/LICENSE.md +201 -0
- nvidia_nat-1.2.0.dist-info/top_level.txt +2 -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 nat.builder.framework_enum import LLMFrameworkEnum
|
|
19
|
+
from nat.cli.type_registry import AuthProviderBuildCallableT
|
|
20
|
+
from nat.cli.type_registry import AuthProviderRegisteredCallableT
|
|
21
|
+
from nat.cli.type_registry import EmbedderClientBuildCallableT
|
|
22
|
+
from nat.cli.type_registry import EmbedderClientRegisteredCallableT
|
|
23
|
+
from nat.cli.type_registry import EmbedderProviderBuildCallableT
|
|
24
|
+
from nat.cli.type_registry import EmbedderProviderRegisteredCallableT
|
|
25
|
+
from nat.cli.type_registry import EvaluatorBuildCallableT
|
|
26
|
+
from nat.cli.type_registry import EvaluatorRegisteredCallableT
|
|
27
|
+
from nat.cli.type_registry import FrontEndBuildCallableT
|
|
28
|
+
from nat.cli.type_registry import FrontEndRegisteredCallableT
|
|
29
|
+
from nat.cli.type_registry import FunctionBuildCallableT
|
|
30
|
+
from nat.cli.type_registry import FunctionRegisteredCallableT
|
|
31
|
+
from nat.cli.type_registry import LLMClientBuildCallableT
|
|
32
|
+
from nat.cli.type_registry import LLMClientRegisteredCallableT
|
|
33
|
+
from nat.cli.type_registry import LLMProviderBuildCallableT
|
|
34
|
+
from nat.cli.type_registry import LoggingMethodBuildCallableT
|
|
35
|
+
from nat.cli.type_registry import LoggingMethodConfigT
|
|
36
|
+
from nat.cli.type_registry import LoggingMethodRegisteredCallableT
|
|
37
|
+
from nat.cli.type_registry import MemoryBuildCallableT
|
|
38
|
+
from nat.cli.type_registry import MemoryRegisteredCallableT
|
|
39
|
+
from nat.cli.type_registry import ObjectStoreBuildCallableT
|
|
40
|
+
from nat.cli.type_registry import ObjectStoreRegisteredCallableT
|
|
41
|
+
from nat.cli.type_registry import RegisteredLoggingMethod
|
|
42
|
+
from nat.cli.type_registry import RegisteredTelemetryExporter
|
|
43
|
+
from nat.cli.type_registry import RegisteredToolWrapper
|
|
44
|
+
from nat.cli.type_registry import RegistryHandlerBuildCallableT
|
|
45
|
+
from nat.cli.type_registry import RegistryHandlerRegisteredCallableT
|
|
46
|
+
from nat.cli.type_registry import RetrieverClientBuildCallableT
|
|
47
|
+
from nat.cli.type_registry import RetrieverClientRegisteredCallableT
|
|
48
|
+
from nat.cli.type_registry import RetrieverProviderBuildCallableT
|
|
49
|
+
from nat.cli.type_registry import RetrieverProviderRegisteredCallableT
|
|
50
|
+
from nat.cli.type_registry import TeleExporterRegisteredCallableT
|
|
51
|
+
from nat.cli.type_registry import TelemetryExporterBuildCallableT
|
|
52
|
+
from nat.cli.type_registry import TelemetryExporterConfigT
|
|
53
|
+
from nat.cli.type_registry import ToolWrapperBuildCallableT
|
|
54
|
+
from nat.cli.type_registry import TTCStrategyBuildCallableT
|
|
55
|
+
from nat.cli.type_registry import TTCStrategyRegisterCallableT
|
|
56
|
+
from nat.data_models.authentication import AuthProviderBaseConfigT
|
|
57
|
+
from nat.data_models.component import ComponentEnum
|
|
58
|
+
from nat.data_models.discovery_metadata import DiscoveryMetadata
|
|
59
|
+
from nat.data_models.embedder import EmbedderBaseConfigT
|
|
60
|
+
from nat.data_models.evaluator import EvaluatorBaseConfigT
|
|
61
|
+
from nat.data_models.front_end import FrontEndConfigT
|
|
62
|
+
from nat.data_models.function import FunctionConfigT
|
|
63
|
+
from nat.data_models.llm import LLMBaseConfigT
|
|
64
|
+
from nat.data_models.memory import MemoryBaseConfigT
|
|
65
|
+
from nat.data_models.object_store import ObjectStoreBaseConfigT
|
|
66
|
+
from nat.data_models.registry_handler import RegistryHandlerBaseConfigT
|
|
67
|
+
from nat.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.LLM_PROVIDER,
|
|
239
|
+
component_type=ComponentEnum.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=ComponentEnum.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=ComponentEnum.EMBEDDER_PROVIDER,
|
|
290
|
+
component_type=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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=ComponentEnum.RETRIEVER_PROVIDER,
|
|
436
|
+
component_type=ComponentEnum.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=ComponentEnum.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=ComponentEnum.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
|