agenta 0.20.0a11__tar.gz → 0.20.0a13__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 (166) hide show
  1. {agenta-0.20.0a11 → agenta-0.20.0a13}/PKG-INFO +1 -1
  2. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/decorators/tracing.py +45 -45
  3. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/tracing/callbacks.py +18 -12
  4. {agenta-0.20.0a11 → agenta-0.20.0a13}/pyproject.toml +1 -1
  5. agenta-0.20.0a11/agenta/sdk/tracing/context_manager.py +0 -13
  6. {agenta-0.20.0a11 → agenta-0.20.0a13}/README.md +0 -0
  7. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/__init__.py +0 -0
  8. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/cli/evaluation_commands.py +0 -0
  9. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/cli/helper.py +0 -0
  10. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/cli/main.py +0 -0
  11. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/cli/telemetry.py +0 -0
  12. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/cli/variant_commands.py +0 -0
  13. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/cli/variant_configs.py +0 -0
  14. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/Readme.md +0 -0
  15. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/__init__.py +0 -0
  16. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/api.py +0 -0
  17. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/api_models.py +0 -0
  18. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/__init__.py +0 -0
  19. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/client.py +0 -0
  20. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/core/__init__.py +0 -0
  21. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/core/api_error.py +0 -0
  22. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/core/client_wrapper.py +0 -0
  23. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/core/datetime_utils.py +0 -0
  24. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  25. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  26. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/errors/__init__.py +0 -0
  27. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  28. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/__init__.py +0 -0
  29. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/apps/__init__.py +0 -0
  30. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/apps/client.py +0 -0
  31. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/bases/__init__.py +0 -0
  32. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/bases/client.py +0 -0
  33. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/configs/__init__.py +0 -0
  34. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/configs/client.py +0 -0
  35. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/containers/__init__.py +0 -0
  36. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/containers/client.py +0 -0
  37. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/containers/types/__init__.py +0 -0
  38. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/containers/types/container_templates_response.py +0 -0
  39. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/environments/__init__.py +0 -0
  40. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/environments/client.py +0 -0
  41. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/evaluations/__init__.py +0 -0
  42. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/evaluations/client.py +0 -0
  43. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/evaluators/__init__.py +0 -0
  44. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/evaluators/client.py +0 -0
  45. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/observability/__init__.py +0 -0
  46. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/observability/client.py +0 -0
  47. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/testsets/__init__.py +0 -0
  48. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/testsets/client.py +0 -0
  49. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/variants/__init__.py +0 -0
  50. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/variants/client.py +0 -0
  51. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/variants/types/__init__.py +0 -0
  52. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/resources/variants/types/add_variant_from_base_and_config_response.py +0 -0
  53. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/__init__.py +0 -0
  54. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/aggregated_result.py +0 -0
  55. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  56. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/app.py +0 -0
  57. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/app_variant_response.py +0 -0
  58. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/app_variant_revision.py +0 -0
  59. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/base_output.py +0 -0
  60. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/body_import_testset.py +0 -0
  61. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/config_db.py +0 -0
  62. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/create_app_output.py +0 -0
  63. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/create_span.py +0 -0
  64. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/create_trace_response.py +0 -0
  65. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/docker_env_vars.py +0 -0
  66. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/environment_output.py +0 -0
  67. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/environment_output_extended.py +0 -0
  68. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/environment_revision.py +0 -0
  69. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/error.py +0 -0
  70. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation.py +0 -0
  71. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  72. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  73. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  74. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  75. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_scenario_score_update.py +0 -0
  76. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  77. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_type.py +0 -0
  78. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluation_webhook.py +0 -0
  79. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluator.py +0 -0
  80. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/evaluator_config.py +0 -0
  81. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/feedback.py +0 -0
  82. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/get_config_response.py +0 -0
  83. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/http_validation_error.py +0 -0
  84. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/human_evaluation.py +0 -0
  85. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  86. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  87. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  88. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/human_evaluation_scenario_update.py +0 -0
  89. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/human_evaluation_update.py +0 -0
  90. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/image.py +0 -0
  91. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/invite_request.py +0 -0
  92. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  93. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  94. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/llm_tokens.py +0 -0
  95. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/new_human_evaluation.py +0 -0
  96. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/new_testset.py +0 -0
  97. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/organization.py +0 -0
  98. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/organization_output.py +0 -0
  99. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/permission.py +0 -0
  100. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/result.py +0 -0
  101. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/score.py +0 -0
  102. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  103. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/span.py +0 -0
  104. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/span_detail.py +0 -0
  105. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/span_kind.py +0 -0
  106. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/span_status_code.py +0 -0
  107. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/span_variant.py +0 -0
  108. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/template.py +0 -0
  109. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/template_image_info.py +0 -0
  110. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/test_set_output_response.py +0 -0
  111. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  112. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/trace_detail.py +0 -0
  113. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/uri.py +0 -0
  114. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/validation_error.py +0 -0
  115. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  116. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/variant_action.py +0 -0
  117. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/variant_action_enum.py +0 -0
  118. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/with_pagination.py +0 -0
  119. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/workspace_member_response.py +0 -0
  120. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/workspace_permission.py +0 -0
  121. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/workspace_response.py +0 -0
  122. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/workspace_role.py +0 -0
  123. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/backend/types/workspace_role_response.py +0 -0
  124. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/client.py +0 -0
  125. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/client/exceptions.py +0 -0
  126. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/config.py +0 -0
  127. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/config.toml +0 -0
  128. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker-assets/Dockerfile.cloud.template +0 -0
  129. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker-assets/Dockerfile.template +0 -0
  130. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker-assets/README.md +0 -0
  131. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker-assets/entrypoint.sh +0 -0
  132. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker-assets/lambda_function.py +0 -0
  133. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker-assets/main.py +0 -0
  134. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/docker/docker_utils.py +0 -0
  135. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/__init__.py +0 -0
  136. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/agenta_init.py +0 -0
  137. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/client.py +0 -0
  138. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/context.py +0 -0
  139. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/decorators/base.py +0 -0
  140. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/decorators/llm_entrypoint.py +0 -0
  141. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/router.py +0 -0
  142. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/tracing/__init__.py +0 -0
  143. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/tracing/llm_tracing.py +0 -0
  144. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/tracing/logger.py +0 -0
  145. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/tracing/tasks_manager.py +0 -0
  146. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/tracing/tracing_context.py +0 -0
  147. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/types.py +0 -0
  148. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/utils/debug.py +0 -0
  149. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/utils/globals.py +0 -0
  150. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/utils/helper/openai_cost.py +0 -0
  151. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/sdk/utils/preinit.py +0 -0
  152. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/compose_email/README.md +0 -0
  153. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/compose_email/app.py +0 -0
  154. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/compose_email/env.example +0 -0
  155. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/compose_email/requirements.txt +0 -0
  156. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/compose_email/template.toml +0 -0
  157. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/extract_data_to_json/README.md +0 -0
  158. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/extract_data_to_json/app.py +0 -0
  159. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/extract_data_to_json/env.example +0 -0
  160. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/extract_data_to_json/requirements.txt +0 -0
  161. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/extract_data_to_json/template.toml +0 -0
  162. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/simple_prompt/README.md +0 -0
  163. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/simple_prompt/app.py +0 -0
  164. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/simple_prompt/env.example +0 -0
  165. {agenta-0.20.0a11 → agenta-0.20.0a13}/agenta/templates/simple_prompt/requirements.txt +0 -0
  166. {agenta-0.20.0a11 → agenta-0.20.0a13}/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.20.0a11
