nvidia-nat 1.2.0rc5__py3-none-any.whl → 1.2.0rc6__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 → nat}/agent/react_agent/agent.py +12 -12
- {aiq → nat}/agent/react_agent/register.py +20 -20
- {aiq → nat}/agent/reasoning_agent/reasoning_agent.py +14 -14
- {aiq → nat}/agent/rewoo_agent/agent.py +7 -7
- {aiq → nat}/agent/rewoo_agent/prompt.py +11 -12
- {aiq → nat}/agent/rewoo_agent/register.py +47 -49
- {aiq → nat}/agent/tool_calling_agent/agent.py +4 -4
- {aiq → nat}/agent/tool_calling_agent/register.py +8 -8
- {aiq → nat}/authentication/api_key/api_key_auth_provider.py +6 -6
- {aiq → nat}/authentication/api_key/api_key_auth_provider_config.py +5 -5
- {aiq → nat}/authentication/api_key/register.py +4 -4
- {aiq → nat}/authentication/http_basic_auth/http_basic_auth_provider.py +10 -10
- {aiq → nat}/authentication/http_basic_auth/register.py +4 -4
- {aiq → nat}/authentication/interfaces.py +6 -6
- {aiq → nat}/authentication/oauth2/oauth2_auth_code_flow_provider.py +11 -11
- {aiq → nat}/authentication/oauth2/oauth2_auth_code_flow_provider_config.py +1 -1
- {aiq → nat}/authentication/oauth2/register.py +4 -4
- {aiq → nat}/authentication/register.py +3 -3
- {aiq → nat}/builder/builder.py +30 -30
- {aiq → nat}/builder/component_utils.py +23 -23
- {aiq → nat}/builder/context.py +35 -29
- {aiq → nat}/builder/embedder.py +1 -1
- {aiq → nat}/builder/eval_builder.py +13 -13
- {aiq → nat}/builder/evaluator.py +3 -3
- {aiq → nat}/builder/front_end.py +11 -11
- {aiq → nat}/builder/function.py +8 -8
- {aiq → nat}/builder/function_base.py +6 -6
- {aiq → nat}/builder/function_info.py +3 -3
- {aiq → nat}/builder/intermediate_step_manager.py +13 -13
- {aiq → nat}/builder/llm.py +1 -1
- {aiq → nat}/builder/retriever.py +1 -1
- {aiq → nat}/builder/user_interaction_manager.py +14 -10
- {aiq → nat}/builder/workflow.py +25 -25
- {aiq → nat}/builder/workflow_builder.py +86 -86
- {aiq → nat}/cli/cli_utils/config_override.py +2 -2
- {aiq → nat}/cli/cli_utils/validation.py +4 -4
- {aiq → nat}/cli/commands/configure/channel/add.py +2 -2
- {aiq → nat}/cli/commands/configure/channel/channel.py +4 -6
- {aiq → nat}/cli/commands/configure/channel/remove.py +2 -2
- {aiq → nat}/cli/commands/configure/channel/update.py +2 -2
- {aiq → nat}/cli/commands/configure/configure.py +3 -3
- {aiq → nat}/cli/commands/evaluate.py +3 -3
- {aiq → nat}/cli/commands/info/info.py +5 -7
- {aiq → nat}/cli/commands/info/list_channels.py +1 -1
- {aiq → nat}/cli/commands/info/list_components.py +14 -14
- {aiq → nat}/cli/commands/info/list_mcp.py +106 -15
- {aiq → nat}/cli/commands/registry/publish.py +9 -9
- {aiq → nat}/cli/commands/registry/pull.py +10 -10
- {aiq → nat}/cli/commands/registry/registry.py +5 -7
- {aiq → nat}/cli/commands/registry/remove.py +8 -8
- {aiq → nat}/cli/commands/registry/search.py +15 -15
- {aiq → nat}/cli/commands/sizing/calc.py +3 -3
- {aiq → nat}/cli/commands/start.py +15 -15
- {aiq → nat}/cli/commands/uninstall.py +5 -5
- {aiq → nat}/cli/commands/validate.py +1 -1
- {aiq → nat}/cli/commands/workflow/templates/pyproject.toml.j2 +4 -4
- {aiq → nat}/cli/commands/workflow/templates/workflow.py.j2 +4 -4
- {aiq → nat}/cli/commands/workflow/workflow.py +3 -3
- {aiq → nat}/cli/commands/workflow/workflow_commands.py +15 -11
- {aiq → nat}/cli/entrypoint.py +6 -6
- {aiq → nat}/cli/main.py +15 -2
- {aiq → nat}/cli/register_workflow.py +70 -70
- {aiq → nat}/cli/type_registry.py +82 -82
- {aiq → nat}/data_models/api_server.py +121 -99
- {aiq → nat}/data_models/authentication.py +2 -2
- {aiq → nat}/data_models/component.py +5 -1
- {aiq → nat}/data_models/component_ref.py +12 -12
- {aiq → nat}/data_models/config.py +17 -13
- {aiq → nat}/data_models/dataset_handler.py +58 -12
- {aiq → nat}/data_models/discovery_metadata.py +36 -66
- {aiq → nat}/data_models/evaluate.py +9 -9
- {aiq → nat}/data_models/intermediate_step.py +7 -7
- {aiq → nat}/data_models/retriever.py +2 -2
- {aiq → nat}/data_models/span.py +10 -7
- {aiq → nat}/data_models/step_adaptor.py +1 -1
- {aiq → nat}/data_models/telemetry_exporter.py +2 -2
- {aiq → nat}/embedder/nim_embedder.py +5 -5
- {aiq → nat}/embedder/openai_embedder.py +5 -5
- {aiq/retriever → nat/embedder}/register.py +2 -2
- {aiq → nat}/eval/config.py +4 -4
- {aiq → nat}/eval/dataset_handler/dataset_downloader.py +1 -1
- {aiq → nat}/eval/dataset_handler/dataset_filter.py +1 -1
- {aiq → nat}/eval/dataset_handler/dataset_handler.py +127 -14
- {aiq → nat}/eval/evaluate.py +38 -34
- {aiq → nat}/eval/evaluator/base_evaluator.py +9 -5
- {aiq → nat}/eval/evaluator/evaluator_model.py +4 -4
- {aiq → nat}/eval/intermediate_step_adapter.py +2 -2
- {aiq → nat}/eval/rag_evaluator/evaluate.py +8 -8
- {aiq → nat}/eval/rag_evaluator/register.py +7 -7
- {aiq → nat}/eval/remote_workflow.py +8 -8
- {aiq → nat}/eval/runners/config.py +2 -2
- {aiq → nat}/eval/runners/multi_eval_runner.py +4 -4
- {aiq → nat}/eval/runtime_event_subscriber.py +3 -3
- {aiq → nat}/eval/swe_bench_evaluator/evaluate.py +6 -6
- {aiq → nat}/eval/swe_bench_evaluator/register.py +4 -4
- {aiq → nat}/eval/trajectory_evaluator/evaluate.py +5 -5
- {aiq → nat}/eval/trajectory_evaluator/register.py +5 -5
- {aiq → nat}/eval/tunable_rag_evaluator/evaluate.py +3 -3
- {aiq → nat}/eval/tunable_rag_evaluator/register.py +6 -6
- {aiq → nat}/eval/utils/output_uploader.py +1 -1
- {aiq → nat}/eval/utils/weave_eval.py +6 -6
- {aiq → nat}/experimental/decorators/experimental_warning_decorator.py +6 -2
- {aiq → nat}/experimental/test_time_compute/editing/iterative_plan_refinement_editor.py +10 -10
- {aiq → nat}/experimental/test_time_compute/editing/llm_as_a_judge_editor.py +10 -10
- {aiq → nat}/experimental/test_time_compute/editing/motivation_aware_summarization.py +10 -10
- {aiq → nat}/experimental/test_time_compute/functions/execute_score_select_function.py +10 -10
- {aiq → nat}/experimental/test_time_compute/functions/plan_select_execute_function.py +17 -17
- aiq/experimental/test_time_compute/functions/its_tool_orchestration_function.py → nat/experimental/test_time_compute/functions/ttc_tool_orchestration_function.py +12 -12
- aiq/experimental/test_time_compute/functions/its_tool_wrapper_function.py → nat/experimental/test_time_compute/functions/ttc_tool_wrapper_function.py +10 -10
- {aiq → nat}/experimental/test_time_compute/models/editor_config.py +2 -2
- {aiq → nat}/experimental/test_time_compute/models/scoring_config.py +2 -2
- {aiq → nat}/experimental/test_time_compute/models/search_config.py +2 -2
- {aiq → nat}/experimental/test_time_compute/models/selection_config.py +2 -2
- {aiq → nat}/experimental/test_time_compute/models/strategy_base.py +4 -4
- {aiq → nat}/experimental/test_time_compute/register.py +2 -2
- {aiq → nat}/experimental/test_time_compute/scoring/llm_based_agent_scorer.py +11 -11
- {aiq → nat}/experimental/test_time_compute/scoring/llm_based_plan_scorer.py +11 -11
- {aiq → nat}/experimental/test_time_compute/scoring/motivation_aware_scorer.py +10 -10
- {aiq → nat}/experimental/test_time_compute/search/multi_llm_planner.py +10 -10
- {aiq → nat}/experimental/test_time_compute/search/multi_query_retrieval_search.py +10 -10
- {aiq → nat}/experimental/test_time_compute/search/single_shot_multi_plan_planner.py +11 -11
- {aiq → nat}/experimental/test_time_compute/selection/best_of_n_selector.py +7 -7
- {aiq → nat}/experimental/test_time_compute/selection/llm_based_agent_output_selector.py +11 -11
- {aiq → nat}/experimental/test_time_compute/selection/llm_based_output_merging_selector.py +11 -11
- {aiq → nat}/experimental/test_time_compute/selection/llm_based_plan_selector.py +11 -11
- {aiq → nat}/experimental/test_time_compute/selection/threshold_selector.py +7 -7
- {aiq → nat}/front_ends/console/authentication_flow_handler.py +6 -6
- {aiq → nat}/front_ends/console/console_front_end_config.py +2 -2
- {aiq → nat}/front_ends/console/console_front_end_plugin.py +9 -9
- {aiq → nat}/front_ends/console/register.py +5 -5
- {aiq → nat}/front_ends/fastapi/auth_flow_handlers/http_flow_handler.py +4 -4
- {aiq → nat}/front_ends/fastapi/auth_flow_handlers/websocket_flow_handler.py +6 -6
- {aiq → nat}/front_ends/fastapi/fastapi_front_end_config.py +22 -15
- {aiq → nat}/front_ends/fastapi/fastapi_front_end_plugin.py +10 -10
- {aiq → nat}/front_ends/fastapi/fastapi_front_end_plugin_worker.py +110 -115
- {aiq → nat}/front_ends/fastapi/intermediate_steps_subscriber.py +10 -10
- {aiq → nat}/front_ends/fastapi/main.py +8 -8
- {aiq → nat}/front_ends/fastapi/message_handler.py +58 -36
- {aiq → nat}/front_ends/fastapi/message_validator.py +55 -48
- {aiq → nat}/front_ends/fastapi/register.py +5 -5
- {aiq → nat}/front_ends/fastapi/response_helpers.py +26 -26
- {aiq → nat}/front_ends/fastapi/step_adaptor.py +35 -37
- {aiq → nat}/front_ends/mcp/mcp_front_end_config.py +12 -8
- nat/front_ends/mcp/mcp_front_end_plugin.py +81 -0
- nat/front_ends/mcp/mcp_front_end_plugin_worker.py +143 -0
- {aiq → nat}/front_ends/mcp/register.py +5 -5
- {aiq → nat}/front_ends/mcp/tool_converter.py +20 -21
- {aiq → nat}/front_ends/simple_base/simple_front_end_plugin_base.py +6 -6
- {aiq → nat}/llm/aws_bedrock_llm.py +5 -5
- {aiq → nat}/llm/nim_llm.py +5 -5
- {aiq → nat}/llm/openai_llm.py +5 -5
- {aiq → nat}/memory/__init__.py +2 -2
- nat/meta/pypi.md +58 -0
- {aiq → nat}/object_store/__init__.py +2 -2
- {aiq → nat}/object_store/in_memory_object_store.py +6 -6
- {aiq → nat}/observability/exporter/base_exporter.py +9 -9
- {aiq → nat}/observability/exporter/exporter.py +1 -1
- {aiq → nat}/observability/exporter/file_exporter.py +6 -6
- {aiq → nat}/observability/exporter/processing_exporter.py +9 -9
- {aiq → nat}/observability/exporter/raw_exporter.py +4 -4
- {aiq → nat}/observability/exporter/span_exporter.py +57 -34
- {aiq → nat}/observability/exporter_manager.py +6 -6
- {aiq → nat}/observability/mixin/file_mixin.py +2 -2
- {aiq → nat}/observability/processor/batching_processor.py +1 -1
- {aiq → nat}/observability/processor/callback_processor.py +1 -1
- {aiq → nat}/observability/processor/intermediate_step_serializer.py +4 -4
- {aiq → nat}/observability/processor/processor.py +1 -1
- {aiq → nat}/observability/register.py +7 -7
- {aiq → nat}/profiler/calc/calc_runner.py +18 -18
- {aiq → nat}/profiler/calc/calculations.py +3 -3
- {aiq → nat}/profiler/calc/plot.py +2 -2
- {aiq → nat}/profiler/callbacks/agno_callback_handler.py +14 -14
- {aiq → nat}/profiler/callbacks/langchain_callback_handler.py +11 -11
- {aiq → nat}/profiler/callbacks/llama_index_callback_handler.py +12 -12
- {aiq → nat}/profiler/callbacks/semantic_kernel_callback_handler.py +11 -11
- {aiq → nat}/profiler/data_models.py +2 -2
- {aiq → nat}/profiler/decorators/framework_wrapper.py +6 -6
- {aiq → nat}/profiler/decorators/function_tracking.py +10 -10
- {aiq → nat}/profiler/forecasting/model_trainer.py +5 -5
- {aiq → nat}/profiler/forecasting/models/linear_model.py +5 -4
- {aiq → nat}/profiler/forecasting/models/random_forest_regressor.py +5 -4
- {aiq → nat}/profiler/inference_optimization/bottleneck_analysis/nested_stack_analysis.py +7 -7
- {aiq → nat}/profiler/inference_optimization/bottleneck_analysis/simple_stack_analysis.py +4 -4
- {aiq → nat}/profiler/inference_optimization/experimental/concurrency_spike_analysis.py +6 -6
- {aiq → nat}/profiler/inference_optimization/experimental/prefix_span_analysis.py +6 -6
- {aiq → nat}/profiler/inference_optimization/llm_metrics.py +2 -2
- {aiq → nat}/profiler/inference_optimization/prompt_caching.py +5 -5
- {aiq → nat}/profiler/inference_optimization/token_uniqueness.py +4 -4
- {aiq → nat}/profiler/inference_optimization/workflow_runtimes.py +3 -3
- {aiq → nat}/profiler/intermediate_property_adapter.py +3 -3
- {aiq → nat}/profiler/profile_runner.py +17 -17
- {aiq → nat}/profiler/utils.py +4 -4
- {aiq → nat}/registry_handlers/local/local_handler.py +19 -19
- {aiq → nat}/registry_handlers/local/register_local.py +4 -4
- {aiq → nat}/registry_handlers/metadata_factory.py +7 -7
- {aiq → nat}/registry_handlers/package_utils.py +37 -33
- {aiq → nat}/registry_handlers/pypi/pypi_handler.py +21 -21
- {aiq → nat}/registry_handlers/pypi/register_pypi.py +6 -6
- {aiq → nat}/registry_handlers/registry_handler_base.py +21 -21
- {aiq → nat}/registry_handlers/rest/register_rest.py +7 -7
- {aiq → nat}/registry_handlers/rest/rest_handler.py +19 -19
- {aiq → nat}/registry_handlers/schemas/package.py +3 -3
- {aiq → nat}/registry_handlers/schemas/publish.py +17 -12
- {aiq → nat}/registry_handlers/schemas/pull.py +6 -6
- {aiq → nat}/registry_handlers/schemas/remove.py +2 -2
- {aiq → nat}/registry_handlers/schemas/search.py +11 -11
- {aiq → nat}/retriever/interface.py +6 -2
- {aiq → nat}/retriever/milvus/register.py +7 -7
- {aiq → nat}/retriever/milvus/retriever.py +8 -8
- {aiq → nat}/retriever/models.py +10 -7
- {aiq → nat}/retriever/nemo_retriever/register.py +6 -6
- {aiq → nat}/retriever/nemo_retriever/retriever.py +10 -10
- {aiq/embedder → nat/retriever}/register.py +2 -4
- {aiq → nat}/runtime/loader.py +38 -33
- {aiq → nat}/runtime/runner.py +30 -25
- {aiq → nat}/runtime/session.py +19 -15
- {aiq → nat}/runtime/user_metadata.py +1 -1
- {aiq → nat}/settings/global_settings.py +11 -11
- {aiq → nat}/tool/chat_completion.py +6 -6
- {aiq → nat}/tool/code_execution/README.md +2 -2
- {aiq → nat}/tool/code_execution/code_sandbox.py +1 -1
- {aiq → nat}/tool/code_execution/register.py +5 -5
- {aiq → nat}/tool/code_execution/test_code_execution_sandbox.py +1 -1
- {aiq → nat}/tool/datetime_tools.py +4 -4
- {aiq → nat}/tool/document_search.py +6 -6
- {aiq → nat}/tool/github_tools/create_github_commit.py +4 -4
- {aiq → nat}/tool/github_tools/create_github_issue.py +4 -4
- {aiq → nat}/tool/github_tools/create_github_pr.py +4 -4
- {aiq → nat}/tool/github_tools/get_github_file.py +4 -4
- {aiq → nat}/tool/github_tools/get_github_issue.py +4 -4
- {aiq → nat}/tool/github_tools/get_github_pr.py +4 -4
- {aiq → nat}/tool/github_tools/update_github_issue.py +4 -4
- {aiq → nat}/tool/mcp/exceptions.py +1 -1
- {aiq → nat}/tool/mcp/mcp_client.py +2 -2
- {aiq → nat}/tool/mcp/mcp_tool.py +7 -7
- {aiq → nat}/tool/memory_tools/add_memory_tool.py +6 -6
- {aiq → nat}/tool/memory_tools/delete_memory_tool.py +6 -6
- {aiq → nat}/tool/memory_tools/get_memory_tool.py +6 -6
- {aiq → nat}/tool/nvidia_rag.py +4 -4
- {aiq → nat}/tool/retriever.py +20 -15
- {aiq → nat}/tool/server_tools.py +16 -16
- {aiq → nat}/utils/dump_distro_mapping.py +2 -2
- {aiq → nat}/utils/exception_handlers/mcp.py +8 -8
- {aiq → nat}/utils/io/yaml_tools.py +1 -1
- {aiq → nat}/utils/metadata_utils.py +2 -2
- {aiq → nat}/utils/reactive/base/observable_base.py +2 -2
- {aiq → nat}/utils/reactive/base/subject_base.py +1 -1
- {aiq → nat}/utils/reactive/observable.py +5 -5
- {aiq → nat}/utils/reactive/observer.py +1 -1
- {aiq → nat}/utils/reactive/subject.py +4 -4
- {aiq → nat}/utils/reactive/subscription.py +1 -1
- {aiq → nat}/utils/settings/global_settings.py +4 -4
- {aiq → nat}/utils/type_converter.py +1 -1
- {nvidia_nat-1.2.0rc5.dist-info → nvidia_nat-1.2.0rc6.dist-info}/METADATA +37 -37
- nvidia_nat-1.2.0rc6.dist-info/RECORD +434 -0
- nvidia_nat-1.2.0rc6.dist-info/entry_points.txt +21 -0
- nvidia_nat-1.2.0rc6.dist-info/top_level.txt +1 -0
- aiq/embedder/langchain_client.py +0 -41
- aiq/front_ends/mcp/mcp_front_end_plugin.py +0 -93
- aiq/meta/module_to_distro.json +0 -3
- aiq/meta/pypi.md +0 -58
- nvidia_nat-1.2.0rc5.dist-info/RECORD +0 -435
- nvidia_nat-1.2.0rc5.dist-info/entry_points.txt +0 -20
- nvidia_nat-1.2.0rc5.dist-info/top_level.txt +0 -1
- {aiq → nat}/agent/__init__.py +0 -0
- {aiq → nat}/agent/base.py +0 -0
- {aiq → nat}/agent/dual_node.py +0 -0
- {aiq → nat}/agent/react_agent/__init__.py +0 -0
- {aiq → nat}/agent/react_agent/output_parser.py +0 -0
- {aiq → nat}/agent/react_agent/prompt.py +0 -0
- {aiq → nat}/agent/reasoning_agent/__init__.py +0 -0
- {aiq → nat}/agent/register.py +0 -0
- {aiq → nat}/agent/rewoo_agent/__init__.py +0 -0
- {aiq → nat}/agent/tool_calling_agent/__init__.py +0 -0
- {aiq → nat}/authentication/__init__.py +0 -0
- {aiq → nat}/authentication/api_key/__init__.py +0 -0
- {aiq → nat}/authentication/exceptions/__init__.py +0 -0
- {aiq → nat}/authentication/exceptions/api_key_exceptions.py +0 -0
- {aiq → nat}/authentication/http_basic_auth/__init__.py +0 -0
- {aiq → nat}/authentication/oauth2/__init__.py +0 -0
- {aiq → nat}/builder/__init__.py +0 -0
- {aiq → nat}/builder/framework_enum.py +0 -0
- {aiq → nat}/cli/__init__.py +0 -0
- {aiq → nat}/cli/cli_utils/__init__.py +0 -0
- {aiq → nat}/cli/commands/__init__.py +0 -0
- {aiq → nat}/cli/commands/configure/__init__.py +0 -0
- {aiq → nat}/cli/commands/configure/channel/__init__.py +0 -0
- {aiq → nat}/cli/commands/info/__init__.py +0 -0
- {aiq → nat}/cli/commands/registry/__init__.py +0 -0
- {aiq → nat}/cli/commands/sizing/__init__.py +0 -0
- {aiq → nat}/cli/commands/sizing/sizing.py +0 -0
- {aiq → nat}/cli/commands/workflow/__init__.py +0 -0
- {aiq → nat}/cli/commands/workflow/templates/__init__.py.j2 +0 -0
- {aiq → nat}/cli/commands/workflow/templates/config.yml.j2 +0 -0
- {aiq → nat}/cli/commands/workflow/templates/register.py.j2 +0 -0
- {aiq → nat}/data_models/__init__.py +0 -0
- {aiq → nat}/data_models/common.py +0 -0
- {aiq → nat}/data_models/embedder.py +0 -0
- {aiq → nat}/data_models/evaluator.py +0 -0
- {aiq → nat}/data_models/front_end.py +0 -0
- {aiq → nat}/data_models/function.py +0 -0
- {aiq → nat}/data_models/function_dependencies.py +0 -0
- {aiq → nat}/data_models/interactive.py +0 -0
- {aiq → nat}/data_models/invocation_node.py +0 -0
- {aiq → nat}/data_models/llm.py +0 -0
- {aiq → nat}/data_models/logging.py +0 -0
- {aiq → nat}/data_models/memory.py +0 -0
- {aiq → nat}/data_models/object_store.py +0 -0
- {aiq → nat}/data_models/profiler.py +0 -0
- {aiq → nat}/data_models/registry_handler.py +0 -0
- {aiq → nat}/data_models/retry_mixin.py +0 -0
- {aiq → nat}/data_models/streaming.py +0 -0
- {aiq → nat}/data_models/swe_bench_model.py +0 -0
- {aiq → nat}/data_models/ttc_strategy.py +0 -0
- {aiq → nat}/embedder/__init__.py +0 -0
- {aiq → nat}/eval/__init__.py +0 -0
- {aiq → nat}/eval/dataset_handler/__init__.py +0 -0
- {aiq → nat}/eval/evaluator/__init__.py +0 -0
- {aiq → nat}/eval/rag_evaluator/__init__.py +0 -0
- {aiq → nat}/eval/register.py +0 -0
- {aiq → nat}/eval/runners/__init__.py +0 -0
- {aiq → nat}/eval/swe_bench_evaluator/__init__.py +0 -0
- {aiq → nat}/eval/trajectory_evaluator/__init__.py +0 -0
- {aiq → nat}/eval/tunable_rag_evaluator/__init__.py +0 -0
- {aiq → nat}/eval/usage_stats.py +0 -0
- {aiq → nat}/eval/utils/__init__.py +0 -0
- {aiq → nat}/eval/utils/tqdm_position_registry.py +0 -0
- {aiq → nat}/experimental/__init__.py +0 -0
- {aiq → nat}/experimental/decorators/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/editing/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/functions/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/models/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/models/stage_enums.py +0 -0
- {aiq → nat}/experimental/test_time_compute/models/tool_use_config.py +0 -0
- {aiq → nat}/experimental/test_time_compute/models/ttc_item.py +0 -0
- {aiq → nat}/experimental/test_time_compute/scoring/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/search/__init__.py +0 -0
- {aiq → nat}/experimental/test_time_compute/selection/__init__.py +0 -0
- {aiq → nat}/front_ends/__init__.py +0 -0
- {aiq → nat}/front_ends/console/__init__.py +0 -0
- {aiq → nat}/front_ends/cron/__init__.py +0 -0
- {aiq → nat}/front_ends/fastapi/__init__.py +0 -0
- {aiq → nat}/front_ends/fastapi/auth_flow_handlers/__init__.py +0 -0
- {aiq → nat}/front_ends/fastapi/fastapi_front_end_controller.py +0 -0
- {aiq → nat}/front_ends/fastapi/html_snippets/__init__.py +0 -0
- {aiq → nat}/front_ends/fastapi/html_snippets/auth_code_grant_success.py +0 -0
- {aiq → nat}/front_ends/fastapi/job_store.py +0 -0
- {aiq → nat}/front_ends/mcp/__init__.py +0 -0
- {aiq → nat}/front_ends/register.py +0 -0
- {aiq → nat}/front_ends/simple_base/__init__.py +0 -0
- {aiq → nat}/llm/__init__.py +0 -0
- {aiq → nat}/llm/register.py +0 -0
- {aiq → nat}/llm/utils/__init__.py +0 -0
- {aiq → nat}/llm/utils/env_config_value.py +0 -0
- {aiq → nat}/llm/utils/error.py +0 -0
- {aiq → nat}/memory/interfaces.py +0 -0
- {aiq → nat}/memory/models.py +0 -0
- {aiq → nat}/object_store/interfaces.py +0 -0
- {aiq → nat}/object_store/models.py +0 -0
- {aiq → nat}/object_store/register.py +0 -0
- {aiq → nat}/observability/__init__.py +0 -0
- {aiq → nat}/observability/exporter/__init__.py +0 -0
- {aiq → nat}/observability/mixin/__init__.py +0 -0
- {aiq → nat}/observability/mixin/batch_config_mixin.py +0 -0
- {aiq → nat}/observability/mixin/collector_config_mixin.py +0 -0
- {aiq → nat}/observability/mixin/file_mode.py +0 -0
- {aiq → nat}/observability/mixin/resource_conflict_mixin.py +0 -0
- {aiq → nat}/observability/mixin/serialize_mixin.py +0 -0
- {aiq → nat}/observability/mixin/type_introspection_mixin.py +0 -0
- {aiq → nat}/observability/processor/__init__.py +0 -0
- {aiq → nat}/observability/utils/__init__.py +0 -0
- {aiq → nat}/observability/utils/dict_utils.py +0 -0
- {aiq → nat}/observability/utils/time_utils.py +0 -0
- {aiq → nat}/plugins/.namespace +0 -0
- {aiq → nat}/profiler/__init__.py +0 -0
- {aiq → nat}/profiler/calc/__init__.py +0 -0
- {aiq → nat}/profiler/calc/data_models.py +0 -0
- {aiq → nat}/profiler/callbacks/__init__.py +0 -0
- {aiq → nat}/profiler/callbacks/base_callback_class.py +0 -0
- {aiq → nat}/profiler/callbacks/token_usage_base_model.py +0 -0
- {aiq → nat}/profiler/data_frame_row.py +0 -0
- {aiq → nat}/profiler/decorators/__init__.py +0 -0
- {aiq → nat}/profiler/forecasting/__init__.py +0 -0
- {aiq → nat}/profiler/forecasting/config.py +0 -0
- {aiq → nat}/profiler/forecasting/models/__init__.py +0 -0
- {aiq → nat}/profiler/forecasting/models/forecasting_base_model.py +0 -0
- {aiq → nat}/profiler/inference_metrics_model.py +0 -0
- {aiq → nat}/profiler/inference_optimization/__init__.py +0 -0
- {aiq → nat}/profiler/inference_optimization/bottleneck_analysis/__init__.py +0 -0
- {aiq → nat}/profiler/inference_optimization/data_models.py +0 -0
- {aiq → nat}/profiler/inference_optimization/experimental/__init__.py +0 -0
- {aiq → nat}/registry_handlers/__init__.py +0 -0
- {aiq → nat}/registry_handlers/local/__init__.py +0 -0
- {aiq → nat}/registry_handlers/pypi/__init__.py +0 -0
- {aiq → nat}/registry_handlers/register.py +0 -0
- {aiq → nat}/registry_handlers/rest/__init__.py +0 -0
- {aiq → nat}/registry_handlers/schemas/__init__.py +0 -0
- {aiq → nat}/registry_handlers/schemas/headers.py +0 -0
- {aiq → nat}/registry_handlers/schemas/status.py +0 -0
- {aiq → nat}/retriever/__init__.py +0 -0
- {aiq → nat}/retriever/milvus/__init__.py +0 -0
- {aiq → nat}/retriever/nemo_retriever/__init__.py +0 -0
- {aiq → nat}/runtime/__init__.py +0 -0
- {aiq → nat}/settings/__init__.py +0 -0
- {aiq → nat}/test/.namespace +0 -0
- {aiq → nat}/tool/__init__.py +0 -0
- {aiq → nat}/tool/code_execution/__init__.py +0 -0
- {aiq → nat}/tool/code_execution/local_sandbox/.gitignore +0 -0
- {aiq → nat}/tool/code_execution/local_sandbox/Dockerfile.sandbox +0 -0
- {aiq → nat}/tool/code_execution/local_sandbox/__init__.py +0 -0
- {aiq → nat}/tool/code_execution/local_sandbox/local_sandbox_server.py +0 -0
- {aiq → nat}/tool/code_execution/local_sandbox/sandbox.requirements.txt +0 -0
- {aiq → nat}/tool/code_execution/local_sandbox/start_local_sandbox.sh +0 -0
- {aiq → nat}/tool/code_execution/utils.py +0 -0
- {aiq → nat}/tool/github_tools/__init__.py +0 -0
- {aiq → nat}/tool/mcp/__init__.py +0 -0
- {aiq → nat}/tool/memory_tools/__init__.py +0 -0
- {aiq → nat}/tool/register.py +0 -0
- {aiq → nat}/utils/__init__.py +0 -0
- {aiq → nat}/utils/data_models/__init__.py +0 -0
- {aiq → nat}/utils/data_models/schema_validator.py +0 -0
- {aiq → nat}/utils/debugging_utils.py +0 -0
- {aiq → nat}/utils/exception_handlers/__init__.py +0 -0
- {aiq → nat}/utils/exception_handlers/automatic_retries.py +0 -0
- {aiq → nat}/utils/exception_handlers/schemas.py +0 -0
- {aiq → nat}/utils/io/__init__.py +0 -0
- {aiq → nat}/utils/io/model_processing.py +0 -0
- {aiq → nat}/utils/log_utils.py +0 -0
- {aiq → nat}/utils/optional_imports.py +0 -0
- {aiq → nat}/utils/producer_consumer_queue.py +0 -0
- {aiq → nat}/utils/reactive/__init__.py +0 -0
- {aiq → nat}/utils/reactive/base/__init__.py +0 -0
- {aiq → nat}/utils/reactive/base/observer_base.py +0 -0
- {aiq → nat}/utils/settings/__init__.py +0 -0
- {aiq → nat}/utils/string_utils.py +0 -0
- {aiq → nat}/utils/type_utils.py +0 -0
- {aiq → nat}/utils/url_utils.py +0 -0
- {nvidia_nat-1.2.0rc5.dist-info → nvidia_nat-1.2.0rc6.dist-info}/WHEEL +0 -0
- {nvidia_nat-1.2.0rc5.dist-info → nvidia_nat-1.2.0rc6.dist-info}/licenses/LICENSE-3rd-party.txt +0 -0
- {nvidia_nat-1.2.0rc5.dist-info → nvidia_nat-1.2.0rc6.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -19,12 +19,12 @@ from datetime import timezone
|
|
|
19
19
|
from authlib.integrations.httpx_client import OAuth2Client as AuthlibOAuth2Client
|
|
20
20
|
from pydantic import SecretStr
|
|
21
21
|
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
22
|
+
from nat.authentication.interfaces import AuthProviderBase
|
|
23
|
+
from nat.authentication.oauth2.oauth2_auth_code_flow_provider_config import OAuth2AuthCodeFlowProviderConfig
|
|
24
|
+
from nat.builder.context import Context
|
|
25
|
+
from nat.data_models.authentication import AuthFlowType
|
|
26
|
+
from nat.data_models.authentication import AuthResult
|
|
27
|
+
from nat.data_models.authentication import BearerTokenCred
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class OAuth2AuthCodeFlowProvider(AuthProviderBase[OAuth2AuthCodeFlowProviderConfig]):
|
|
@@ -32,7 +32,7 @@ class OAuth2AuthCodeFlowProvider(AuthProviderBase[OAuth2AuthCodeFlowProviderConf
|
|
|
32
32
|
def __init__(self, config: OAuth2AuthCodeFlowProviderConfig):
|
|
33
33
|
super().__init__(config)
|
|
34
34
|
self._authenticated_tokens: dict[str, AuthResult] = {}
|
|
35
|
-
self._context =
|
|
35
|
+
self._context = Context.get()
|
|
36
36
|
|
|
37
37
|
async def _attempt_token_refresh(self, user_id: str, auth_result: AuthResult) -> AuthResult | None:
|
|
38
38
|
refresh_token = auth_result.raw.get("refresh_token")
|
|
@@ -63,9 +63,9 @@ class OAuth2AuthCodeFlowProvider(AuthProviderBase[OAuth2AuthCodeFlowProviderConf
|
|
|
63
63
|
return new_auth_result
|
|
64
64
|
|
|
65
65
|
async def authenticate(self, user_id: str | None = None) -> AuthResult:
|
|
66
|
-
if user_id is None and hasattr(
|
|
67
|
-
|
|
68
|
-
session_id =
|
|
66
|
+
if user_id is None and hasattr(Context.get(), "metadata") and hasattr(
|
|
67
|
+
Context.get().metadata, "cookies") and Context.get().metadata.cookies is not None:
|
|
68
|
+
session_id = Context.get().metadata.cookies.get("nat-session", None)
|
|
69
69
|
if not session_id:
|
|
70
70
|
raise RuntimeError("Authentication failed. No session ID found. Cannot identify user.")
|
|
71
71
|
|
|
@@ -82,7 +82,7 @@ class OAuth2AuthCodeFlowProvider(AuthProviderBase[OAuth2AuthCodeFlowProviderConf
|
|
|
82
82
|
|
|
83
83
|
auth_callback = self._context.user_auth_callback
|
|
84
84
|
if not auth_callback:
|
|
85
|
-
raise RuntimeError("Authentication callback not set on
|
|
85
|
+
raise RuntimeError("Authentication callback not set on Context.")
|
|
86
86
|
|
|
87
87
|
try:
|
|
88
88
|
authenticated_context = await auth_callback(self.config, AuthFlowType.OAUTH2_AUTHORIZATION_CODE)
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
from pydantic import Field
|
|
17
17
|
|
|
18
|
-
from
|
|
18
|
+
from nat.data_models.authentication import AuthProviderBaseConfig
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class OAuth2AuthCodeFlowProviderConfig(AuthProviderBaseConfig, name="oauth2_auth_code_flow"):
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
16
|
+
from nat.authentication.oauth2.oauth2_auth_code_flow_provider_config import OAuth2AuthCodeFlowProviderConfig
|
|
17
|
+
from nat.builder.builder import Builder
|
|
18
|
+
from nat.cli.register_workflow import register_auth_provider
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@register_auth_provider(config_type=OAuth2AuthCodeFlowProviderConfig)
|
|
22
22
|
async def oauth2_client(authentication_provider: OAuth2AuthCodeFlowProviderConfig, builder: Builder):
|
|
23
|
-
from
|
|
23
|
+
from nat.authentication.oauth2.oauth2_auth_code_flow_provider import OAuth2AuthCodeFlowProvider
|
|
24
24
|
|
|
25
25
|
yield OAuth2AuthCodeFlowProvider(authentication_provider)
|
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
# pylint: disable=unused-import
|
|
17
17
|
# flake8: noqa
|
|
18
18
|
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
19
|
+
from nat.authentication.api_key import register as register_api_key
|
|
20
|
+
from nat.authentication.http_basic_auth import register as register_http_basic_auth
|
|
21
|
+
from nat.authentication.oauth2 import register as register_oauth2
|
{aiq → nat}/builder/builder.py
RENAMED
|
@@ -20,38 +20,38 @@ from abc import abstractmethod
|
|
|
20
20
|
from collections.abc import Sequence
|
|
21
21
|
from pathlib import Path
|
|
22
22
|
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
33
|
-
from
|
|
34
|
-
from
|
|
35
|
-
from
|
|
36
|
-
from
|
|
37
|
-
from
|
|
38
|
-
from
|
|
39
|
-
from
|
|
40
|
-
from
|
|
41
|
-
from
|
|
42
|
-
from
|
|
43
|
-
from
|
|
44
|
-
from
|
|
45
|
-
from
|
|
46
|
-
from
|
|
47
|
-
from
|
|
48
|
-
from
|
|
49
|
-
from
|
|
23
|
+
from nat.authentication.interfaces import AuthProviderBase
|
|
24
|
+
from nat.builder.context import Context
|
|
25
|
+
from nat.builder.framework_enum import LLMFrameworkEnum
|
|
26
|
+
from nat.builder.function import Function
|
|
27
|
+
from nat.data_models.authentication import AuthProviderBaseConfig
|
|
28
|
+
from nat.data_models.component_ref import AuthenticationRef
|
|
29
|
+
from nat.data_models.component_ref import EmbedderRef
|
|
30
|
+
from nat.data_models.component_ref import FunctionRef
|
|
31
|
+
from nat.data_models.component_ref import LLMRef
|
|
32
|
+
from nat.data_models.component_ref import MemoryRef
|
|
33
|
+
from nat.data_models.component_ref import ObjectStoreRef
|
|
34
|
+
from nat.data_models.component_ref import RetrieverRef
|
|
35
|
+
from nat.data_models.component_ref import TTCStrategyRef
|
|
36
|
+
from nat.data_models.embedder import EmbedderBaseConfig
|
|
37
|
+
from nat.data_models.evaluator import EvaluatorBaseConfig
|
|
38
|
+
from nat.data_models.function import FunctionBaseConfig
|
|
39
|
+
from nat.data_models.function_dependencies import FunctionDependencies
|
|
40
|
+
from nat.data_models.llm import LLMBaseConfig
|
|
41
|
+
from nat.data_models.memory import MemoryBaseConfig
|
|
42
|
+
from nat.data_models.object_store import ObjectStoreBaseConfig
|
|
43
|
+
from nat.data_models.retriever import RetrieverBaseConfig
|
|
44
|
+
from nat.data_models.ttc_strategy import TTCStrategyBaseConfig
|
|
45
|
+
from nat.experimental.test_time_compute.models.stage_enums import PipelineTypeEnum
|
|
46
|
+
from nat.experimental.test_time_compute.models.stage_enums import StageTypeEnum
|
|
47
|
+
from nat.memory.interfaces import MemoryEditor
|
|
48
|
+
from nat.object_store.interfaces import ObjectStore
|
|
49
|
+
from nat.retriever.interface import Retriever
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class UserManagerHolder():
|
|
53
53
|
|
|
54
|
-
def __init__(self, context:
|
|
54
|
+
def __init__(self, context: Context) -> None:
|
|
55
55
|
self._context = context
|
|
56
56
|
|
|
57
57
|
def get_id(self):
|
|
@@ -214,11 +214,11 @@ class Builder(ABC): # pylint: disable=too-many-public-methods
|
|
|
214
214
|
...
|
|
215
215
|
|
|
216
216
|
@typing.overload
|
|
217
|
-
async def get_retriever(self, retriever_name: str | RetrieverRef, wrapper_type: None) ->
|
|
217
|
+
async def get_retriever(self, retriever_name: str | RetrieverRef, wrapper_type: None) -> Retriever:
|
|
218
218
|
...
|
|
219
219
|
|
|
220
220
|
@typing.overload
|
|
221
|
-
async def get_retriever(self, retriever_name: str | RetrieverRef) ->
|
|
221
|
+
async def get_retriever(self, retriever_name: str | RetrieverRef) -> Retriever:
|
|
222
222
|
...
|
|
223
223
|
|
|
224
224
|
@abstractmethod
|
|
@@ -21,21 +21,21 @@ from collections.abc import Iterable
|
|
|
21
21
|
import networkx as nx
|
|
22
22
|
from pydantic import BaseModel
|
|
23
23
|
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
33
|
-
from
|
|
34
|
-
from
|
|
35
|
-
from
|
|
36
|
-
from
|
|
37
|
-
from
|
|
38
|
-
from
|
|
24
|
+
from nat.data_models.authentication import AuthProviderBaseConfig
|
|
25
|
+
from nat.data_models.common import TypedBaseModel
|
|
26
|
+
from nat.data_models.component import ComponentGroup
|
|
27
|
+
from nat.data_models.component_ref import ComponentRef
|
|
28
|
+
from nat.data_models.component_ref import ComponentRefNode
|
|
29
|
+
from nat.data_models.component_ref import generate_instance_id
|
|
30
|
+
from nat.data_models.config import Config
|
|
31
|
+
from nat.data_models.embedder import EmbedderBaseConfig
|
|
32
|
+
from nat.data_models.function import FunctionBaseConfig
|
|
33
|
+
from nat.data_models.llm import LLMBaseConfig
|
|
34
|
+
from nat.data_models.memory import MemoryBaseConfig
|
|
35
|
+
from nat.data_models.object_store import ObjectStoreBaseConfig
|
|
36
|
+
from nat.data_models.retriever import RetrieverBaseConfig
|
|
37
|
+
from nat.data_models.ttc_strategy import TTCStrategyBaseConfig
|
|
38
|
+
from nat.utils.type_utils import DecomposedType
|
|
39
39
|
|
|
40
40
|
logger = logging.getLogger(__name__)
|
|
41
41
|
|
|
@@ -56,7 +56,7 @@ class ComponentInstanceData(BaseModel):
|
|
|
56
56
|
"""A data model to hold component runtime instance metadata to support generating build sequences.
|
|
57
57
|
|
|
58
58
|
Args:
|
|
59
|
-
component_group (ComponentGroup): The component group in
|
|
59
|
+
component_group (ComponentGroup): The component group in a NAT configuration object.
|
|
60
60
|
name (ComponentRef): The name of the component runtime instance.
|
|
61
61
|
config (TypedBaseModel): The runtime instance's configuration object.
|
|
62
62
|
instance_id (str): Unique identifier for each runtime instance.
|
|
@@ -161,12 +161,12 @@ def recursive_componentref_discovery(cls: TypedBaseModel, value: typing.Any,
|
|
|
161
161
|
yield from recursive_componentref_discovery(cls, value, arg)
|
|
162
162
|
|
|
163
163
|
|
|
164
|
-
def update_dependency_graph(config: "
|
|
164
|
+
def update_dependency_graph(config: "Config", instance_config: TypedBaseModel,
|
|
165
165
|
dependency_graph: nx.DiGraph) -> nx.DiGraph:
|
|
166
166
|
"""Updates the hierarchical component instance dependency graph from a configuration runtime instance.
|
|
167
167
|
|
|
168
168
|
Args:
|
|
169
|
-
config (
|
|
169
|
+
config (Config): A NAT configuration object with runtime instance details.
|
|
170
170
|
instance_config (TypedBaseModel): A component's runtime instance configuration object.
|
|
171
171
|
dependency_graph (nx.DiGraph): A graph tracking runtime instance component dependencies.
|
|
172
172
|
|
|
@@ -192,11 +192,11 @@ def update_dependency_graph(config: "AIQConfig", instance_config: TypedBaseModel
|
|
|
192
192
|
return dependency_graph
|
|
193
193
|
|
|
194
194
|
|
|
195
|
-
def config_to_dependency_objects(config: "
|
|
195
|
+
def config_to_dependency_objects(config: "Config") -> tuple[dict[str, ComponentInstanceData], nx.DiGraph]:
|
|
196
196
|
"""Generates a map of component runtime instance IDs to use when generating a build sequence.
|
|
197
197
|
|
|
198
198
|
Args:
|
|
199
|
-
config (
|
|
199
|
+
config (Config): The NAT workflow configuration object.
|
|
200
200
|
|
|
201
201
|
Returns:
|
|
202
202
|
tuple[dict[str, ComponentInstanceData], nx.DiGraph]: A tuple containing a map of component runtime instance
|
|
@@ -243,11 +243,11 @@ def config_to_dependency_objects(config: "AIQConfig") -> tuple[dict[str, Compone
|
|
|
243
243
|
return dependency_map, dependency_graph
|
|
244
244
|
|
|
245
245
|
|
|
246
|
-
def build_dependency_sequence(config: "
|
|
247
|
-
"""Generates the depencency sequence from
|
|
246
|
+
def build_dependency_sequence(config: "Config") -> list[ComponentInstanceData]:
|
|
247
|
+
"""Generates the depencency sequence from a NAT configuration object
|
|
248
248
|
|
|
249
249
|
Args:
|
|
250
|
-
config (
|
|
250
|
+
config (Config): A NAT configuration object.
|
|
251
251
|
|
|
252
252
|
Returns:
|
|
253
253
|
list[ComponentInstanceData]: A list representing the instatiation sequence to ensure all valid
|
{aiq → nat}/builder/context.py
RENAMED
|
@@ -20,20 +20,20 @@ from collections.abc import Callable
|
|
|
20
20
|
from contextlib import contextmanager
|
|
21
21
|
from contextvars import ContextVar
|
|
22
22
|
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
33
|
-
from
|
|
34
|
-
from
|
|
35
|
-
from
|
|
36
|
-
from
|
|
23
|
+
from nat.builder.intermediate_step_manager import IntermediateStepManager
|
|
24
|
+
from nat.builder.user_interaction_manager import UserInteractionManager
|
|
25
|
+
from nat.data_models.authentication import AuthenticatedContext
|
|
26
|
+
from nat.data_models.authentication import AuthFlowType
|
|
27
|
+
from nat.data_models.authentication import AuthProviderBaseConfig
|
|
28
|
+
from nat.data_models.interactive import HumanResponse
|
|
29
|
+
from nat.data_models.interactive import InteractionPrompt
|
|
30
|
+
from nat.data_models.intermediate_step import IntermediateStep
|
|
31
|
+
from nat.data_models.intermediate_step import IntermediateStepPayload
|
|
32
|
+
from nat.data_models.intermediate_step import IntermediateStepType
|
|
33
|
+
from nat.data_models.intermediate_step import StreamEventData
|
|
34
|
+
from nat.data_models.invocation_node import InvocationNode
|
|
35
|
+
from nat.runtime.user_metadata import RequestAttributes
|
|
36
|
+
from nat.utils.reactive.subject import Subject
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class Singleton(type):
|
|
@@ -61,7 +61,7 @@ class ActiveFunctionContextManager:
|
|
|
61
61
|
self._output = output
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
class
|
|
64
|
+
class ContextState(metaclass=Singleton):
|
|
65
65
|
|
|
66
66
|
def __init__(self):
|
|
67
67
|
self.conversation_id: ContextVar[str | None] = ContextVar("conversation_id", default=None)
|
|
@@ -78,19 +78,19 @@ class AIQContextState(metaclass=Singleton):
|
|
|
78
78
|
self.user_input_callback: ContextVar[Callable[[InteractionPrompt], Awaitable[HumanResponse | None]]
|
|
79
79
|
| None] = ContextVar(
|
|
80
80
|
"user_input_callback",
|
|
81
|
-
default=
|
|
81
|
+
default=UserInteractionManager.default_callback_handler)
|
|
82
82
|
self.user_auth_callback: ContextVar[Callable[[AuthProviderBaseConfig, AuthFlowType],
|
|
83
83
|
Awaitable[AuthenticatedContext]]
|
|
84
84
|
| None] = ContextVar("user_auth_callback", default=None)
|
|
85
85
|
|
|
86
86
|
@staticmethod
|
|
87
|
-
def get() -> "
|
|
88
|
-
return
|
|
87
|
+
def get() -> "ContextState":
|
|
88
|
+
return ContextState()
|
|
89
89
|
|
|
90
90
|
|
|
91
|
-
class
|
|
91
|
+
class Context:
|
|
92
92
|
|
|
93
|
-
def __init__(self, context:
|
|
93
|
+
def __init__(self, context: ContextState):
|
|
94
94
|
self._context_state = context
|
|
95
95
|
|
|
96
96
|
@property
|
|
@@ -134,12 +134,12 @@ class AIQContext:
|
|
|
134
134
|
return self._context_state.metadata.get()
|
|
135
135
|
|
|
136
136
|
@property
|
|
137
|
-
def user_interaction_manager(self) ->
|
|
137
|
+
def user_interaction_manager(self) -> UserInteractionManager:
|
|
138
138
|
"""
|
|
139
|
-
Return an instance of
|
|
139
|
+
Return an instance of UserInteractionManager that uses
|
|
140
140
|
the current context's user_input_callback.
|
|
141
141
|
"""
|
|
142
|
-
return
|
|
142
|
+
return UserInteractionManager(self._context_state)
|
|
143
143
|
|
|
144
144
|
@property
|
|
145
145
|
def intermediate_step_manager(self) -> IntermediateStepManager:
|
|
@@ -251,14 +251,20 @@ class AIQContext:
|
|
|
251
251
|
return callback
|
|
252
252
|
|
|
253
253
|
@staticmethod
|
|
254
|
-
def get() -> "
|
|
254
|
+
def get() -> "Context":
|
|
255
255
|
"""
|
|
256
|
-
Static method to retrieve the current
|
|
256
|
+
Static method to retrieve the current Context instance.
|
|
257
257
|
|
|
258
|
-
This method creates and returns an instance of the
|
|
259
|
-
by obtaining the current state from the
|
|
258
|
+
This method creates and returns an instance of the Context class
|
|
259
|
+
by obtaining the current state from the ContextState.
|
|
260
260
|
|
|
261
261
|
Returns:
|
|
262
|
-
|
|
262
|
+
Context: The created Context instance.
|
|
263
263
|
"""
|
|
264
|
-
return
|
|
264
|
+
return Context(ContextState.get())
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
# Compatibility aliases with previous releases
|
|
268
|
+
|
|
269
|
+
AIQContextState = ContextState
|
|
270
|
+
AIQContext = Context
|
{aiq → nat}/builder/embedder.py
RENAMED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
|
|
16
|
-
from
|
|
16
|
+
from nat.data_models.embedder import EmbedderBaseConfig
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class EmbedderProviderInfo:
|
|
@@ -18,17 +18,17 @@ import logging
|
|
|
18
18
|
from contextlib import asynccontextmanager
|
|
19
19
|
from pathlib import Path
|
|
20
20
|
|
|
21
|
-
from
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
21
|
+
from nat.builder.builder import EvalBuilder
|
|
22
|
+
from nat.builder.evaluator import EvaluatorInfo
|
|
23
|
+
from nat.builder.framework_enum import LLMFrameworkEnum
|
|
24
|
+
from nat.builder.workflow_builder import WorkflowBuilder
|
|
25
|
+
from nat.cli.type_registry import TypeRegistry
|
|
26
|
+
from nat.data_models.config import Config
|
|
27
|
+
from nat.data_models.config import GeneralConfig
|
|
28
|
+
from nat.data_models.evaluate import EvalGeneralConfig
|
|
29
|
+
from nat.data_models.evaluator import EvaluatorBaseConfig
|
|
30
|
+
from nat.data_models.function import EmptyFunctionConfig
|
|
31
|
+
from nat.utils.type_utils import override
|
|
32
32
|
|
|
33
33
|
logger = logging.getLogger(__name__)
|
|
34
34
|
|
|
@@ -127,7 +127,7 @@ class WorkflowEvalBuilder(WorkflowBuilder, EvalBuilder):
|
|
|
127
127
|
remaining_components,
|
|
128
128
|
original_error)
|
|
129
129
|
|
|
130
|
-
async def populate_builder(self, config:
|
|
130
|
+
async def populate_builder(self, config: Config):
|
|
131
131
|
# Skip setting workflow if workflow config is EmptyFunctionConfig
|
|
132
132
|
skip_workflow = isinstance(config.workflow, EmptyFunctionConfig)
|
|
133
133
|
|
|
@@ -154,7 +154,7 @@ class WorkflowEvalBuilder(WorkflowBuilder, EvalBuilder):
|
|
|
154
154
|
|
|
155
155
|
@classmethod
|
|
156
156
|
@asynccontextmanager
|
|
157
|
-
async def from_config(cls, config:
|
|
157
|
+
async def from_config(cls, config: Config):
|
|
158
158
|
|
|
159
159
|
async with cls(config.general, config.eval.general, registry=None) as builder:
|
|
160
160
|
await builder.populate_builder(config)
|
{aiq → nat}/builder/evaluator.py
RENAMED
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
from collections.abc import Callable
|
|
17
17
|
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
18
|
+
from nat.data_models.evaluator import EvaluatorBaseConfig
|
|
19
|
+
from nat.eval.evaluator.evaluator_model import EvalInput
|
|
20
|
+
from nat.eval.evaluator.evaluator_model import EvalOutput
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class EvaluatorInfo:
|
{aiq → nat}/builder/front_end.py
RENAMED
|
@@ -17,33 +17,33 @@ import typing
|
|
|
17
17
|
from abc import ABC
|
|
18
18
|
from abc import abstractmethod
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from nat.data_models.front_end import FrontEndConfigT
|
|
21
21
|
|
|
22
22
|
if (typing.TYPE_CHECKING):
|
|
23
|
-
from
|
|
23
|
+
from nat.data_models.config import Config
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class FrontEndBase(typing.Generic[FrontEndConfigT], ABC):
|
|
27
27
|
|
|
28
|
-
def __init__(self, full_config: "
|
|
28
|
+
def __init__(self, full_config: "Config"):
|
|
29
29
|
"""
|
|
30
|
-
Initializes the FrontEndBase object with the specified
|
|
30
|
+
Initializes the FrontEndBase object with the specified NAT configuration.
|
|
31
31
|
|
|
32
32
|
Parameters
|
|
33
33
|
----------
|
|
34
|
-
full_config :
|
|
34
|
+
full_config : Config
|
|
35
35
|
The configuration object to use for the front end.
|
|
36
36
|
"""
|
|
37
37
|
|
|
38
38
|
super().__init__()
|
|
39
39
|
|
|
40
|
-
self._full_config: "
|
|
40
|
+
self._full_config: "Config" = full_config
|
|
41
41
|
self._front_end_config: FrontEndConfigT = typing.cast(FrontEndConfigT, full_config.general.front_end)
|
|
42
42
|
|
|
43
43
|
@property
|
|
44
44
|
def front_end_config(self) -> FrontEndConfigT:
|
|
45
45
|
"""
|
|
46
|
-
Returns the front end configuration object extracted from the
|
|
46
|
+
Returns the front end configuration object extracted from the NAT configuration.
|
|
47
47
|
|
|
48
48
|
Returns
|
|
49
49
|
-------
|
|
@@ -53,14 +53,14 @@ class FrontEndBase(typing.Generic[FrontEndConfigT], ABC):
|
|
|
53
53
|
return self._front_end_config
|
|
54
54
|
|
|
55
55
|
@property
|
|
56
|
-
def full_config(self) -> "
|
|
56
|
+
def full_config(self) -> "Config":
|
|
57
57
|
"""
|
|
58
|
-
Returns the full
|
|
58
|
+
Returns the full NAT configuration object.
|
|
59
59
|
|
|
60
60
|
Returns
|
|
61
61
|
-------
|
|
62
|
-
|
|
63
|
-
The full
|
|
62
|
+
Config
|
|
63
|
+
The full NAT configuration object.
|
|
64
64
|
"""
|
|
65
65
|
|
|
66
66
|
return self._full_config
|
{aiq → nat}/builder/function.py
RENAMED
|
@@ -23,13 +23,13 @@ from collections.abc import Callable
|
|
|
23
23
|
|
|
24
24
|
from pydantic import BaseModel
|
|
25
25
|
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
26
|
+
from nat.builder.context import Context
|
|
27
|
+
from nat.builder.function_base import FunctionBase
|
|
28
|
+
from nat.builder.function_base import InputT
|
|
29
|
+
from nat.builder.function_base import SingleOutputT
|
|
30
|
+
from nat.builder.function_base import StreamingOutputT
|
|
31
|
+
from nat.builder.function_info import FunctionInfo
|
|
32
|
+
from nat.data_models.function import FunctionBaseConfig
|
|
33
33
|
|
|
34
34
|
_InvokeFnT = Callable[[InputT], Awaitable[SingleOutputT]]
|
|
35
35
|
_StreamFnT = Callable[[InputT], AsyncGenerator[StreamingOutputT]]
|
|
@@ -59,7 +59,7 @@ class Function(FunctionBase[InputT, StreamingOutputT, SingleOutputT], ABC):
|
|
|
59
59
|
self.config = config
|
|
60
60
|
self.description = description
|
|
61
61
|
self.instance_name = instance_name or config.type
|
|
62
|
-
self._context =
|
|
62
|
+
self._context = Context.get()
|
|
63
63
|
|
|
64
64
|
def convert(self, value: typing.Any, to_type: type[_T]) -> _T:
|
|
65
65
|
"""
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
|
-
"""Base class for
|
|
15
|
+
"""Base class for NAT functions providing type handling and schema management.
|
|
16
16
|
|
|
17
17
|
This module contains the FunctionBase abstract base class which provides core functionality
|
|
18
|
-
for
|
|
18
|
+
for NAT functions including type handling via generics, schema management for inputs and outputs,
|
|
19
19
|
and type conversion capabilities.
|
|
20
20
|
"""
|
|
21
21
|
|
|
@@ -28,8 +28,8 @@ from types import NoneType
|
|
|
28
28
|
|
|
29
29
|
from pydantic import BaseModel
|
|
30
30
|
|
|
31
|
-
from
|
|
32
|
-
from
|
|
31
|
+
from nat.utils.type_converter import TypeConverter
|
|
32
|
+
from nat.utils.type_utils import DecomposedType
|
|
33
33
|
|
|
34
34
|
InputT = typing.TypeVar("InputT")
|
|
35
35
|
StreamingOutputT = typing.TypeVar("StreamingOutputT")
|
|
@@ -40,7 +40,7 @@ logger = logging.getLogger(__name__)
|
|
|
40
40
|
|
|
41
41
|
class FunctionBase(typing.Generic[InputT, StreamingOutputT, SingleOutputT], ABC):
|
|
42
42
|
"""
|
|
43
|
-
Abstract base class providing core functionality for
|
|
43
|
+
Abstract base class providing core functionality for NAT functions.
|
|
44
44
|
|
|
45
45
|
This class provides type handling via generics, schema management for inputs and outputs,
|
|
46
46
|
and type conversion capabilities.
|
|
@@ -56,7 +56,7 @@ class FunctionBase(typing.Generic[InputT, StreamingOutputT, SingleOutputT], ABC)
|
|
|
56
56
|
|
|
57
57
|
Notes
|
|
58
58
|
-----
|
|
59
|
-
FunctionBase is the foundation of the
|
|
59
|
+
FunctionBase is the foundation of the NAT function system, providing:
|
|
60
60
|
- Type handling via generics
|
|
61
61
|
- Schema management for inputs and outputs
|
|
62
62
|
- Type conversion capabilities
|
|
@@ -29,8 +29,8 @@ from pydantic import Field
|
|
|
29
29
|
from pydantic import create_model
|
|
30
30
|
from pydantic_core import PydanticUndefined
|
|
31
31
|
|
|
32
|
-
from
|
|
33
|
-
from
|
|
32
|
+
from nat.data_models.streaming import Streaming
|
|
33
|
+
from nat.utils.type_utils import DecomposedType
|
|
34
34
|
|
|
35
35
|
logger = logging.getLogger(__name__)
|
|
36
36
|
|
|
@@ -574,7 +574,7 @@ class FunctionInfo:
|
|
|
574
574
|
Returns
|
|
575
575
|
-------
|
|
576
576
|
FunctionInfo
|
|
577
|
-
The created FunctionInfo object which can be used to create a Generic
|
|
577
|
+
The created FunctionInfo object which can be used to create a Generic NAT function.
|
|
578
578
|
|
|
579
579
|
"""
|
|
580
580
|
|