agenta 0.19.1a0__tar.gz → 0.19.2__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 (164) hide show
  1. {agenta-0.19.1a0 → agenta-0.19.2}/PKG-INFO +1 -1
  2. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/agenta_init.py +4 -12
  3. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/tracing/llm_tracing.py +33 -4
  4. {agenta-0.19.1a0 → agenta-0.19.2}/pyproject.toml +1 -1
  5. {agenta-0.19.1a0 → agenta-0.19.2}/README.md +0 -0
  6. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/__init__.py +0 -0
  7. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/cli/evaluation_commands.py +0 -0
  8. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/cli/helper.py +0 -0
  9. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/cli/main.py +0 -0
  10. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/cli/telemetry.py +0 -0
  11. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/cli/variant_commands.py +0 -0
  12. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/cli/variant_configs.py +0 -0
  13. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/Readme.md +0 -0
  14. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/__init__.py +0 -0
  15. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/api.py +0 -0
  16. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/api_models.py +0 -0
  17. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/__init__.py +0 -0
  18. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/client.py +0 -0
  19. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/core/__init__.py +0 -0
  20. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/core/api_error.py +0 -0
  21. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/core/client_wrapper.py +0 -0
  22. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/core/datetime_utils.py +0 -0
  23. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  24. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  25. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/errors/__init__.py +0 -0
  26. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  27. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/__init__.py +0 -0
  28. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/apps/__init__.py +0 -0
  29. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/apps/client.py +0 -0
  30. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/bases/__init__.py +0 -0
  31. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/bases/client.py +0 -0
  32. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/configs/__init__.py +0 -0
  33. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/configs/client.py +0 -0
  34. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/containers/__init__.py +0 -0
  35. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/containers/client.py +0 -0
  36. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/containers/types/__init__.py +0 -0
  37. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/containers/types/container_templates_response.py +0 -0
  38. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/environments/__init__.py +0 -0
  39. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/environments/client.py +0 -0
  40. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/evaluations/__init__.py +0 -0
  41. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/evaluations/client.py +0 -0
  42. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/evaluators/__init__.py +0 -0
  43. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/evaluators/client.py +0 -0
  44. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/observability/__init__.py +0 -0
  45. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/observability/client.py +0 -0
  46. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/testsets/__init__.py +0 -0
  47. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/testsets/client.py +0 -0
  48. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/variants/__init__.py +0 -0
  49. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/variants/client.py +0 -0
  50. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/variants/types/__init__.py +0 -0
  51. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/resources/variants/types/add_variant_from_base_and_config_response.py +0 -0
  52. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/__init__.py +0 -0
  53. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/aggregated_result.py +0 -0
  54. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  55. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/app.py +0 -0
  56. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/app_variant_response.py +0 -0
  57. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/app_variant_revision.py +0 -0
  58. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/base_output.py +0 -0
  59. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/body_import_testset.py +0 -0
  60. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/config_db.py +0 -0
  61. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/create_app_output.py +0 -0
  62. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/create_span.py +0 -0
  63. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/create_trace_response.py +0 -0
  64. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/docker_env_vars.py +0 -0
  65. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/environment_output.py +0 -0
  66. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/environment_output_extended.py +0 -0
  67. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/environment_revision.py +0 -0
  68. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/error.py +0 -0
  69. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation.py +0 -0
  70. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  71. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  72. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  73. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  74. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_scenario_score_update.py +0 -0
  75. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  76. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_type.py +0 -0
  77. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluation_webhook.py +0 -0
  78. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluator.py +0 -0
  79. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/evaluator_config.py +0 -0
  80. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/feedback.py +0 -0
  81. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/get_config_response.py +0 -0
  82. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/http_validation_error.py +0 -0
  83. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/human_evaluation.py +0 -0
  84. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  85. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  86. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  87. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/human_evaluation_scenario_update.py +0 -0
  88. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/human_evaluation_update.py +0 -0
  89. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/image.py +0 -0
  90. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/invite_request.py +0 -0
  91. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  92. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  93. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/llm_tokens.py +0 -0
  94. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/new_human_evaluation.py +0 -0
  95. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/new_testset.py +0 -0
  96. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/organization.py +0 -0
  97. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/organization_output.py +0 -0
  98. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/permission.py +0 -0
  99. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/result.py +0 -0
  100. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/score.py +0 -0
  101. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  102. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/span.py +0 -0
  103. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/span_detail.py +0 -0
  104. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/span_kind.py +0 -0
  105. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/span_status_code.py +0 -0
  106. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/span_variant.py +0 -0
  107. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/template.py +0 -0
  108. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/template_image_info.py +0 -0
  109. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/test_set_output_response.py +0 -0
  110. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  111. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/trace_detail.py +0 -0
  112. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/uri.py +0 -0
  113. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/validation_error.py +0 -0
  114. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  115. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/variant_action.py +0 -0
  116. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/variant_action_enum.py +0 -0
  117. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/with_pagination.py +0 -0
  118. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/workspace_member_response.py +0 -0
  119. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/workspace_permission.py +0 -0
  120. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/workspace_response.py +0 -0
  121. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/workspace_role.py +0 -0
  122. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/backend/types/workspace_role_response.py +0 -0
  123. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/client.py +0 -0
  124. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/client/exceptions.py +0 -0
  125. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/config.py +0 -0
  126. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/config.toml +0 -0
  127. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker-assets/Dockerfile.cloud.template +0 -0
  128. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker-assets/Dockerfile.template +0 -0
  129. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker-assets/README.md +0 -0
  130. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker-assets/entrypoint.sh +0 -0
  131. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker-assets/lambda_function.py +0 -0
  132. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker-assets/main.py +0 -0
  133. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/docker/docker_utils.py +0 -0
  134. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/__init__.py +0 -0
  135. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/client.py +0 -0
  136. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/context.py +0 -0
  137. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/decorators/base.py +0 -0
  138. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/decorators/llm_entrypoint.py +0 -0
  139. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/decorators/tracing.py +0 -0
  140. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/router.py +0 -0
  141. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/tracing/__init__.py +0 -0
  142. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/tracing/callbacks.py +0 -0
  143. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/tracing/context_manager.py +0 -0
  144. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/tracing/logger.py +0 -0
  145. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/tracing/tasks_manager.py +0 -0
  146. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/types.py +0 -0
  147. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/utils/globals.py +0 -0
  148. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/utils/helper/openai_cost.py +0 -0
  149. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/sdk/utils/preinit.py +0 -0
  150. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/compose_email/README.md +0 -0
  151. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/compose_email/app.py +0 -0
  152. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/compose_email/env.example +0 -0
  153. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/compose_email/requirements.txt +0 -0
  154. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/compose_email/template.toml +0 -0
  155. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/extract_data_to_json/README.md +0 -0
  156. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/extract_data_to_json/app.py +0 -0
  157. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/extract_data_to_json/env.example +0 -0
  158. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/extract_data_to_json/requirements.txt +0 -0
  159. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/extract_data_to_json/template.toml +0 -0
  160. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/simple_prompt/README.md +0 -0
  161. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/simple_prompt/app.py +0 -0
  162. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/simple_prompt/env.example +0 -0
  163. {agenta-0.19.1a0 → agenta-0.19.2}/agenta/templates/simple_prompt/requirements.txt +0 -0
  164. {agenta-0.19.1a0 → agenta-0.19.2}/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.19.1a0