3
+ Version: 0.20.0a13
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
@@ -2,7 +2,7 @@
2
2
  import inspect
3
3
  import traceback
4
4
  from functools import wraps
5
- from typing import Any, Callable, Optional
5
+ from typing import Any, Callable, Optional, List, Union
6
6
 
7
7
  # Own Imports
8
8
  import agenta as ag
@@ -40,9 +40,13 @@ class instrument(BaseDecorator):
40
40
  self,
41
41
  config: Optional[dict] = None,
42
42
  spankind: str = "workflow",
43
+ ignore_inputs: Union[List[str], bool] = False,
44
+ ignore_outputs: Union[List[str], bool] = False,
43
45
  ) -> None:
44
46
  self.config = config
45
47
  self.spankind = spankind
48
+ self.ignore_inputs = ignore_inputs
49
+ self.ignore_outputs = ignore_outputs
46
50
 
47
51
  def __call__(self, func: Callable[..., Any]):
48
52
  is_coroutine_function = inspect.iscoroutinefunction(func)
@@ -54,38 +58,54 @@ class instrument(BaseDecorator):
54
58
 
55
59
  return input_dict
56
60
 
61
+ def redact(io, blacklist):
62
+ return {
63
+ key: io[key]
64
+ for key in io.keys()
65
+ if key
66
+ not in (
67
+ blacklist
68
+ if isinstance(blacklist, list)
69
+ else []
70
+ if blacklist is False
71
+ else io.keys()
72
+ )
73
+ }
74
+
75
+ def patch(result):
76
+ TRACE_DEFAULT_KEY = "__default__"
77
+
78
+ outputs = result
79
+
80
+ # PATCH : if result is not a dict, make it a dict
81
+ if not isinstance(result, dict):
82
+ outputs = {TRACE_DEFAULT_KEY: result}
83
+ else:
84
+ # PATCH : if result is a legacy dict, clean it up
85
+ if (
86
+ "message" in result.keys()
87
+ and "cost" in result.keys()
88
+ and "usage" in result.keys()
89
+ ):
90
+ outputs = {TRACE_DEFAULT_KEY: result["message"]}
91
+
92
+ ag.tracing.store_cost(result["cost"])
93
+ ag.tracing.store_usage(result["usage"])
94
+
95
+ return outputs
96
+
57
97
  @wraps(func)
