agenta 0.15.0__py3-none-any.whl → 0.15.0a1__py3-none-any.whl

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.

@@ -2,7 +2,7 @@ FROM public.ecr.aws/s2t9a1r1/agentaai/lambda_templates_public:main
2
2
 
3
3
  COPY requirements.txt ${LAMBDA_TASK_ROOT}
4
4
  RUN pip install --no-cache-dir --disable-pip-version-check -U agenta
5
- RUN pip install --no-cache-dir --disable-pip-version-check -U -r requirements.txt
5
+ RUN pip install --no-cache-dir --disable-pip-version-check -r requirements.txt
6
6
  RUN pip install --no-cache-dir --disable-pip-version-check mangum
7
7
  COPY . ${LAMBDA_TASK_ROOT}
8
8
 
@@ -8,7 +8,7 @@ from pathlib import Path
8
8
  logger = logging.getLogger(__name__)
9
9
  logger.setLevel(logging.DEBUG)
10
10
 
11
- DEBUG = False
11
+ DEBUG = True
12
12
 
13
13
 
14
14
  def create_dockerfile(out_folder: Path) -> Path:
agenta/sdk/agenta_init.py CHANGED
@@ -1,6 +1,5 @@
1
1
  import os
2
2
  import logging
3
- import toml
4
3
  from typing import Optional
5
4
 
6
5
  from agenta.sdk.utils.globals import set_global
@@ -41,69 +40,85 @@ class AgentaSingleton:
41
40
  app_id: Optional[str] = None,
42
41
  host: Optional[str] = None,
43
42
  api_key: Optional[str] = None,
44
- config_fname: Optional[str] = None,
45
43
  ) -> None:
46
44
  """Main function to initialize the singleton.
47
45
 
48
- Initializes the singleton with the given `app_id`, `host`, and `api_key`. The order of precedence for these variables is:
49
- 1. Explicit argument provided in the function call.
50
- 2. Value from the configuration file specified by `config_fname`.
51
- 3. Environment variables.
52
-
53
- Examples:
54
- ag.init(app_id="xxxx", api_key="xxx")
55
- ag.init(config_fname="config.toml")
56
- ag.init() #assuming env vars are set
46
+ Initializes the singleton with the given `app_name`, `base_name`, and `host`. If any of these arguments are not provided,
47
+ the function will look for them in environment variables.
57
48
 
58
49
  Args:
59
- app_id (Optional[str]): ID of the Agenta application. Defaults to None. If not provided, will look for "app_id" in the config file, then "AGENTA_APP_ID" in environment variables.
60
- host (Optional[str]): Host name of the backend server. Defaults to None. If not provided, will look for "backend_host" in the config file, then "AGENTA_HOST" in environment variables.
61
- api_key (Optional[str]): API Key to use with the host of the backend server. Defaults to None. If not provided, will look for "api_key" in the config file, then "AGENTA_API_KEY" in environment variables.
62
- config_fname (Optional[str]): Path to the configuration file (relative or absolute). Defaults to None.
50
+ app_id (Optional[str]): ID of the Agenta application. Defaults to None. If not provided, will look for "AGENTA_APP_NAME" in environment variables.
51
+ host (Optional[str]): Host name of the backend server. Defaults to None. If not provided, will look for "AGENTA_HOST" in environment variables.
52
+ api_key (Optional[str]): API Key to use with the host of the backend server.
53
+ kwargs (Any): Additional keyword arguments.
63
54
 
64
55
  Raises:
65
- ValueError: If `app_id` is not specified either as an argument, in the config file, or in the environment variables.
56
+ ValueError: If `app_name`, `base_name`, or `host` are not specified either as arguments or in the environment variables.
66
57
  """
