agenta 0.16.0__tar.gz → 0.17.0__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.
- {agenta-0.16.0 → agenta-0.17.0}/PKG-INFO +3 -3
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker-assets/Dockerfile.cloud.template +1 -1
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/decorators/llm_entrypoint.py +110 -27
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/types.py +65 -83
- {agenta-0.16.0 → agenta-0.17.0}/pyproject.toml +3 -3
- {agenta-0.16.0 → agenta-0.17.0}/README.md +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/cli/evaluation_commands.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/cli/helper.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/cli/main.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/cli/telemetry.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/cli/variant_commands.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/cli/variant_configs.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/Readme.md +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/api.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/api_models.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/core/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/core/api_error.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/core/client_wrapper.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/core/datetime_utils.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/core/jsonable_encoder.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/errors/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/apps/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/apps/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/bases/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/bases/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/configs/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/configs/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/containers/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/containers/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/containers/types/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/containers/types/container_templates_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/environments/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/environments/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/evaluations/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/evaluations/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/evaluators/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/evaluators/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/observability/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/observability/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/testsets/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/testsets/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/variants/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/variants/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/variants/types/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/variants/types/add_variant_from_base_and_config_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/aggregated_result.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/app.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/app_variant_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/app_variant_revision.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/base_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/body_import_testset.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/config_db.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/create_app_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/create_span.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/create_trace_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/docker_env_vars.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/environment_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/environment_output_extended.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/environment_revision.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/error.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_scenario.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_scenario_score_update.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_type.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_webhook.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluator.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluator_config.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/feedback.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/get_config_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/http_validation_error.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario_update.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_update.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/image.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/invite_request.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/list_api_keys_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/llm_tokens.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/new_human_evaluation.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/new_testset.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/organization.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/organization_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/permission.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/result.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/score.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/span.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/span_detail.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/span_kind.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/span_status_code.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/span_variant.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/template.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/template_image_info.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/test_set_output_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/test_set_simple_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/trace_detail.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/uri.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/validation_error.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/variant_action.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/variant_action_enum.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/with_pagination.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/workspace_member_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/workspace_permission.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/workspace_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/workspace_role.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/workspace_role_response.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/client/exceptions.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/config.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/config.toml +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker-assets/Dockerfile.template +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker-assets/README.md +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker-assets/entrypoint.sh +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker-assets/lambda_function.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker-assets/main.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/docker/docker_utils.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/__init__.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/agenta_init.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/client.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/context.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/decorators/base.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/decorators/tracing.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/router.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/tracing/context_manager.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/tracing/llm_tracing.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/tracing/logger.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/tracing/tasks_manager.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/utils/globals.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/utils/helper/openai_cost.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/sdk/utils/preinit.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/compose_email/README.md +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/compose_email/app.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/compose_email/env.example +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/compose_email/requirements.txt +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/compose_email/template.toml +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/extract_data_to_json/README.md +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/extract_data_to_json/app.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/extract_data_to_json/env.example +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/extract_data_to_json/requirements.txt +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/extract_data_to_json/template.toml +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/simple_prompt/README.md +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/simple_prompt/app.py +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/simple_prompt/env.example +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/agenta/templates/simple_prompt/requirements.txt +0 -0
- {agenta-0.16.0 → agenta-0.17.0}/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.
|
|
3
|
+
Version: 0.17.0
|
|
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
|
|
@@ -18,12 +18,12 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
18
18
|
Requires-Dist: cachetools (>=5.3.3,<6.0.0)
|
|
19
19
|
Requires-Dist: click (>=8.1.3,<9.0.0)
|
|
20
20
|
Requires-Dist: docker (>=6.1.1,<8.0.0)
|
|
21
|
-
Requires-Dist: fastapi (>=0.
|
|
21
|
+
Requires-Dist: fastapi (>=0.100.0)
|
|
22
22
|
Requires-Dist: httpx (>=0.24,<0.28)
|
|
23
23
|
Requires-Dist: importlib-metadata (>=6.7,<8.0)
|
|
24
24
|
Requires-Dist: ipdb (>=0.13)
|
|
25
25
|
Requires-Dist: posthog (>=3.1.0,<4.0.0)
|
|
26
|
-
Requires-Dist: pydantic (
|
|
26
|
+
Requires-Dist: pydantic (>=2)
|
|
27
27
|
Requires-Dist: pymongo (>=4.6.3,<5.0.0)
|
|
28
28
|
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
|
|
29
29
|
Requires-Dist: python-multipart (>=0.0.6,<0.0.10)
|
|
@@ -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 -
|
|
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
|
|
|
@@ -203,15 +203,22 @@ class entrypoint(BaseDecorator):
|
|
|
203
203
|
if isinstance(result, str):
|
|
204
204
|
return FuncResponse(message=result, latency=round(latency, 4)) # type: ignore
|
|
205
205
|
if isinstance(result, int) or isinstance(result, float):
|
|
206
|
-
return FuncResponse(
|
|
206
|
+
return FuncResponse(
|
|
207
|
+
message=str(result),
|
|
208
|
+
usage=None,
|
|
209
|
+
cost=None,
|
|
210
|
+
latency=round(latency, 4),
|
|
211
|
+
)
|
|
207
212
|
if result is None:
|
|
208
213
|
return FuncResponse(
|
|
209
214
|
message="Function executed successfully, but did return None. \n Are you sure you did not forget to return a value?",
|
|
215
|
+
usage=None,
|
|
216
|
+
cost=None,
|
|
210
217
|
latency=round(latency, 4),
|
|
211
218
|
)
|
|
212
219
|
except Exception as e:
|
|
213
220
|
self.handle_exception(e)
|
|
214
|
-
return FuncResponse(message="Unexpected error occurred when calling the @
|
|
221
|
+
return FuncResponse(message="Unexpected error occurred when calling the @entrypoint decorated function", latency=0) # type: ignore
|
|
215
222
|
|
|
216
223
|
def handle_exception(self, e: Exception):
|
|
217
224
|
"""Handle exceptions."""
|
|
@@ -237,7 +244,7 @@ class entrypoint(BaseDecorator):
|
|
|
237
244
|
|
|
238
245
|
wrapper_signature = inspect.signature(wrapper)
|
|
239
246
|
wrapper_signature = wrapper_signature.replace(parameters=updated_params)
|
|
240
|
-
wrapper.__signature__ = wrapper_signature
|
|
247
|
+
wrapper.__signature__ = wrapper_signature # type: ignore
|
|
241
248
|
|
|
242
249
|
def update_function_signature(
|
|
243
250
|
self,
|
|
@@ -248,7 +255,7 @@ class entrypoint(BaseDecorator):
|
|
|
248
255
|
) -> None:
|
|
249
256
|
"""Update the function signature to include new parameters."""
|
|
250
257
|
|
|
251
|
-
updated_params = []
|
|
258
|
+
updated_params: List[inspect.Parameter] = []
|
|
252
259
|
self.add_config_params_to_parser(updated_params, config_params)
|
|
253
260
|
self.add_func_params_to_parser(updated_params, func_signature, ingestible_files)
|
|
254
261
|
self.update_wrapper_signature(wrapper, updated_params)
|
|
@@ -260,7 +267,8 @@ class entrypoint(BaseDecorator):
|
|
|
260
267
|
ingestible_files: Dict[str, inspect.Parameter],
|
|
261
268
|
) -> None:
|
|
262
269
|
"""Update the function signature to include new parameters."""
|
|
263
|
-
|
|
270
|
+
|
|
271
|
+
updated_params: List[inspect.Parameter] = []
|
|
264
272
|
self.add_func_params_to_parser(updated_params, func_signature, ingestible_files)
|
|
265
273
|
for param in [
|
|
266
274
|
"config",
|
|
@@ -281,12 +289,19 @@ class entrypoint(BaseDecorator):
|
|
|
281
289
|
) -> None:
|
|
282
290
|
"""Add configuration parameters to function signature."""
|
|
283
291
|
for name, param in config_params.items():
|
|
292
|
+
assert (
|
|
293
|
+
len(param.__class__.__bases__) == 1
|
|
294
|
+
), f"Inherited standard type of {param.__class__} needs to be one."
|
|
284
295
|
updated_params.append(
|
|
285
296
|
inspect.Parameter(
|
|
286
297
|
name,
|
|
287
298
|
inspect.Parameter.KEYWORD_ONLY,
|
|
288
299
|
default=Body(param),
|
|
289
|
-
annotation=
|
|
300
|
+
annotation=param.__class__.__bases__[
|
|
301
|
+
0
|
|
302
|
+
], # determines and get the base (parent/inheritance) type of the sdk-type at run-time. \
|
|
303
|
+
# E.g __class__ is ag.MessagesInput() and accessing it parent type will return (<class 'list'>,), \
|
|
304
|
+
# thus, why we are accessing the first item.
|
|
290
305
|
)
|
|
291
306
|
)
|
|
292
307
|
|
|
@@ -303,12 +318,19 @@ class entrypoint(BaseDecorator):
|
|
|
303
318
|
inspect.Parameter(name, param.kind, annotation=UploadFile)
|
|
304
319
|
)
|
|
305
320
|
else:
|
|
321
|
+
assert (
|
|
322
|
+
len(param.default.__class__.__bases__) == 1
|
|
323
|
+
), f"Inherited standard type of {param.default.__class__} needs to be one."
|
|
306
324
|
updated_params.append(
|
|
307
325
|
inspect.Parameter(
|
|
308
326
|
name,
|
|
309
327
|
inspect.Parameter.KEYWORD_ONLY,
|
|
310
328
|
default=Body(..., embed=True),
|
|
311
|
-
annotation=param.
|
|
329
|
+
annotation=param.default.__class__.__bases__[
|
|
330
|
+
0
|
|
331
|
+
], # determines and get the base (parent/inheritance) type of the sdk-type at run-time. \
|
|
332
|
+
# E.g __class__ is ag.MessagesInput() and accessing it parent type will return (<class 'list'>,), \
|
|
333
|
+
# thus, why we are accessing the first item.
|
|
312
334
|
)
|
|
313
335
|
)
|
|
314
336
|
|
|
@@ -358,7 +380,7 @@ class entrypoint(BaseDecorator):
|
|
|
358
380
|
f"--{name}",
|
|
359
381
|
type=str,
|
|
360
382
|
default=param.default,
|
|
361
|
-
choices=param.choices,
|
|
383
|
+
choices=param.choices, # type: ignore
|
|
362
384
|
)
|
|
363
385
|
else:
|
|
364
386
|
parser.add_argument(
|
|
@@ -420,7 +442,9 @@ class entrypoint(BaseDecorator):
|
|
|
420
442
|
params (dict(param_name, param_val)): The dictionary of the parameters for the function
|
|
421
443
|
"""
|
|
422
444
|
|
|
423
|
-
def find_in_schema(
|
|
445
|
+
def find_in_schema(
|
|
446
|
+
schema_type_properties: dict, schema: dict, param_name: str, xparam: str
|
|
447
|
+
):
|
|
424
448
|
"""Finds a parameter in the schema based on its name and x-parameter value"""
|
|
425
449
|
for _, value in schema.items():
|
|
426
450
|
value_title_lower = str(value.get("title")).lower()
|
|
@@ -432,9 +456,17 @@ class entrypoint(BaseDecorator):
|
|
|
432
456
|
|
|
433
457
|
if (
|
|
434
458
|
isinstance(value, dict)
|
|
435
|
-
and
|
|
459
|
+
and schema_type_properties.get("x-parameter") == xparam
|
|
436
460
|
and value_title == param_name
|
|
437
461
|
):
|
|
462
|
+
# this will update the default type schema with the properties gotten
|
|
463
|
+
# from the schema type (param_val) __schema_properties__ classmethod
|
|
464
|
+
for type_key, type_value in schema_type_properties.items():
|
|
465
|
+
# BEFORE:
|
|
466
|
+
# value = {'temperature': {'title': 'Temperature'}}
|
|
467
|
+
value[type_key] = type_value
|
|
468
|
+
# AFTER:
|
|
469
|
+
# value = {'temperature': { "type": "number", "title": "Temperature", "x-parameter": "float" }}
|
|
438
470
|
return value
|
|
439
471
|
|
|
440
472
|
schema_to_override = openapi_schema["components"]["schemas"][
|
|
@@ -443,17 +475,26 @@ class entrypoint(BaseDecorator):
|
|
|
443
475
|
for param_name, param_val in params.items():
|
|
444
476
|
if isinstance(param_val, GroupedMultipleChoiceParam):
|
|
445
477
|
subschema = find_in_schema(
|
|
446
|
-
|
|
478
|
+
param_val.__schema_type_properties__(),
|
|
479
|
+
schema_to_override,
|
|
480
|
+
param_name,
|
|
481
|
+
"grouped_choice",
|
|
447
482
|
)
|
|
448
483
|
assert (
|
|
449
484
|
subschema
|
|
450
485
|
), f"GroupedMultipleChoiceParam '{param_name}' is in the parameters but could not be found in the openapi.json"
|
|
451
|
-
subschema["choices"] = param_val.choices
|
|
452
|
-
subschema["default"] = param_val.default
|
|
486
|
+
subschema["choices"] = param_val.choices # type: ignore
|
|
487
|
+
subschema["default"] = param_val.default # type: ignore
|
|
488
|
+
|
|
453
489
|
if isinstance(param_val, MultipleChoiceParam):
|
|
454
|
-
subschema = find_in_schema(
|
|
490
|
+
subschema = find_in_schema(
|
|
491
|
+
param_val.__schema_type_properties__(),
|
|
492
|
+
schema_to_override,
|
|
493
|
+
param_name,
|
|
494
|
+
"choice",
|
|
495
|
+
)
|
|
455
496
|
default = str(param_val)
|
|
456
|
-
param_choices = param_val.choices
|
|
497
|
+
param_choices = param_val.choices # type: ignore
|
|
457
498
|
choices = (
|
|
458
499
|
[default] + param_choices
|
|
459
500
|
if param_val not in param_choices
|
|
@@ -463,37 +504,79 @@ class entrypoint(BaseDecorator):
|
|
|
463
504
|
subschema["default"] = (
|
|
464
505
|
default if default in param_choices else choices[0]
|
|
465
506
|
)
|
|
507
|
+
|
|
466
508
|
if isinstance(param_val, FloatParam):
|
|
467
|
-
subschema = find_in_schema(
|
|
468
|
-
|
|
469
|
-
|
|
509
|
+
subschema = find_in_schema(
|
|
510
|
+
param_val.__schema_type_properties__(),
|
|
511
|
+
schema_to_override,
|
|
512
|
+
param_name,
|
|
513
|
+
"float",
|
|
514
|
+
)
|
|
515
|
+
subschema["minimum"] = param_val.minval # type: ignore
|
|
516
|
+
subschema["maximum"] = param_val.maxval # type: ignore
|
|
470
517
|
subschema["default"] = param_val
|
|
518
|
+
|
|
471
519
|
if isinstance(param_val, IntParam):
|
|
472
|
-
subschema = find_in_schema(
|
|
473
|
-
|
|
474
|
-
|
|
520
|
+
subschema = find_in_schema(
|
|
521
|
+
param_val.__schema_type_properties__(),
|
|
522
|
+
schema_to_override,
|
|
523
|
+
param_name,
|
|
524
|
+
"int",
|
|
525
|
+
)
|
|
526
|
+
subschema["minimum"] = param_val.minval # type: ignore
|
|
527
|
+
subschema["maximum"] = param_val.maxval # type: ignore
|
|
475
528
|
subschema["default"] = param_val
|
|
529
|
+
|
|
476
530
|
if (
|
|
477
531
|
isinstance(param_val, inspect.Parameter)
|
|
478
532
|
and param_val.annotation is DictInput
|
|
479
533
|
):
|
|
480
|
-
subschema = find_in_schema(
|
|
534
|
+
subschema = find_in_schema(
|
|
535
|
+
param_val.annotation.__schema_type_properties__(),
|
|
536
|
+
schema_to_override,
|
|
537
|
+
param_name,
|
|
538
|
+
"dict",
|
|
539
|
+
)
|
|
481
540
|
subschema["default"] = param_val.default["default_keys"]
|
|
541
|
+
|
|
482
542
|
if isinstance(param_val, TextParam):
|
|
483
|
-
subschema = find_in_schema(
|
|
543
|
+
subschema = find_in_schema(
|
|
544
|
+
param_val.__schema_type_properties__(),
|
|
545
|
+
schema_to_override,
|
|
546
|
+
param_name,
|
|
547
|
+
"text",
|
|
548
|
+
)
|
|
484
549
|
subschema["default"] = param_val
|
|
550
|
+
|
|
485
551
|
if (
|
|
486
552
|
isinstance(param_val, inspect.Parameter)
|
|
487
553
|
and param_val.annotation is MessagesInput
|
|
488
554
|
):
|
|
489
|
-
subschema = find_in_schema(
|
|
555
|
+
subschema = find_in_schema(
|
|
556
|
+
param_val.annotation.__schema_type_properties__(),
|
|
557
|
+
schema_to_override,
|
|
558
|
+
param_name,
|
|
559
|
+
"messages",
|
|
560
|
+
)
|
|
490
561
|
subschema["default"] = param_val.default
|
|
562
|
+
|
|
491
563
|
if (
|
|
492
564
|
isinstance(param_val, inspect.Parameter)
|
|
493
565
|
and param_val.annotation is FileInputURL
|
|
494
566
|
):
|
|
495
|
-
subschema = find_in_schema(
|
|
567
|
+
subschema = find_in_schema(
|
|
568
|
+
param_val.annotation.__schema_type_properties__(),
|
|
569
|
+
schema_to_override,
|
|
570
|
+
param_name,
|
|
571
|
+
"file_url",
|
|
572
|
+
)
|
|
496
573
|
subschema["default"] = "https://example.com"
|
|
574
|
+
|
|
497
575
|
if isinstance(param_val, BinaryParam):
|
|
498
|
-
subschema = find_in_schema(
|
|
499
|
-
|
|
576
|
+
subschema = find_in_schema(
|
|
577
|
+
param_val.__schema_type_properties__(),
|
|
578
|
+
schema_to_override,
|
|
579
|
+
param_name,
|
|
580
|
+
"bool",
|
|
581
|
+
)
|
|
582
|
+
subschema["default"] = param_val.default # type: ignore
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import Dict, List, Optional
|
|
3
3
|
|
|
4
|
-
from pydantic import
|
|
4
|
+
from pydantic import ConfigDict, BaseModel, HttpUrl
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class InFile:
|
|
@@ -24,87 +24,75 @@ class FuncResponse(BaseModel):
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class DictInput(dict):
|
|
27
|
-
def __new__(cls, default_keys=None):
|
|
27
|
+
def __new__(cls, default_keys: Optional[List[str]] = None):
|
|
28
28
|
instance = super().__new__(cls, default_keys)
|
|
29
29
|
if default_keys is None:
|
|
30
30
|
default_keys = []
|
|
31
|
-
instance.data = [key for key in default_keys]
|
|
31
|
+
instance.data = [key for key in default_keys] # type: ignore
|
|
32
32
|
return instance
|
|
33
33
|
|
|
34
34
|
@classmethod
|
|
35
|
-
def
|
|
36
|
-
|
|
35
|
+
def __schema_type_properties__(cls) -> dict:
|
|
36
|
+
return {"x-parameter": "dict"}
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class TextParam(str):
|
|
40
40
|
@classmethod
|
|
41
|
-
def
|
|
42
|
-
|
|
41
|
+
def __schema_type_properties__(cls) -> dict:
|
|
42
|
+
return {"x-parameter": "text", "type": "string"}
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class BinaryParam(int):
|
|
46
46
|
def __new__(cls, value: bool = False):
|
|
47
47
|
instance = super().__new__(cls, int(value))
|
|
48
|
-
instance.default = value
|
|
48
|
+
instance.default = value # type: ignore
|
|
49
49
|
return instance
|
|
50
50
|
|
|
51
51
|
@classmethod
|
|
52
|
-
def
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
)
|
|
52
|
+
def __schema_type_properties__(cls) -> dict:
|
|
53
|
+
return {
|
|
54
|
+
"x-parameter": "bool",
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
}
|
|
59
57
|
|
|
60
58
|
|
|
61
59
|
class IntParam(int):
|
|
62
60
|
def __new__(cls, default: int = 6, minval: float = 1, maxval: float = 10):
|
|
63
61
|
instance = super().__new__(cls, default)
|
|
64
|
-
instance.minval = minval
|
|
65
|
-
instance.maxval = maxval
|
|
62
|
+
instance.minval = minval # type: ignore
|
|
63
|
+
instance.maxval = maxval # type: ignore
|
|
66
64
|
return instance
|
|
67
65
|
|
|
68
66
|
@classmethod
|
|
69
|
-
def
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
"x-parameter": "int",
|
|
73
|
-
"type": "integer",
|
|
74
|
-
"minimum": 1,
|
|
75
|
-
"maximum": 10,
|
|
76
|
-
}
|
|
77
|
-
)
|
|
67
|
+
def __schema_type_properties__(cls) -> dict:
|
|
68
|
+
return {"x-parameter": "int", "type": "integer"}
|
|
78
69
|
|
|
79
70
|
|
|
80
71
|
class FloatParam(float):
|
|
81
72
|
def __new__(cls, default: float = 0.5, minval: float = 0.0, maxval: float = 1.0):
|
|
82
73
|
instance = super().__new__(cls, default)
|
|
83
|
-
instance.
|
|
84
|
-
instance.
|
|
74
|
+
instance.default = default # type: ignore
|
|
75
|
+
instance.minval = minval # type: ignore
|
|
76
|
+
instance.maxval = maxval # type: ignore
|
|
85
77
|
return instance
|
|
86
78
|
|
|
87
79
|
@classmethod
|
|
88
|
-
def
|
|
89
|
-
|
|
90
|
-
{
|
|
91
|
-
"x-parameter": "float",
|
|
92
|
-
"type": "number",
|
|
93
|
-
"minimum": 0.0,
|
|
94
|
-
"maximum": 1.0,
|
|
95
|
-
}
|
|
96
|
-
)
|
|
80
|
+
def __schema_type_properties__(cls) -> dict:
|
|
81
|
+
return {"x-parameter": "float", "type": "number"}
|
|
97
82
|
|
|
98
83
|
|
|
99
84
|
class MultipleChoiceParam(str):
|
|
100
|
-
def __new__(
|
|
101
|
-
|
|
85
|
+
def __new__(
|
|
86
|
+
cls, default: Optional[str] = None, choices: Optional[List[str]] = None
|
|
87
|
+
):
|
|
88
|
+
if default is not None and type(default) is list:
|
|
102
89
|
raise ValueError(
|
|
103
90
|
"The order of the parameters for MultipleChoiceParam is wrong! It's MultipleChoiceParam(default, choices) and not the opposite"
|
|
104
91
|
)
|
|
105
|
-
|
|
92
|
+
|
|
93
|
+
if not default and choices is not None:
|
|
106
94
|
# if a default value is not provided,
|
|
107
|
-
#
|
|
95
|
+
# set the first value in the choices list
|
|
108
96
|
default = choices[0]
|
|
109
97
|
|
|
110
98
|
if default is None and not choices:
|
|
@@ -112,23 +100,21 @@ class MultipleChoiceParam(str):
|
|
|
112
100
|
raise ValueError("You must provide either a default value or choices")
|
|
113
101
|
|
|
114
102
|
instance = super().__new__(cls, default)
|
|
115
|
-
instance.choices = choices
|
|
116
|
-
instance.default = default
|
|
103
|
+
instance.choices = choices # type: ignore
|
|
104
|
+
instance.default = default # type: ignore
|
|
117
105
|
return instance
|
|
118
106
|
|
|
119
107
|
@classmethod
|
|
120
|
-
def
|
|
121
|
-
|
|
122
|
-
{
|
|
123
|
-
"x-parameter": "choice",
|
|
124
|
-
"type": "string",
|
|
125
|
-
"enum": [],
|
|
126
|
-
}
|
|
127
|
-
)
|
|
108
|
+
def __schema_type_properties__(cls) -> dict:
|
|
109
|
+
return {"x-parameter": "choice", "type": "string", "enum": []}
|
|
128
110
|
|
|
129
111
|
|
|
130
112
|
class GroupedMultipleChoiceParam(str):
|
|
131
|
-
def __new__(
|
|
113
|
+
def __new__(
|
|
114
|
+
cls,
|
|
115
|
+
default: Optional[str] = None,
|
|
116
|
+
choices: Optional[Dict[str, List[str]]] = None,
|
|
117
|
+
):
|
|
132
118
|
if choices is None:
|
|
133
119
|
choices = {}
|
|
134
120
|
if default and not any(
|
|
@@ -144,31 +130,23 @@ class GroupedMultipleChoiceParam(str):
|
|
|
144
130
|
)
|
|
145
131
|
|
|
146
132
|
if not default:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
133
|
+
default_selected_choice = next(
|
|
134
|
+
(choices for choices in choices.values()), None
|
|
135
|
+
)
|
|
136
|
+
if default_selected_choice:
|
|
137
|
+
default = default_selected_choice[0]
|
|
151
138
|
|
|
152
139
|
instance = super().__new__(cls, default)
|
|
153
|
-
instance.choices = choices
|
|
154
|
-
instance.default = default
|
|
140
|
+
instance.choices = choices # type: ignore
|
|
141
|
+
instance.default = default # type: ignore
|
|
155
142
|
return instance
|
|
156
143
|
|
|
157
144
|
@classmethod
|
|
158
|
-
def
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
"type": "string",
|
|
164
|
-
"choices": choices,
|
|
165
|
-
}
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
class Message(BaseModel):
|
|
170
|
-
role: str
|
|
171
|
-
content: str
|
|
145
|
+
def __schema_type_properties__(cls) -> dict:
|
|
146
|
+
return {
|
|
147
|
+
"x-parameter": "grouped_choice",
|
|
148
|
+
"type": "string",
|
|
149
|
+
}
|
|
172
150
|
|
|
173
151
|
|
|
174
152
|
class MessagesInput(list):
|
|
@@ -183,28 +161,32 @@ class MessagesInput(list):
|
|
|
183
161
|
|
|
184
162
|
"""
|
|
185
163
|
|
|
186
|
-
def __new__(cls, messages: List[Dict[str, str]] =
|
|
187
|
-
instance = super().__new__(cls
|
|
188
|
-
instance.default = messages
|
|
164
|
+
def __new__(cls, messages: List[Dict[str, str]] = []):
|
|
165
|
+
instance = super().__new__(cls)
|
|
166
|
+
instance.default = messages # type: ignore
|
|
189
167
|
return instance
|
|
190
168
|
|
|
191
169
|
@classmethod
|
|
192
|
-
def
|
|
193
|
-
|
|
170
|
+
def __schema_type_properties__(cls) -> dict:
|
|
171
|
+
return {"x-parameter": "messages", "type": "array"}
|
|
194
172
|
|
|
195
173
|
|
|
196
174
|
class FileInputURL(HttpUrl):
|
|
175
|
+
def __new__(cls, url: str):
|
|
176
|
+
instance = super().__new__(cls, url)
|
|
177
|
+
instance.default = url # type: ignore
|
|
178
|
+
return instance
|
|
179
|
+
|
|
197
180
|
@classmethod
|
|
198
|
-
def
|
|
199
|
-
|
|
181
|
+
def __schema_type_properties__(cls) -> dict:
|
|
182
|
+
return {"x-parameter": "file_url", "type": "string"}
|
|
200
183
|
|
|
201
184
|
|
|
202
185
|
class Context(BaseModel):
|
|
203
|
-
|
|
204
|
-
extra = Extra.allow
|
|
186
|
+
model_config = ConfigDict(extra="allow")
|
|
205
187
|
|
|
206
188
|
def to_json(self):
|
|
207
|
-
return self.
|
|
189
|
+
return self.model_dump()
|
|
208
190
|
|
|
209
191
|
@classmethod
|
|
210
192
|
def from_json(cls, json_str: str):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "agenta"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.17.0"
|
|
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>"]
|
|
@@ -19,7 +19,7 @@ keywords = ["LLMOps", "LLM", "evaluation", "prompt engineering"]
|
|
|
19
19
|
python = "^3.9"
|
|
20
20
|
docker = ">=6.1.1,<8.0.0"
|
|
21
21
|
click = "^8.1.3"
|
|
22
|
-
fastapi = ">=0.
|
|
22
|
+
fastapi = ">=0.100.0"
|
|
23
23
|
toml = "^0.10.2"
|
|
24
24
|
questionary = ">=1.10,<3.0"
|
|
25
25
|
ipdb = ">=0.13"
|
|
@@ -27,7 +27,7 @@ python-dotenv = "^1.0.0"
|
|
|
27
27
|
python-multipart = ">=0.0.6,<0.0.10"
|
|
28
28
|
importlib-metadata = ">=6.7,<8.0"
|
|
29
29
|
posthog = "^3.1.0"
|
|
30
|
-
pydantic = "
|
|
30
|
+
pydantic = ">=2"
|
|
31
31
|
httpx = ">=0.24, <0.28"
|
|
32
32
|
pymongo = "^4.6.3"
|
|
33
33
|
cachetools = "^5.3.3"
|
|
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
|
|
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
|
|
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
|
{agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/resources/containers/types/__init__.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/aggregated_result_evaluator_config.py
RENAMED
|
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
|
|
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
|
{agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/evaluation_scenario_score_update.py
RENAMED
|
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
|
{agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario_input.py
RENAMED
|
File without changes
|
{agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario_output.py
RENAMED
|
File without changes
|
{agenta-0.16.0 → agenta-0.17.0}/agenta/client/backend/types/human_evaluation_scenario_update.py
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|