58
98
  async def async_wrapper(*args, **kwargs):
59
99
  async def wrapped_func(*args, **kwargs):
60
100
  with ag.tracing.Context(
61
101
  name=func.__name__,
62
- input=get_inputs(*args, **kwargs),
102
+ input=redact(get_inputs(*args, **kwargs), self.ignore_inputs),
63
103
  spankind=self.spankind,
64
104
  config=self.config,
65
105
  ):
66
106
  result = await func(*args, **kwargs)
67
107
 
68
- TRACE_DEFAULT_KEY = "__default__"
69
-
70
- outputs = result
71
-
72
- # PATCH : if result is not a dict, make it a dict
73
- if not isinstance(result, dict):
74
- outputs = {TRACE_DEFAULT_KEY: result}
75
- else:
76
- # PATCH : if result is a legacy dict, clean it up
77
- if (
78
- "message" in result.keys()
79
- and "cost" in result.keys()
80
- and "usage" in result.keys()
81
- ):
82
- outputs = {TRACE_DEFAULT_KEY: result["message"]}
83
-
84
- ag.tracing.store_cost(result["cost"])
85
- ag.tracing.store_usage(result["usage"])
86
- # END OF PATH
87
-
88
- ag.tracing.store_outputs(outputs)
108
+ ag.tracing.store_outputs(redact(patch(result), self.ignore_outputs))
89
109
 
90
110
  return result
91
111
 
@@ -96,33 +116,13 @@ class instrument(BaseDecorator):
96
116
  def wrapped_func(*args, **kwargs):
97
117
  with ag.tracing.Context(
98
118
  name=func.__name__,
99
- input=get_inputs(*args, **kwargs),
119
+ input=redact(get_inputs(*args, **kwargs), self.ignore_inputs),
100
120
  spankind=self.spankind,
101
121
  config=self.config,
102
122
  ):
103
123
  result = func(*args, **kwargs)
104
124
 
105
- TRACE_DEFAULT_KEY = "__default__"
106
-
107
- outputs = result
108
-
109
- # PATCH : if result is not a dict, make it a dict
110
- if not isinstance(result, dict):
111
- outputs = {TRACE_DEFAULT_KEY: result}
112
- else:
113
- # PATCH : if result is a legacy dict, clean it up
114
- if (
115
- "message" in result.keys()
116
- and "cost" in result.keys()
117
- and "usage" in result.keys()
118
- ):
119
- outputs = {"message": result["message"]}
120
-
121
- ag.tracing.store_cost(result["cost"])
122
- ag.tracing.store_usage(result["usage"])
123
- # END OF PATH
124
-
125
- ag.tracing.store_outputs(outputs)
125
+ ag.tracing.store_outputs(redact(patch(result), self.ignore_outputs))
126
126
 
127
127
  return result
128
128
 
@@ -66,9 +66,10 @@ def litellm_handler():
66
66
  def log_stream_event(self, kwargs, response_obj, start_time, end_time):
67
67
  logging.info(f"log_stream_event({self.span.id})")
68
68
  ag.tracing.set_status(status="OK", span_id=self.span.id)
