aeri-python 4.0.0__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.
- aeri/__init__.py +72 -0
- aeri/_client/_validation.py +204 -0
- aeri/_client/attributes.py +188 -0
- aeri/_client/client.py +3761 -0
- aeri/_client/constants.py +65 -0
- aeri/_client/datasets.py +302 -0
- aeri/_client/environment_variables.py +158 -0
- aeri/_client/get_client.py +149 -0
- aeri/_client/observe.py +661 -0
- aeri/_client/propagation.py +475 -0
- aeri/_client/resource_manager.py +510 -0
- aeri/_client/span.py +1519 -0
- aeri/_client/span_filter.py +76 -0
- aeri/_client/span_processor.py +206 -0
- aeri/_client/utils.py +132 -0
- aeri/_task_manager/media_manager.py +331 -0
- aeri/_task_manager/media_upload_consumer.py +44 -0
- aeri/_task_manager/media_upload_queue.py +12 -0
- aeri/_task_manager/score_ingestion_consumer.py +208 -0
- aeri/_task_manager/task_manager.py +475 -0
- aeri/_utils/__init__.py +19 -0
- aeri/_utils/environment.py +34 -0
- aeri/_utils/error_logging.py +47 -0
- aeri/_utils/parse_error.py +99 -0
- aeri/_utils/prompt_cache.py +188 -0
- aeri/_utils/request.py +137 -0
- aeri/_utils/serializer.py +205 -0
- aeri/api/.fern/metadata.json +14 -0
- aeri/api/__init__.py +836 -0
- aeri/api/annotation_queues/__init__.py +82 -0
- aeri/api/annotation_queues/client.py +1111 -0
- aeri/api/annotation_queues/raw_client.py +2288 -0
- aeri/api/annotation_queues/types/__init__.py +84 -0
- aeri/api/annotation_queues/types/annotation_queue.py +28 -0
- aeri/api/annotation_queues/types/annotation_queue_assignment_request.py +16 -0
- aeri/api/annotation_queues/types/annotation_queue_item.py +34 -0
- aeri/api/annotation_queues/types/annotation_queue_object_type.py +26 -0
- aeri/api/annotation_queues/types/annotation_queue_status.py +22 -0
- aeri/api/annotation_queues/types/create_annotation_queue_assignment_response.py +18 -0
- aeri/api/annotation_queues/types/create_annotation_queue_item_request.py +25 -0
- aeri/api/annotation_queues/types/create_annotation_queue_request.py +20 -0
- aeri/api/annotation_queues/types/delete_annotation_queue_assignment_response.py +14 -0
- aeri/api/annotation_queues/types/delete_annotation_queue_item_response.py +15 -0
- aeri/api/annotation_queues/types/paginated_annotation_queue_items.py +17 -0
- aeri/api/annotation_queues/types/paginated_annotation_queues.py +17 -0
- aeri/api/annotation_queues/types/update_annotation_queue_item_request.py +15 -0
- aeri/api/blob_storage_integrations/__init__.py +73 -0
- aeri/api/blob_storage_integrations/client.py +550 -0
- aeri/api/blob_storage_integrations/raw_client.py +976 -0
- aeri/api/blob_storage_integrations/types/__init__.py +77 -0
- aeri/api/blob_storage_integrations/types/blob_storage_export_frequency.py +26 -0
- aeri/api/blob_storage_integrations/types/blob_storage_export_mode.py +26 -0
- aeri/api/blob_storage_integrations/types/blob_storage_integration_deletion_response.py +14 -0
- aeri/api/blob_storage_integrations/types/blob_storage_integration_file_type.py +26 -0
- aeri/api/blob_storage_integrations/types/blob_storage_integration_response.py +64 -0
- aeri/api/blob_storage_integrations/types/blob_storage_integration_status_response.py +50 -0
- aeri/api/blob_storage_integrations/types/blob_storage_integration_type.py +26 -0
- aeri/api/blob_storage_integrations/types/blob_storage_integrations_response.py +15 -0
- aeri/api/blob_storage_integrations/types/blob_storage_sync_status.py +47 -0
- aeri/api/blob_storage_integrations/types/create_blob_storage_integration_request.py +91 -0
- aeri/api/client.py +679 -0
- aeri/api/comments/__init__.py +44 -0
- aeri/api/comments/client.py +407 -0
- aeri/api/comments/raw_client.py +750 -0
- aeri/api/comments/types/__init__.py +46 -0
- aeri/api/comments/types/create_comment_request.py +47 -0
- aeri/api/comments/types/create_comment_response.py +17 -0
- aeri/api/comments/types/get_comments_response.py +17 -0
- aeri/api/commons/__init__.py +210 -0
- aeri/api/commons/errors/__init__.py +56 -0
- aeri/api/commons/errors/access_denied_error.py +12 -0
- aeri/api/commons/errors/error.py +12 -0
- aeri/api/commons/errors/method_not_allowed_error.py +12 -0
- aeri/api/commons/errors/not_found_error.py +12 -0
- aeri/api/commons/errors/unauthorized_error.py +12 -0
- aeri/api/commons/types/__init__.py +190 -0
- aeri/api/commons/types/base_score.py +90 -0
- aeri/api/commons/types/base_score_v1.py +70 -0
- aeri/api/commons/types/boolean_score.py +26 -0
- aeri/api/commons/types/boolean_score_v1.py +26 -0
- aeri/api/commons/types/categorical_score.py +26 -0
- aeri/api/commons/types/categorical_score_v1.py +26 -0
- aeri/api/commons/types/comment.py +36 -0
- aeri/api/commons/types/comment_object_type.py +30 -0
- aeri/api/commons/types/config_category.py +15 -0
- aeri/api/commons/types/correction_score.py +26 -0
- aeri/api/commons/types/create_score_value.py +5 -0
- aeri/api/commons/types/dataset.py +49 -0
- aeri/api/commons/types/dataset_item.py +58 -0
- aeri/api/commons/types/dataset_run.py +63 -0
- aeri/api/commons/types/dataset_run_item.py +40 -0
- aeri/api/commons/types/dataset_run_with_items.py +19 -0
- aeri/api/commons/types/dataset_status.py +22 -0
- aeri/api/commons/types/map_value.py +11 -0
- aeri/api/commons/types/model.py +125 -0
- aeri/api/commons/types/model_price.py +14 -0
- aeri/api/commons/types/model_usage_unit.py +42 -0
- aeri/api/commons/types/numeric_score.py +17 -0
- aeri/api/commons/types/numeric_score_v1.py +17 -0
- aeri/api/commons/types/observation.py +142 -0
- aeri/api/commons/types/observation_level.py +30 -0
- aeri/api/commons/types/observation_v2.py +235 -0
- aeri/api/commons/types/observations_view.py +89 -0
- aeri/api/commons/types/pricing_tier.py +91 -0
- aeri/api/commons/types/pricing_tier_condition.py +68 -0
- aeri/api/commons/types/pricing_tier_input.py +76 -0
- aeri/api/commons/types/pricing_tier_operator.py +42 -0
- aeri/api/commons/types/score.py +201 -0
- aeri/api/commons/types/score_config.py +66 -0
- aeri/api/commons/types/score_config_data_type.py +26 -0
- aeri/api/commons/types/score_data_type.py +30 -0
- aeri/api/commons/types/score_source.py +26 -0
- aeri/api/commons/types/score_v1.py +131 -0
- aeri/api/commons/types/session.py +25 -0
- aeri/api/commons/types/session_with_traces.py +15 -0
- aeri/api/commons/types/trace.py +84 -0
- aeri/api/commons/types/trace_with_details.py +43 -0
- aeri/api/commons/types/trace_with_full_details.py +45 -0
- aeri/api/commons/types/usage.py +59 -0
- aeri/api/core/__init__.py +111 -0
- aeri/api/core/api_error.py +23 -0
- aeri/api/core/client_wrapper.py +141 -0
- aeri/api/core/datetime_utils.py +30 -0
- aeri/api/core/enum.py +20 -0
- aeri/api/core/file.py +70 -0
- aeri/api/core/force_multipart.py +18 -0
- aeri/api/core/http_client.py +711 -0
- aeri/api/core/http_response.py +55 -0
- aeri/api/core/http_sse/__init__.py +48 -0
- aeri/api/core/http_sse/_api.py +114 -0
- aeri/api/core/http_sse/_decoders.py +66 -0
- aeri/api/core/http_sse/_exceptions.py +7 -0
- aeri/api/core/http_sse/_models.py +17 -0
- aeri/api/core/jsonable_encoder.py +102 -0
- aeri/api/core/pydantic_utilities.py +310 -0
- aeri/api/core/query_encoder.py +60 -0
- aeri/api/core/remove_none_from_dict.py +11 -0
- aeri/api/core/request_options.py +35 -0
- aeri/api/core/serialization.py +282 -0
- aeri/api/dataset_items/__init__.py +52 -0
- aeri/api/dataset_items/client.py +499 -0
- aeri/api/dataset_items/raw_client.py +973 -0
- aeri/api/dataset_items/types/__init__.py +50 -0
- aeri/api/dataset_items/types/create_dataset_item_request.py +37 -0
- aeri/api/dataset_items/types/delete_dataset_item_response.py +17 -0
- aeri/api/dataset_items/types/paginated_dataset_items.py +17 -0
- aeri/api/dataset_run_items/__init__.py +43 -0
- aeri/api/dataset_run_items/client.py +323 -0
- aeri/api/dataset_run_items/raw_client.py +547 -0
- aeri/api/dataset_run_items/types/__init__.py +44 -0
- aeri/api/dataset_run_items/types/create_dataset_run_item_request.py +51 -0
- aeri/api/dataset_run_items/types/paginated_dataset_run_items.py +17 -0
- aeri/api/datasets/__init__.py +55 -0
- aeri/api/datasets/client.py +661 -0
- aeri/api/datasets/raw_client.py +1368 -0
- aeri/api/datasets/types/__init__.py +53 -0
- aeri/api/datasets/types/create_dataset_request.py +31 -0
- aeri/api/datasets/types/delete_dataset_run_response.py +14 -0
- aeri/api/datasets/types/paginated_dataset_runs.py +17 -0
- aeri/api/datasets/types/paginated_datasets.py +17 -0
- aeri/api/health/__init__.py +44 -0
- aeri/api/health/client.py +112 -0
- aeri/api/health/errors/__init__.py +42 -0
- aeri/api/health/errors/service_unavailable_error.py +13 -0
- aeri/api/health/raw_client.py +227 -0
- aeri/api/health/types/__init__.py +40 -0
- aeri/api/health/types/health_response.py +30 -0
- aeri/api/ingestion/__init__.py +169 -0
- aeri/api/ingestion/client.py +221 -0
- aeri/api/ingestion/raw_client.py +293 -0
- aeri/api/ingestion/types/__init__.py +169 -0
- aeri/api/ingestion/types/base_event.py +27 -0
- aeri/api/ingestion/types/create_event_body.py +14 -0
- aeri/api/ingestion/types/create_event_event.py +15 -0
- aeri/api/ingestion/types/create_generation_body.py +40 -0
- aeri/api/ingestion/types/create_generation_event.py +15 -0
- aeri/api/ingestion/types/create_observation_event.py +15 -0
- aeri/api/ingestion/types/create_span_body.py +19 -0
- aeri/api/ingestion/types/create_span_event.py +15 -0
- aeri/api/ingestion/types/ingestion_error.py +17 -0
- aeri/api/ingestion/types/ingestion_event.py +155 -0
- aeri/api/ingestion/types/ingestion_response.py +17 -0
- aeri/api/ingestion/types/ingestion_success.py +15 -0
- aeri/api/ingestion/types/ingestion_usage.py +8 -0
- aeri/api/ingestion/types/observation_body.py +53 -0
- aeri/api/ingestion/types/observation_type.py +54 -0
- aeri/api/ingestion/types/open_ai_completion_usage_schema.py +26 -0
- aeri/api/ingestion/types/open_ai_response_usage_schema.py +24 -0
- aeri/api/ingestion/types/open_ai_usage.py +28 -0
- aeri/api/ingestion/types/optional_observation_body.py +36 -0
- aeri/api/ingestion/types/score_body.py +75 -0
- aeri/api/ingestion/types/score_event.py +15 -0
- aeri/api/ingestion/types/sdk_log_body.py +14 -0
- aeri/api/ingestion/types/sdk_log_event.py +15 -0
- aeri/api/ingestion/types/trace_body.py +36 -0
- aeri/api/ingestion/types/trace_event.py +15 -0
- aeri/api/ingestion/types/update_event_body.py +14 -0
- aeri/api/ingestion/types/update_generation_body.py +40 -0
- aeri/api/ingestion/types/update_generation_event.py +15 -0
- aeri/api/ingestion/types/update_observation_event.py +15 -0
- aeri/api/ingestion/types/update_span_body.py +19 -0
- aeri/api/ingestion/types/update_span_event.py +15 -0
- aeri/api/ingestion/types/usage_details.py +10 -0
- aeri/api/legacy/__init__.py +61 -0
- aeri/api/legacy/client.py +105 -0
- aeri/api/legacy/metrics_v1/__init__.py +40 -0
- aeri/api/legacy/metrics_v1/client.py +214 -0
- aeri/api/legacy/metrics_v1/raw_client.py +322 -0
- aeri/api/legacy/metrics_v1/types/__init__.py +40 -0
- aeri/api/legacy/metrics_v1/types/metrics_response.py +19 -0
- aeri/api/legacy/observations_v1/__init__.py +43 -0
- aeri/api/legacy/observations_v1/client.py +523 -0
- aeri/api/legacy/observations_v1/raw_client.py +759 -0
- aeri/api/legacy/observations_v1/types/__init__.py +44 -0
- aeri/api/legacy/observations_v1/types/observations.py +17 -0
- aeri/api/legacy/observations_v1/types/observations_views.py +17 -0
- aeri/api/legacy/raw_client.py +13 -0
- aeri/api/legacy/score_v1/__init__.py +43 -0
- aeri/api/legacy/score_v1/client.py +329 -0
- aeri/api/legacy/score_v1/raw_client.py +545 -0
- aeri/api/legacy/score_v1/types/__init__.py +44 -0
- aeri/api/legacy/score_v1/types/create_score_request.py +75 -0
- aeri/api/legacy/score_v1/types/create_score_response.py +17 -0
- aeri/api/llm_connections/__init__.py +55 -0
- aeri/api/llm_connections/client.py +311 -0
- aeri/api/llm_connections/raw_client.py +541 -0
- aeri/api/llm_connections/types/__init__.py +53 -0
- aeri/api/llm_connections/types/llm_adapter.py +38 -0
- aeri/api/llm_connections/types/llm_connection.py +77 -0
- aeri/api/llm_connections/types/paginated_llm_connections.py +17 -0
- aeri/api/llm_connections/types/upsert_llm_connection_request.py +69 -0
- aeri/api/media/__init__.py +58 -0
- aeri/api/media/client.py +427 -0
- aeri/api/media/raw_client.py +739 -0
- aeri/api/media/types/__init__.py +56 -0
- aeri/api/media/types/get_media_response.py +55 -0
- aeri/api/media/types/get_media_upload_url_request.py +51 -0
- aeri/api/media/types/get_media_upload_url_response.py +28 -0
- aeri/api/media/types/media_content_type.py +232 -0
- aeri/api/media/types/patch_media_body.py +43 -0
- aeri/api/metrics/__init__.py +40 -0
- aeri/api/metrics/client.py +422 -0
- aeri/api/metrics/raw_client.py +530 -0
- aeri/api/metrics/types/__init__.py +40 -0
- aeri/api/metrics/types/metrics_v2response.py +19 -0
- aeri/api/models/__init__.py +43 -0
- aeri/api/models/client.py +523 -0
- aeri/api/models/raw_client.py +993 -0
- aeri/api/models/types/__init__.py +44 -0
- aeri/api/models/types/create_model_request.py +103 -0
- aeri/api/models/types/paginated_models.py +17 -0
- aeri/api/observations/__init__.py +43 -0
- aeri/api/observations/client.py +522 -0
- aeri/api/observations/raw_client.py +641 -0
- aeri/api/observations/types/__init__.py +44 -0
- aeri/api/observations/types/observations_v2meta.py +21 -0
- aeri/api/observations/types/observations_v2response.py +28 -0
- aeri/api/opentelemetry/__init__.py +67 -0
- aeri/api/opentelemetry/client.py +276 -0
- aeri/api/opentelemetry/raw_client.py +291 -0
- aeri/api/opentelemetry/types/__init__.py +65 -0
- aeri/api/opentelemetry/types/otel_attribute.py +27 -0
- aeri/api/opentelemetry/types/otel_attribute_value.py +46 -0
- aeri/api/opentelemetry/types/otel_resource.py +24 -0
- aeri/api/opentelemetry/types/otel_resource_span.py +32 -0
- aeri/api/opentelemetry/types/otel_scope.py +34 -0
- aeri/api/opentelemetry/types/otel_scope_span.py +28 -0
- aeri/api/opentelemetry/types/otel_span.py +76 -0
- aeri/api/opentelemetry/types/otel_trace_response.py +16 -0
- aeri/api/organizations/__init__.py +73 -0
- aeri/api/organizations/client.py +756 -0
- aeri/api/organizations/raw_client.py +1707 -0
- aeri/api/organizations/types/__init__.py +71 -0
- aeri/api/organizations/types/delete_membership_request.py +16 -0
- aeri/api/organizations/types/membership_deletion_response.py +17 -0
- aeri/api/organizations/types/membership_request.py +18 -0
- aeri/api/organizations/types/membership_response.py +20 -0
- aeri/api/organizations/types/membership_role.py +30 -0
- aeri/api/organizations/types/memberships_response.py +15 -0
- aeri/api/organizations/types/organization_api_key.py +31 -0
- aeri/api/organizations/types/organization_api_keys_response.py +19 -0
- aeri/api/organizations/types/organization_project.py +25 -0
- aeri/api/organizations/types/organization_projects_response.py +15 -0
- aeri/api/projects/__init__.py +67 -0
- aeri/api/projects/client.py +760 -0
- aeri/api/projects/raw_client.py +1577 -0
- aeri/api/projects/types/__init__.py +65 -0
- aeri/api/projects/types/api_key_deletion_response.py +18 -0
- aeri/api/projects/types/api_key_list.py +23 -0
- aeri/api/projects/types/api_key_response.py +30 -0
- aeri/api/projects/types/api_key_summary.py +35 -0
- aeri/api/projects/types/organization.py +22 -0
- aeri/api/projects/types/project.py +34 -0
- aeri/api/projects/types/project_deletion_response.py +15 -0
- aeri/api/projects/types/projects.py +15 -0
- aeri/api/prompt_version/__init__.py +4 -0
- aeri/api/prompt_version/client.py +157 -0
- aeri/api/prompt_version/raw_client.py +264 -0
- aeri/api/prompts/__init__.py +100 -0
- aeri/api/prompts/client.py +550 -0
- aeri/api/prompts/raw_client.py +987 -0
- aeri/api/prompts/types/__init__.py +96 -0
- aeri/api/prompts/types/base_prompt.py +42 -0
- aeri/api/prompts/types/chat_message.py +17 -0
- aeri/api/prompts/types/chat_message_type.py +15 -0
- aeri/api/prompts/types/chat_message_with_placeholders.py +8 -0
- aeri/api/prompts/types/chat_prompt.py +15 -0
- aeri/api/prompts/types/create_chat_prompt_request.py +37 -0
- aeri/api/prompts/types/create_chat_prompt_type.py +15 -0
- aeri/api/prompts/types/create_prompt_request.py +8 -0
- aeri/api/prompts/types/create_text_prompt_request.py +36 -0
- aeri/api/prompts/types/create_text_prompt_type.py +15 -0
- aeri/api/prompts/types/placeholder_message.py +16 -0
- aeri/api/prompts/types/placeholder_message_type.py +15 -0
- aeri/api/prompts/types/prompt.py +58 -0
- aeri/api/prompts/types/prompt_meta.py +35 -0
- aeri/api/prompts/types/prompt_meta_list_response.py +17 -0
- aeri/api/prompts/types/prompt_type.py +20 -0
- aeri/api/prompts/types/text_prompt.py +14 -0
- aeri/api/scim/__init__.py +94 -0
- aeri/api/scim/client.py +686 -0
- aeri/api/scim/raw_client.py +1528 -0
- aeri/api/scim/types/__init__.py +92 -0
- aeri/api/scim/types/authentication_scheme.py +20 -0
- aeri/api/scim/types/bulk_config.py +22 -0
- aeri/api/scim/types/empty_response.py +16 -0
- aeri/api/scim/types/filter_config.py +17 -0
- aeri/api/scim/types/resource_meta.py +17 -0
- aeri/api/scim/types/resource_type.py +27 -0
- aeri/api/scim/types/resource_types_response.py +21 -0
- aeri/api/scim/types/schema_extension.py +17 -0
- aeri/api/scim/types/schema_resource.py +19 -0
- aeri/api/scim/types/schemas_response.py +21 -0
- aeri/api/scim/types/scim_email.py +16 -0
- aeri/api/scim/types/scim_feature_support.py +14 -0
- aeri/api/scim/types/scim_name.py +14 -0
- aeri/api/scim/types/scim_user.py +24 -0
- aeri/api/scim/types/scim_users_list_response.py +25 -0
- aeri/api/scim/types/service_provider_config.py +36 -0
- aeri/api/scim/types/user_meta.py +20 -0
- aeri/api/score_configs/__init__.py +44 -0
- aeri/api/score_configs/client.py +526 -0
- aeri/api/score_configs/raw_client.py +1012 -0
- aeri/api/score_configs/types/__init__.py +46 -0
- aeri/api/score_configs/types/create_score_config_request.py +46 -0
- aeri/api/score_configs/types/score_configs.py +17 -0
- aeri/api/score_configs/types/update_score_config_request.py +53 -0
- aeri/api/scores/__init__.py +76 -0
- aeri/api/scores/client.py +420 -0
- aeri/api/scores/raw_client.py +656 -0
- aeri/api/scores/types/__init__.py +76 -0
- aeri/api/scores/types/get_scores_response.py +17 -0
- aeri/api/scores/types/get_scores_response_data.py +211 -0
- aeri/api/scores/types/get_scores_response_data_boolean.py +15 -0
- aeri/api/scores/types/get_scores_response_data_categorical.py +15 -0
- aeri/api/scores/types/get_scores_response_data_correction.py +15 -0
- aeri/api/scores/types/get_scores_response_data_numeric.py +15 -0
- aeri/api/scores/types/get_scores_response_trace_data.py +38 -0
- aeri/api/sessions/__init__.py +40 -0
- aeri/api/sessions/client.py +262 -0
- aeri/api/sessions/raw_client.py +500 -0
- aeri/api/sessions/types/__init__.py +40 -0
- aeri/api/sessions/types/paginated_sessions.py +17 -0
- aeri/api/trace/__init__.py +44 -0
- aeri/api/trace/client.py +728 -0
- aeri/api/trace/raw_client.py +1208 -0
- aeri/api/trace/types/__init__.py +46 -0
- aeri/api/trace/types/delete_trace_response.py +14 -0
- aeri/api/trace/types/sort.py +14 -0
- aeri/api/trace/types/traces.py +17 -0
- aeri/api/utils/__init__.py +44 -0
- aeri/api/utils/pagination/__init__.py +40 -0
- aeri/api/utils/pagination/types/__init__.py +40 -0
- aeri/api/utils/pagination/types/meta_response.py +38 -0
- aeri/batch_evaluation.py +1643 -0
- aeri/experiment.py +1044 -0
- aeri/langchain/CallbackHandler.py +1377 -0
- aeri/langchain/__init__.py +5 -0
- aeri/langchain/utils.py +212 -0
- aeri/logger.py +28 -0
- aeri/media.py +352 -0
- aeri/model.py +477 -0
- aeri/openai.py +1124 -0
- aeri/py.typed +0 -0
- aeri/span_filter.py +17 -0
- aeri/types.py +79 -0
- aeri/version.py +3 -0
- aeri_python-4.0.0.dist-info/METADATA +51 -0
- aeri_python-4.0.0.dist-info/RECORD +391 -0
- aeri_python-4.0.0.dist-info/WHEEL +4 -0
- aeri_python-4.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
from importlib import import_module
|
|
7
|
+
|
|
8
|
+
if typing.TYPE_CHECKING:
|
|
9
|
+
from .observations import Observations
|
|
10
|
+
from .observations_views import ObservationsViews
|
|
11
|
+
_dynamic_imports: typing.Dict[str, str] = {
|
|
12
|
+
"Observations": ".observations",
|
|
13
|
+
"ObservationsViews": ".observations_views",
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
18
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
19
|
+
if module_name is None:
|
|
20
|
+
raise AttributeError(
|
|
21
|
+
f"No {attr_name} found in _dynamic_imports for module name -> {__name__}"
|
|
22
|
+
)
|
|
23
|
+
try:
|
|
24
|
+
module = import_module(module_name, __package__)
|
|
25
|
+
if module_name == f".{attr_name}":
|
|
26
|
+
return module
|
|
27
|
+
else:
|
|
28
|
+
return getattr(module, attr_name)
|
|
29
|
+
except ImportError as e:
|
|
30
|
+
raise ImportError(
|
|
31
|
+
f"Failed to import {attr_name} from {module_name}: {e}"
|
|
32
|
+
) from e
|
|
33
|
+
except AttributeError as e:
|
|
34
|
+
raise AttributeError(
|
|
35
|
+
f"Failed to get {attr_name} from {module_name}: {e}"
|
|
36
|
+
) from e
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def __dir__():
|
|
40
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
41
|
+
return sorted(lazy_attrs)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
__all__ = ["Observations", "ObservationsViews"]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....commons.types.observation import Observation
|
|
7
|
+
from ....core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ....utils.pagination.types.meta_response import MetaResponse
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Observations(UniversalBaseModel):
|
|
12
|
+
data: typing.List[Observation]
|
|
13
|
+
meta: MetaResponse
|
|
14
|
+
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
|
|
16
|
+
extra="allow", frozen=True
|
|
17
|
+
)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....commons.types.observations_view import ObservationsView
|
|
7
|
+
from ....core.pydantic_utilities import UniversalBaseModel
|
|
8
|
+
from ....utils.pagination.types.meta_response import MetaResponse
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ObservationsViews(UniversalBaseModel):
|
|
12
|
+
data: typing.List[ObservationsView]
|
|
13
|
+
meta: MetaResponse
|
|
14
|
+
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
|
|
16
|
+
extra="allow", frozen=True
|
|
17
|
+
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class RawLegacyClient:
|
|
7
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
8
|
+
self._client_wrapper = client_wrapper
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AsyncRawLegacyClient:
|
|
12
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
13
|
+
self._client_wrapper = client_wrapper
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
from importlib import import_module
|
|
7
|
+
|
|
8
|
+
if typing.TYPE_CHECKING:
|
|
9
|
+
from .types import CreateScoreRequest, CreateScoreResponse
|
|
10
|
+
_dynamic_imports: typing.Dict[str, str] = {
|
|
11
|
+
"CreateScoreRequest": ".types",
|
|
12
|
+
"CreateScoreResponse": ".types",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
17
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
18
|
+
if module_name is None:
|
|
19
|
+
raise AttributeError(
|
|
20
|
+
f"No {attr_name} found in _dynamic_imports for module name -> {__name__}"
|
|
21
|
+
)
|
|
22
|
+
try:
|
|
23
|
+
module = import_module(module_name, __package__)
|
|
24
|
+
if module_name == f".{attr_name}":
|
|
25
|
+
return module
|
|
26
|
+
else:
|
|
27
|
+
return getattr(module, attr_name)
|
|
28
|
+
except ImportError as e:
|
|
29
|
+
raise ImportError(
|
|
30
|
+
f"Failed to import {attr_name} from {module_name}: {e}"
|
|
31
|
+
) from e
|
|
32
|
+
except AttributeError as e:
|
|
33
|
+
raise AttributeError(
|
|
34
|
+
f"Failed to get {attr_name} from {module_name}: {e}"
|
|
35
|
+
) from e
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def __dir__():
|
|
39
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
40
|
+
return sorted(lazy_attrs)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
__all__ = ["CreateScoreRequest", "CreateScoreResponse"]
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ...commons.types.create_score_value import CreateScoreValue
|
|
6
|
+
from ...commons.types.score_data_type import ScoreDataType
|
|
7
|
+
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from ...core.request_options import RequestOptions
|
|
9
|
+
from .raw_client import AsyncRawScoreV1Client, RawScoreV1Client
|
|
10
|
+
from .types.create_score_response import CreateScoreResponse
|
|
11
|
+
|
|
12
|
+
# this is used as the default value for optional parameters
|
|
13
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ScoreV1Client:
|
|
17
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
18
|
+
self._raw_client = RawScoreV1Client(client_wrapper=client_wrapper)
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def with_raw_response(self) -> RawScoreV1Client:
|
|
22
|
+
"""
|
|
23
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
24
|
+
|
|
25
|
+
Returns
|
|
26
|
+
-------
|
|
27
|
+
RawScoreV1Client
|
|
28
|
+
"""
|
|
29
|
+
return self._raw_client
|
|
30
|
+
|
|
31
|
+
def create(
|
|
32
|
+
self,
|
|
33
|
+
*,
|
|
34
|
+
name: str,
|
|
35
|
+
value: CreateScoreValue,
|
|
36
|
+
id: typing.Optional[str] = OMIT,
|
|
37
|
+
trace_id: typing.Optional[str] = OMIT,
|
|
38
|
+
session_id: typing.Optional[str] = OMIT,
|
|
39
|
+
observation_id: typing.Optional[str] = OMIT,
|
|
40
|
+
dataset_run_id: typing.Optional[str] = OMIT,
|
|
41
|
+
comment: typing.Optional[str] = OMIT,
|
|
42
|
+
metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
|
43
|
+
environment: typing.Optional[str] = OMIT,
|
|
44
|
+
queue_id: typing.Optional[str] = OMIT,
|
|
45
|
+
data_type: typing.Optional[ScoreDataType] = OMIT,
|
|
46
|
+
config_id: typing.Optional[str] = OMIT,
|
|
47
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
48
|
+
) -> CreateScoreResponse:
|
|
49
|
+
"""
|
|
50
|
+
Create a score (supports both trace and session scores)
|
|
51
|
+
|
|
52
|
+
Parameters
|
|
53
|
+
----------
|
|
54
|
+
name : str
|
|
55
|
+
|
|
56
|
+
value : CreateScoreValue
|
|
57
|
+
The value of the score. Must be passed as string for categorical scores, and numeric for boolean and numeric scores. Boolean score values must equal either 1 or 0 (true or false)
|
|
58
|
+
|
|
59
|
+
id : typing.Optional[str]
|
|
60
|
+
|
|
61
|
+
trace_id : typing.Optional[str]
|
|
62
|
+
|
|
63
|
+
session_id : typing.Optional[str]
|
|
64
|
+
|
|
65
|
+
observation_id : typing.Optional[str]
|
|
66
|
+
|
|
67
|
+
dataset_run_id : typing.Optional[str]
|
|
68
|
+
|
|
69
|
+
comment : typing.Optional[str]
|
|
70
|
+
|
|
71
|
+
metadata : typing.Optional[typing.Dict[str, typing.Any]]
|
|
72
|
+
|
|
73
|
+
environment : typing.Optional[str]
|
|
74
|
+
The environment of the score. Can be any lowercase alphanumeric string with hyphens and underscores that does not start with 'aeri'.
|
|
75
|
+
|
|
76
|
+
queue_id : typing.Optional[str]
|
|
77
|
+
The annotation queue referenced by the score. Indicates if score was initially created while processing annotation queue.
|
|
78
|
+
|
|
79
|
+
data_type : typing.Optional[ScoreDataType]
|
|
80
|
+
The data type of the score. When passing a configId this field is inferred. Otherwise, this field must be passed or will default to numeric.
|
|
81
|
+
|
|
82
|
+
config_id : typing.Optional[str]
|
|
83
|
+
Reference a score config on a score. The unique aeri identifier of a score config. When passing this field, the dataType and stringValue fields are automatically populated.
|
|
84
|
+
|
|
85
|
+
request_options : typing.Optional[RequestOptions]
|
|
86
|
+
Request-specific configuration.
|
|
87
|
+
|
|
88
|
+
Returns
|
|
89
|
+
-------
|
|
90
|
+
CreateScoreResponse
|
|
91
|
+
|
|
92
|
+
Examples
|
|
93
|
+
--------
|
|
94
|
+
from aeri import AeriAPI
|
|
95
|
+
|
|
96
|
+
client = AeriAPI(
|
|
97
|
+
x_aeri_sdk_name="YOUR_X_AERI_SDK_NAME",
|
|
98
|
+
x_aeri_sdk_version="YOUR_X_AERI_SDK_VERSION",
|
|
99
|
+
x_aeri_public_key="YOUR_X_AERI_PUBLIC_KEY",
|
|
100
|
+
username="YOUR_USERNAME",
|
|
101
|
+
password="YOUR_PASSWORD",
|
|
102
|
+
base_url="https://yourhost.com/path/to/api",
|
|
103
|
+
)
|
|
104
|
+
client.legacy.score_v1.create(
|
|
105
|
+
name="name",
|
|
106
|
+
value=1.1,
|
|
107
|
+
)
|
|
108
|
+
"""
|
|
109
|
+
_response = self._raw_client.create(
|
|
110
|
+
name=name,
|
|
111
|
+
value=value,
|
|
112
|
+
id=id,
|
|
113
|
+
trace_id=trace_id,
|
|
114
|
+
session_id=session_id,
|
|
115
|
+
observation_id=observation_id,
|
|
116
|
+
dataset_run_id=dataset_run_id,
|
|
117
|
+
comment=comment,
|
|
118
|
+
metadata=metadata,
|
|
119
|
+
environment=environment,
|
|
120
|
+
queue_id=queue_id,
|
|
121
|
+
data_type=data_type,
|
|
122
|
+
config_id=config_id,
|
|
123
|
+
request_options=request_options,
|
|
124
|
+
)
|
|
125
|
+
return _response.data
|
|
126
|
+
|
|
127
|
+
def delete(
|
|
128
|
+
self, score_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
129
|
+
) -> None:
|
|
130
|
+
"""
|
|
131
|
+
Delete a score (supports both trace and session scores)
|
|
132
|
+
|
|
133
|
+
Parameters
|
|
134
|
+
----------
|
|
135
|
+
score_id : str
|
|
136
|
+
The unique aeri identifier of a score
|
|
137
|
+
|
|
138
|
+
request_options : typing.Optional[RequestOptions]
|
|
139
|
+
Request-specific configuration.
|
|
140
|
+
|
|
141
|
+
Returns
|
|
142
|
+
-------
|
|
143
|
+
None
|
|
144
|
+
|
|
145
|
+
Examples
|
|
146
|
+
--------
|
|
147
|
+
from aeri import AeriAPI
|
|
148
|
+
|
|
149
|
+
client = AeriAPI(
|
|
150
|
+
x_aeri_sdk_name="YOUR_X_AERI_SDK_NAME",
|
|
151
|
+
x_aeri_sdk_version="YOUR_X_AERI_SDK_VERSION",
|
|
152
|
+
x_aeri_public_key="YOUR_X_AERI_PUBLIC_KEY",
|
|
153
|
+
username="YOUR_USERNAME",
|
|
154
|
+
password="YOUR_PASSWORD",
|
|
155
|
+
base_url="https://yourhost.com/path/to/api",
|
|
156
|
+
)
|
|
157
|
+
client.legacy.score_v1.delete(
|
|
158
|
+
score_id="scoreId",
|
|
159
|
+
)
|
|
160
|
+
"""
|
|
161
|
+
_response = self._raw_client.delete(score_id, request_options=request_options)
|
|
162
|
+
return _response.data
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class AsyncScoreV1Client:
|
|
166
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
167
|
+
self._raw_client = AsyncRawScoreV1Client(client_wrapper=client_wrapper)
|
|
168
|
+
|
|
169
|
+
@property
|
|
170
|
+
def with_raw_response(self) -> AsyncRawScoreV1Client:
|
|
171
|
+
"""
|
|
172
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
173
|
+
|
|
174
|
+
Returns
|
|
175
|
+
-------
|
|
176
|
+
AsyncRawScoreV1Client
|
|
177
|
+
"""
|
|
178
|
+
return self._raw_client
|
|
179
|
+
|
|
180
|
+
async def create(
|
|
181
|
+
self,
|
|
182
|
+
*,
|
|
183
|
+
name: str,
|
|
184
|
+
value: CreateScoreValue,
|
|
185
|
+
id: typing.Optional[str] = OMIT,
|
|
186
|
+
trace_id: typing.Optional[str] = OMIT,
|
|
187
|
+
session_id: typing.Optional[str] = OMIT,
|
|
188
|
+
observation_id: typing.Optional[str] = OMIT,
|
|
189
|
+
dataset_run_id: typing.Optional[str] = OMIT,
|
|
190
|
+
comment: typing.Optional[str] = OMIT,
|
|
191
|
+
metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
|
192
|
+
environment: typing.Optional[str] = OMIT,
|
|
193
|
+
queue_id: typing.Optional[str] = OMIT,
|
|
194
|
+
data_type: typing.Optional[ScoreDataType] = OMIT,
|
|
195
|
+
config_id: typing.Optional[str] = OMIT,
|
|
196
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
197
|
+
) -> CreateScoreResponse:
|
|
198
|
+
"""
|
|
199
|
+
Create a score (supports both trace and session scores)
|
|
200
|
+
|
|
201
|
+
Parameters
|
|
202
|
+
----------
|
|
203
|
+
name : str
|
|
204
|
+
|
|
205
|
+
value : CreateScoreValue
|
|
206
|
+
The value of the score. Must be passed as string for categorical scores, and numeric for boolean and numeric scores. Boolean score values must equal either 1 or 0 (true or false)
|
|
207
|
+
|
|
208
|
+
id : typing.Optional[str]
|
|
209
|
+
|
|
210
|
+
trace_id : typing.Optional[str]
|
|
211
|
+
|
|
212
|
+
session_id : typing.Optional[str]
|
|
213
|
+
|
|
214
|
+
observation_id : typing.Optional[str]
|
|
215
|
+
|
|
216
|
+
dataset_run_id : typing.Optional[str]
|
|
217
|
+
|
|
218
|
+
comment : typing.Optional[str]
|
|
219
|
+
|
|
220
|
+
metadata : typing.Optional[typing.Dict[str, typing.Any]]
|
|
221
|
+
|
|
222
|
+
environment : typing.Optional[str]
|
|
223
|
+
The environment of the score. Can be any lowercase alphanumeric string with hyphens and underscores that does not start with 'aeri'.
|
|
224
|
+
|
|
225
|
+
queue_id : typing.Optional[str]
|
|
226
|
+
The annotation queue referenced by the score. Indicates if score was initially created while processing annotation queue.
|
|
227
|
+
|
|
228
|
+
data_type : typing.Optional[ScoreDataType]
|
|
229
|
+
The data type of the score. When passing a configId this field is inferred. Otherwise, this field must be passed or will default to numeric.
|
|
230
|
+
|
|
231
|
+
config_id : typing.Optional[str]
|
|
232
|
+
Reference a score config on a score. The unique aeri identifier of a score config. When passing this field, the dataType and stringValue fields are automatically populated.
|
|
233
|
+
|
|
234
|
+
request_options : typing.Optional[RequestOptions]
|
|
235
|
+
Request-specific configuration.
|
|
236
|
+
|
|
237
|
+
Returns
|
|
238
|
+
-------
|
|
239
|
+
CreateScoreResponse
|
|
240
|
+
|
|
241
|
+
Examples
|
|
242
|
+
--------
|
|
243
|
+
import asyncio
|
|
244
|
+
|
|
245
|
+
from aeri import AsyncAeriAPI
|
|
246
|
+
|
|
247
|
+
client = AsyncAeriAPI(
|
|
248
|
+
x_aeri_sdk_name="YOUR_X_AERI_SDK_NAME",
|
|
249
|
+
x_aeri_sdk_version="YOUR_X_AERI_SDK_VERSION",
|
|
250
|
+
x_aeri_public_key="YOUR_X_AERI_PUBLIC_KEY",
|
|
251
|
+
username="YOUR_USERNAME",
|
|
252
|
+
password="YOUR_PASSWORD",
|
|
253
|
+
base_url="https://yourhost.com/path/to/api",
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
async def main() -> None:
|
|
258
|
+
await client.legacy.score_v1.create(
|
|
259
|
+
name="name",
|
|
260
|
+
value=1.1,
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
asyncio.run(main())
|
|
265
|
+
"""
|
|
266
|
+
_response = await self._raw_client.create(
|
|
267
|
+
name=name,
|
|
268
|
+
value=value,
|
|
269
|
+
id=id,
|
|
270
|
+
trace_id=trace_id,
|
|
271
|
+
session_id=session_id,
|
|
272
|
+
observation_id=observation_id,
|
|
273
|
+
dataset_run_id=dataset_run_id,
|
|
274
|
+
comment=comment,
|
|
275
|
+
metadata=metadata,
|
|
276
|
+
environment=environment,
|
|
277
|
+
queue_id=queue_id,
|
|
278
|
+
data_type=data_type,
|
|
279
|
+
config_id=config_id,
|
|
280
|
+
request_options=request_options,
|
|
281
|
+
)
|
|
282
|
+
return _response.data
|
|
283
|
+
|
|
284
|
+
async def delete(
|
|
285
|
+
self, score_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
286
|
+
) -> None:
|
|
287
|
+
"""
|
|
288
|
+
Delete a score (supports both trace and session scores)
|
|
289
|
+
|
|
290
|
+
Parameters
|
|
291
|
+
----------
|
|
292
|
+
score_id : str
|
|
293
|
+
The unique aeri identifier of a score
|
|
294
|
+
|
|
295
|
+
request_options : typing.Optional[RequestOptions]
|
|
296
|
+
Request-specific configuration.
|
|
297
|
+
|
|
298
|
+
Returns
|
|
299
|
+
-------
|
|
300
|
+
None
|
|
301
|
+
|
|
302
|
+
Examples
|
|
303
|
+
--------
|
|
304
|
+
import asyncio
|
|
305
|
+
|
|
306
|
+
from aeri import AsyncAeriAPI
|
|
307
|
+
|
|
308
|
+
client = AsyncAeriAPI(
|
|
309
|
+
x_aeri_sdk_name="YOUR_X_AERI_SDK_NAME",
|
|
310
|
+
x_aeri_sdk_version="YOUR_X_AERI_SDK_VERSION",
|
|
311
|
+
x_aeri_public_key="YOUR_X_AERI_PUBLIC_KEY",
|
|
312
|
+
username="YOUR_USERNAME",
|
|
313
|
+
password="YOUR_PASSWORD",
|
|
314
|
+
base_url="https://yourhost.com/path/to/api",
|
|
315
|
+
)
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
async def main() -> None:
|
|
319
|
+
await client.legacy.score_v1.delete(
|
|
320
|
+
score_id="scoreId",
|
|
321
|
+
)
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
asyncio.run(main())
|
|
325
|
+
"""
|
|
326
|
+
_response = await self._raw_client.delete(
|
|
327
|
+
score_id, request_options=request_options
|
|
328
|
+
)
|
|
329
|
+
return _response.data
|