agenta 0.13.7a0__py3-none-any.whl → 0.13.8__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.
- agenta/client/backend/types/evaluation.py +1 -0
- agenta/sdk/agenta_decorator.py +1 -21
- agenta/sdk/agenta_init.py +63 -78
- {agenta-0.13.7a0.dist-info → agenta-0.13.8.dist-info}/METADATA +1 -1
- {agenta-0.13.7a0.dist-info → agenta-0.13.8.dist-info}/RECORD +7 -7
- {agenta-0.13.7a0.dist-info → agenta-0.13.8.dist-info}/WHEEL +0 -0
- {agenta-0.13.7a0.dist-info → agenta-0.13.8.dist-info}/entry_points.txt +0 -0
|
@@ -27,6 +27,7 @@ class Evaluation(pydantic.BaseModel):
|
|
|
27
27
|
status: Result
|
|
28
28
|
aggregated_results: typing.List[AggregatedResult]
|
|
29
29
|
average_cost: typing.Optional[Result]
|
|
30
|
+
total_cost: typing.Optional[Result]
|
|
30
31
|
average_latency: typing.Optional[Result]
|
|
31
32
|
created_at: dt.datetime
|
|
32
33
|
updated_at: dt.datetime
|
agenta/sdk/agenta_decorator.py
CHANGED
|
@@ -399,32 +399,12 @@ def handle_terminal_run(
|
|
|
399
399
|
agenta.config.set(**args_config_params)
|
|
400
400
|
|
|
401
401
|
loop = asyncio.get_event_loop()
|
|
402
|
-
|
|
403
|
-
# Initialize tracing
|
|
404
|
-
tracing = agenta.llm_tracing()
|
|
405
|
-
|
|
406
|
-
# Start tracing
|
|
407
|
-
tracing.start_parent_span(
|
|
408
|
-
name=func.__name__,
|
|
409
|
-
inputs=args_func_params,
|
|
410
|
-
config=args_config_params,
|
|
411
|
-
environment="shell", # type: ignore
|
|
412
|
-
)
|
|
413
|
-
|
|
414
402
|
result = loop.run_until_complete(
|
|
415
403
|
execute_function(
|
|
416
404
|
func, **{"params": args_func_params, "config_params": args_config_params}
|
|
417
405
|
)
|
|
418
406
|
)
|
|
419
|
-
|
|
420
|
-
# End trace recording
|
|
421
|
-
tracing.end_recording(
|
|
422
|
-
outputs=result.dict(),
|
|
423
|
-
span=tracing.active_trace, # type: ignore
|
|
424
|
-
)
|
|
425
|
-
print(
|
|
426
|
-
f"\n========== Result ==========\n\nMessage: {result.message}\nCost: {result.cost}\nToken Usage: {result.usage}"
|
|
427
|
-
)
|
|
407
|
+
print(result)
|
|
428
408
|
|
|
429
409
|
|
|
430
410
|
def override_schema(openapi_schema: dict, func_name: str, endpoint: str, params: dict):
|
agenta/sdk/agenta_init.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import logging
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
|
|
5
|
+
from .utils.globals import set_global
|
|
4
6
|
|
|
5
|
-
from agenta.sdk.utils.globals import set_global
|
|
6
7
|
from agenta.client.backend.client import AgentaApi
|
|
7
8
|
from agenta.sdk.tracing.llm_tracing import Tracing
|
|
8
9
|
from agenta.client.exceptions import APIRequestError
|
|
@@ -12,17 +13,16 @@ logger = logging.getLogger(__name__)
|
|
|
12
13
|
logger.setLevel(logging.DEBUG)
|
|
13
14
|
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
def __init__(self, api_key: str, host: str):
|
|
21
|
-
self.api_key = api_key
|
|
22
|
-
self.host = host + "/api"
|
|
16
|
+
BACKEND_URL_SUFFIX = os.environ.get("BACKEND_URL_SUFFIX", "api")
|
|
17
|
+
CLIENT_API_KEY = os.environ.get("AGENTA_API_KEY")
|
|
18
|
+
CLIENT_HOST = os.environ.get("AGENTA_HOST", "http://localhost")
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
# initialize the client with the backend url and api key
|
|
21
|
+
backend_url = f"{CLIENT_HOST}/{BACKEND_URL_SUFFIX}"
|
|
22
|
+
client = AgentaApi(
|
|
23
|
+
base_url=backend_url,
|
|
24
|
+
api_key=CLIENT_API_KEY if CLIENT_API_KEY else "",
|
|
25
|
+
)
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class AgentaSingleton:
|
|
@@ -37,22 +37,15 @@ class AgentaSingleton:
|
|
|
37
37
|
cls._instance = super(AgentaSingleton, cls).__new__(cls)
|
|
38
38
|
return cls._instance
|
|
39
39
|
|
|
40
|
-
@property
|
|
41
|
-
def client(self):
|
|
42
|
-
"""Builds sdk client instance.
|
|
43
|
-
|
|
44
|
-
Returns:
|
|
45
|
-
AgentaAPI: instance of agenta api backend
|
|
46
|
-
"""
|
|
47
|
-
|
|
48
|
-
sdk_client = SDKClient(api_key=self.api_key, host=self.host) # type: ignore
|
|
49
|
-
return sdk_client._build_sdk_client()
|
|
50
|
-
|
|
51
40
|
def init(
|
|
52
41
|
self,
|
|
42
|
+
app_name: Optional[str] = None,
|
|
43
|
+
base_name: Optional[str] = None,
|
|
44
|
+
api_key: Optional[str] = None,
|
|
45
|
+
base_id: Optional[str] = None,
|
|
53
46
|
app_id: Optional[str] = None,
|
|
54
47
|
host: Optional[str] = None,
|
|
55
|
-
|
|
48
|
+
**kwargs: Any,
|
|
56
49
|
) -> None:
|
|
57
50
|
"""Main function to initialize the singleton.
|
|
58
51
|
|
|
@@ -60,44 +53,57 @@ class AgentaSingleton:
|
|
|
60
53
|
the function will look for them in environment variables.
|
|
61
54
|
|
|
62
55
|
Args:
|
|
63
|
-
|
|
56
|
+
app_name (Optional[str]): Name of the Agenta application. Defaults to None. If not provided, will look for "AGENTA_APP_NAME" in environment variables.
|
|
57
|
+
base_name (Optional[str]): Base name for the Agenta setup. Defaults to None. If not provided, will look for "AGENTA_BASE_NAME" in environment variables.
|
|
64
58
|
host (Optional[str]): Host name of the backend server. Defaults to None. If not provided, will look for "AGENTA_HOST" in environment variables.
|
|
65
|
-
api_key (Optional[str]): API Key to use with the host of the backend server.
|
|
66
59
|
kwargs (Any): Additional keyword arguments.
|
|
67
60
|
|
|
68
61
|
Raises:
|
|
69
62
|
ValueError: If `app_name`, `base_name`, or `host` are not specified either as arguments or in the environment variables.
|
|
70
63
|
"""
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
try:
|
|
87
|
-
base_id = self.get_app_base(app_id, base_name) # type: ignore
|
|
88
|
-
except Exception as ex:
|
|
89
|
-
raise APIRequestError(
|
|
90
|
-
f"Failed to get base id and/or app_id from the server with error: {ex}"
|
|
64
|
+
if app_name is None:
|
|
65
|
+
app_name = os.environ.get("AGENTA_APP_NAME")
|
|
66
|
+
if base_name is None:
|
|
67
|
+
base_name = os.environ.get("AGENTA_BASE_NAME")
|
|
68
|
+
if api_key is None:
|
|
69
|
+
api_key = os.environ.get("AGENTA_API_KEY")
|
|
70
|
+
if base_id is None:
|
|
71
|
+
base_id = os.environ.get("AGENTA_BASE_ID")
|
|
72
|
+
if host is None:
|
|
73
|
+
host = os.environ.get("AGENTA_HOST", "http://localhost")
|
|
74
|
+
|
|
75
|
+
if base_id is None:
|
|
76
|
+
if app_name is None or base_name is None:
|
|
77
|
+
print(
|
|
78
|
+
f"Warning: Your configuration will not be saved permanently since app_name and base_name are not provided."
|
|
91
79
|
)
|
|
80
|
+
else:
|
|
81
|
+
try:
|
|
82
|
+
app_id = self.get_app(app_name)
|
|
83
|
+
base_id = self.get_app_base(app_id, base_name)
|
|
84
|
+
except Exception as ex:
|
|
85
|
+
raise APIRequestError(
|
|
86
|
+
f"Failed to get base id and/or app_id from the server with error: {ex}"
|
|
87
|
+
)
|
|
92
88
|
|
|
93
|
-
self.app_id = app_id
|
|
94
89
|
self.base_id = base_id
|
|
90
|
+
self.host = host
|
|
91
|
+
self.app_id = os.environ.get("AGENTA_APP_ID") if app_id is None else app_id
|
|
95
92
|
self.variant_id = os.environ.get("AGENTA_VARIANT_ID")
|
|
96
93
|
self.variant_name = os.environ.get("AGENTA_VARIANT_NAME")
|
|
94
|
+
self.api_key = api_key
|
|
97
95
|
self.config = Config(base_id=base_id, host=host)
|
|
98
96
|
|
|
97
|
+
def get_app(self, app_name: str) -> str:
|
|
98
|
+
apps = client.apps.list_apps(app_name=app_name)
|
|
99
|
+
if len(apps) == 0:
|
|
100
|
+
raise APIRequestError(f"App with name {app_name} not found")
|
|
101
|
+
|
|
102
|
+
app_id = apps[0].app_id
|
|
103
|
+
return app_id
|
|
104
|
+
|
|
99
105
|
def get_app_base(self, app_id: str, base_name: str) -> str:
|
|
100
|
-
bases =
|
|
106
|
+
bases = client.bases.list_bases(app_id=app_id, base_name=base_name)
|
|
101
107
|
if len(bases) == 0:
|
|
102
108
|
raise APIRequestError(f"No base was found for the app {app_id}")
|
|
103
109
|
return bases[0].base_id
|
|
@@ -116,23 +122,11 @@ class Config:
|
|
|
116
122
|
def __init__(self, base_id, host):
|
|
117
123
|
self.base_id = base_id
|
|
118
124
|
self.host = host
|
|
119
|
-
|
|
120
125
|
if base_id is None or host is None:
|
|
121
126
|
self.persist = False
|
|
122
127
|
else:
|
|
123
128
|
self.persist = True
|
|
124
129
|
|
|
125
|
-
@property
|
|
126
|
-
def client(self):
|
|
127
|
-
"""Builds sdk client instance.
|
|
128
|
-
|
|
129
|
-
Returns:
|
|
130
|
-
AgentaAPI: instance of agenta api backend
|
|
131
|
-
"""
|
|
132
|
-
|
|
133
|
-
sdk_client = SDKClient(api_key=self.api_key, host=self.host) # type: ignore
|
|
134
|
-
return sdk_client._build_sdk_client()
|
|
135
|
-
|
|
136
130
|
def register_default(self, overwrite=False, **kwargs):
|
|
137
131
|
"""alias for default"""
|
|
138
132
|
return self.default(overwrite=overwrite, **kwargs)
|
|
@@ -163,7 +157,7 @@ class Config:
|
|
|
163
157
|
if not self.persist:
|
|
164
158
|
return
|
|
165
159
|
try:
|
|
166
|
-
|
|
160
|
+
client.configs.save_config(
|
|
167
161
|
base_id=self.base_id,
|
|
168
162
|
config_name=config_name,
|
|
169
163
|
parameters=kwargs,
|
|
@@ -174,9 +168,7 @@ class Config:
|
|
|
174
168
|
"Failed to push the configuration to the server with error: " + str(ex)
|
|
175
169
|
)
|
|
176
170
|
|
|
177
|
-
def pull(
|
|
178
|
-
self, config_name: str = "default", environment_name: Optional[str] = None
|
|
179
|
-
):
|
|
171
|
+
def pull(self, config_name: str = "default", environment_name: str = None):
|
|
180
172
|
"""Pulls the parameters for the app variant from the server and sets them to the config"""
|
|
181
173
|
if not self.persist and (
|
|
182
174
|
config_name != "default" or environment_name is not None
|
|
@@ -187,12 +179,12 @@ class Config:
|
|
|
187
179
|
if self.persist:
|
|
188
180
|
try:
|
|
189
181
|
if environment_name:
|
|
190
|
-
config =
|
|
182
|
+
config = client.configs.get_config(
|
|
191
183
|
base_id=self.base_id, environment_name=environment_name
|
|
192
184
|
)
|
|
193
185
|
|
|
194
186
|
else:
|
|
195
|
-
config =
|
|
187
|
+
config = client.configs.get_config(
|
|
196
188
|
base_id=self.base_id,
|
|
197
189
|
config_name=config_name,
|
|
198
190
|
)
|
|
@@ -226,22 +218,15 @@ class Config:
|
|
|
226
218
|
setattr(self, key, value)
|
|
227
219
|
|
|
228
220
|
|
|
229
|
-
def init(
|
|
230
|
-
app_id: Optional[str] = None,
|
|
231
|
-
host: Optional[str] = None,
|
|
232
|
-
api_key: Optional[str] = None,
|
|
233
|
-
):
|
|
221
|
+
def init(app_name=None, base_name=None, **kwargs):
|
|
234
222
|
"""Main function to be called by the user to initialize the sdk.
|
|
235
223
|
|
|
236
224
|
Args:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
api_key (str): The API key to use for the backend server.
|
|
225
|
+
app_name: _description_. Defaults to None.
|
|
226
|
+
base_name: _description_. Defaults to None.
|
|
240
227
|
"""
|
|
241
|
-
|
|
242
228
|
singleton = AgentaSingleton()
|
|
243
|
-
|
|
244
|
-
singleton.init(app_id=app_id, host=host, api_key=api_key)
|
|
229
|
+
singleton.init(app_name=app_name, base_name=base_name, **kwargs)
|
|
245
230
|
set_global(setup=singleton.setup, config=singleton.config)
|
|
246
231
|
|
|
247
232
|
|
|
@@ -250,7 +235,7 @@ def llm_tracing(max_workers: Optional[int] = None) -> Tracing:
|
|
|
250
235
|
|
|
251
236
|
singleton = AgentaSingleton()
|
|
252
237
|
return Tracing(
|
|
253
|
-
base_url=singleton.host,
|
|
238
|
+
base_url=singleton.host,
|
|
254
239
|
app_id=singleton.app_id, # type: ignore
|
|
255
240
|
variant_id=singleton.variant_id, # type: ignore
|
|
256
241
|
variant_name=singleton.variant_name,
|
|
@@ -61,7 +61,7 @@ agenta/client/backend/types/environment_output.py,sha256=dl0GKodeqB7kWK5mH6Y4iBp
|
|
|
61
61
|
agenta/client/backend/types/environment_output_extended.py,sha256=WL1tA7HGax33eFL_ijPPYBJnbyz5NqTds2hnxxdgDQ8,1367
|
|
62
62
|
agenta/client/backend/types/environment_revision.py,sha256=mSxckq5BtuJzQXBdxMKisdG3taGFi8MoVerkhmpIsjA,1128
|
|
63
63
|
agenta/client/backend/types/error.py,sha256=iX_uV31o59d19V6-8yEAVC9RJanHGS8QvY8EC7HsIAk,996
|
|
64
|
-
agenta/client/backend/types/evaluation.py,sha256=
|
|
64
|
+
agenta/client/backend/types/evaluation.py,sha256=9sVWkGPMr2mgHe2AKHsF7Gs5O-aTQEYdJdiJI-W8FYI,1567
|
|
65
65
|
agenta/client/backend/types/evaluation_scenario.py,sha256=MqxMVliNQCGu1LCq2HMlx7YuZ1UQn4KJQtHZI6TsXoU,1497
|
|
66
66
|
agenta/client/backend/types/evaluation_scenario_input.py,sha256=cf562ry0rYNvLWx3hvQu9uNPrdrI3lRZ0IAIiCn4-Fs,1027
|
|
67
67
|
agenta/client/backend/types/evaluation_scenario_output.py,sha256=g4UjTs-c5pfEPyeCD2Jgf871Exxqy0a7iTy3eymjFQo,1076
|
|
@@ -127,8 +127,8 @@ agenta/docker/docker-assets/lambda_function.py,sha256=h4UZSSfqwpfsCgERv6frqwm_4J
|
|
|
127
127
|
agenta/docker/docker-assets/main.py,sha256=7MI-21n81U7N7A0GxebNi0cmGWtJKcR2sPB6FcH2QfA,251
|
|
128
128
|
agenta/docker/docker_utils.py,sha256=5uHMCzXkCvIsDdEiwbnnn97KkzsFbBvyMwogCsv_Z5U,3509
|
|
129
129
|
agenta/sdk/__init__.py,sha256=jmeLRuXrew02ZruODZYIu4kpw0S8vV6JhMPQWFGtj30,648
|
|
130
|
-
agenta/sdk/agenta_decorator.py,sha256=
|
|
131
|
-
agenta/sdk/agenta_init.py,sha256=
|
|
130
|
+
agenta/sdk/agenta_decorator.py,sha256=6vz0G3YCRKRzK8JrQFyy8c2RIXy2kVMwyxTS093_8vQ,17296
|
|
131
|
+
agenta/sdk/agenta_init.py,sha256=wDfStpe8_3ZXRLtikarwDKI_VpA1YW4eIz_3fXq39is,9044
|
|
132
132
|
agenta/sdk/context.py,sha256=q-PxL05-I84puunUAs9LGsffEXcYhDxhQxjuOz2vK90,901
|
|
133
133
|
agenta/sdk/router.py,sha256=0sbajvn5C7t18anH6yNo7-oYxldHnYfwcbmQnIXBePw,269
|
|
134
134
|
agenta/sdk/tracing/context_manager.py,sha256=HskDaiORoOhjeN375gm05wYnieQzh5UnoIsnSAHkAyc,252
|
|
@@ -155,7 +155,7 @@ agenta/templates/simple_prompt/app.py,sha256=kODgF6lhzsaJPdgL5b21bUki6jkvqjWZzWR
|
|
|
155
155
|
agenta/templates/simple_prompt/env.example,sha256=g9AE5bYcGPpxawXMJ96gh8oenEPCHTabsiOnfQo3c5k,70
|
|
156
156
|
agenta/templates/simple_prompt/requirements.txt,sha256=ywRglRy7pPkw8bljmMEJJ4aOOQKrt9FGKULZ-DGkoBU,23
|
|
157
157
|
agenta/templates/simple_prompt/template.toml,sha256=DQBtRrF4GU8LBEXOZ-GGuINXMQDKGTEG5y37tnvIUIE,60
|
|
158
|
-
agenta-0.13.
|
|
159
|
-
agenta-0.13.
|
|
160
|
-
agenta-0.13.
|
|
161
|
-
agenta-0.13.
|
|
158
|
+
agenta-0.13.8.dist-info/METADATA,sha256=770aElNz-Xpy004G7vSZyuazow8Ckk0y9mB3ZhNxYTA,26431
|
|
159
|
+
agenta-0.13.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
160
|
+
agenta-0.13.8.dist-info/entry_points.txt,sha256=PDiu8_8AsL7ibU9v4iNoOKR1S7F2rdxjlEprjM9QOgo,46
|
|
161
|
+
agenta-0.13.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|