agenta 0.12.3__py3-none-any.whl → 0.32.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.
- agenta/__init__.py +64 -7
- agenta/cli/helper.py +7 -3
- agenta/cli/main.py +15 -50
- agenta/cli/variant_commands.py +50 -29
- agenta/client/Readme.md +72 -64
- agenta/client/api.py +2 -2
- agenta/client/backend/__init__.py +193 -22
- agenta/client/backend/access_control/__init__.py +1 -0
- agenta/client/backend/access_control/client.py +167 -0
- agenta/client/backend/apps/__init__.py +1 -0
- agenta/client/backend/apps/client.py +1691 -0
- agenta/client/backend/bases/__init__.py +1 -0
- agenta/client/backend/bases/client.py +190 -0
- agenta/client/backend/client.py +2508 -5712
- agenta/client/backend/configs/__init__.py +1 -0
- agenta/client/backend/configs/client.py +604 -0
- agenta/client/backend/containers/__init__.py +5 -0
- agenta/client/backend/containers/client.py +648 -0
- agenta/client/backend/containers/types/__init__.py +5 -0
- agenta/client/backend/{types → containers/types}/container_templates_response.py +1 -2
- agenta/client/backend/core/__init__.py +30 -0
- agenta/client/backend/core/client_wrapper.py +42 -9
- agenta/client/backend/core/file.py +70 -0
- agenta/client/backend/core/http_client.py +575 -0
- agenta/client/backend/core/jsonable_encoder.py +33 -39
- agenta/client/backend/core/pydantic_utilities.py +325 -0
- agenta/client/backend/core/query_encoder.py +60 -0
- agenta/client/backend/core/remove_none_from_dict.py +2 -2
- agenta/client/backend/core/request_options.py +35 -0
- agenta/client/backend/core/serialization.py +276 -0
- agenta/client/backend/environments/__init__.py +1 -0
- agenta/client/backend/environments/client.py +196 -0
- agenta/client/backend/evaluations/__init__.py +1 -0
- agenta/client/backend/evaluations/client.py +1469 -0
- agenta/client/backend/evaluators/__init__.py +1 -0
- agenta/client/backend/evaluators/client.py +1283 -0
- agenta/client/backend/observability/__init__.py +1 -0
- agenta/client/backend/observability/client.py +1286 -0
- agenta/client/backend/observability_v_1/__init__.py +5 -0
- agenta/client/backend/observability_v_1/client.py +763 -0
- agenta/client/backend/observability_v_1/types/__init__.py +7 -0
- agenta/client/backend/observability_v_1/types/format.py +5 -0
- agenta/client/backend/observability_v_1/types/query_analytics_response.py +7 -0
- agenta/client/backend/observability_v_1/types/query_traces_response.py +11 -0
- agenta/client/backend/scopes/__init__.py +1 -0
- agenta/client/backend/scopes/client.py +114 -0
- agenta/client/backend/testsets/__init__.py +1 -0
- agenta/client/backend/testsets/client.py +1284 -0
- agenta/client/backend/types/__init__.py +154 -26
- agenta/client/backend/types/agenta_node_dto.py +48 -0
- agenta/client/backend/types/agenta_node_dto_nodes_value.py +6 -0
- agenta/client/backend/types/agenta_nodes_response.py +30 -0
- agenta/client/backend/types/agenta_root_dto.py +30 -0
- agenta/client/backend/types/agenta_roots_response.py +30 -0
- agenta/client/backend/types/agenta_tree_dto.py +30 -0
- agenta/client/backend/types/agenta_trees_response.py +30 -0
- agenta/client/backend/types/aggregated_result.py +16 -31
- agenta/client/backend/types/aggregated_result_evaluator_config.py +8 -0
- agenta/client/backend/types/analytics_response.py +24 -0
- agenta/client/backend/types/app.py +17 -30
- agenta/client/backend/types/app_variant_response.py +36 -0
- agenta/client/backend/types/app_variant_revision.py +17 -32
- agenta/client/backend/types/base_output.py +13 -28
- agenta/client/backend/types/body_import_testset.py +15 -31
- agenta/client/backend/types/bucket_dto.py +26 -0
- agenta/client/backend/types/collect_status_response.py +22 -0
- agenta/client/backend/types/config_db.py +16 -31
- agenta/client/backend/types/config_dto.py +32 -0
- agenta/client/backend/types/config_response_model.py +32 -0
- agenta/client/backend/types/correct_answer.py +22 -0
- agenta/client/backend/types/create_app_output.py +13 -28
- agenta/client/backend/types/create_span.py +45 -0
- agenta/client/backend/types/create_trace_response.py +22 -0
- agenta/client/backend/types/docker_env_vars.py +13 -28
- agenta/client/backend/types/environment_output.py +22 -34
- agenta/client/backend/types/environment_output_extended.py +31 -0
- agenta/client/backend/types/environment_revision.py +26 -0
- agenta/client/backend/types/error.py +22 -0
- agenta/client/backend/types/evaluation.py +22 -33
- agenta/client/backend/types/evaluation_scenario.py +18 -33
- agenta/client/backend/types/evaluation_scenario_input.py +16 -31
- agenta/client/backend/types/evaluation_scenario_output.py +17 -30
- agenta/client/backend/types/evaluation_scenario_result.py +14 -29
- agenta/client/backend/types/evaluation_scenario_score_update.py +21 -0
- agenta/client/backend/types/evaluation_status_enum.py +11 -29
- agenta/client/backend/types/evaluation_type.py +3 -21
- agenta/client/backend/types/evaluator.py +20 -31
- agenta/client/backend/types/evaluator_config.py +21 -33
- agenta/client/backend/types/evaluator_mapping_output_interface.py +21 -0
- agenta/client/backend/types/evaluator_output_interface.py +21 -0
- agenta/client/backend/types/exception_dto.py +26 -0
- agenta/client/backend/types/get_config_response.py +23 -0
- agenta/client/backend/types/header_dto.py +22 -0
- agenta/client/backend/types/http_validation_error.py +14 -29
- agenta/client/backend/types/human_evaluation.py +18 -34
- agenta/client/backend/types/human_evaluation_scenario.py +22 -38
- agenta/client/backend/types/human_evaluation_scenario_input.py +13 -28
- agenta/client/backend/types/human_evaluation_scenario_output.py +13 -28
- agenta/client/backend/types/human_evaluation_scenario_update.py +30 -0
- agenta/client/backend/types/human_evaluation_update.py +22 -0
- agenta/client/backend/types/image.py +18 -32
- agenta/client/backend/types/invite_request.py +16 -30
- agenta/client/backend/types/legacy_analytics_response.py +29 -0
- agenta/client/backend/types/legacy_data_point.py +27 -0
- agenta/client/backend/types/lifecycle_dto.py +24 -0
- agenta/client/backend/types/link_dto.py +24 -0
- agenta/client/backend/types/list_api_keys_response.py +24 -0
- agenta/client/backend/types/llm_run_rate_limit.py +13 -28
- agenta/client/backend/types/llm_tokens.py +23 -0
- agenta/client/backend/types/metrics_dto.py +24 -0
- agenta/client/backend/types/new_human_evaluation.py +27 -0
- agenta/client/backend/types/new_testset.py +16 -31
- agenta/client/backend/types/node_dto.py +24 -0
- agenta/client/backend/types/node_type.py +19 -0
- agenta/client/backend/types/o_tel_context_dto.py +22 -0
- agenta/client/backend/types/o_tel_event_dto.py +23 -0
- agenta/client/backend/types/o_tel_extra_dto.py +26 -0
- agenta/client/backend/types/o_tel_link_dto.py +23 -0
- agenta/client/backend/types/o_tel_span_dto.py +37 -0
- agenta/client/backend/types/o_tel_span_kind.py +15 -0
- agenta/client/backend/types/o_tel_spans_response.py +24 -0
- agenta/client/backend/types/o_tel_status_code.py +8 -0
- agenta/client/backend/types/organization.py +22 -35
- agenta/client/backend/types/organization_output.py +13 -28
- agenta/client/backend/types/outputs.py +5 -0
- agenta/client/backend/types/parent_dto.py +21 -0
- agenta/client/backend/types/permission.py +41 -0
- agenta/client/backend/types/projects_response.py +28 -0
- agenta/client/backend/types/provider_key_dto.py +23 -0
- agenta/client/backend/types/provider_kind.py +21 -0
- agenta/client/backend/types/reference_dto.py +23 -0
- agenta/client/backend/types/reference_request_model.py +23 -0
- agenta/client/backend/types/result.py +18 -31
- agenta/client/backend/types/root_dto.py +21 -0
- agenta/client/backend/types/{human_evaluation_scenario_score.py → score.py} +1 -1
- agenta/client/backend/types/secret_dto.py +24 -0
- agenta/client/backend/types/{human_evaluation_scenario_update_score.py → secret_kind.py} +1 -1
- agenta/client/backend/types/secret_response_dto.py +27 -0
- agenta/client/backend/types/simple_evaluation_output.py +13 -28
- agenta/client/backend/types/span.py +39 -49
- agenta/client/backend/types/span_detail.py +44 -0
- agenta/client/backend/types/span_dto.py +54 -0
- agenta/client/backend/types/span_dto_nodes_value.py +9 -0
- agenta/client/backend/types/span_status_code.py +5 -0
- agenta/client/backend/types/span_variant.py +23 -0
- agenta/client/backend/types/status_code.py +5 -0
- agenta/client/backend/types/status_dto.py +23 -0
- agenta/client/backend/types/template.py +14 -29
- agenta/client/backend/types/template_image_info.py +21 -35
- agenta/client/backend/types/test_set_output_response.py +20 -33
- agenta/client/backend/types/test_set_simple_response.py +13 -28
- agenta/client/backend/types/time_dto.py +23 -0
- agenta/client/backend/types/trace_detail.py +44 -0
- agenta/client/backend/types/tree_dto.py +23 -0
- agenta/client/backend/types/tree_type.py +5 -0
- agenta/client/backend/types/update_app_output.py +22 -0
- agenta/client/backend/types/uri.py +13 -28
- agenta/client/backend/types/validation_error.py +13 -28
- agenta/client/backend/types/variant_action.py +14 -29
- agenta/client/backend/types/variant_action_enum.py +1 -19
- agenta/client/backend/types/with_pagination.py +26 -0
- agenta/client/backend/types/workspace_member_response.py +23 -0
- agenta/client/backend/types/workspace_permission.py +25 -0
- agenta/client/backend/types/workspace_response.py +29 -0
- agenta/client/backend/types/workspace_role.py +15 -0
- agenta/client/backend/types/workspace_role_response.py +23 -0
- agenta/client/backend/variants/__init__.py +5 -0
- agenta/client/backend/variants/client.py +2814 -0
- agenta/client/backend/variants/types/__init__.py +7 -0
- agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +8 -0
- agenta/client/backend/vault/__init__.py +1 -0
- agenta/client/backend/vault/client.py +685 -0
- agenta/client/client.py +1 -1
- agenta/config.py +0 -2
- agenta/config.toml +0 -1
- agenta/docker/docker-assets/Dockerfile.cloud.template +2 -1
- agenta/docker/docker-assets/Dockerfile.template +2 -1
- agenta/docker/docker_utils.py +11 -12
- agenta/sdk/__init__.py +58 -7
- agenta/sdk/agenta_init.py +182 -164
- agenta/sdk/assets.py +95 -0
- agenta/sdk/client.py +56 -0
- agenta/sdk/context/__init__.py +0 -0
- agenta/sdk/context/exporting.py +25 -0
- agenta/sdk/context/routing.py +27 -0
- agenta/sdk/context/tracing.py +28 -0
- agenta/sdk/decorators/__init__.py +0 -0
- agenta/sdk/decorators/routing.py +576 -0
- agenta/sdk/decorators/tracing.py +296 -0
- agenta/sdk/litellm/__init__.py +1 -0
- agenta/sdk/litellm/litellm.py +314 -0
- agenta/sdk/litellm/mockllm.py +27 -0
- agenta/sdk/litellm/mocks/__init__.py +26 -0
- agenta/sdk/managers/__init__.py +6 -0
- agenta/sdk/managers/config.py +208 -0
- agenta/sdk/managers/deployment.py +45 -0
- agenta/sdk/managers/secrets.py +38 -0
- agenta/sdk/managers/shared.py +639 -0
- agenta/sdk/managers/variant.py +182 -0
- agenta/sdk/managers/vault.py +16 -0
- agenta/sdk/middleware/__init__.py +0 -0
- agenta/sdk/middleware/auth.py +180 -0
- agenta/sdk/middleware/cache.py +47 -0
- agenta/sdk/middleware/config.py +255 -0
- agenta/sdk/middleware/cors.py +29 -0
- agenta/sdk/middleware/inline.py +38 -0
- agenta/sdk/middleware/mock.py +33 -0
- agenta/sdk/middleware/otel.py +40 -0
- agenta/sdk/middleware/vault.py +145 -0
- agenta/sdk/router.py +0 -7
- agenta/sdk/tracing/__init__.py +1 -0
- agenta/sdk/tracing/attributes.py +141 -0
- agenta/sdk/tracing/conventions.py +49 -0
- agenta/sdk/tracing/exporters.py +103 -0
- agenta/sdk/tracing/inline.py +1146 -0
- agenta/sdk/tracing/processors.py +121 -0
- agenta/sdk/tracing/spans.py +136 -0
- agenta/sdk/tracing/tracing.py +237 -0
- agenta/sdk/types.py +478 -74
- agenta/sdk/utils/__init__.py +0 -0
- agenta/sdk/utils/constants.py +1 -0
- agenta/sdk/utils/{helper/openai_cost.py → costs.py} +3 -0
- agenta/sdk/utils/exceptions.py +59 -0
- agenta/sdk/utils/globals.py +6 -10
- agenta/sdk/utils/helpers.py +8 -0
- agenta/sdk/utils/logging.py +21 -0
- agenta/sdk/utils/singleton.py +13 -0
- agenta/sdk/utils/timing.py +58 -0
- {agenta-0.12.3.dist-info → agenta-0.32.0a1.dist-info}/METADATA +98 -151
- agenta-0.32.0a1.dist-info/RECORD +263 -0
- {agenta-0.12.3.dist-info → agenta-0.32.0a1.dist-info}/WHEEL +1 -1
- agenta/client/backend/types/add_variant_from_base_and_config_response.py +0 -7
- agenta/client/backend/types/app_variant_output.py +0 -47
- agenta/client/backend/types/app_variant_output_extended.py +0 -50
- agenta/client/backend/types/delete_evaluation.py +0 -36
- agenta/client/backend/types/evaluation_webhook.py +0 -36
- agenta/client/backend/types/feedback.py +0 -40
- agenta/client/backend/types/get_config_reponse.py +0 -39
- agenta/client/backend/types/list_api_keys_output.py +0 -39
- agenta/client/backend/types/trace.py +0 -48
- agenta/sdk/agenta_decorator.py +0 -443
- agenta/sdk/context.py +0 -41
- agenta-0.12.3.dist-info/RECORD +0 -114
- {agenta-0.12.3.dist-info → agenta-0.32.0a1.dist-info}/entry_points.txt +0 -0
agenta/sdk/agenta_decorator.py
DELETED
|
@@ -1,443 +0,0 @@
|
|
|
1
|
-
"""The code for the Agenta SDK"""
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
import sys
|
|
5
|
-
import time
|
|
6
|
-
import inspect
|
|
7
|
-
import argparse
|
|
8
|
-
import traceback
|
|
9
|
-
import functools
|
|
10
|
-
from pathlib import Path
|
|
11
|
-
from tempfile import NamedTemporaryFile
|
|
12
|
-
from typing import Any, Callable, Dict, Optional, Tuple, List, Union
|
|
13
|
-
|
|
14
|
-
from fastapi import Body, FastAPI, UploadFile
|
|
15
|
-
from fastapi.responses import JSONResponse
|
|
16
|
-
from fastapi.middleware.cors import CORSMiddleware
|
|
17
|
-
|
|
18
|
-
import agenta
|
|
19
|
-
from .context import save_context
|
|
20
|
-
from .router import router as router
|
|
21
|
-
from .types import (
|
|
22
|
-
Context,
|
|
23
|
-
DictInput,
|
|
24
|
-
FloatParam,
|
|
25
|
-
InFile,
|
|
26
|
-
IntParam,
|
|
27
|
-
MultipleChoiceParam,
|
|
28
|
-
TextParam,
|
|
29
|
-
MessagesInput,
|
|
30
|
-
FileInputURL,
|
|
31
|
-
FuncResponse,
|
|
32
|
-
BinaryParam,
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
app = FastAPI()
|
|
36
|
-
|
|
37
|
-
origins = [
|
|
38
|
-
"*",
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
app.add_middleware(
|
|
42
|
-
CORSMiddleware,
|
|
43
|
-
allow_origins=origins,
|
|
44
|
-
allow_credentials=True,
|
|
45
|
-
allow_methods=["*"],
|
|
46
|
-
allow_headers=["*"],
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
app.include_router(router, prefix="")
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def ingest_file(upfile: UploadFile):
|
|
53
|
-
temp_file = NamedTemporaryFile(delete=False)
|
|
54
|
-
temp_file.write(upfile.file.read())
|
|
55
|
-
temp_file.close()
|
|
56
|
-
return InFile(file_name=upfile.filename, file_path=temp_file.name)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def entrypoint(func: Callable[..., Any]) -> Callable[..., Any]:
|
|
60
|
-
"""
|
|
61
|
-
Decorator to wrap a function for HTTP POST and terminal exposure.
|
|
62
|
-
|
|
63
|
-
Args:
|
|
64
|
-
func: Function to wrap.
|
|
65
|
-
|
|
66
|
-
Returns:
|
|
67
|
-
Wrapped function for HTTP POST and terminal.
|
|
68
|
-
"""
|
|
69
|
-
|
|
70
|
-
endpoint_name = "generate"
|
|
71
|
-
func_signature = inspect.signature(func)
|
|
72
|
-
config_params = agenta.config.all()
|
|
73
|
-
ingestible_files = extract_ingestible_files(func_signature)
|
|
74
|
-
|
|
75
|
-
@functools.wraps(func)
|
|
76
|
-
async def wrapper(*args, **kwargs) -> Any:
|
|
77
|
-
func_params, api_config_params = split_kwargs(kwargs, config_params)
|
|
78
|
-
ingest_files(func_params, ingestible_files)
|
|
79
|
-
agenta.config.set(**api_config_params)
|
|
80
|
-
return await execute_function(func, *args, **func_params)
|
|
81
|
-
|
|
82
|
-
@functools.wraps(func)
|
|
83
|
-
async def wrapper_deployed(*args, **kwargs) -> Any:
|
|
84
|
-
func_params = {
|
|
85
|
-
k: v for k, v in kwargs.items() if k not in ["config", "environment"]
|
|
86
|
-
}
|
|
87
|
-
if "environment" in kwargs and kwargs["environment"] is not None:
|
|
88
|
-
agenta.config.pull(environment_name=kwargs["environment"])
|
|
89
|
-
elif "config" in kwargs and kwargs["config"] is not None:
|
|
90
|
-
agenta.config.pull(config_name=kwargs["config"])
|
|
91
|
-
else:
|
|
92
|
-
agenta.config.pull(config_name="default")
|
|
93
|
-
return await execute_function(func, *args, **func_params)
|
|
94
|
-
|
|
95
|
-
update_function_signature(wrapper, func_signature, config_params, ingestible_files)
|
|
96
|
-
route = f"/{endpoint_name}"
|
|
97
|
-
app.post(route, response_model=FuncResponse)(wrapper)
|
|
98
|
-
|
|
99
|
-
update_deployed_function_signature(
|
|
100
|
-
wrapper_deployed,
|
|
101
|
-
func_signature,
|
|
102
|
-
ingestible_files,
|
|
103
|
-
)
|
|
104
|
-
route_deployed = f"/{endpoint_name}_deployed"
|
|
105
|
-
app.post(route_deployed, response_model=FuncResponse)(wrapper_deployed)
|
|
106
|
-
override_schema(
|
|
107
|
-
openapi_schema=app.openapi(),
|
|
108
|
-
func_name=func.__name__,
|
|
109
|
-
endpoint=endpoint_name,
|
|
110
|
-
params={**config_params, **func_signature.parameters},
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
if is_main_script(func):
|
|
114
|
-
handle_terminal_run(
|
|
115
|
-
func,
|
|
116
|
-
func_signature.parameters,
|
|
117
|
-
config_params,
|
|
118
|
-
ingestible_files,
|
|
119
|
-
)
|
|
120
|
-
return None
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
def extract_ingestible_files(
|
|
124
|
-
func_signature: inspect.Signature,
|
|
125
|
-
) -> Dict[str, inspect.Parameter]:
|
|
126
|
-
"""Extract parameters annotated as InFile from function signature."""
|
|
127
|
-
|
|
128
|
-
return {
|
|
129
|
-
name: param
|
|
130
|
-
for name, param in func_signature.parameters.items()
|
|
131
|
-
if param.annotation is InFile
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
def split_kwargs(
|
|
136
|
-
kwargs: Dict[str, Any], config_params: Dict[str, Any]
|
|
137
|
-
) -> Tuple[Dict[str, Any], Dict[str, Any]]:
|
|
138
|
-
"""Split keyword arguments into function parameters and API configuration parameters."""
|
|
139
|
-
|
|
140
|
-
func_params = {k: v for k, v in kwargs.items() if k not in config_params}
|
|
141
|
-
api_config_params = {k: v for k, v in kwargs.items() if k in config_params}
|
|
142
|
-
return func_params, api_config_params
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def ingest_files(
|
|
146
|
-
func_params: Dict[str, Any], ingestible_files: Dict[str, inspect.Parameter]
|
|
147
|
-
) -> None:
|
|
148
|
-
"""Ingest files specified in function parameters."""
|
|
149
|
-
|
|
150
|
-
for name in ingestible_files:
|
|
151
|
-
if name in func_params and func_params[name] is not None:
|
|
152
|
-
func_params[name] = ingest_file(func_params[name])
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
async def execute_function(
|
|
156
|
-
func: Callable[..., Any], *args, **func_params
|
|
157
|
-
) -> Union[Dict[str, Any], JSONResponse]:
|
|
158
|
-
"""Execute the function and handle any exceptions."""
|
|
159
|
-
|
|
160
|
-
try:
|
|
161
|
-
"""Note: The following block is for backward compatibility.
|
|
162
|
-
It allows functions to work seamlessly whether they are synchronous or asynchronous.
|
|
163
|
-
For synchronous functions, it calls them directly, while for asynchronous functions,
|
|
164
|
-
it awaits their execution.
|
|
165
|
-
"""
|
|
166
|
-
is_coroutine_function = inspect.iscoroutinefunction(func)
|
|
167
|
-
start_time = time.perf_counter()
|
|
168
|
-
if is_coroutine_function:
|
|
169
|
-
result = await func(*args, **func_params)
|
|
170
|
-
else:
|
|
171
|
-
result = func(*args, **func_params)
|
|
172
|
-
end_time = time.perf_counter()
|
|
173
|
-
latency = end_time - start_time
|
|
174
|
-
|
|
175
|
-
if isinstance(result, Context):
|
|
176
|
-
save_context(result)
|
|
177
|
-
if isinstance(result, Dict):
|
|
178
|
-
return FuncResponse(**result, latency=round(latency, 4)).dict()
|
|
179
|
-
if isinstance(result, str):
|
|
180
|
-
return FuncResponse(message=result, latency=round(latency, 4)).dict()
|
|
181
|
-
except Exception as e:
|
|
182
|
-
return handle_exception(e)
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
def handle_exception(e: Exception) -> JSONResponse:
|
|
186
|
-
"""Handle exceptions and return a JSONResponse."""
|
|
187
|
-
|
|
188
|
-
status_code: int = e.status_code if hasattr(e, "status_code") else 500
|
|
189
|
-
traceback_str = traceback.format_exception(e, value=e, tb=e.__traceback__)
|
|
190
|
-
return JSONResponse(
|
|
191
|
-
status_code=status_code,
|
|
192
|
-
content={"error": str(e), "traceback": "".join(traceback_str)},
|
|
193
|
-
)
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def update_wrapper_signature(wrapper: Callable[..., Any], updated_params: List):
|
|
197
|
-
"""
|
|
198
|
-
Updates the signature of a wrapper function with a new list of parameters.
|
|
199
|
-
|
|
200
|
-
Args:
|
|
201
|
-
wrapper (callable): A callable object, such as a function or a method, that requires a signature update.
|
|
202
|
-
updated_params (List[inspect.Parameter]): A list of `inspect.Parameter` objects representing the updated parameters
|
|
203
|
-
for the wrapper function.
|
|
204
|
-
"""
|
|
205
|
-
|
|
206
|
-
wrapper_signature = inspect.signature(wrapper)
|
|
207
|
-
wrapper_signature = wrapper_signature.replace(parameters=updated_params)
|
|
208
|
-
wrapper.__signature__ = wrapper_signature
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def update_function_signature(
|
|
212
|
-
wrapper: Callable[..., Any],
|
|
213
|
-
func_signature: inspect.Signature,
|
|
214
|
-
config_params: Dict[str, Any],
|
|
215
|
-
ingestible_files: Dict[str, inspect.Parameter],
|
|
216
|
-
) -> None:
|
|
217
|
-
"""Update the function signature to include new parameters."""
|
|
218
|
-
|
|
219
|
-
updated_params = []
|
|
220
|
-
add_config_params_to_parser(updated_params, config_params)
|
|
221
|
-
add_func_params_to_parser(updated_params, func_signature, ingestible_files)
|
|
222
|
-
update_wrapper_signature(wrapper, updated_params)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
def update_deployed_function_signature(
|
|
226
|
-
wrapper: Callable[..., Any],
|
|
227
|
-
func_signature: inspect.Signature,
|
|
228
|
-
ingestible_files: Dict[str, inspect.Parameter],
|
|
229
|
-
) -> None:
|
|
230
|
-
"""Update the function signature to include new parameters."""
|
|
231
|
-
updated_params = []
|
|
232
|
-
add_func_params_to_parser(updated_params, func_signature, ingestible_files)
|
|
233
|
-
for param in [
|
|
234
|
-
"config",
|
|
235
|
-
"environment",
|
|
236
|
-
]: # we add the config and environment parameters
|
|
237
|
-
updated_params.append(
|
|
238
|
-
inspect.Parameter(
|
|
239
|
-
param,
|
|
240
|
-
inspect.Parameter.KEYWORD_ONLY,
|
|
241
|
-
default=Body(None),
|
|
242
|
-
annotation=str,
|
|
243
|
-
)
|
|
244
|
-
)
|
|
245
|
-
update_wrapper_signature(wrapper, updated_params)
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
def add_config_params_to_parser(
|
|
249
|
-
updated_params: list, config_params: Dict[str, Any]
|
|
250
|
-
) -> None:
|
|
251
|
-
"""Add configuration parameters to function signature."""
|
|
252
|
-
for name, param in config_params.items():
|
|
253
|
-
updated_params.append(
|
|
254
|
-
inspect.Parameter(
|
|
255
|
-
name,
|
|
256
|
-
inspect.Parameter.KEYWORD_ONLY,
|
|
257
|
-
default=Body(param),
|
|
258
|
-
annotation=Optional[type(param)],
|
|
259
|
-
)
|
|
260
|
-
)
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
def add_func_params_to_parser(
|
|
264
|
-
updated_params: list,
|
|
265
|
-
func_signature: inspect.Signature,
|
|
266
|
-
ingestible_files: Dict[str, inspect.Parameter],
|
|
267
|
-
) -> None:
|
|
268
|
-
"""Add function parameters to function signature."""
|
|
269
|
-
for name, param in func_signature.parameters.items():
|
|
270
|
-
if name in ingestible_files:
|
|
271
|
-
updated_params.append(
|
|
272
|
-
inspect.Parameter(name, param.kind, annotation=UploadFile)
|
|
273
|
-
)
|
|
274
|
-
else:
|
|
275
|
-
updated_params.append(
|
|
276
|
-
inspect.Parameter(
|
|
277
|
-
name,
|
|
278
|
-
inspect.Parameter.KEYWORD_ONLY,
|
|
279
|
-
default=Body(..., embed=True),
|
|
280
|
-
annotation=param.annotation,
|
|
281
|
-
)
|
|
282
|
-
)
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
def is_main_script(func: Callable) -> bool:
|
|
286
|
-
"""
|
|
287
|
-
Check if the script containing the function is the main script being run.
|
|
288
|
-
|
|
289
|
-
Args:
|
|
290
|
-
func (Callable): The function object to check.
|
|
291
|
-
|
|
292
|
-
Returns:
|
|
293
|
-
bool: True if the script containing the function is the main script, False otherwise.
|
|
294
|
-
|
|
295
|
-
Example:
|
|
296
|
-
if is_main_script(my_function):
|
|
297
|
-
print("This is the main script.")
|
|
298
|
-
"""
|
|
299
|
-
return (
|
|
300
|
-
os.path.splitext(os.path.basename(sys.argv[0]))[0]
|
|
301
|
-
== os.path.splitext(os.path.basename(inspect.getfile(func)))[0]
|
|
302
|
-
)
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
def handle_terminal_run(
|
|
306
|
-
func: Callable,
|
|
307
|
-
func_params: Dict[str, Any],
|
|
308
|
-
config_params: Dict[str, Any],
|
|
309
|
-
ingestible_files: Dict,
|
|
310
|
-
) -> None:
|
|
311
|
-
"""
|
|
312
|
-
Parses command line arguments and sets configuration when script is run from the terminal.
|
|
313
|
-
|
|
314
|
-
Args:
|
|
315
|
-
func_params (dict): A dictionary containing the function parameters and their annotations.
|
|
316
|
-
config_params (dict): A dictionary containing the configuration parameters.
|
|
317
|
-
|
|
318
|
-
Example:
|
|
319
|
-
handle_terminal_run(func_params=inspect.signature(my_function).parameters, config_params=config.all())
|
|
320
|
-
"""
|
|
321
|
-
|
|
322
|
-
# For required parameters, we add them as arguments
|
|
323
|
-
parser = argparse.ArgumentParser()
|
|
324
|
-
for name, param in func_params.items():
|
|
325
|
-
if name in ingestible_files:
|
|
326
|
-
parser.add_argument(name, type=str)
|
|
327
|
-
else:
|
|
328
|
-
parser.add_argument(name, type=param.annotation)
|
|
329
|
-
|
|
330
|
-
for name, param in config_params.items():
|
|
331
|
-
if type(param) is MultipleChoiceParam:
|
|
332
|
-
parser.add_argument(
|
|
333
|
-
f"--{name}",
|
|
334
|
-
type=str,
|
|
335
|
-
default=param.default,
|
|
336
|
-
choices=param.choices,
|
|
337
|
-
)
|
|
338
|
-
else:
|
|
339
|
-
parser.add_argument(
|
|
340
|
-
f"--{name}",
|
|
341
|
-
type=type(param),
|
|
342
|
-
default=param,
|
|
343
|
-
)
|
|
344
|
-
|
|
345
|
-
args = parser.parse_args()
|
|
346
|
-
|
|
347
|
-
# split the arg list into the arg in the app_param and
|
|
348
|
-
# the args from the sig.parameter
|
|
349
|
-
args_config_params = {k: v for k, v in vars(args).items() if k in config_params}
|
|
350
|
-
args_func_params = {k: v for k, v in vars(args).items() if k not in config_params}
|
|
351
|
-
for name in ingestible_files:
|
|
352
|
-
args_func_params[name] = InFile(
|
|
353
|
-
file_name=Path(args_func_params[name]).stem,
|
|
354
|
-
file_path=args_func_params[name],
|
|
355
|
-
)
|
|
356
|
-
agenta.config.set(**args_config_params)
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
def override_schema(openapi_schema: dict, func_name: str, endpoint: str, params: dict):
|
|
360
|
-
"""
|
|
361
|
-
Overrides the default openai schema generated by fastapi with additional information about:
|
|
362
|
-
- The choices available for each MultipleChoiceParam instance
|
|
363
|
-
- The min and max values for each FloatParam instance
|
|
364
|
-
- The min and max values for each IntParam instance
|
|
365
|
-
- The default value for DictInput instance
|
|
366
|
-
- The default value for MessagesParam instance
|
|
367
|
-
- The default value for FileInputURL instance
|
|
368
|
-
- The default value for BinaryParam instance
|
|
369
|
-
- ... [PLEASE ADD AT EACH CHANGE]
|
|
370
|
-
|
|
371
|
-
Args:
|
|
372
|
-
openapi_schema (dict): The openapi schema generated by fastapi
|
|
373
|
-
func_name (str): The name of the function to override
|
|
374
|
-
endpoint (str): The name of the endpoint to override
|
|
375
|
-
params (dict(param_name, param_val)): The dictionary of the parameters for the function
|
|
376
|
-
"""
|
|
377
|
-
|
|
378
|
-
def find_in_schema(schema: dict, param_name: str, xparam: str):
|
|
379
|
-
"""Finds a parameter in the schema based on its name and x-parameter value"""
|
|
380
|
-
for _, value in schema.items():
|
|
381
|
-
value_title_lower = str(value.get("title")).lower()
|
|
382
|
-
value_title = (
|
|
383
|
-
"_".join(value_title_lower.split())
|
|
384
|
-
if len(value_title_lower.split()) >= 2
|
|
385
|
-
else value_title_lower
|
|
386
|
-
)
|
|
387
|
-
|
|
388
|
-
if (
|
|
389
|
-
isinstance(value, dict)
|
|
390
|
-
and value.get("x-parameter") == xparam
|
|
391
|
-
and value_title == param_name
|
|
392
|
-
):
|
|
393
|
-
return value
|
|
394
|
-
|
|
395
|
-
schema_to_override = openapi_schema["components"]["schemas"][
|
|
396
|
-
f"Body_{func_name}_{endpoint}_post"
|
|
397
|
-
]["properties"]
|
|
398
|
-
for param_name, param_val in params.items():
|
|
399
|
-
if isinstance(param_val, MultipleChoiceParam):
|
|
400
|
-
subschema = find_in_schema(schema_to_override, param_name, "choice")
|
|
401
|
-
default = str(param_val)
|
|
402
|
-
param_choices = param_val.choices
|
|
403
|
-
choices = (
|
|
404
|
-
[default] + param_choices
|
|
405
|
-
if param_val not in param_choices
|
|
406
|
-
else param_choices
|
|
407
|
-
)
|
|
408
|
-
subschema["enum"] = choices
|
|
409
|
-
subschema["default"] = default if default in param_choices else choices[0]
|
|
410
|
-
if isinstance(param_val, FloatParam):
|
|
411
|
-
subschema = find_in_schema(schema_to_override, param_name, "float")
|
|
412
|
-
subschema["minimum"] = param_val.minval
|
|
413
|
-
subschema["maximum"] = param_val.maxval
|
|
414
|
-
subschema["default"] = param_val
|
|
415
|
-
if isinstance(param_val, IntParam):
|
|
416
|
-
subschema = find_in_schema(schema_to_override, param_name, "int")
|
|
417
|
-
subschema["minimum"] = param_val.minval
|
|
418
|
-
subschema["maximum"] = param_val.maxval
|
|
419
|
-
subschema["default"] = param_val
|
|
420
|
-
if (
|
|
421
|
-
isinstance(param_val, inspect.Parameter)
|
|
422
|
-
and param_val.annotation is DictInput
|
|
423
|
-
):
|
|
424
|
-
subschema = find_in_schema(schema_to_override, param_name, "dict")
|
|
425
|
-
subschema["default"] = param_val.default["default_keys"]
|
|
426
|
-
if isinstance(param_val, TextParam):
|
|
427
|
-
subschema = find_in_schema(schema_to_override, param_name, "text")
|
|
428
|
-
subschema["default"] = param_val
|
|
429
|
-
if (
|
|
430
|
-
isinstance(param_val, inspect.Parameter)
|
|
431
|
-
and param_val.annotation is MessagesInput
|
|
432
|
-
):
|
|
433
|
-
subschema = find_in_schema(schema_to_override, param_name, "messages")
|
|
434
|
-
subschema["default"] = param_val.default
|
|
435
|
-
if (
|
|
436
|
-
isinstance(param_val, inspect.Parameter)
|
|
437
|
-
and param_val.annotation is FileInputURL
|
|
438
|
-
):
|
|
439
|
-
subschema = find_in_schema(schema_to_override, param_name, "file_url")
|
|
440
|
-
subschema["default"] = "https://example.com"
|
|
441
|
-
if isinstance(param_val, BinaryParam):
|
|
442
|
-
subschema = find_in_schema(schema_to_override, param_name, "bool")
|
|
443
|
-
subschema["default"] = param_val.default
|
agenta/sdk/context.py
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import sqlite3
|
|
3
|
-
from typing import List
|
|
4
|
-
from .types import Context
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def setup_db():
|
|
8
|
-
conn = sqlite3.connect("context.db")
|
|
9
|
-
c = conn.cursor()
|
|
10
|
-
c.execute(
|
|
11
|
-
"""
|
|
12
|
-
CREATE TABLE IF NOT EXISTS contexts
|
|
13
|
-
(id INTEGER PRIMARY KEY AUTOINCREMENT, context TEXT)
|
|
14
|
-
"""
|
|
15
|
-
)
|
|
16
|
-
conn.commit()
|
|
17
|
-
conn.close()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def get_contexts() -> List[Context]:
|
|
21
|
-
contexts = []
|
|
22
|
-
conn = sqlite3.connect("context.db")
|
|
23
|
-
c = conn.cursor()
|
|
24
|
-
for row in c.execute("SELECT * FROM contexts"):
|
|
25
|
-
context_data = json.loads(row[1])
|
|
26
|
-
contexts.append(Context.parse_obj(context_data))
|
|
27
|
-
conn.close()
|
|
28
|
-
return contexts
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def save_context(result: Context):
|
|
32
|
-
conn = sqlite3.connect("context.db")
|
|
33
|
-
c = conn.cursor()
|
|
34
|
-
c.execute(
|
|
35
|
-
"""
|
|
36
|
-
INSERT INTO contexts (context) VALUES (?)
|
|
37
|
-
""",
|
|
38
|
-
(json.dumps(result.dict()),),
|
|
39
|
-
)
|
|
40
|
-
conn.commit()
|
|
41
|
-
conn.close()
|
agenta-0.12.3.dist-info/RECORD
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
agenta/__init__.py,sha256=Sg_4PW8MM-r9p96FeqTdu1h7fcQzN4nF7KPuQD7lgIc,493
|
|
2
|
-
agenta/cli/evaluation_commands.py,sha256=fs6492tprPId9p8eGO02Xy-NCBm2RZNJLZWcUxugwd8,474
|
|
3
|
-
agenta/cli/helper.py,sha256=X_0GtjugLQiM_f53_l3AF3uPS8if96ejTh2nThYqLuE,6199
|
|
4
|
-
agenta/cli/main.py,sha256=suPOo0aKkwz4XIL_g5DEuzcGpUj-vBBBq0jYVPDh32g,9329
|
|
5
|
-
agenta/cli/telemetry.py,sha256=GaFFRsE_NtrcSSJ10r2jhgFs5Sk8gf2C09Ox3gOr3eU,1317
|
|
6
|
-
agenta/cli/variant_commands.py,sha256=wJCfTp1uNQwSadg4rraxZF5NUVfpfg_0RAK76qD5xDo,16858
|
|
7
|
-
agenta/cli/variant_configs.py,sha256=PLiuMKadVzs6Gi2uYaT0pZzyULNHDXaTMDWboqpwWdU,1293
|
|
8
|
-
agenta/client/Readme.md,sha256=zWJ6VMYCG124op5RcqgWBdJdlGkGQ2rPLk9F32rWvqo,2756
|
|
9
|
-
agenta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
agenta/client/api.py,sha256=8TrD-whQidlUnqfPuTctDGZlEco_aTGofNJFsQIi7VY,2429
|
|
11
|
-
agenta/client/api_models.py,sha256=zebfE2-0-SW1SvzyarzmSJMXqyiCLKrX2sHpzoX-RnU,623
|
|
12
|
-
agenta/client/backend/__init__.py,sha256=NylxeIc-3GdneW6REp3XrpYpMuuDnbcnjJ5E-yo7R5o,2666
|
|
13
|
-
agenta/client/backend/client.py,sha256=7rEmUSde3RREO4fX8osFobk6MqwTQ-2fPX1WPGK4-84,259068
|
|
14
|
-
agenta/client/backend/core/__init__.py,sha256=QJS3CJ2TYP2E1Tge0CS6Z7r8LTNzJHQVX1hD3558eP0,519
|
|
15
|
-
agenta/client/backend/core/api_error.py,sha256=TtMtCdxXjd7Tasc9c8ooFg124nPrb2MXG-tKOXV4u9I,440
|
|
16
|
-
agenta/client/backend/core/client_wrapper.py,sha256=kQEqxdm31r7V9x--mMliWOdMujD3dtPZyYBNzxgNdrs,972
|
|
17
|
-
agenta/client/backend/core/datetime_utils.py,sha256=BHjt_H3WVslcuPsr6qjJoVif_SsdLvFN0c43ABE5UiQ,1069
|
|
18
|
-
agenta/client/backend/core/jsonable_encoder.py,sha256=ePEZ-ty4uISZv_wVpA7ldkdLfwoQ4lPXHwhLUEcVKR0,3825
|
|
19
|
-
agenta/client/backend/core/remove_none_from_dict.py,sha256=8m91FC3YuVem0Gm9_sXhJ2tGvP33owJJdrqCLEdowGw,330
|
|
20
|
-
agenta/client/backend/errors/__init__.py,sha256=pbbVUFtB9LCocA1RMWMMF_RKjsy5YkOKX5BAuE49w6g,170
|
|
21
|
-
agenta/client/backend/errors/unprocessable_entity_error.py,sha256=FvR7XPlV3Xx5nu8HNlmLhBRdk4so_gCHjYT5PyZe6sM,313
|
|
22
|
-
agenta/client/backend/types/__init__.py,sha256=4kxWtinbbNAmNGByicOnxy8hoscndlVbUKp46hYS4Xw,4008
|
|
23
|
-
agenta/client/backend/types/add_variant_from_base_and_config_response.py,sha256=DxAM5QXWoJhJN2mj1Lik1Uf_Vl8rT2K5j4ET03RP1WU,211
|
|
24
|
-
agenta/client/backend/types/aggregated_result.py,sha256=8D3AXhLBhwegHRyPzAuo_eFuBsnLh7BptZt5z-VWZ8U,1083
|
|
25
|
-
agenta/client/backend/types/app.py,sha256=PLCQN6kqpkAMpAZ2Tk5s1FesewOZmkMv18eASzQ14gg,974
|
|
26
|
-
agenta/client/backend/types/app_variant_output.py,sha256=ec2KDbxiTd7eCWIBAM0VUva5ukUkrXFNxnplNr0pgy0,1268
|
|
27
|
-
agenta/client/backend/types/app_variant_output_extended.py,sha256=hzPYdWfE6yHAMJtINAT23dOYwV87uD5p-W0jqmf74Bc,1394
|
|
28
|
-
agenta/client/backend/types/app_variant_revision.py,sha256=FO3d6hPOqjz5uPSCk_9f2UipfkiIHKvK4jlpV84EWHo,1075
|
|
29
|
-
agenta/client/backend/types/base_output.py,sha256=ynXhDBQKrkR6Lnkx-yv6Q8xW4wXmzXur0T-hzmkjBpc,983
|
|
30
|
-
agenta/client/backend/types/body_import_testset.py,sha256=7dVF3mv3VO0Co8F0qxLAgu4jabqDPjebK4mYvcd_TuA,1061
|
|
31
|
-
agenta/client/backend/types/config_db.py,sha256=P0cSYvVOn0ZxpYMIdvhWpQVjRuBS5APe6qlc69AXaF4,1028
|
|
32
|
-
agenta/client/backend/types/container_templates_response.py,sha256=YJm-MmLNa5vC8oDi-vuZEHYdK_pVOpnjnY81FGO-VSM,182
|
|
33
|
-
agenta/client/backend/types/create_app_output.py,sha256=pgnTnfZx35Q-8wZ1yTZBQ0ydYacGzFC9kyLug_UvymM,986
|
|
34
|
-
agenta/client/backend/types/delete_evaluation.py,sha256=th4ld6oSB-d-0gXUoKzl_0vBjc8QRv35lg0SLclFFTA,991
|
|
35
|
-
agenta/client/backend/types/docker_env_vars.py,sha256=altCvA1k-zdAkKNYLwaCnmV48HZg9cwe2cHu_BGImac,986
|
|
36
|
-
agenta/client/backend/types/environment_output.py,sha256=l66VgSkayYFQr-i7ZfE9F2CLBfIGlogSRm96CPEKRpY,1176
|
|
37
|
-
agenta/client/backend/types/evaluation.py,sha256=oU8bIbXptB8t9sJR_tn8HrbKHzDt4m9_sDM129JhV5A,1376
|
|
38
|
-
agenta/client/backend/types/evaluation_scenario.py,sha256=MqxMVliNQCGu1LCq2HMlx7YuZ1UQn4KJQtHZI6TsXoU,1497
|
|
39
|
-
agenta/client/backend/types/evaluation_scenario_input.py,sha256=cf562ry0rYNvLWx3hvQu9uNPrdrI3lRZ0IAIiCn4-Fs,1027
|
|
40
|
-
agenta/client/backend/types/evaluation_scenario_output.py,sha256=y3qLNbxZFf9bVUzD8NYQ3-Wy4VWceCl3Xc_7LSQeqro,1014
|
|
41
|
-
agenta/client/backend/types/evaluation_scenario_result.py,sha256=rKV0ZxJdbLaij9k54uq6YwzYDpaxzUa8tcYEz1bb050,1033
|
|
42
|
-
agenta/client/backend/types/evaluation_status_enum.py,sha256=LiE6_T-5vXTgOlBs5XqarXt2Ba6OHwZZVWMccHCXqqc,1102
|
|
43
|
-
agenta/client/backend/types/evaluation_type.py,sha256=WX2DlUeT3ULUQlA_yFabpiMqCBEsbjNyfdfN3EkLWR0,644
|
|
44
|
-
agenta/client/backend/types/evaluation_webhook.py,sha256=emuKpD4NQjgYkjvQUyKLzHHkMk9FwdXuYFwunTaY4gw,971
|
|
45
|
-
agenta/client/backend/types/evaluator.py,sha256=RplGMwAjgSlR0mARaB2BHaGBex6h_y8DcNSj7f0RttQ,1046
|
|
46
|
-
agenta/client/backend/types/evaluator_config.py,sha256=d3_ZxThl6ZkXTbmtBiqIg6CJIH8ha6am6fPEYcxp89A,1124
|
|
47
|
-
agenta/client/backend/types/feedback.py,sha256=aYDUHvxJ0A3Dhs8JSWYLpxef3bIaHrug6gXH5pNtuAQ,1136
|
|
48
|
-
agenta/client/backend/types/get_config_reponse.py,sha256=U7g4xXCVSXY_VToefqtW0uOZumO04pwJrOJsG9Aaavk,1063
|
|
49
|
-
agenta/client/backend/types/http_validation_error.py,sha256=YhAPLKvuWLcgHn-uVWiZdWInseMiIS5eymdHKDqAB6Y,1060
|
|
50
|
-
agenta/client/backend/types/human_evaluation.py,sha256=fSSO8Li0pAPcYe6lVUvJfrBTeGlJ8srdSw478vxXwW0,1305
|
|
51
|
-
agenta/client/backend/types/human_evaluation_scenario.py,sha256=CSymn8m3bwLjrh1V0aviujP0Ji9DmpxQKmznabbLPFA,1580
|
|
52
|
-
agenta/client/backend/types/human_evaluation_scenario_input.py,sha256=10bnX4xbKSxIBveDr8g3lhNIYOcfTingDh7o55kT-F4,1006
|
|
53
|
-
agenta/client/backend/types/human_evaluation_scenario_output.py,sha256=dA4hN-SeTcoHvNCaKwDvJrwsTw9DY5EeCWz2P2YmF34,1010
|
|
54
|
-
agenta/client/backend/types/human_evaluation_scenario_score.py,sha256=P3RxQ2U_u8KNq2yVegZdxJizofuTF20vIe2aS45ezWU,134
|
|
55
|
-
agenta/client/backend/types/human_evaluation_scenario_update_score.py,sha256=FSwW5jl2rNa4y0NTsMP2NRNOrKJi4q2I6zBEu5FU6MU,140
|
|
56
|
-
agenta/client/backend/types/image.py,sha256=wbaOeFV166Zp-ZqcMdksCNk9h2puTwWppW_E2_Co7fo,1048
|
|
57
|
-
agenta/client/backend/types/invite_request.py,sha256=A0ssjAQfHW6pd0EYNWGbNhVB67Y-jnjRjkg6L-Iw8Ok,965
|
|
58
|
-
agenta/client/backend/types/list_api_keys_output.py,sha256=DR21I8iYeRO8LDy20CQR1kjm-5PIS30_1EpT9lTlsVg,1095
|
|
59
|
-
agenta/client/backend/types/llm_run_rate_limit.py,sha256=mfT4lTczPxrJvd8ZCOAjPvw58QoM151p_uZT0PWNOJ4,1045
|
|
60
|
-
agenta/client/backend/types/new_testset.py,sha256=9NOC1-f_UZASy4ptzidLNcRU6Odq609ayvSQxEva-40,1009
|
|
61
|
-
agenta/client/backend/types/organization.py,sha256=9YCqgM6kZg93VI8S5ziQxqmw42fDS9dRGZdJ00eFnr4,1181
|
|
62
|
-
agenta/client/backend/types/organization_output.py,sha256=QNAKwQl6QkHIS0QKx8po2JU3mu14UrbcX2rU7VsAdqY,981
|
|
63
|
-
agenta/client/backend/types/result.py,sha256=7XCjzrjCcdYzjmeotrpYsKrGKjI14OJGbZZMNFsdm8w,996
|
|
64
|
-
agenta/client/backend/types/simple_evaluation_output.py,sha256=gRLOCps1hhXPgioADjD2DfabNJf9WgmmhPI6lJY00q4,1117
|
|
65
|
-
agenta/client/backend/types/span.py,sha256=3qrYxC5WJfKDiPwiTOhihDjzJc7bGDC5TIQ2hh5t8X8,1546
|
|
66
|
-
agenta/client/backend/types/template.py,sha256=mInivp-YnXqt28mWM9y4zqNezOfvUEPcmtM6CHePkyk,1037
|
|
67
|
-
agenta/client/backend/types/template_image_info.py,sha256=BycGLw_7XHl9GWOBpu1eu3I_fSQ3n5UVFQdzC0cQ_v8,1189
|
|
68
|
-
agenta/client/backend/types/test_set_output_response.py,sha256=T1HtKP3y2z5UOvqR4_rpUadr7zfGQUxzXAhXBrsBWCg,1088
|
|
69
|
-
agenta/client/backend/types/test_set_simple_response.py,sha256=YI4tRQodB7-5PsIt4RVb8JwJ16vvsFXo7ed_0iHCoOM,1004
|
|
70
|
-
agenta/client/backend/types/trace.py,sha256=oCWbg3Nqhvvr6O928MSOqa7AdBEYtGLQ3VBsW2fDNvo,1353
|
|
71
|
-
agenta/client/backend/types/uri.py,sha256=dfnTFYdnqiqBzwKItet51L-UMuyd8hkdTw9g4aGrOjM,953
|
|
72
|
-
agenta/client/backend/types/validation_error.py,sha256=KiHcCQ9smOvyaCnwh9EqD-EfiR24wrczv6p-VDS9p5I,1086
|
|
73
|
-
agenta/client/backend/types/validation_error_loc_item.py,sha256=LAtjCHIllWRBFXvAZ5QZpp7CPXjdtN9EB7HrLVo6EP0,128
|
|
74
|
-
agenta/client/backend/types/variant_action.py,sha256=38SadKvaBM9gNwoTD9AHxfdnWR3_syxRY9B1LEEvX5E,1031
|
|
75
|
-
agenta/client/backend/types/variant_action_enum.py,sha256=wFQ74LoXocZkIMok5iTN7ztd7ikh51dZEeedjBm23A8,511
|
|
76
|
-
agenta/client/client.py,sha256=DWOGS9A8u4wu28s9jGOR4eRhf7vo4zT7GyDvrIGu59Y,19648
|
|
77
|
-
agenta/client/exceptions.py,sha256=cxLjjKvZKlUgBxt4Vn9J_SsezJPPNHvrZxnoq-D6zmw,94
|
|
78
|
-
agenta/config.py,sha256=Id-Ie1yf9QRP1YPhRYaYSOruRe6RBrsCXkG9rAa-ZtA,732
|
|
79
|
-
agenta/config.toml,sha256=ptE0P49bwsu3Luyn7OLFmk2buPhj5D-MA-O_ErOGoLg,223
|
|
80
|
-
agenta/docker/docker-assets/Dockerfile.cloud.template,sha256=CwJbCTezOYCGowA-Hh19f85YXgynT89CrWxjNxLJJfg,317
|
|
81
|
-
agenta/docker/docker-assets/Dockerfile.template,sha256=oIUjbDO2a689esL1XCw8nNyyDRAT3kCyH9_3z6c779Q,241
|
|
82
|
-
agenta/docker/docker-assets/README.md,sha256=XHxwh2ks_ozrtAU7SLbL3J14SB2holG6buoTxwmMiZM,102
|
|
83
|
-
agenta/docker/docker-assets/entrypoint.sh,sha256=29XK8VQjQsx4hN2j-4JDy-6kQb5y4LCqZEa7PD4eqCQ,74
|
|
84
|
-
agenta/docker/docker-assets/lambda_function.py,sha256=h4UZSSfqwpfsCgERv6frqwm_4JrYu9rLz3I-LxCfeEg,83
|
|
85
|
-
agenta/docker/docker-assets/main.py,sha256=7MI-21n81U7N7A0GxebNi0cmGWtJKcR2sPB6FcH2QfA,251
|
|
86
|
-
agenta/docker/docker_utils.py,sha256=gtwD0XZ_1Vk-rzNUYctlnRjZPpn01mX7tYvaNK7o7OQ,3542
|
|
87
|
-
agenta/sdk/__init__.py,sha256=TUTEndClnM2SKeQsC7Swv_K3uWkBZTd7jYKvp2-tQeY,565
|
|
88
|
-
agenta/sdk/agenta_decorator.py,sha256=B0tQCBsbSUFfdo1Ibadd0MPQCN7xdGtBcTurmsclL6U,15429
|
|
89
|
-
agenta/sdk/agenta_init.py,sha256=67THCATEW_oC8juCzdS-AouirksuXouyrRPyuUkLFxw,8025
|
|
90
|
-
agenta/sdk/context.py,sha256=q-PxL05-I84puunUAs9LGsffEXcYhDxhQxjuOz2vK90,901
|
|
91
|
-
agenta/sdk/router.py,sha256=0sbajvn5C7t18anH6yNo7-oYxldHnYfwcbmQnIXBePw,269
|
|
92
|
-
agenta/sdk/types.py,sha256=GiUiXDkbM2pMx1-mldzQT8uDUcm9sRqVUytThEkbjj4,4658
|
|
93
|
-
agenta/sdk/utils/globals.py,sha256=lpgflY8xovZJtHfJf41dbNCZGwx07YNkG9ldruv6xoI,360
|
|
94
|
-
agenta/sdk/utils/helper/openai_cost.py,sha256=1VkgvucDnNZm1pTfcVLz9icWunntp1d7zwMmnviy3Uw,5877
|
|
95
|
-
agenta/sdk/utils/preinit.py,sha256=YlJL7RLfel0R7DFp-jK7OV-z4ZIQJM0oupYlk7g8b5o,1278
|
|
96
|
-
agenta/templates/compose_email/README.md,sha256=ss7vZPpI1Hg0VmYtFliwq_r5LnqbCy_S5OQDXg8UoIA,308
|
|
97
|
-
agenta/templates/compose_email/app.py,sha256=SG8QnBkC49MtvWa2z5_YQ2d8wxZxhO_hWs15j3CsWvc,2384
|
|
98
|
-
agenta/templates/compose_email/env.example,sha256=g9AE5bYcGPpxawXMJ96gh8oenEPCHTabsiOnfQo3c5k,70
|
|
99
|
-
agenta/templates/compose_email/requirements.txt,sha256=ywRglRy7pPkw8bljmMEJJ4aOOQKrt9FGKULZ-DGkoBU,23
|
|
100
|
-
agenta/templates/compose_email/template.toml,sha256=H0y1i4t-gHgc-dbiTWcf3QiMAOU92MgkY_V9x3Tob-E,47
|
|
101
|
-
agenta/templates/extract_data_to_json/README.md,sha256=ss7vZPpI1Hg0VmYtFliwq_r5LnqbCy_S5OQDXg8UoIA,308
|
|
102
|
-
agenta/templates/extract_data_to_json/app.py,sha256=xNm9Gs2LzLujm1ox-T1Cn0JkU2tmYPqhwuAR9HnHa9Y,1320
|
|
103
|
-
agenta/templates/extract_data_to_json/env.example,sha256=g9AE5bYcGPpxawXMJ96gh8oenEPCHTabsiOnfQo3c5k,70
|
|
104
|
-
agenta/templates/extract_data_to_json/requirements.txt,sha256=ywRglRy7pPkw8bljmMEJJ4aOOQKrt9FGKULZ-DGkoBU,23
|
|
105
|
-
agenta/templates/extract_data_to_json/template.toml,sha256=5TpnTRmvHbIzANevDCCHc8AOJXL431TN2sBor6tosUY,60
|
|
106
|
-
agenta/templates/simple_prompt/README.md,sha256=ss7vZPpI1Hg0VmYtFliwq_r5LnqbCy_S5OQDXg8UoIA,308
|
|
107
|
-
agenta/templates/simple_prompt/app.py,sha256=kODgF6lhzsaJPdgL5b21bUki6jkvqjWZzWR9KdBQ1Yc,646
|
|
108
|
-
agenta/templates/simple_prompt/env.example,sha256=g9AE5bYcGPpxawXMJ96gh8oenEPCHTabsiOnfQo3c5k,70
|
|
109
|
-
agenta/templates/simple_prompt/requirements.txt,sha256=ywRglRy7pPkw8bljmMEJJ4aOOQKrt9FGKULZ-DGkoBU,23
|
|
110
|
-
agenta/templates/simple_prompt/template.toml,sha256=DQBtRrF4GU8LBEXOZ-GGuINXMQDKGTEG5y37tnvIUIE,60
|
|
111
|
-
agenta-0.12.3.dist-info/METADATA,sha256=S9ZgVrOO0YqSw7lVzINBRuOxeibNgRLIxlXpA60Jw9Q,27336
|
|
112
|
-
agenta-0.12.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
113
|
-
agenta-0.12.3.dist-info/entry_points.txt,sha256=PDiu8_8AsL7ibU9v4iNoOKR1S7F2rdxjlEprjM9QOgo,46
|
|
114
|
-
agenta-0.12.3.dist-info/RECORD,,
|
|
File without changes
|