67
- config = {}
68
- if config_fname:
69
- config = toml.load(config_fname)
70
-
71
- self.app_id = app_id or config.get("app_id") or os.environ.get("AGENTA_APP_ID")
72
- self.host = (
73
- host
74
- or config.get("backend_host")
75
- or os.environ.get("AGENTA_HOST", "https://cloud.agenta.ai")
76
- )
77
- self.api_key = (
78
- api_key or config.get("api_key") or os.environ.get("AGENTA_API_KEY")
79
- )
80
-
81
- if not self.app_id:
82
- raise ValueError(
83
- "App ID must be specified. You can provide it in one of the following ways:\n"
84
- "1. As an argument when calling ag.init(app_id='your_app_id').\n"
85
- "2. In the configuration file specified by config_fname.\n"
86
- "3. As an environment variable 'AGENTA_APP_ID'."
87
- )
88
- self.base_id = os.environ.get("AGENTA_BASE_ID")
89
- if self.base_id is None:
58
+
59
+ self.api_key = api_key or os.environ.get("AGENTA_API_KEY")
60
+ self.host = host or os.environ.get("AGENTA_HOST", "http://localhost")
61
+
62
+ app_id = app_id or os.environ.get("AGENTA_APP_ID")
63
+ if not app_id:
64
+ raise ValueError("App ID must be specified.")
65
+
66
+ base_id = os.environ.get("AGENTA_BASE_ID")
67
+ base_name = os.environ.get("AGENTA_BASE_NAME")
68
+ if base_id is None and (app_id is None or base_name is None):
90
69
  print(
91
- "Warning: Your configuration will not be saved permanently since base_id is not provided."
70
+ f"Warning: Your configuration will not be saved permanently since app_name and base_name are not provided."
92
71
  )
72
+ else:
73
+ try:
74
+ base_id = self.get_app_base(app_id, base_name) # type: ignore
75
+ except Exception as ex:
76
+ raise APIRequestError(
77
+ f"Failed to get base id and/or app_id from the server with error: {ex}"
78
+ )
79
+
80
+ self.app_id = app_id
81
+ self.base_id = base_id
82
+ self.variant_id = os.environ.get("AGENTA_VARIANT_ID")
83
+ self.variant_name = os.environ.get("AGENTA_VARIANT_NAME")
84
+ self.config = Config(base_id=self.base_id, host=self.host, api_key=self.api_key) # type: ignore
85
+
86
+ def get_app_base(self, app_id: str, base_name: str) -> str:
87
+ bases = self.client.bases.list_bases(app_id=app_id, base_name=base_name)
88
+ if len(bases) == 0:
89
+ raise APIRequestError(f"No base was found for the app {app_id}")
90
+ return bases[0].base_id
91
+
92
+ def get_current_config(self):
93
+ """
94
+ Retrieves the current active configuration
95
+ """
93
96
 
94
- self.config = Config(base_id=self.base_id, host=self.host) # type: ignore
97
+ if self._config_data is None:
98
+ raise RuntimeError("AgentaSingleton has not been initialized")
99
+ return self._config_data
95
100
 
96
101
 
97
102
  class Config:
98
- def __init__(self, base_id: str, host: str, api_key: str = ""):
103
+ def __init__(self, base_id: str, host: str, api_key: str):
99
104
  self.base_id = base_id
100
105
  self.host = host
106
+ self.api_key = api_key
101
107
 
102
108
  if base_id is None or host is None:
103
109
  self.persist = False
104
110
  else:
105
111
  self.persist = True
106
- self.client = AgentaApi(base_url=self.host + "/api", api_key=api_key)
112
+
113
+ @property
114
+ def client(self):
115
+ """API Backend client.
116
+
117
+ Returns:
118
+ AgentaAPI: instance of agenta api backend
119
+ """
120
+
121
+ return AgentaApi(base_url=self.host + "/api", api_key=self.api_key)
107
122
 
108
123
  def register_default(self, overwrite=False, **kwargs):
109
124
  """alias for default"""
@@ -122,7 +137,7 @@ class Config:
122
137
  self.push(config_name="default", overwrite=overwrite, **kwargs)
123
138
  except Exception as ex:
