agenta 0.20.0a9__tar.gz → 0.20.0a10__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.0a9 → agenta-0.20.0a10}/PKG-INFO +1 -1
  2. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/decorators/llm_entrypoint.py +6 -6
  3. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/callbacks.py +34 -14
  4. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/llm_tracing.py +5 -2
  5. {agenta-0.20.0a9 → agenta-0.20.0a10}/pyproject.toml +1 -1
  6. {agenta-0.20.0a9 → agenta-0.20.0a10}/README.md +0 -0
  7. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/__init__.py +0 -0
  8. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/cli/evaluation_commands.py +0 -0
  9. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/cli/helper.py +0 -0
  10. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/cli/main.py +0 -0
  11. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/cli/telemetry.py +0 -0
  12. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/cli/variant_commands.py +0 -0
  13. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/cli/variant_configs.py +0 -0
  14. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/Readme.md +0 -0
  15. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/__init__.py +0 -0
  16. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/api.py +0 -0
  17. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/api_models.py +0 -0
  18. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/__init__.py +0 -0
  19. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/client.py +0 -0
  20. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/core/__init__.py +0 -0
  21. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/core/api_error.py +0 -0
  22. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/core/client_wrapper.py +0 -0
  23. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/core/datetime_utils.py +0 -0
  24. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  25. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  26. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/errors/__init__.py +0 -0
  27. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  28. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/__init__.py +0 -0
  29. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/apps/__init__.py +0 -0
  30. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/apps/client.py +0 -0
  31. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/bases/__init__.py +0 -0
  32. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/bases/client.py +0 -0
  33. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/configs/__init__.py +0 -0
  34. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/configs/client.py +0 -0
  35. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/containers/__init__.py +0 -0
  36. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/containers/client.py +0 -0
  37. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/containers/types/__init__.py +0 -0
  38. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/containers/types/container_templates_response.py +0 -0
  39. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/environments/__init__.py +0 -0
  40. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/environments/client.py +0 -0
  41. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/evaluations/__init__.py +0 -0
  42. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/evaluations/client.py +0 -0
  43. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/evaluators/__init__.py +0 -0
  44. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/evaluators/client.py +0 -0
  45. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/observability/__init__.py +0 -0
  46. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/observability/client.py +0 -0
  47. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/testsets/__init__.py +0 -0
  48. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/testsets/client.py +0 -0
  49. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/variants/__init__.py +0 -0
  50. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/variants/client.py +0 -0
  51. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/variants/types/__init__.py +0 -0
  52. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/resources/variants/types/add_variant_from_base_and_config_response.py +0 -0
  53. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/__init__.py +0 -0
  54. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/aggregated_result.py +0 -0
  55. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  56. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/app.py +0 -0
  57. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/app_variant_response.py +0 -0
  58. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/app_variant_revision.py +0 -0
  59. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/base_output.py +0 -0
  60. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/body_import_testset.py +0 -0
  61. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/config_db.py +0 -0
  62. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/create_app_output.py +0 -0
  63. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/create_span.py +0 -0
  64. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/create_trace_response.py +0 -0
  65. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/docker_env_vars.py +0 -0
  66. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/environment_output.py +0 -0
  67. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/environment_output_extended.py +0 -0
  68. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/environment_revision.py +0 -0
  69. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/error.py +0 -0
  70. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation.py +0 -0
  71. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  72. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  73. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  74. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  75. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_scenario_score_update.py +0 -0
  76. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  77. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_type.py +0 -0
  78. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluation_webhook.py +0 -0
  79. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluator.py +0 -0
  80. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/evaluator_config.py +0 -0
  81. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/feedback.py +0 -0
  82. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/get_config_response.py +0 -0
  83. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/http_validation_error.py +0 -0
  84. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/human_evaluation.py +0 -0
  85. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  86. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  87. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  88. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/human_evaluation_scenario_update.py +0 -0
  89. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/human_evaluation_update.py +0 -0
  90. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/image.py +0 -0
  91. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/invite_request.py +0 -0
  92. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  93. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  94. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/llm_tokens.py +0 -0
  95. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/new_human_evaluation.py +0 -0
  96. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/new_testset.py +0 -0
  97. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/organization.py +0 -0
  98. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/organization_output.py +0 -0
  99. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/permission.py +0 -0
  100. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/result.py +0 -0
  101. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/score.py +0 -0
  102. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  103. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/span.py +0 -0
  104. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/span_detail.py +0 -0
  105. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/span_kind.py +0 -0
  106. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/span_status_code.py +0 -0
  107. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/span_variant.py +0 -0
  108. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/template.py +0 -0
  109. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/template_image_info.py +0 -0
  110. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/test_set_output_response.py +0 -0
  111. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  112. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/trace_detail.py +0 -0
  113. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/uri.py +0 -0
  114. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/validation_error.py +0 -0
  115. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  116. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/variant_action.py +0 -0
  117. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/variant_action_enum.py +0 -0
  118. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/with_pagination.py +0 -0
  119. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/workspace_member_response.py +0 -0
  120. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/workspace_permission.py +0 -0
  121. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/workspace_response.py +0 -0
  122. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/workspace_role.py +0 -0
  123. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/backend/types/workspace_role_response.py +0 -0
  124. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/client.py +0 -0
  125. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/client/exceptions.py +0 -0
  126. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/config.py +0 -0
  127. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/config.toml +0 -0
  128. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker-assets/Dockerfile.cloud.template +0 -0
  129. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker-assets/Dockerfile.template +0 -0
  130. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker-assets/README.md +0 -0
  131. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker-assets/entrypoint.sh +0 -0
  132. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker-assets/lambda_function.py +0 -0
  133. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker-assets/main.py +0 -0
  134. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/docker/docker_utils.py +0 -0
  135. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/__init__.py +0 -0
  136. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/agenta_init.py +0 -0
  137. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/client.py +0 -0
  138. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/context.py +0 -0
  139. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/decorators/base.py +0 -0
  140. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/decorators/tracing.py +0 -0
  141. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/router.py +0 -0
  142. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/__init__.py +0 -0
  143. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/context_manager.py +0 -0
  144. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/logger.py +0 -0
  145. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/tasks_manager.py +0 -0
  146. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/tracing/tracing_context.py +0 -0
  147. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/types.py +0 -0
  148. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/utils/debug.py +0 -0
  149. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/utils/globals.py +0 -0
  150. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/utils/helper/openai_cost.py +0 -0
  151. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/sdk/utils/preinit.py +0 -0
  152. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/compose_email/README.md +0 -0
  153. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/compose_email/app.py +0 -0
  154. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/compose_email/env.example +0 -0
  155. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/compose_email/requirements.txt +0 -0
  156. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/compose_email/template.toml +0 -0
  157. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/extract_data_to_json/README.md +0 -0
  158. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/extract_data_to_json/app.py +0 -0
  159. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/extract_data_to_json/env.example +0 -0
  160. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/extract_data_to_json/requirements.txt +0 -0
  161. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/extract_data_to_json/template.toml +0 -0
  162. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/simple_prompt/README.md +0 -0
  163. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/simple_prompt/app.py +0 -0
  164. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/simple_prompt/env.example +0 -0
  165. {agenta-0.20.0a9 → agenta-0.20.0a10}/agenta/templates/simple_prompt/requirements.txt +0 -0
  166. {agenta-0.20.0a9 → agenta-0.20.0a10}/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.0a9
3
+ Version: 0.20.0a10
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
@@ -120,7 +120,7 @@ class entrypoint(BaseDecorator):
120
120
  routes = list()
121
121
 
122
122
  def __init__(self, func: Callable[..., Any], route_path=""):
123
- print(f"Using Agenta Python SDK version {version('agenta')}")
123
+ logging.info(f"Using Agenta Python SDK version {version('agenta')}")
124
124
 
125
125
  DEFAULT_PATH = "generate"
126
126
  PLAYGROUND_PATH = "/playground"
@@ -293,11 +293,11 @@ class entrypoint(BaseDecorator):
293
293
  For synchronous functions, it calls them directly, while for asynchronous functions,
294
294
  it awaits their execution.
295
295
  """
296
- print(f"Using Agenta Python SDK version {version('agenta')}")
296
+ logging.info(f"Using Agenta Python SDK version {version('agenta')}")
297
297
 
298
298
  WAIT_FOR_SPANS = True
299
- TIMEOUT = 10
300
- TIMESTEP = 0.01
299
+ TIMEOUT = 1
300
+ TIMESTEP = 0.1
301
301
  NOFSTEPS = TIMEOUT / TIMESTEP
302
302
 
303
303
  data = None
@@ -319,7 +319,7 @@ class entrypoint(BaseDecorator):
319
319
  remaining_steps = NOFSTEPS
320
320
 
321
321
  while not ag.tracing.is_trace_ready() and remaining_steps > 0:
322
- await asyncio.sleep(0.01)
322
+ await asyncio.sleep(TIMESTEP)
323
323
  remaining_steps -= 1
324
324
 
325
325
  trace = ag.tracing.dump_trace()
@@ -355,7 +355,7 @@ class entrypoint(BaseDecorator):
355
355
 
356
356
  response = BaseResponse(data=data, trace=trace)
357
357
 
358
- logging.debug(response)
358
+ # logging.debug(response)
359
359
 
360
360
  return response
361
361
 
@@ -1,6 +1,7 @@
1
1
  import agenta as ag
2
2
 
3
3
  from agenta.sdk.tracing.tracing_context import tracing_context, TracingContext
4
+ from agenta.sdk.tracing.logger import llm_logger as logging
4
5
 
5
6
  from agenta.sdk.utils.debug import debug
6
7
 
@@ -47,6 +48,7 @@ def litellm_handler():
47
48
  spankind=span_kind,
48
49
  active=False,
49
50
  )
51
+ logging.info(f"log_pre_api_call({self.span.id})")
50
52
  ag.tracing.set_attributes(
51
53
  {
52
54
  "model_config": {
@@ -59,10 +61,13 @@ def litellm_handler():
59
61
  )
60
62
 
61
63
  @debug()
62
- def log_stream_event(self, kwargs, res: ModelResponse, start_time, end_time):
64
+ def log_stream_event(self, kwargs, response_obj, start_time, end_time):
65
+ logging.info(f"log_stream_event({self.span.id})")
63
66
  ag.tracing.set_status(status="OK", span_id=self.span.id)
64
67
  ag.tracing.store_cost(kwargs.get("response_cost"))
65
- ag.tracing.store_usage(res.usage.dict() if hasattr(res, "usage") else None)
68
+ ag.tracing.store_usage(
69
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None
70
+ )
66
71
  ag.tracing.store_outputs(
67
72
  # the complete streamed response (only set if `completion(..stream=True)`
68
73
  outputs={"message": kwargs.get("complete_streaming_response")},
@@ -71,18 +76,22 @@ def litellm_handler():
71
76
  ag.tracing.close_span(span_id=self.span.id)
72
77
 
73
78
  @debug()
74
- def log_success_event(self, kwargs, res: ModelResponse, start_time, end_time):
79
+ def log_success_event(self, kwargs, response_obj, start_time, end_time):
80
+ logging.info(f"log_success_event({self.span.id})")
75
81
  ag.tracing.set_status(status="OK", span_id=self.span.id)
76
82
  ag.tracing.store_cost(kwargs.get("response_cost"))
77
- ag.tracing.store_usage(res.usage.dict() if hasattr(res, "usage") else None)
83
+ ag.tracing.store_usage(
84
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None
85
+ )
78
86
  ag.tracing.store_outputs(
79
- outputs={"message": res.choices[0].message.content},
87
+ outputs={"message": response_obj.choices[0].message.content},
80
88
  span_id=self.span.id,
81
89
  )
82
90
  ag.tracing.close_span(span_id=self.span.id)
83
91
 
84
92
  @debug()
85
- def log_failure_event(self, kwargs, res: ModelResponse, start_time, end_time):
93
+ def log_failure_event(self, kwargs, response_obj, start_time, end_time):
94
+ logging.info("log_failure_event()", self.span)
86
95
  ag.tracing.set_status(status="ERROR", span_id=self.span.id)
87
96
  ag.tracing.set_attributes(
88
97
  {
@@ -96,7 +105,9 @@ def litellm_handler():
96
105
  span_id=self.span.id,
97
106
  )
98
107
  ag.tracing.store_cost(kwargs.get("response_cost"))
99
- ag.tracing.store_usage(res.usage.dict() if hasattr(res, "usage") else None)
108
+ ag.tracing.store_usage(
109
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None
110
+ )
100
111
  ag.tracing.store_outputs(
101
112
  # the Exception raised
102
113
  outputs={"message": repr(kwargs["exception"])},
@@ -106,11 +117,14 @@ def litellm_handler():
106
117
 
107
118
  @debug()
108
119
  async def async_log_stream_event(
109
- self, kwargs, res: ModelResponse, start_time, end_time
120
+ self, kwargs, response_obj, start_time, end_time
110
121
  ):
122
+ logging.info(f"async_log_stream_event({self.span.id})")
111
123
  ag.tracing.set_status(status="OK", span_id=self.span.id)
112
124
  ag.tracing.store_cost(kwargs.get("response_cost"))
113
- ag.tracing.store_usage(res.usage.dict() if hasattr(res, "usage") else None)
125
+ ag.tracing.store_usage(
126
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None
127
+ )
114
128
  ag.tracing.store_outputs(
115
129
  # the complete streamed response (only set if `completion(..stream=True)`)
116
130
  outputs={"message": kwargs.get("complete_streaming_response")},
@@ -120,21 +134,25 @@ def litellm_handler():
120
134
 
121
135
  @debug()
122
136
  async def async_log_success_event(
123
- self, kwargs, res: ModelResponse, start_time, end_time
137
+ self, kwargs, response_obj, start_time, end_time
124
138
  ):
139
+ logging.info(f"async_log_success_event({self.span.id})")
125
140
  ag.tracing.set_status(status="OK", span_id=self.span.id)
126
141
  ag.tracing.store_cost(kwargs.get("response_cost"))
127
- ag.tracing.store_usage(res.usage.dict() if hasattr(res, "usage") else None)
142
+ ag.tracing.store_usage(
143
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None
144
+ )
128
145
  ag.tracing.store_outputs(
129
- outputs={"message": res.choices[0].message.content},
146
+ outputs={"message": response_obj.choices[0].message.content},
130
147
  span_id=self.span.id,
131
148
  )
132
149
  ag.tracing.close_span(span_id=self.span.id)
133
150
 
134
151
  @debug()
135
152
  async def async_log_failure_event(
136
- self, kwargs, res: ModelResponse, start_time, end_time
153
+ self, kwargs, response_obj, start_time, end_time
137
154
  ):
155
+ logging.info(f"async_log_failure_event({self.span.id})")
138
156
  ag.tracing.set_status(status="ERROR", span_id=self.span.id)
139
157
  ag.tracing.set_attributes(
140
158
  {
@@ -148,7 +166,9 @@ def litellm_handler():
148
166
  span_id=self.span.id,
149
167
  )
150
168
  ag.tracing.store_cost(kwargs.get("response_cost"))
151
- ag.tracing.store_usage(res.usage.dict() if hasattr(res, "usage") else None)
169
+ ag.tracing.store_usage(
170
+ response_obj.usage.dict() if hasattr(response_obj, "usage") else None
171
+ )
152
172
  ag.tracing.store_outputs(
153
173
  # the Exception raised
154
174
  outputs={"message": repr(kwargs["exception"])},
@@ -267,7 +267,7 @@ class Tracing(metaclass=SingletonMeta):
267
267
  outputs=None,
268
268
  tags=None,
269
269
  user=None,
270
- end_time=datetime.now(timezone.utc),
270
+ end_time=None,
271
271
  tokens=None,
272
272
  cost=None,
273
273
  token_consumption=None,
@@ -372,7 +372,7 @@ class Tracing(metaclass=SingletonMeta):
372
372
  tracing.active_span = parent_span
373
373
  ### --- TO BE CLEANED --- <<<
374
374
 
375
- logging.info(f"Closed span {span_id} {spankind}")
375
+ logging.info(f"Closed span {span.id} {spankind}")
376
376
 
377
377
  @debug()
378
378
  def store_internals(
@@ -457,6 +457,9 @@ class Tracing(metaclass=SingletonMeta):
457
457
  trace["trace_id"] = tracing.trace_id
458
458
 
459
459
  for span in tracing.spans.values():
460
+ if span.end_time is None:
461
+ span.end_time = span.start_time
462
+
460
463
  if span.parent_span_id is None:
461
464
  trace["cost"] = span.cost
462
465
  trace["usage"] = (
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.20.0a9"
3
+ version = "0.20.0a10"
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>"]
File without changes
File without changes
File without changes
File without changes
File without changes