69
- ag.tracing.store_cost(kwargs.get("response_cost"))
69
+ ag.tracing.store_cost(kwargs.get("response_cost"), span_id=self.span.id)
70
70
  ag.tracing.store_usage(
71
- response_obj.usage.dict() if hasattr(response_obj, "usage") else None
71
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None,
72
+ span_id=self.span.id,
72
73
  )
73
74
  ag.tracing.store_outputs(
74
75
  # the complete streamed response (only set if `completion(..stream=True)`
@@ -81,9 +82,10 @@ def litellm_handler():
81
82
  def log_success_event(self, kwargs, response_obj, start_time, end_time):
82
83
  logging.info(f"log_success_event({self.span.id})")
83
84
  ag.tracing.set_status(status="OK", span_id=self.span.id)
84
- ag.tracing.store_cost(kwargs.get("response_cost"))
85
+ ag.tracing.store_cost(kwargs.get("response_cost"), span_id=self.span.id)
85
86
  ag.tracing.store_usage(
86
- response_obj.usage.dict() if hasattr(response_obj, "usage") else None
87
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None,
88
+ span_id=self.span.id,
87
89
  )
88
90
  ag.tracing.store_outputs(
89
91
  outputs={TRACE_DEFAULT_KEY: response_obj.choices[0].message.content},
@@ -106,9 +108,10 @@ def litellm_handler():
106
108
  },
107
109
  span_id=self.span.id,
108
110
  )
109
- ag.tracing.store_cost(kwargs.get("response_cost"))
111
+ ag.tracing.store_cost(kwargs.get("response_cost"), span_id=self.span.id)
110
112
  ag.tracing.store_usage(
111
- response_obj.usage.dict() if hasattr(response_obj, "usage") else None
113
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None,
114
+ span_id=self.span.id,
112
115
  )
113
116
  ag.tracing.store_outputs(
114
117
  # the Exception raised
@@ -123,9 +126,10 @@ def litellm_handler():
123
126
  ):
124
127
  logging.info(f"async_log_stream_event({self.span.id})")
125
128
  ag.tracing.set_status(status="OK", span_id=self.span.id)
126
- ag.tracing.store_cost(kwargs.get("response_cost"))
129
+ ag.tracing.store_cost(kwargs.get("response_cost"), span_id=self.span.id)
127
130
  ag.tracing.store_usage(
128
- response_obj.usage.dict() if hasattr(response_obj, "usage") else None
131
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None,
132
+ span_id=self.span.id,
129
133
  )
130
134
  ag.tracing.store_outputs(
131
135
  # the complete streamed response (only set if `completion(..stream=True)`)
@@ -140,9 +144,10 @@ def litellm_handler():
140
144
  ):
141
145
  logging.info(f"async_log_success_event({self.span.id})")
142
146
  ag.tracing.set_status(status="OK", span_id=self.span.id)
143
- ag.tracing.store_cost(kwargs.get("response_cost"))
147
+ ag.tracing.store_cost(kwargs.get("response_cost"), span_id=self.span.id)
144
148
  ag.tracing.store_usage(
145
- response_obj.usage.dict() if hasattr(response_obj, "usage") else None
149
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None,
150
+ span_id=self.span.id,
146
151
  )
147
152
  ag.tracing.store_outputs(
148
153
  outputs={TRACE_DEFAULT_KEY: response_obj.choices[0].message.content},
@@ -167,9 +172,10 @@ def litellm_handler():
167
172
  },
168
173
  span_id=self.span.id,
169
174
  )
170
- ag.tracing.store_cost(kwargs.get("response_cost"))
175
+ ag.tracing.store_cost(kwargs.get("response_cost"), span_id=self.span.id)
171
176
  ag.tracing.store_usage(
172
- response_obj.usage.dict() if hasattr(response_obj, "usage") else None
177
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None,
178
+ span_id=self.span.id,
173
179
  )
174
180
  ag.tracing.store_outputs(
175
181
  # the Exception raised
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.20.0a11"
3
+ version = "0.20.0a13"
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,13 +0,0 @@
1
- # Own Imports
2
- from agenta.sdk.tracing.llm_tracing import Tracing
3
-
4
-
5
- class TracingContextManager:
6
- def __init__(self, tracing: Tracing):
7
- ...
8
-
9
- def __enter__(self):
10
- ...
11
-
12
- def __exit__(self, exc_type, exc_val, exc_tb):
13
- ...
File without changes
File without changes