124
139
  logger.warning(
125
- "Unable to push the default configuration to the server. %s", str(ex)
140
+ "Unable to push the default configuration to the server." + str(ex)
126
141
  )
127
142
 
128
143
  def push(self, config_name: str, overwrite=True, **kwargs):
@@ -143,7 +158,7 @@ class Config:
143
158
  )
144
159
  except Exception as ex:
145
160
  logger.warning(
146
- "Failed to push the configuration to the server with error: %s", ex
161
+ "Failed to push the configuration to the server with error: " + str(ex)
147
162
  )
148
163
 
149
164
  def pull(
@@ -153,7 +168,7 @@ class Config:
153
168
  if not self.persist and (
154
169
  config_name != "default" or environment_name is not None
155
170
  ):
156
- raise ValueError(
171
+ raise Exception(
157
172
  "Cannot pull the configuration from the server since the app_name and base_name are not provided."
158
173
  )
159
174
  if self.persist:
@@ -170,13 +185,13 @@ class Config:
170
185
  )
171
186
  except Exception as ex:
172
187
  logger.warning(
173
- "Failed to pull the configuration from the server with error: %s",
174
- str(ex),
188
+ "Failed to pull the configuration from the server with error: "
189
+ + str(ex)
175
190
  )
176
191
  try:
177
192
  self.set(**{"current_version": config.current_version, **config.parameters})
178
193
  except Exception as ex:
179
- logger.warning("Failed to set the configuration with error: %s", str(ex))
194
+ logger.warning("Failed to set the configuration with error: " + str(ex))
180
195
 
181
196
  def all(self):
182
197
  """Returns all the parameters for the app variant"""
@@ -184,15 +199,7 @@ class Config:
184
199
  k: v
185
200
  for k, v in self.__dict__.items()
186
201
  if k
187
- not in [
188
- "app_name",
189
- "base_name",
190
- "host",
191
- "base_id",
192
- "api_key",
193
- "persist",
194
- "client",
195
- ]
202
+ not in ["app_name", "base_name", "host", "base_id", "api_key", "persist"]
196
203
  }
197
204
 
198
205
  # function to set the parameters for the app variant
@@ -219,37 +226,24 @@ def init(
219
226
  app_id: Optional[str] = None,
220
227
  host: Optional[str] = None,
221
228
  api_key: Optional[str] = None,
222
- config_fname: Optional[str] = None,
223
229
  max_workers: Optional[int] = None,
224
230
  ):
225
- """Main function to initialize the agenta sdk.
226
-
227
- Initializes agenta with the given `app_id`, `host`, and `api_key`. The order of precedence for these variables is:
228
- 1. Explicit argument provided in the function call.
229
- 2. Value from the configuration file specified by `config_fname`.
230
- 3. Environment variables.
231
-
232
- - `app_id` is a required parameter (to be specified in one of the above ways)
233
- - `host` is optional and defaults to "https://cloud.agenta.ai"
234
- - `api_key` is optional and defaults to "". It is required only when using cloud or enterprise version of agenta.
235
-
231
+ """Main function to be called by the user to initialize the sdk.
236
232
 
237
233
  Args:
238
- app_id (Optional[str]): ID of the Agenta application. Defaults to None. If not provided, will look for "app_id" in the config file, then "AGENTA_APP_ID" in environment variables.
239
- host (Optional[str]): Host name of the backend server. Defaults to None. If not provided, will look for "backend_host" in the config file, then "AGENTA_HOST" in environment variables.
240
- api_key (Optional[str]): API Key to use with the host of the backend server. Defaults to None. If not provided, will look for "api_key" in the config file, then "AGENTA_API_KEY" in environment variables.
241
- config_fname (Optional[str]): Path to the configuration file. Defaults to None.
242
-
243
- Raises:
244
- ValueError: If `app_id` is not specified either as an argument, in the config file, or in the environment variables.
234
+ app_id (str): The Id of the app.
235
+ host (str): The host of the backend server.
236
+ api_key (str): The API key to use for the backend server.
245
237
  """
246
238
 
247
239
  singleton = AgentaSingleton()
248
240
 
249
- singleton.init(app_id=app_id, host=host, api_key=api_key, config_fname=config_fname)
241
+ singleton.init(app_id=app_id, host=host, api_key=api_key)
250
242
  tracing = Tracing(
251
243
  host=singleton.host, # type: ignore
252
244
  app_id=singleton.app_id, # type: ignore
245
+ variant_id=singleton.variant_id, # type: ignore
246
+ variant_name=singleton.variant_name,
253
247
  api_key=singleton.api_key,
254
248
  max_workers=max_workers,
255
249
  )
@@ -55,18 +55,20 @@ app.include_router(router, prefix="")
55
55
  class entrypoint(BaseDecorator):
56
56
  """Decorator class to wrap a function for HTTP POST, terminal exposure and enable tracing.
57
57
 
58
+ Args:
59
+ BaseDecorator (object): base decorator class
58
60
 
59
61
  Example:
60
62
  ```python
61
63
  import agenta as ag
62
64
 
63
- @ag.entrypoint
65
+ @ag.entrypoint(enable_tracing=True) # Defaults to False
64
66
  async def chain_of_prompts_llm(prompt: str):
65
67
  return ...
66
68
  ```
67
69
  """
68
70
 
69
- def __init__(self, func: Callable[..., Any]):
71
+ def __call__(self, func: Callable[..., Any]):
70
72
  endpoint_name = "generate"
71
73
  func_signature = inspect.signature(func)
72
74
  config_params = agenta.config.all()
@@ -80,7 +82,7 @@ class entrypoint(BaseDecorator):
80
82
 
81
83
  # Set the configuration and environment of the LLM app parent span at run-time
82
84
  agenta.tracing.set_span_attribute(
83
- {"config": config_params, "environment": "playground"}
85
+ {"config": config_params, "environment": "playground"}
84
86
  )
85
87
 
86
88
  llm_result = await self.execute_function(
@@ -103,7 +105,7 @@ class entrypoint(BaseDecorator):
103
105
 
104
106
  # Set the configuration and environment of the LLM app parent span at run-time
105
107
  agenta.tracing.set_span_attribute(
106
- {"config": config_params, "environment": kwargs["environment"]}
108
+ {"config": config_params, "environment": kwargs["environment"]}
107
109
  )
108
110
 
109
111
  llm_result = await self.execute_function(
@@ -132,12 +134,13 @@ class entrypoint(BaseDecorator):
132
134
  )
133
135
 
134
136
  if self.is_main_script(func):
135
- self.handle_terminal_run(
137
+ result = self.handle_terminal_run(
136
138
  func,
137
139
  func_signature.parameters, # type: ignore
138
140
  config_params,
139
141
  ingestible_files,
140
142
  )
143
+ return result
141
144
 
142
145
  def extract_ingestible_files(
143
146
  self,
@@ -202,16 +205,9 @@ class entrypoint(BaseDecorator):
202
205
  return FuncResponse(**result, latency=round(latency, 4))
203
206
  if isinstance(result, str):
204
207
  return FuncResponse(message=result, latency=round(latency, 4)) # type: ignore
205
- if isinstance(result, int) or isinstance(result, float):
206
- return FuncResponse(message=str(result), latency=round(latency, 4))
207
- if result is None:
208
- return FuncResponse(
209
- message="Function executed successfully, but did return None. \n Are you sure you did not forget to return a value?",
210
- latency=round(latency, 4),
211
- )
212
208
  except Exception as e:
213
209
  self.handle_exception(e)
214
- return FuncResponse(message="Unexpected error occurred when calling the @entrypoing decorated function", latency=0) # type: ignore
210
+ return FuncResponse(message="Unexpected error occurred", latency=0) # type: ignore
215
211
 
216
212
  def handle_exception(self, e: Exception):
217
213
  """Handle exceptions."""
@@ -326,7 +322,17 @@ class entrypoint(BaseDecorator):
326
322
  if is_main_script(my_function):
327
323
  print("This is the main script.")
328
324
  """
329
- return func.__module__ == "__main__"
325
+
326
+ # this ensures that when we call main.py, it starts the fastapi server
327
+ if os.path.splitext(os.path.basename(sys.argv[0]))[0] == "main":
328
+ return False
329
+
330
+ # the function that gets passed to entrypoint will always be called from sdk/decorators/tracing.py
331
+ if os.path.splitext(os.path.basename(inspect.getfile(func)))[0] == "tracing":
332
+ return True
333
+
334
+ # same behaviour as the first single-line comment above
335
+ return False
330
336
 
331
337
  def handle_terminal_run(
332
338
  self,
@@ -385,8 +391,8 @@ class entrypoint(BaseDecorator):
385
391
 
386
392
  # Set the configuration and environment of the LLM app parent span at run-time
387
393
  agenta.tracing.set_span_attribute(
388
- {"config": agenta.config.all(), "environment": "bash"}
389
- )
394
+ {"config": agenta.config.all(), "environment": "bash"}
395
+ )
390
396
 
391
397
  loop = asyncio.get_event_loop()
392
398
  result = loop.run_until_complete(
@@ -398,6 +404,7 @@ class entrypoint(BaseDecorator):
398
404
  print(
399
405
  f"\n========== Result ==========\n\nMessage: {result.message}\nCost: {result.cost}\nToken Usage: {result.usage}"
400
406
  )
407
+ return result
401
408
 
402
409
  def override_schema(
403
410
  self, openapi_schema: dict, func_name: str, endpoint: str, params: dict
@@ -43,13 +43,9 @@ class instrument(BaseDecorator):
43
43
  @wraps(func)
44
44
  async def async_wrapper(*args, **kwargs):
45
45
  result = None
46
- func_args = inspect.getfullargspec(func).args
47
- input_dict = {name: value for name, value in zip(func_args, args)}
48
- input_dict.update(kwargs)
49
-
50
46
  span = self.tracing.start_span(
51
47
  name=func.__name__,
52
- input=input_dict,
48
+ input=kwargs,
53
49
  spankind=self.spankind,
54
50
  config=self.config,
55
51
  )
@@ -71,13 +67,9 @@ class instrument(BaseDecorator):
71
67
  @wraps(func)
72
68
  def sync_wrapper(*args, **kwargs):
73
69
  result = None
74
- func_args = inspect.getfullargspec(func).args
75
- input_dict = {name: value for name, value in zip(func_args, args)}
76
- input_dict.update(kwargs)
77
-
78
70
  span = self.tracing.start_span(
79
71
  name=func.__name__,
80
- input=input_dict,
72
+ input=kwargs,
81
73
  spankind=self.spankind,
82
74
  config=self.config,
83
75
  )
@@ -1,18 +1,19 @@
1
+ # Stdlib Imports
1
2
  import os
2
3
  from threading import Lock
3
4
  from datetime import datetime, timezone
4
5
  from typing import Optional, Dict, Any, List, Union
5
6
 
7
+ # Own Imports
6
8
  from agenta.sdk.tracing.logger import llm_logger
7
9
  from agenta.sdk.tracing.tasks_manager import TaskQueue
8
10
  from agenta.client.backend.client import AsyncAgentaApi
9
11
  from agenta.client.backend.client import AsyncObservabilityClient
10
12
  from agenta.client.backend.types.create_span import CreateSpan, SpanKind, SpanStatusCode
11
13
 
14
+ # Third Party Imports
12
15
  from bson.objectid import ObjectId
13
16
 
14
- VARIANT_TRACKING_FEATURE_FLAG = False
15
-
16
17
 
17
18
  class SingletonMeta(type):
18
19
  """
@@ -57,6 +58,8 @@ class Tracing(metaclass=SingletonMeta):
57
58
  self,
58
59
  host: str,
59
60
  app_id: str,
61
+ variant_id: Optional[str] = None,
62
+ variant_name: Optional[str] = None,
60
63
  api_key: Optional[str] = None,
61
64
  max_workers: Optional[int] = None,
62
65
  ):
@@ -64,6 +67,8 @@ class Tracing(metaclass=SingletonMeta):
64
67
  self.api_key = api_key if api_key is not None else ""
65
68
  self.llm_logger = llm_logger
66
69
  self.app_id = app_id
70
+ self.variant_id = variant_id
71
+ self.variant_name = variant_name
67
72
  self.tasks_manager = TaskQueue(
68
73
  max_workers if max_workers else 4, logger=llm_logger
69
74
  )
@@ -71,9 +76,7 @@ class Tracing(metaclass=SingletonMeta):
71
76
  self.active_trace_id: Optional[str] = None
72
77
  self.pending_spans: List[CreateSpan] = []
73
78
  self.tags: List[str] = []
74
- self.trace_config_cache: Dict[
75
- str, Any
76
- ] = {} # used to save the trace configuration before starting the first span
79
+ self.trace_config_cache: Dict[str, Any] = {} # used to save the trace configuration before starting the first span
77
80
  self.span_dict: Dict[str, CreateSpan] = {} # type: ignore
78
81
 
79
82
  @property
@@ -92,9 +95,7 @@ class Tracing(metaclass=SingletonMeta):
92
95
  self,
93
96
  attributes: Dict[str, Any] = {},
94
97
  ):
95
- if (
96
- self.active_span is None
97
- ): # This is the case where entrypoint wants to save the trace information but the parent span has not been initialized yet
98
+ if self.active_span is None: # This is the case where entrypoint wants to save the trace information but the parent span has not been initialized yet
98
99
  for key, value in attributes.items():
99
100
  self.trace_config_cache[key] = value
100
101
  else:
@@ -121,6 +122,8 @@ class Tracing(metaclass=SingletonMeta):
121
122
  inputs=input,
122
123
  name=name,
123
124
  app_id=self.app_id,
125
+ variant_id=self.variant_id,
126
+ variant_name=self.variant_name,
124
127
  config=config,
125
128
  spankind=spankind.upper(),
126
129
  attributes={},
@@ -148,11 +151,6 @@ class Tracing(metaclass=SingletonMeta):
148
151
  if not config and self.trace_config_cache is not None
149
152
  else None
150
153
  )
151
- if VARIANT_TRACKING_FEATURE_FLAG:
152
- # TODO: we should get the variant_id and variant_name (and environment) from the config object
153
- span.variant_id = config.variant_id
154
- span.variant_name = (config.variant_name,)
155
-
156
154
  else:
157
155
  span.parent_span_id = self.active_span.id
158
156
  self.span_dict[span.id] = span
@@ -2,7 +2,7 @@ import logging
2
2
 
3
3
 
4
4
  class LLMLogger:
5
- def __init__(self, name="LLMLogger", level=logging.DEBUG):
5
+ def __init__(self, name="LLMLogger", level=logging.INFO):
6
6
  self.logger = logging.getLogger(name)
7
7
  self.logger.setLevel(level)
8
8
 
agenta/sdk/types.py CHANGED
@@ -131,9 +131,8 @@ class GroupedMultipleChoiceParam(str):
131
131
  def __new__(cls, default: str = None, choices: Dict[str, List[str]] = None):
132
132
  if choices is None:
133
133
  choices = {}
134
- if default and not any(
135
- default in choice_list for choice_list in choices.values()
136
- ):
134
+
135
+ if default and not any(default in choices for choices in choices.values()):
137
136
  if not choices:
138
137
  print(
139
138
  f"Warning: Default value {default} provided but choices are empty."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agenta
3
- Version: 0.15.0
3
+ Version: 0.15.0a1
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
@@ -119,26 +119,26 @@ agenta/client/client.py,sha256=DWOGS9A8u4wu28s9jGOR4eRhf7vo4zT7GyDvrIGu59Y,19648
119
119
  agenta/client/exceptions.py,sha256=cxLjjKvZKlUgBxt4Vn9J_SsezJPPNHvrZxnoq-D6zmw,94
120
120
  agenta/config.py,sha256=Id-Ie1yf9QRP1YPhRYaYSOruRe6RBrsCXkG9rAa-ZtA,732
121
121
  agenta/config.toml,sha256=ptE0P49bwsu3Luyn7OLFmk2buPhj5D-MA-O_ErOGoLg,223
122
- agenta/docker/docker-assets/Dockerfile.cloud.template,sha256=Mn9g7bTQSnPXcCLZo-iVirV3cveCQHC_F7IECQufmME,389
122
+ agenta/docker/docker-assets/Dockerfile.cloud.template,sha256=uJuXKvtkMY6f4KaOh3XE5pmuJR7mfZEXJk_8hj2uatc,386
123
123
  agenta/docker/docker-assets/Dockerfile.template,sha256=aVA_okx0xXalcTvdQGhSfzSjNpQZVoLJCGYA39-2Nwk,280
124
124
  agenta/docker/docker-assets/README.md,sha256=XHxwh2ks_ozrtAU7SLbL3J14SB2holG6buoTxwmMiZM,102
125
125
  agenta/docker/docker-assets/entrypoint.sh,sha256=29XK8VQjQsx4hN2j-4JDy-6kQb5y4LCqZEa7PD4eqCQ,74
126
126
  agenta/docker/docker-assets/lambda_function.py,sha256=h4UZSSfqwpfsCgERv6frqwm_4JrYu9rLz3I-LxCfeEg,83
127
127
  agenta/docker/docker-assets/main.py,sha256=7MI-21n81U7N7A0GxebNi0cmGWtJKcR2sPB6FcH2QfA,251
128
- agenta/docker/docker_utils.py,sha256=5uHMCzXkCvIsDdEiwbnnn97KkzsFbBvyMwogCsv_Z5U,3509
128
+ agenta/docker/docker_utils.py,sha256=o1Dn2oCr7qpg7SYk9l9RlZHwxfpWNzJpdpj8IGE0lz0,3508
129
129
  agenta/sdk/__init__.py,sha256=oHgl-qoEyi3d2VI_Kv-rIMSx9zgs6b5MP62PLq5GqYI,762
130
- agenta/sdk/agenta_init.py,sha256=j7qwyDtXfLozWpnayJHPz2aQOzHSGvHo9V6s0FXeUe8,9937
130
+ agenta/sdk/agenta_init.py,sha256=2iU8POiedmWL34_DgeXk38n0kN3MWlrGOruRsvd66Yw,8843
131
131
  agenta/sdk/client.py,sha256=trKyBOYFZRk0v5Eptxvh87yPf50Y9CqY6Qgv4Fy-VH4,2142
132
132
  agenta/sdk/context.py,sha256=q-PxL05-I84puunUAs9LGsffEXcYhDxhQxjuOz2vK90,901
133
133
  agenta/sdk/decorators/base.py,sha256=9aNdX5h8a2mFweuhdO-BQPwXGKY9ONPIdLRhSGAGMfY,217
134
- agenta/sdk/decorators/llm_entrypoint.py,sha256=QjkpKEgsKzO83MNOb37MupwCX5hrm7_1-qbtbpqVMYM,19400
135
- agenta/sdk/decorators/tracing.py,sha256=bC-YlPQUrHBEqvhLJxr63N0qlo1jvrbt7ro2AMGXXZw,3160
134
+ agenta/sdk/decorators/llm_entrypoint.py,sha256=aW78CMpAVQ5YWQuDAgfjlqyXY5LHUmS4LQukJqhxNB0,19531
135
+ agenta/sdk/decorators/tracing.py,sha256=-QrchKPjFjYbIau5bw1hlUyOcX4kdOzjVQ79KE4iwmw,2800
136
136
  agenta/sdk/router.py,sha256=0sbajvn5C7t18anH6yNo7-oYxldHnYfwcbmQnIXBePw,269
137
137
  agenta/sdk/tracing/context_manager.py,sha256=HskDaiORoOhjeN375gm05wYnieQzh5UnoIsnSAHkAyc,252
138
- agenta/sdk/tracing/llm_tracing.py,sha256=PmMYQ5N8atYut85Rk2hZ1jmvSF80Duuy6Clf7URcTCA,8193
139
- agenta/sdk/tracing/logger.py,sha256=GfH7V-jBHcn7h5dbdrnkDMe_ml3wkXFBeoQiqR4KVRc,474
138
+ agenta/sdk/tracing/llm_tracing.py,sha256=RxMVO5xynk3FWpl5CFAQFEohUlhb1WoUqSze1BgtL-4,8140
139
+ agenta/sdk/tracing/logger.py,sha256=4zG9c51p8xPdKA5SL8MOgBfkpCnBSuV6JfWiXO0A7oc,473
140
140
  agenta/sdk/tracing/tasks_manager.py,sha256=ROrWIaqS2J2HHiJtRWiHKlLY8CCsqToP5VeXu7mamck,3748
141
- agenta/sdk/types.py,sha256=pjVThuJ9iGbWnwmDmKJnG8S6Q_wHe1fRtMS6jknYSJM,5881
141
+ agenta/sdk/types.py,sha256=Mn0yBlHh_Yr_5oQXUfsYI3V7sJAVWkJgkxEOBDOOMS0,5852
142
142
  agenta/sdk/utils/globals.py,sha256=JmhJcCOSbwvjQ6GDyUc2_SYR27DZk7YcrRH80ktHHOM,435
143
143
  agenta/sdk/utils/helper/openai_cost.py,sha256=1VkgvucDnNZm1pTfcVLz9icWunntp1d7zwMmnviy3Uw,5877
144
144
  agenta/sdk/utils/preinit.py,sha256=YlJL7RLfel0R7DFp-jK7OV-z4ZIQJM0oupYlk7g8b5o,1278
@@ -157,7 +157,7 @@ agenta/templates/simple_prompt/app.py,sha256=kODgF6lhzsaJPdgL5b21bUki6jkvqjWZzWR
157
157
  agenta/templates/simple_prompt/env.example,sha256=g9AE5bYcGPpxawXMJ96gh8oenEPCHTabsiOnfQo3c5k,70
158
158
  agenta/templates/simple_prompt/requirements.txt,sha256=ywRglRy7pPkw8bljmMEJJ4aOOQKrt9FGKULZ-DGkoBU,23
159
159
  agenta/templates/simple_prompt/template.toml,sha256=DQBtRrF4GU8LBEXOZ-GGuINXMQDKGTEG5y37tnvIUIE,60
160
- agenta-0.15.0.dist-info/METADATA,sha256=fw71SzzTzKG1bcyoCV78EtObsmPtFUsUmFcAZQ6HtA4,26463
161
- agenta-0.15.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
162
- agenta-0.15.0.dist-info/entry_points.txt,sha256=PDiu8_8AsL7ibU9v4iNoOKR1S7F2rdxjlEprjM9QOgo,46
163
- agenta-0.15.0.dist-info/RECORD,,
160
+ agenta-0.15.0a1.dist-info/METADATA,sha256=MVIjIlEt-YrAzqRdO5mg7JzGx_R9BD-60QkNmiK39Rw,26465
161
+ agenta-0.15.0a1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
162
+ agenta-0.15.0a1.dist-info/entry_points.txt,sha256=PDiu8_8AsL7ibU9v4iNoOKR1S7F2rdxjlEprjM9QOgo,46
163
+ agenta-0.15.0a1.dist-info/RECORD,,