3
+ Version: 0.19.2
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
@@ -26,16 +26,6 @@ class AgentaSingleton:
26
26
  cls._instance = super(AgentaSingleton, cls).__new__(cls)
27
27
  return cls._instance
28
28
 
29
- @property
30
- def client(self):
31
- """API Backend client.
32
-
33
- Returns:
34
- AgentaAPI: instance of agenta api backend
35
- """
36
-
37
- return AgentaApi(base_url=self.host + "/api", api_key=self.api_key)
38
-
39
29
  def init(
40
30
  self,
41
31
  app_id: Optional[str] = None,
@@ -95,7 +85,7 @@ class AgentaSingleton:
95
85
 
96
86
 
97
87
  class Config:
98
- def __init__(self, base_id: str, host: str, api_key: str = ""):
88
+ def __init__(self, base_id: str, host: str, api_key: Optional[str] = ""):
99
89
  self.base_id = base_id
100
90
  self.host = host
101
91
 
@@ -103,7 +93,9 @@ class Config:
103
93
  self.persist = False
104
94
  else:
105
95
  self.persist = True
106
- self.client = AgentaApi(base_url=self.host + "/api", api_key=api_key)
96
+ self.client = AgentaApi(
97
+ base_url=self.host + "/api", api_key=api_key if api_key else ""
98
+ )
107
99
 
108
100
  def register_default(self, overwrite=False, **kwargs):
109
101
  """alias for default"""
@@ -178,7 +178,7 @@ class Tracing(metaclass=SingletonMeta):
178
178
  span.status = value
179
179
 
180
180
  def _update_span_cost(self, span: CreateSpan, cost: Optional[float]):
181
- if span is not None and cost is not None and isinstance(cost, float):
181
+ if cost is not None and isinstance(cost, float):
182
182
  if span.cost is None:
183
183
  span.cost = cost
184
184
  else:
@@ -187,7 +187,7 @@ class Tracing(metaclass=SingletonMeta):
187
187
  def _update_span_tokens(self, span: CreateSpan, tokens: Optional[dict]):
188
188
  if isinstance(tokens, LlmTokens):
189
189
  tokens = tokens.dict()
190
- if span is not None and tokens is not None and isinstance(tokens, dict):
190
+ if tokens is not None and isinstance(tokens, dict):
191
191
  if span.tokens is None:
192
192
  span.tokens = LlmTokens(**tokens)
193
193
  else:
@@ -218,7 +218,6 @@ class Tracing(metaclass=SingletonMeta):
218
218
 
219
219
  self.active_span.end_time = datetime.now(timezone.utc)
220
220
  self.active_span.outputs = [outputs.get("message", "")]
221
-
222
221
  if self.active_span.spankind in [
223
222
  "LLM",
224
223
  "RETRIEVER",
@@ -230,15 +229,45 @@ class Tracing(metaclass=SingletonMeta):
230
229
  self.pending_spans.append(self.active_span)
231
230
 
232
231
  active_span_parent_id = self.active_span.parent_span_id
232
+ if (
233
+ self.active_span.status == SpanStatusCode.ERROR.value
234
+ and active_span_parent_id is not None
235
+ ):
236
+ self.record_exception_and_end_trace(span_parent_id=active_span_parent_id)
233
237
 
234
238
  if active_span_parent_id is None:
235
239
  self.end_trace(parent_span=self.active_span)
240
+
236
241
  else:
237
242
  parent_span = self.span_dict[active_span_parent_id]
238
243
  self._update_span_cost(parent_span, self.active_span.cost)
239
244
  self._update_span_tokens(parent_span, self.active_span.tokens)
240
245
  self.active_span = parent_span
241
246
 
247
+ def record_exception_and_end_trace(self, span_parent_id: str):
248
+ """
249
+ Record an exception and end the trace.
250
+
251
+ Args:
252
+ span_parent_id (str): The ID of the parent span.
253
+
254
+ Returns:
255
+ None
256
+ """
257
+
258
+ parent_span = self.span_dict.get(span_parent_id)
259
+ if parent_span is not None:
260
+ # Update parent span of active span
261
+ parent_span.outputs = self.active_span.outputs # type: ignore
262
+ parent_span.status = "ERROR"
263
+ parent_span.end_time = datetime.now(timezone.utc)
264
+
265
+ # Push parent span to list of recorded spans and end trace
266
+ self.pending_spans.append(parent_span)
267
+ self.end_trace(parent_span=parent_span)
268
+
269
+ # TODO: improve exception logic here.
270
+
242
271
  def end_trace(self, parent_span: CreateSpan):
243
272
  """
244
273
  Ends the active trace and sends the recorded spans for processing.
@@ -256,7 +285,7 @@ class Tracing(metaclass=SingletonMeta):
256
285
  if self.api_key == "":
257
286
  return
258
287
 
259
- if self.active_trace_id is None:
288
+ if not self.active_trace_id:
260
289
  raise RuntimeError("No active trace to end.")
261
290
 
262
291
  self.llm_logger.info("Preparing to send recorded spans for processing.")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.19.1a0"
3
+ version = "0.19.2"
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes