beamlit 0.0.28rc25__tar.gz → 0.0.29__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/PKG-INFO +1 -1
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/pyproject.toml +1 -1
- beamlit-0.0.29/src/beamlit/agents/chain.py +93 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/agents/decorator.py +14 -4
- beamlit-0.0.29/src/beamlit/api/agents/get_agent_trace_ids.py +171 -0
- beamlit-0.0.29/src/beamlit/api/functions/get_function_trace_ids.py +171 -0
- beamlit-0.0.29/src/beamlit/api/models/get_model_trace_ids.py +171 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/authentication/authentication.py +14 -17
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/authentication/clientcredentials.py +1 -1
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/client.py +14 -13
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/settings.py +8 -10
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/deploy/deploy.py +5 -5
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/mcp/mcp.py +26 -18
- beamlit-0.0.29/src/beamlit/functions/remote/remote.py +122 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/__init__.py +2 -0
- beamlit-0.0.29/src/beamlit/models/trace_ids_response.py +63 -0
- beamlit-0.0.28rc25/src/beamlit/api/agents/get_agent_trace_ids.py +0 -106
- beamlit-0.0.28rc25/src/beamlit/api/functions/get_function_trace_ids.py +0 -106
- beamlit-0.0.28rc25/src/beamlit/api/models/get_model_trace_ids.py +0 -106
- beamlit-0.0.28rc25/src/beamlit/functions/remote/remote.py +0 -103
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/.gitignore +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/README.md +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/beamlit.yaml +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/agents/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/agents/chat.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/create_agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/create_agent_release.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/delete_agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/delete_agent_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/get_agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/get_agent_environment_logs.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/get_agent_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/get_agent_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/list_agent_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/list_agents.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/put_agent_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/agents/update_agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/configurations/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/configurations/get_configuration.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/default/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/default/get_trace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/default/get_trace_ids.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/default/get_trace_logs.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/create_environment.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/delete_environment.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/get_environment.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/get_environment_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/list_environments.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/environments/update_environment.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/create_function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/create_function_release.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/delete_function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/get_function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/get_function_environment_logs.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/get_function_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/list_functions.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/functions/update_function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/history/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/history/get_agents_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/history/list_agents_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/create_integration_connection.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/delete_integration_connection.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/get_integration.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/get_integration_connection.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/get_integration_connection_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/get_integration_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/list_integration_connection_models.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/list_integration_connections.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/list_integration_models.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/integrations/update_integration_connection.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/invitations/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/invitations/list_all_pending_invitations.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/locations/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/locations/list_locations.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/metrics/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/metrics/get_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/model_providers/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/model_providers/create_model_provider.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/model_providers/delete_model_provider.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/model_providers/get_model_provider.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/model_providers/list_model_providers.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/model_providers/update_model_provider.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/create_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/delete_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/get_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/get_model_environment_logs.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/get_model_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/list_models.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/release_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/models/update_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/policies/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/policies/create_policy.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/policies/delete_policy.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/policies/get_policy.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/policies/list_policies.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/policies/update_policy.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/create_private_cluster.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/delete_private_cluster.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/get_private_cluster.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/get_private_cluster_health.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/list_private_clusters.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/update_private_cluster.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/privateclusters/update_private_cluster_health.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/create_api_key_for_service_account.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/create_workspace_service_account.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/delete_api_key_for_service_account.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/delete_workspace_service_account.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/get_workspace_service_accounts.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/list_api_keys_for_service_account.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/service_accounts/update_workspace_service_account.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/store/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/store/get_store_agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/store/get_store_function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/store/list_store_agents.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/store/list_store_functions.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/accept_workspace_invitation.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/create_worspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/decline_workspace_invitation.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/delete_workspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/get_workspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/invite_workspace_user.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/leave_workspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/list_workspace_users.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/list_workspaces.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/remove_workspace_user.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/update_workspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/api/workspaces/update_workspace_user_role.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/authentication/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/authentication/apikey.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/authentication/credentials.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/authentication/device_mode.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/generate.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/instrumentation.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/logger.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/secrets.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/common/utils.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/deploy/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/deploy/format.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/deploy/parser.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/errors.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/decorator.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/github/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/github/github.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/github/kit/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/github/kit/pull_request.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/math/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/math/math.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/search/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/functions/search/search.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/acl.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent_chain.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent_history.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent_history_event.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent_metadata.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent_release.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/agent_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/api_key.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/configuration.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/continent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/core_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/core_spec_configurations.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/core_status.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/country.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/create_api_key_for_service_account_body.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/create_workspace_service_account_body.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/create_workspace_service_account_response_200.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/delete_workspace_service_account_response_200.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/environment.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/environment_metadata.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/environment_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/environment_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/flavor.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/function_kit.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/function_metadata.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/function_release.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/function_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/get_trace_ids_response_200.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/get_trace_logs_response_200.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/get_trace_response_200.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/get_workspace_service_accounts_response_200_item.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/increase_and_rate_metric.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/integration_config.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/integration_connection.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/integration_connection_config.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/integration_connection_secret.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/integration_connection_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/integration_model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/invite_workspace_user_body.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/location_response.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/metadata.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/metadata_labels.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/metric.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/model.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/model_metadata.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/model_private_cluster.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/model_provider.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/model_release.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/model_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/owner_fields.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pending_invitation.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pending_invitation_accept.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pending_invitation_render.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pending_invitation_render_invited_by.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pending_invitation_render_workspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pending_invitation_workspace_details.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/pod_template_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/policy.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/policy_location.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/policy_spec.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/private_cluster.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/private_location.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/provider_config.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/qps.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_deployment_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_deployment_metrics_inference_per_second_per_region.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_deployment_metrics_query_per_second_per_region_per_code.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_environment_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_environment_metrics_inference_per_region.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_environment_metrics_inference_per_second_per_region.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_environment_metrics_query_per_region_per_code.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_environment_metrics_query_per_second_per_region_per_code.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_log.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/resource_metrics.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/runtime.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/runtime_readiness_probe.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/runtime_resources.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/serverless_config.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/spec_configuration.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_agent_labels.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_configuration.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_configuration_option.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_function.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_function_kit.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_function_labels.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/store_function_parameter.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/time_fields.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/update_workspace_service_account_body.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/update_workspace_service_account_response_200.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/update_workspace_user_role_body.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/websocket_channel.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/workspace.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/workspace_labels.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/models/workspace_user.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/py.typed +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/run.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/serve/app.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/serve/middlewares/__init__.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/serve/middlewares/accesslog.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/serve/middlewares/processtime.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/beamlit/types.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/integrationtest/agent.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/integrationtest/beamlit.yaml +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/integrationtest/functions/helloworld.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/src/integrationtest/main.py +0 -0
- {beamlit-0.0.28rc25 → beamlit-0.0.29}/uv.lock +0 -0
@@ -0,0 +1,93 @@
|
|
1
|
+
import asyncio
|
2
|
+
from dataclasses import dataclass
|
3
|
+
import warnings
|
4
|
+
from typing import Any, Callable
|
5
|
+
|
6
|
+
import pydantic
|
7
|
+
import typing_extensions as t
|
8
|
+
from beamlit.api.agents import list_agents
|
9
|
+
from beamlit.authentication.authentication import AuthenticatedClient
|
10
|
+
from beamlit.models import Agent, AgentChain
|
11
|
+
from beamlit.run import RunClient
|
12
|
+
from beamlit.common.settings import get_settings
|
13
|
+
from langchain_core.tools.base import BaseTool, ToolException
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
class ChainTool(BaseTool):
|
18
|
+
"""
|
19
|
+
Chain tool
|
20
|
+
"""
|
21
|
+
|
22
|
+
client: RunClient
|
23
|
+
handle_tool_error: bool | str | Callable[[ToolException], str] | None = True
|
24
|
+
|
25
|
+
@t.override
|
26
|
+
def _run(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
|
27
|
+
warnings.warn(
|
28
|
+
"Invoke this tool asynchronousely using `ainvoke`. This method exists only to satisfy standard tests.",
|
29
|
+
stacklevel=1,
|
30
|
+
)
|
31
|
+
return asyncio.run(self._arun(*args, **kwargs))
|
32
|
+
|
33
|
+
@t.override
|
34
|
+
async def _arun(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
|
35
|
+
settings = get_settings()
|
36
|
+
result = self.client.run(
|
37
|
+
"agent",
|
38
|
+
self.name,
|
39
|
+
settings.environment,
|
40
|
+
"POST",
|
41
|
+
json=kwargs,
|
42
|
+
)
|
43
|
+
return result.text
|
44
|
+
|
45
|
+
@t.override
|
46
|
+
@property
|
47
|
+
def tool_call_schema(self) -> type[pydantic.BaseModel]:
|
48
|
+
assert self.args_schema is not None # noqa: S101
|
49
|
+
return self.args_schema
|
50
|
+
|
51
|
+
class ChainInput(pydantic.BaseModel):
|
52
|
+
inputs: str
|
53
|
+
|
54
|
+
@dataclass
|
55
|
+
class ChainToolkit:
|
56
|
+
"""
|
57
|
+
Remote toolkit
|
58
|
+
"""
|
59
|
+
client: AuthenticatedClient
|
60
|
+
chain: list[AgentChain]
|
61
|
+
_chain: list[Agent] | None = None
|
62
|
+
|
63
|
+
model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
|
64
|
+
|
65
|
+
def initialize(self) -> None:
|
66
|
+
"""Initialize the session and retrieve tools list"""
|
67
|
+
if self._chain is None:
|
68
|
+
agents = list_agents.sync_detailed(
|
69
|
+
client=self.client,
|
70
|
+
).parsed
|
71
|
+
chain_enabled = [chain for chain in self.chain if chain.enabled]
|
72
|
+
agents_chain = []
|
73
|
+
for chain in chain_enabled:
|
74
|
+
agent = [agent for agent in agents if agent.metadata.name == chain.name]
|
75
|
+
if agent:
|
76
|
+
agent[0].spec.description = chain.description or agent[0].spec.description
|
77
|
+
agents_chain.append(agent[0])
|
78
|
+
self._chain = agents_chain
|
79
|
+
|
80
|
+
@t.override
|
81
|
+
def get_tools(self) -> list[BaseTool]:
|
82
|
+
if self._chain is None:
|
83
|
+
raise RuntimeError("Must initialize the toolkit first")
|
84
|
+
|
85
|
+
return [
|
86
|
+
ChainTool(
|
87
|
+
client=RunClient(self.client),
|
88
|
+
name=agent.metadata.name,
|
89
|
+
description=agent.spec.description or "",
|
90
|
+
args_schema=ChainInput,
|
91
|
+
)
|
92
|
+
for agent in self._chain
|
93
|
+
]
|
@@ -17,16 +17,18 @@ from langchain_core.tools import Tool
|
|
17
17
|
from langgraph.checkpoint.memory import MemorySaver
|
18
18
|
from langgraph.prebuilt import create_react_agent
|
19
19
|
|
20
|
+
from .chain import ChainToolkit
|
20
21
|
from .chat import get_chat_model
|
21
22
|
|
22
23
|
|
23
|
-
def get_functions(dir="src/functions", from_decorator="function"):
|
24
|
+
def get_functions(dir="src/functions", from_decorator="function", remote_functions_empty=True):
|
24
25
|
functions = []
|
25
26
|
logger = getLogger(__name__)
|
26
27
|
|
27
28
|
# Walk through all Python files in functions directory and subdirectories
|
28
29
|
if not os.path.exists(dir):
|
29
|
-
|
30
|
+
if remote_functions_empty:
|
31
|
+
logger.warn(f"Functions directory {dir} not found")
|
30
32
|
return []
|
31
33
|
for root, _, files in os.walk(dir):
|
32
34
|
for file in files:
|
@@ -74,6 +76,7 @@ def get_functions(dir="src/functions", from_decorator="function"):
|
|
74
76
|
kit_functions = get_functions(
|
75
77
|
dir=os.path.join(root),
|
76
78
|
from_decorator="kit",
|
79
|
+
remote_functions_empty=remote_functions_empty,
|
77
80
|
)
|
78
81
|
functions.extend(kit_functions)
|
79
82
|
|
@@ -134,7 +137,10 @@ def agent(
|
|
134
137
|
return wrapped
|
135
138
|
|
136
139
|
# Initialize functions array to store decorated functions
|
137
|
-
functions = get_functions(
|
140
|
+
functions = get_functions(
|
141
|
+
dir=settings.agent.functions_directory,
|
142
|
+
remote_functions_empty=not remote_functions,
|
143
|
+
)
|
138
144
|
settings.agent.functions = functions
|
139
145
|
|
140
146
|
if agent is not None:
|
@@ -178,7 +184,6 @@ def agent(
|
|
178
184
|
logger.warn(f"Failed to initialize MCP server {server}: {e!s}")
|
179
185
|
|
180
186
|
if remote_functions:
|
181
|
-
|
182
187
|
for function in remote_functions:
|
183
188
|
try:
|
184
189
|
toolkit = RemoteToolkit(client, function)
|
@@ -187,6 +192,11 @@ def agent(
|
|
187
192
|
except Exception as e:
|
188
193
|
logger.warn(f"Failed to initialize remote function {function}: {e!s}")
|
189
194
|
|
195
|
+
if agent.spec.agent_chain:
|
196
|
+
toolkit = ChainToolkit(client, agent.spec.agent_chain)
|
197
|
+
toolkit.initialize()
|
198
|
+
functions.extend(toolkit.get_tools())
|
199
|
+
|
190
200
|
if override_agent is None and len(functions) == 0:
|
191
201
|
raise ValueError(
|
192
202
|
"You must define at least one function, you can define this function in directory "
|
@@ -0,0 +1,171 @@
|
|
1
|
+
from http import HTTPStatus
|
2
|
+
from typing import Any, Optional, Union
|
3
|
+
|
4
|
+
import httpx
|
5
|
+
|
6
|
+
from ... import errors
|
7
|
+
from ...client import AuthenticatedClient, Client
|
8
|
+
from ...models.trace_ids_response import TraceIdsResponse
|
9
|
+
from ...types import UNSET, Response, Unset
|
10
|
+
|
11
|
+
|
12
|
+
def _get_kwargs(
|
13
|
+
agent_name: str,
|
14
|
+
*,
|
15
|
+
environment: Union[Unset, str] = UNSET,
|
16
|
+
) -> dict[str, Any]:
|
17
|
+
params: dict[str, Any] = {}
|
18
|
+
|
19
|
+
params["environment"] = environment
|
20
|
+
|
21
|
+
params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
|
22
|
+
|
23
|
+
_kwargs: dict[str, Any] = {
|
24
|
+
"method": "get",
|
25
|
+
"url": f"/agents/{agent_name}/traces",
|
26
|
+
"params": params,
|
27
|
+
}
|
28
|
+
|
29
|
+
return _kwargs
|
30
|
+
|
31
|
+
|
32
|
+
def _parse_response(
|
33
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
34
|
+
) -> Optional[TraceIdsResponse]:
|
35
|
+
if response.status_code == 200:
|
36
|
+
response_200 = TraceIdsResponse.from_dict(response.json())
|
37
|
+
|
38
|
+
return response_200
|
39
|
+
if client.raise_on_unexpected_status:
|
40
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
41
|
+
else:
|
42
|
+
return None
|
43
|
+
|
44
|
+
|
45
|
+
def _build_response(
|
46
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
47
|
+
) -> Response[TraceIdsResponse]:
|
48
|
+
return Response(
|
49
|
+
status_code=HTTPStatus(response.status_code),
|
50
|
+
content=response.content,
|
51
|
+
headers=response.headers,
|
52
|
+
parsed=_parse_response(client=client, response=response),
|
53
|
+
)
|
54
|
+
|
55
|
+
|
56
|
+
def sync_detailed(
|
57
|
+
agent_name: str,
|
58
|
+
*,
|
59
|
+
client: AuthenticatedClient,
|
60
|
+
environment: Union[Unset, str] = UNSET,
|
61
|
+
) -> Response[TraceIdsResponse]:
|
62
|
+
"""Get agent trace IDs
|
63
|
+
|
64
|
+
Args:
|
65
|
+
agent_name (str):
|
66
|
+
environment (Union[Unset, str]):
|
67
|
+
|
68
|
+
Raises:
|
69
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
70
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
71
|
+
|
72
|
+
Returns:
|
73
|
+
Response[TraceIdsResponse]
|
74
|
+
"""
|
75
|
+
|
76
|
+
kwargs = _get_kwargs(
|
77
|
+
agent_name=agent_name,
|
78
|
+
environment=environment,
|
79
|
+
)
|
80
|
+
|
81
|
+
response = client.get_httpx_client().request(
|
82
|
+
**kwargs,
|
83
|
+
)
|
84
|
+
|
85
|
+
return _build_response(client=client, response=response)
|
86
|
+
|
87
|
+
|
88
|
+
def sync(
|
89
|
+
agent_name: str,
|
90
|
+
*,
|
91
|
+
client: AuthenticatedClient,
|
92
|
+
environment: Union[Unset, str] = UNSET,
|
93
|
+
) -> Optional[TraceIdsResponse]:
|
94
|
+
"""Get agent trace IDs
|
95
|
+
|
96
|
+
Args:
|
97
|
+
agent_name (str):
|
98
|
+
environment (Union[Unset, str]):
|
99
|
+
|
100
|
+
Raises:
|
101
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
102
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
103
|
+
|
104
|
+
Returns:
|
105
|
+
TraceIdsResponse
|
106
|
+
"""
|
107
|
+
|
108
|
+
return sync_detailed(
|
109
|
+
agent_name=agent_name,
|
110
|
+
client=client,
|
111
|
+
environment=environment,
|
112
|
+
).parsed
|
113
|
+
|
114
|
+
|
115
|
+
async def asyncio_detailed(
|
116
|
+
agent_name: str,
|
117
|
+
*,
|
118
|
+
client: AuthenticatedClient,
|
119
|
+
environment: Union[Unset, str] = UNSET,
|
120
|
+
) -> Response[TraceIdsResponse]:
|
121
|
+
"""Get agent trace IDs
|
122
|
+
|
123
|
+
Args:
|
124
|
+
agent_name (str):
|
125
|
+
environment (Union[Unset, str]):
|
126
|
+
|
127
|
+
Raises:
|
128
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
129
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
130
|
+
|
131
|
+
Returns:
|
132
|
+
Response[TraceIdsResponse]
|
133
|
+
"""
|
134
|
+
|
135
|
+
kwargs = _get_kwargs(
|
136
|
+
agent_name=agent_name,
|
137
|
+
environment=environment,
|
138
|
+
)
|
139
|
+
|
140
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
141
|
+
|
142
|
+
return _build_response(client=client, response=response)
|
143
|
+
|
144
|
+
|
145
|
+
async def asyncio(
|
146
|
+
agent_name: str,
|
147
|
+
*,
|
148
|
+
client: AuthenticatedClient,
|
149
|
+
environment: Union[Unset, str] = UNSET,
|
150
|
+
) -> Optional[TraceIdsResponse]:
|
151
|
+
"""Get agent trace IDs
|
152
|
+
|
153
|
+
Args:
|
154
|
+
agent_name (str):
|
155
|
+
environment (Union[Unset, str]):
|
156
|
+
|
157
|
+
Raises:
|
158
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
159
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
160
|
+
|
161
|
+
Returns:
|
162
|
+
TraceIdsResponse
|
163
|
+
"""
|
164
|
+
|
165
|
+
return (
|
166
|
+
await asyncio_detailed(
|
167
|
+
agent_name=agent_name,
|
168
|
+
client=client,
|
169
|
+
environment=environment,
|
170
|
+
)
|
171
|
+
).parsed
|
@@ -0,0 +1,171 @@
|
|
1
|
+
from http import HTTPStatus
|
2
|
+
from typing import Any, Optional, Union
|
3
|
+
|
4
|
+
import httpx
|
5
|
+
|
6
|
+
from ... import errors
|
7
|
+
from ...client import AuthenticatedClient, Client
|
8
|
+
from ...models.trace_ids_response import TraceIdsResponse
|
9
|
+
from ...types import UNSET, Response, Unset
|
10
|
+
|
11
|
+
|
12
|
+
def _get_kwargs(
|
13
|
+
function_name: str,
|
14
|
+
*,
|
15
|
+
environment: Union[Unset, str] = UNSET,
|
16
|
+
) -> dict[str, Any]:
|
17
|
+
params: dict[str, Any] = {}
|
18
|
+
|
19
|
+
params["environment"] = environment
|
20
|
+
|
21
|
+
params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
|
22
|
+
|
23
|
+
_kwargs: dict[str, Any] = {
|
24
|
+
"method": "get",
|
25
|
+
"url": f"/functions/{function_name}/traces",
|
26
|
+
"params": params,
|
27
|
+
}
|
28
|
+
|
29
|
+
return _kwargs
|
30
|
+
|
31
|
+
|
32
|
+
def _parse_response(
|
33
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
34
|
+
) -> Optional[TraceIdsResponse]:
|
35
|
+
if response.status_code == 200:
|
36
|
+
response_200 = TraceIdsResponse.from_dict(response.json())
|
37
|
+
|
38
|
+
return response_200
|
39
|
+
if client.raise_on_unexpected_status:
|
40
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
41
|
+
else:
|
42
|
+
return None
|
43
|
+
|
44
|
+
|
45
|
+
def _build_response(
|
46
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
47
|
+
) -> Response[TraceIdsResponse]:
|
48
|
+
return Response(
|
49
|
+
status_code=HTTPStatus(response.status_code),
|
50
|
+
content=response.content,
|
51
|
+
headers=response.headers,
|
52
|
+
parsed=_parse_response(client=client, response=response),
|
53
|
+
)
|
54
|
+
|
55
|
+
|
56
|
+
def sync_detailed(
|
57
|
+
function_name: str,
|
58
|
+
*,
|
59
|
+
client: AuthenticatedClient,
|
60
|
+
environment: Union[Unset, str] = UNSET,
|
61
|
+
) -> Response[TraceIdsResponse]:
|
62
|
+
"""Get function trace IDs
|
63
|
+
|
64
|
+
Args:
|
65
|
+
function_name (str):
|
66
|
+
environment (Union[Unset, str]):
|
67
|
+
|
68
|
+
Raises:
|
69
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
70
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
71
|
+
|
72
|
+
Returns:
|
73
|
+
Response[TraceIdsResponse]
|
74
|
+
"""
|
75
|
+
|
76
|
+
kwargs = _get_kwargs(
|
77
|
+
function_name=function_name,
|
78
|
+
environment=environment,
|
79
|
+
)
|
80
|
+
|
81
|
+
response = client.get_httpx_client().request(
|
82
|
+
**kwargs,
|
83
|
+
)
|
84
|
+
|
85
|
+
return _build_response(client=client, response=response)
|
86
|
+
|
87
|
+
|
88
|
+
def sync(
|
89
|
+
function_name: str,
|
90
|
+
*,
|
91
|
+
client: AuthenticatedClient,
|
92
|
+
environment: Union[Unset, str] = UNSET,
|
93
|
+
) -> Optional[TraceIdsResponse]:
|
94
|
+
"""Get function trace IDs
|
95
|
+
|
96
|
+
Args:
|
97
|
+
function_name (str):
|
98
|
+
environment (Union[Unset, str]):
|
99
|
+
|
100
|
+
Raises:
|
101
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
102
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
103
|
+
|
104
|
+
Returns:
|
105
|
+
TraceIdsResponse
|
106
|
+
"""
|
107
|
+
|
108
|
+
return sync_detailed(
|
109
|
+
function_name=function_name,
|
110
|
+
client=client,
|
111
|
+
environment=environment,
|
112
|
+
).parsed
|
113
|
+
|
114
|
+
|
115
|
+
async def asyncio_detailed(
|
116
|
+
function_name: str,
|
117
|
+
*,
|
118
|
+
client: AuthenticatedClient,
|
119
|
+
environment: Union[Unset, str] = UNSET,
|
120
|
+
) -> Response[TraceIdsResponse]:
|
121
|
+
"""Get function trace IDs
|
122
|
+
|
123
|
+
Args:
|
124
|
+
function_name (str):
|
125
|
+
environment (Union[Unset, str]):
|
126
|
+
|
127
|
+
Raises:
|
128
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
129
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
130
|
+
|
131
|
+
Returns:
|
132
|
+
Response[TraceIdsResponse]
|
133
|
+
"""
|
134
|
+
|
135
|
+
kwargs = _get_kwargs(
|
136
|
+
function_name=function_name,
|
137
|
+
environment=environment,
|
138
|
+
)
|
139
|
+
|
140
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
141
|
+
|
142
|
+
return _build_response(client=client, response=response)
|
143
|
+
|
144
|
+
|
145
|
+
async def asyncio(
|
146
|
+
function_name: str,
|
147
|
+
*,
|
148
|
+
client: AuthenticatedClient,
|
149
|
+
environment: Union[Unset, str] = UNSET,
|
150
|
+
) -> Optional[TraceIdsResponse]:
|
151
|
+
"""Get function trace IDs
|
152
|
+
|
153
|
+
Args:
|
154
|
+
function_name (str):
|
155
|
+
environment (Union[Unset, str]):
|
156
|
+
|
157
|
+
Raises:
|
158
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
159
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
160
|
+
|
161
|
+
Returns:
|
162
|
+
TraceIdsResponse
|
163
|
+
"""
|
164
|
+
|
165
|
+
return (
|
166
|
+
await asyncio_detailed(
|
167
|
+
function_name=function_name,
|
168
|
+
client=client,
|
169
|
+
environment=environment,
|
170
|
+
)
|
171
|
+
).parsed
|
@@ -0,0 +1,171 @@
|
|
1
|
+
from http import HTTPStatus
|
2
|
+
from typing import Any, Optional, Union
|
3
|
+
|
4
|
+
import httpx
|
5
|
+
|
6
|
+
from ... import errors
|
7
|
+
from ...client import AuthenticatedClient, Client
|
8
|
+
from ...models.trace_ids_response import TraceIdsResponse
|
9
|
+
from ...types import UNSET, Response, Unset
|
10
|
+
|
11
|
+
|
12
|
+
def _get_kwargs(
|
13
|
+
model_name: str,
|
14
|
+
*,
|
15
|
+
environment: Union[Unset, str] = UNSET,
|
16
|
+
) -> dict[str, Any]:
|
17
|
+
params: dict[str, Any] = {}
|
18
|
+
|
19
|
+
params["environment"] = environment
|
20
|
+
|
21
|
+
params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
|
22
|
+
|
23
|
+
_kwargs: dict[str, Any] = {
|
24
|
+
"method": "get",
|
25
|
+
"url": f"/models/{model_name}/traces",
|
26
|
+
"params": params,
|
27
|
+
}
|
28
|
+
|
29
|
+
return _kwargs
|
30
|
+
|
31
|
+
|
32
|
+
def _parse_response(
|
33
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
34
|
+
) -> Optional[TraceIdsResponse]:
|
35
|
+
if response.status_code == 200:
|
36
|
+
response_200 = TraceIdsResponse.from_dict(response.json())
|
37
|
+
|
38
|
+
return response_200
|
39
|
+
if client.raise_on_unexpected_status:
|
40
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
41
|
+
else:
|
42
|
+
return None
|
43
|
+
|
44
|
+
|
45
|
+
def _build_response(
|
46
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
47
|
+
) -> Response[TraceIdsResponse]:
|
48
|
+
return Response(
|
49
|
+
status_code=HTTPStatus(response.status_code),
|
50
|
+
content=response.content,
|
51
|
+
headers=response.headers,
|
52
|
+
parsed=_parse_response(client=client, response=response),
|
53
|
+
)
|
54
|
+
|
55
|
+
|
56
|
+
def sync_detailed(
|
57
|
+
model_name: str,
|
58
|
+
*,
|
59
|
+
client: AuthenticatedClient,
|
60
|
+
environment: Union[Unset, str] = UNSET,
|
61
|
+
) -> Response[TraceIdsResponse]:
|
62
|
+
"""Get model trace IDs
|
63
|
+
|
64
|
+
Args:
|
65
|
+
model_name (str):
|
66
|
+
environment (Union[Unset, str]):
|
67
|
+
|
68
|
+
Raises:
|
69
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
70
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
71
|
+
|
72
|
+
Returns:
|
73
|
+
Response[TraceIdsResponse]
|
74
|
+
"""
|
75
|
+
|
76
|
+
kwargs = _get_kwargs(
|
77
|
+
model_name=model_name,
|
78
|
+
environment=environment,
|
79
|
+
)
|
80
|
+
|
81
|
+
response = client.get_httpx_client().request(
|
82
|
+
**kwargs,
|
83
|
+
)
|
84
|
+
|
85
|
+
return _build_response(client=client, response=response)
|
86
|
+
|
87
|
+
|
88
|
+
def sync(
|
89
|
+
model_name: str,
|
90
|
+
*,
|
91
|
+
client: AuthenticatedClient,
|
92
|
+
environment: Union[Unset, str] = UNSET,
|
93
|
+
) -> Optional[TraceIdsResponse]:
|
94
|
+
"""Get model trace IDs
|
95
|
+
|
96
|
+
Args:
|
97
|
+
model_name (str):
|
98
|
+
environment (Union[Unset, str]):
|
99
|
+
|
100
|
+
Raises:
|
101
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
102
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
103
|
+
|
104
|
+
Returns:
|
105
|
+
TraceIdsResponse
|
106
|
+
"""
|
107
|
+
|
108
|
+
return sync_detailed(
|
109
|
+
model_name=model_name,
|
110
|
+
client=client,
|
111
|
+
environment=environment,
|
112
|
+
).parsed
|
113
|
+
|
114
|
+
|
115
|
+
async def asyncio_detailed(
|
116
|
+
model_name: str,
|
117
|
+
*,
|
118
|
+
client: AuthenticatedClient,
|
119
|
+
environment: Union[Unset, str] = UNSET,
|
120
|
+
) -> Response[TraceIdsResponse]:
|
121
|
+
"""Get model trace IDs
|
122
|
+
|
123
|
+
Args:
|
124
|
+
model_name (str):
|
125
|
+
environment (Union[Unset, str]):
|
126
|
+
|
127
|
+
Raises:
|
128
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
129
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
130
|
+
|
131
|
+
Returns:
|
132
|
+
Response[TraceIdsResponse]
|
133
|
+
"""
|
134
|
+
|
135
|
+
kwargs = _get_kwargs(
|
136
|
+
model_name=model_name,
|
137
|
+
environment=environment,
|
138
|
+
)
|
139
|
+
|
140
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
141
|
+
|
142
|
+
return _build_response(client=client, response=response)
|
143
|
+
|
144
|
+
|
145
|
+
async def asyncio(
|
146
|
+
model_name: str,
|
147
|
+
*,
|
148
|
+
client: AuthenticatedClient,
|
149
|
+
environment: Union[Unset, str] = UNSET,
|
150
|
+
) -> Optional[TraceIdsResponse]:
|
151
|
+
"""Get model trace IDs
|
152
|
+
|
153
|
+
Args:
|
154
|
+
model_name (str):
|
155
|
+
environment (Union[Unset, str]):
|
156
|
+
|
157
|
+
Raises:
|
158
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
159
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
160
|
+
|
161
|
+
Returns:
|
162
|
+
TraceIdsResponse
|
163
|
+
"""
|
164
|
+
|
165
|
+
return (
|
166
|
+
await asyncio_detailed(
|
167
|
+
model_name=model_name,
|
168
|
+
client=client,
|
169
|
+
environment=environment,
|
170
|
+
)
|
171
|
+
).parsed
|