agenta 0.27.5__tar.gz → 0.27.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of agenta might be problematic. Click here for more details.

Files changed (198) hide show
  1. {agenta-0.27.5 → agenta-0.27.6}/PKG-INFO +2 -3
  2. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/decorators/routing.py +3 -27
  3. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/exporters.py +1 -1
  4. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/processors.py +1 -1
  5. {agenta-0.27.5 → agenta-0.27.6}/pyproject.toml +1 -1
  6. agenta-0.27.5/agenta/sdk/middleware/auth.py +0 -136
  7. agenta-0.27.5/agenta/sdk/middleware/cache.py +0 -43
  8. agenta-0.27.5/agenta/sdk/utils/__init__.py +0 -0
  9. {agenta-0.27.5 → agenta-0.27.6}/README.md +0 -0
  10. {agenta-0.27.5 → agenta-0.27.6}/agenta/__init__.py +0 -0
  11. {agenta-0.27.5 → agenta-0.27.6}/agenta/cli/evaluation_commands.py +0 -0
  12. {agenta-0.27.5 → agenta-0.27.6}/agenta/cli/helper.py +0 -0
  13. {agenta-0.27.5 → agenta-0.27.6}/agenta/cli/main.py +0 -0
  14. {agenta-0.27.5 → agenta-0.27.6}/agenta/cli/telemetry.py +0 -0
  15. {agenta-0.27.5 → agenta-0.27.6}/agenta/cli/variant_commands.py +0 -0
  16. {agenta-0.27.5 → agenta-0.27.6}/agenta/cli/variant_configs.py +0 -0
  17. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/Readme.md +0 -0
  18. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/__init__.py +0 -0
  19. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/api.py +0 -0
  20. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/api_models.py +0 -0
  21. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/__init__.py +0 -0
  22. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/apps/__init__.py +0 -0
  23. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/apps/client.py +0 -0
  24. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/bases/__init__.py +0 -0
  25. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/bases/client.py +0 -0
  26. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/client.py +0 -0
  27. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/configs/__init__.py +0 -0
  28. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/configs/client.py +0 -0
  29. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/containers/__init__.py +0 -0
  30. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/containers/client.py +0 -0
  31. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/containers/types/__init__.py +0 -0
  32. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/containers/types/container_templates_response.py +0 -0
  33. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/__init__.py +0 -0
  34. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/api_error.py +0 -0
  35. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/client_wrapper.py +0 -0
  36. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/datetime_utils.py +0 -0
  37. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/file.py +0 -0
  38. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/http_client.py +0 -0
  39. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  40. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/pydantic_utilities.py +0 -0
  41. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/query_encoder.py +0 -0
  42. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  43. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/request_options.py +0 -0
  44. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/core/serialization.py +0 -0
  45. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/environments/__init__.py +0 -0
  46. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/environments/client.py +0 -0
  47. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/errors/__init__.py +0 -0
  48. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  49. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/evaluations/__init__.py +0 -0
  50. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/evaluations/client.py +0 -0
  51. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/evaluators/__init__.py +0 -0
  52. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/evaluators/client.py +0 -0
  53. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/observability/__init__.py +0 -0
  54. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/observability/client.py +0 -0
  55. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/testsets/__init__.py +0 -0
  56. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/testsets/client.py +0 -0
  57. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/__init__.py +0 -0
  58. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/aggregated_result.py +0 -0
  59. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  60. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/app.py +0 -0
  61. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/app_variant_response.py +0 -0
  62. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/app_variant_revision.py +0 -0
  63. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/base_output.py +0 -0
  64. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/body_import_testset.py +0 -0
  65. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/config_db.py +0 -0
  66. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/config_dto.py +0 -0
  67. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/config_response_model.py +0 -0
  68. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/correct_answer.py +0 -0
  69. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/create_app_output.py +0 -0
  70. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/create_span.py +0 -0
  71. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/create_trace_response.py +0 -0
  72. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/docker_env_vars.py +0 -0
  73. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/environment_output.py +0 -0
  74. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/environment_output_extended.py +0 -0
  75. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/environment_revision.py +0 -0
  76. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/error.py +0 -0
  77. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation.py +0 -0
  78. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  79. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  80. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  81. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  82. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_scenario_score_update.py +0 -0
  83. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  84. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluation_type.py +0 -0
  85. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluator.py +0 -0
  86. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluator_config.py +0 -0
  87. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluator_mapping_output_interface.py +0 -0
  88. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/evaluator_output_interface.py +0 -0
  89. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/get_config_response.py +0 -0
  90. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/http_validation_error.py +0 -0
  91. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/human_evaluation.py +0 -0
  92. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  93. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  94. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  95. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/human_evaluation_scenario_update.py +0 -0
  96. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/human_evaluation_update.py +0 -0
  97. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/image.py +0 -0
  98. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/invite_request.py +0 -0
  99. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/lifecycle_dto.py +0 -0
  100. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  101. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  102. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/llm_tokens.py +0 -0
  103. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/lm_providers_enum.py +0 -0
  104. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/new_human_evaluation.py +0 -0
  105. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/new_testset.py +0 -0
  106. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/organization.py +0 -0
  107. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/organization_output.py +0 -0
  108. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/outputs.py +0 -0
  109. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/permission.py +0 -0
  110. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/reference_dto.py +0 -0
  111. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/reference_request_model.py +0 -0
  112. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/result.py +0 -0
  113. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/score.py +0 -0
  114. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  115. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/span.py +0 -0
  116. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/span_detail.py +0 -0
  117. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/span_status_code.py +0 -0
  118. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/span_variant.py +0 -0
  119. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/template.py +0 -0
  120. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/template_image_info.py +0 -0
  121. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/test_set_output_response.py +0 -0
  122. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  123. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/trace_detail.py +0 -0
  124. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/update_app_output.py +0 -0
  125. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/uri.py +0 -0
  126. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/validation_error.py +0 -0
  127. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  128. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/variant_action.py +0 -0
  129. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/variant_action_enum.py +0 -0
  130. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/with_pagination.py +0 -0
  131. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/workspace_member_response.py +0 -0
  132. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/workspace_permission.py +0 -0
  133. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/workspace_response.py +0 -0
  134. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/workspace_role.py +0 -0
  135. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/types/workspace_role_response.py +0 -0
  136. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/variants/__init__.py +0 -0
  137. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/variants/client.py +0 -0
  138. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/variants/types/__init__.py +0 -0
  139. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +0 -0
  140. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/client.py +0 -0
  141. {agenta-0.27.5 → agenta-0.27.6}/agenta/client/exceptions.py +0 -0
  142. {agenta-0.27.5 → agenta-0.27.6}/agenta/config.py +0 -0
  143. {agenta-0.27.5 → agenta-0.27.6}/agenta/config.toml +0 -0
  144. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker-assets/Dockerfile.cloud.template +0 -0
  145. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker-assets/Dockerfile.template +0 -0
  146. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker-assets/README.md +0 -0
  147. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker-assets/entrypoint.sh +0 -0
  148. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker-assets/lambda_function.py +0 -0
  149. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker-assets/main.py +0 -0
  150. {agenta-0.27.5 → agenta-0.27.6}/agenta/docker/docker_utils.py +0 -0
  151. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/__init__.py +0 -0
  152. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/agenta_init.py +0 -0
  153. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/assets.py +0 -0
  154. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/client.py +0 -0
  155. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/context/__init__.py +0 -0
  156. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/context/routing.py +0 -0
  157. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/context/tracing.py +0 -0
  158. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/decorators/__init__.py +0 -0
  159. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/decorators/tracing.py +0 -0
  160. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/litellm/__init__.py +0 -0
  161. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/litellm/litellm.py +0 -0
  162. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/managers/__init__.py +0 -0
  163. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/managers/config.py +0 -0
  164. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/managers/deployment.py +0 -0
  165. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/managers/shared.py +0 -0
  166. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/managers/variant.py +0 -0
  167. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/router.py +0 -0
  168. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/__init__.py +0 -0
  169. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/attributes.py +0 -0
  170. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/context.py +0 -0
  171. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/conventions.py +0 -0
  172. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/inline.py +0 -0
  173. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/spans.py +0 -0
  174. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/tracing/tracing.py +0 -0
  175. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/types.py +0 -0
  176. {agenta-0.27.5/agenta/sdk/middleware → agenta-0.27.6/agenta/sdk/utils}/__init__.py +0 -0
  177. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/costs.py +0 -0
  178. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/debug.py +0 -0
  179. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/exceptions.py +0 -0
  180. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/globals.py +0 -0
  181. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/logging.py +0 -0
  182. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/preinit.py +0 -0
  183. {agenta-0.27.5 → agenta-0.27.6}/agenta/sdk/utils/singleton.py +0 -0
  184. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/compose_email/README.md +0 -0
  185. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/compose_email/app.py +0 -0
  186. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/compose_email/env.example +0 -0
  187. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/compose_email/requirements.txt +0 -0
  188. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/compose_email/template.toml +0 -0
  189. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/extract_data_to_json/README.md +0 -0
  190. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/extract_data_to_json/app.py +0 -0
  191. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/extract_data_to_json/env.example +0 -0
  192. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/extract_data_to_json/requirements.txt +0 -0
  193. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/extract_data_to_json/template.toml +0 -0
  194. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/simple_prompt/README.md +0 -0
  195. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/simple_prompt/app.py +0 -0
  196. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/simple_prompt/env.example +0 -0
  197. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/simple_prompt/requirements.txt +0 -0
  198. {agenta-0.27.5 → agenta-0.27.6}/agenta/templates/simple_prompt/template.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agenta
3
- Version: 0.27.5
3
+ Version: 0.27.6
4
4
  Summary: The SDK for agenta is an open-source LLMOps platform.
5
5
  Home-page: https://agenta.ai
6
6
  Keywords: LLMOps,LLM,evaluation,prompt engineering
@@ -13,8 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.9
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.9
18
17
  Classifier: Topic :: Software Development :: Libraries
19
18
  Requires-Dist: cachetools (>=5.3.3,<6.0.0)
20
19
  Requires-Dist: click (>=8.1.3,<9.0.0)
@@ -14,10 +14,9 @@ from os import environ
14
14
  from fastapi.middleware.cors import CORSMiddleware
15
15
  from fastapi import Body, FastAPI, UploadFile, HTTPException
16
16
 
17
- from agenta.sdk.middleware.auth import AuthorizationMiddleware
18
17
  from agenta.sdk.context.routing import routing_context_manager, routing_context
19
18
  from agenta.sdk.context.tracing import tracing_context
20
- from agenta.sdk.router import router
19
+ from agenta.sdk.router import router as router
21
20
  from agenta.sdk.utils.exceptions import suppress
22
21
  from agenta.sdk.utils.logging import log
23
22
  from agenta.sdk.types import (
@@ -51,9 +50,6 @@ app.add_middleware(
51
50
  allow_headers=["*"],
52
51
  )
53
52
 
54
- _MIDDLEWARES = True
55
-
56
-
57
53
  app.include_router(router, prefix="")
58
54
 
59
55
 
@@ -125,26 +121,6 @@ class entrypoint:
125
121
  route_path="",
126
122
  config_schema: Optional[BaseModel] = None,
127
123
  ):
128
- ### --- Update Middleware --- #
129
- try:
130
- global _MIDDLEWARES # pylint: disable=global-statement
131
-
132
- if _MIDDLEWARES:
133
- app.add_middleware(
134
- AuthorizationMiddleware,
135
- host=ag.DEFAULT_AGENTA_SINGLETON_INSTANCE.host,
136
- resource_id=ag.DEFAULT_AGENTA_SINGLETON_INSTANCE.app_id,
137
- resource_type="application",
138
- )
139
-
140
- _MIDDLEWARES = False
141
-
142
- except: # pylint: disable=bare-except
143
- log.error("------------------------------------")
144
- log.error("Agenta SDK - failed to secure route: %s", route_path)
145
- log.error("------------------------------------")
146
- ### --- Update Middleware --- #
147
-
148
124
  DEFAULT_PATH = "generate"
149
125
  PLAYGROUND_PATH = "/playground"
150
126
  RUN_PATH = "/run"
@@ -354,9 +330,9 @@ class entrypoint:
354
330
  *args,
355
331
  **func_params,
356
332
  ):
357
- log.info("---------------------------")
333
+ log.info(f"---------------------------")
358
334
  log.info(f"Agenta SDK - running route: {repr(self.route_path or '/')}")
359
- log.info("---------------------------")
335
+ log.info(f"---------------------------")
360
336
 
361
337
  tracing_context.set(routing_context.get())
362
338
 
@@ -58,7 +58,7 @@ class InlineTraceExporter(SpanExporter):
58
58
  return trace
59
59
 
60
60
 
61
- OTLPSpanExporter._MAX_RETRY_TIMEOUT = 2 # pylint: disable=protected-access
61
+ OTLPSpanExporter._MAX_RETRY_TIMEOUT = 2
62
62
 
63
63
  ConsoleExporter = ConsoleSpanExporter
64
64
  InlineExporter = InlineTraceExporter
@@ -12,7 +12,7 @@ from opentelemetry.sdk.trace.export import (
12
12
 
13
13
  from agenta.sdk.utils.logging import log
14
14
 
15
- # LOAD CONTEXT, HERE !
15
+ # LOAD CONTEXT, HERE
16
16
 
17
17
 
18
18
  class TraceProcessor(BatchSpanProcessor):
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.27.5"
3
+ version = "0.27.6"
4
4
  description = "The SDK for agenta is an open-source LLMOps platform."
5
5
  readme = "README.md"
6
6
  authors = ["Mahmoud Mabrouk <mahmoud@agenta.ai>"]
@@ -1,136 +0,0 @@
1
- from typing import Callable, Optional
2
- from os import environ
3
- from uuid import UUID
4
- from json import dumps
5
- from traceback import format_exc
6
-
7
- import httpx
8
- from starlette.middleware.base import BaseHTTPMiddleware
9
- from fastapi import FastAPI, Request, Response
10
-
11
- from agenta.sdk.utils.logging import log
12
- from agenta.sdk.middleware.cache import TTLLRUCache
13
-
14
- AGENTA_SDK_AUTH_CACHE_CAPACITY = environ.get(
15
- "AGENTA_SDK_AUTH_CACHE_CAPACITY",
16
- 512,
17
- )
18
-
19
- AGENTA_SDK_AUTH_CACHE_TTL = environ.get(
20
- "AGENTA_SDK_AUTH_CACHE_TTL",
21
- 15 * 60, # 15 minutes
22
- )
23
-
24
- AGENTA_UNAUTHORIZED_EXECUTION_ALLOWED = str(
25
- environ.get("AGENTA_UNAUTHORIZED_EXECUTION_ALLOWED", False)
26
- ).lower() in ("true", "1", "t")
27
-
28
-
29
- class Deny(Response):
30
- def __init__(self) -> None:
31
- super().__init__(status_code=401, content="Unauthorized")
32
-
33
-
34
- cache = TTLLRUCache(
35
- capacity=AGENTA_SDK_AUTH_CACHE_CAPACITY,
36
- ttl=AGENTA_SDK_AUTH_CACHE_TTL,
37
- )
38
-
39
-
40
- class AuthorizationMiddleware(BaseHTTPMiddleware):
41
- def __init__(
42
- self,
43
- app: FastAPI,
44
- host: str,
45
- resource_id: UUID,
46
- resource_type: str,
47
- ):
48
- super().__init__(app)
49
-
50
- self.host = host
51
- self.resource_id = resource_id
52
- self.resource_type = resource_type
53
-
54
- async def dispatch(
55
- self,
56
- request: Request,
57
- call_next: Callable,
58
- project_id: Optional[UUID] = None,
59
- ):
60
- if AGENTA_UNAUTHORIZED_EXECUTION_ALLOWED:
61
- return await call_next(request)
62
-
63
- try:
64
- authorization = (
65
- request.headers.get("Authorization")
66
- or request.headers.get("authorization")
67
- or None
68
- )
69
-
70
- headers = {"Authorization": authorization} if authorization else None
71
-
72
- cookies = {"sAccessToken": request.cookies.get("sAccessToken")}
73
-
74
- params = {
75
- "action": "run_service",
76
- "resource_type": self.resource_type,
77
- "resource_id": self.resource_id,
78
- }
79
-
80
- if project_id:
81
- params["project_id"] = project_id
82
-
83
- _hash = dumps(
84
- {
85
- "headers": headers,
86
- "cookies": cookies,
87
- "params": params,
88
- },
89
- sort_keys=True,
90
- )
91
-
92
- cached_policy = cache.get(_hash)
93
-
94
- if not cached_policy:
95
- async with httpx.AsyncClient() as client:
96
- response = await client.get(
97
- f"{self.host}/api/permissions/verify",
98
- headers=headers,
99
- cookies=cookies,
100
- params=params,
101
- )
102
-
103
- if response.status_code != 200:
104
- cache.put(_hash, {"effect": "deny"})
105
- return Deny()
106
-
107
- auth = response.json()
108
-
109
- if auth.get("effect") != "allow":
110
- cache.put(_hash, {"effect": "deny"})
111
- return Deny()
112
-
113
- cached_policy = {
114
- "effect": "allow",
115
- "credentials": auth.get("credentials"),
116
- }
117
-
118
- cache.put(_hash, cached_policy)
119
-
120
- if cached_policy.get("effect") == "deny":
121
- return Deny()
122
-
123
- request.state.credentials = cached_policy.get("credentials")
124
-
125
- print(f"credentials: {request.state.credentials}")
126
-
127
- return await call_next(request)
128
-
129
- except: # pylint: disable=bare-except
130
- log.error("------------------------------------------------------")
131
- log.error("Agenta SDK - handling auth middleware exception below:")
132
- log.error("------------------------------------------------------")
133
- log.error(format_exc().strip("\n"))
134
- log.error("------------------------------------------------------")
135
-
136
- return Deny()
@@ -1,43 +0,0 @@
1
- from time import time
2
- from collections import OrderedDict
3
-
4
-
5
- class TTLLRUCache:
6
- def __init__(self, capacity: int, ttl: int):
7
- self.cache = OrderedDict()
8
- self.capacity = capacity
9
- self.ttl = ttl
10
-
11
- def get(self, key):
12
- # CACHE
13
- if key not in self.cache:
14
- return None
15
-
16
- value, expiry = self.cache[key]
17
- # -----
18
-
19
- # TTL
20
- if time() > expiry:
21
- del self.cache[key]
22
-
23
- return None
24
- # ---
25
-
26
- # LRU
27
- self.cache.move_to_end(key)
28
- # ---
29
-
30
- return value
31
-
32
- def put(self, key, value):
33
- # CACHE
34
- if key in self.cache:
35
- del self.cache[key]
36
- # CACHE & LRU
37
- elif len(self.cache) >= self.capacity:
38
- self.cache.popitem(last=False)
39
- # -----------
40
-
41
- # TTL
42
- self.cache[key] = (value, time() + self.ttl)
43
- # ---
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes