arthur-observability-sdk 0.0.1__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.
- arthur_observability_sdk-0.0.1/PKG-INFO +638 -0
- arthur_observability_sdk-0.0.1/README.md +585 -0
- arthur_observability_sdk-0.0.1/pyproject.toml +54 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/__init__.py +69 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/.gitignore +23 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/README.md +124 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/__init__.py +8 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/create_api_key_auth_api_keys_post.py +203 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/deactivate_api_key_auth_api_keys_deactivate_api_key_id_delete.py +180 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/get_all_active_api_keys_auth_api_keys_get.py +155 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/get_api_key_auth_api_keys_api_key_id_get.py +180 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/chat_request.py +195 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/delete_file_api_chat_files_file_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_conversations_api_chat_conversations_get.py +211 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_default_task_api_chat_default_task_get.py +158 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_files_api_chat_files_get.py +163 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_inference_document_context_api_chat_context_inference_id_get.py +193 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/post_chat_feedback_api_chat_feedback_inference_id_post.py +205 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/update_default_task_api_chat_default_task_put.py +195 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/upload_embeddings_file_api_chat_files_post.py +215 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/create_continuous_eval_api_v1_tasks_task_id_continuous_evals_post.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/delete_continuous_eval_api_v1_continuous_evals_eval_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/get_continuous_eval_by_id_api_v1_continuous_evals_eval_id_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/list_continuous_eval_run_results_api_v1_tasks_task_id_continuous_evals_results_get.py +400 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/list_continuous_evals_api_v1_tasks_task_id_continuous_evals_get.py +337 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/rerun_continuous_eval_api_v1_continuous_evals_results_run_id_rerun_post.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/update_continuous_eval_api_v1_continuous_evals_eval_id_patch.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/create_dataset_api_v2_tasks_task_id_datasets_post.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/create_dataset_version_api_v2_datasets_dataset_id_versions_post.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/delete_dataset_api_v2_datasets_dataset_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/get_dataset_api_v2_datasets_dataset_id_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/get_dataset_version_api_v2_datasets_dataset_id_versions_version_number_get.py +262 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/get_dataset_version_row_api_v2_datasets_dataset_id_versions_version_number_rows_row_id_get.py +214 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/get_dataset_versions_api_v2_datasets_dataset_id_versions_get.py +268 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/get_datasets_api_v2_tasks_task_id_datasets_search_get.py +296 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/update_dataset_api_v2_datasets_dataset_id_patch.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/default_validation/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/default_validation/default_validate_prompt_api_v2_validate_prompt_post.py +195 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/default_validation/default_validate_response_api_v2_validate_response_inference_id_post.py +217 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/feedback/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/feedback/post_feedback_api_v2_feedback_inference_id_post.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/feedback/query_feedback_api_v2_feedback_query_get.py +491 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/inferences/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/inferences/query_inferences_api_v2_inferences_query_get.py +510 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/add_tag_to_llm_eval_version_api_v1_tasks_task_id_llm_evals_eval_name_versions_eval_version_tags_put.py +247 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/delete_llm_eval_api_v1_tasks_task_id_llm_evals_eval_name_delete.py +197 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/delete_tag_from_llm_eval_version_api_v1_tasks_task_id_llm_evals_eval_name_versions_eval_version_tags_tag_delete.py +231 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/get_all_llm_eval_versions_api_v1_tasks_task_id_llm_evals_eval_name_versions_get.py +417 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/get_all_llm_evals_api_v1_tasks_task_id_llm_evals_get.py +373 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/get_llm_eval_api_v1_tasks_task_id_llm_evals_eval_name_versions_eval_version_get.py +222 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/get_llm_eval_by_tag_api_v1_tasks_task_id_llm_evals_eval_name_versions_tags_tag_get.py +214 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/run_saved_llm_eval_api_v1_tasks_task_id_llm_evals_eval_name_versions_eval_version_completions_post.py +239 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/save_llm_eval_api_v1_tasks_task_id_llm_evals_eval_name_post.py +222 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/soft_delete_llm_eval_version_api_v1_tasks_task_id_llm_evals_eval_name_versions_eval_version_delete.py +218 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/model_providers/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/model_providers/delete_model_provider_api_v1_model_providers_provider_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/model_providers/get_model_providers_api_v1_model_providers_get.py +158 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/model_providers/get_model_providers_available_models_api_v1_model_providers_provider_available_models_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/model_providers/set_model_provider_api_v1_model_providers_provider_put.py +205 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/create_notebook_api_v1_tasks_task_id_notebooks_post.py +201 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/delete_notebook_api_v1_notebooks_notebook_id_delete.py +183 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/get_notebook_api_v1_notebooks_notebook_id_get.py +179 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/get_notebook_history_api_v1_notebooks_notebook_id_history_get.py +248 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/get_notebook_state_api_v1_notebooks_notebook_id_state_get.py +179 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/list_notebooks_api_v1_tasks_task_id_notebooks_get.py +269 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/set_notebook_state_api_v1_notebooks_notebook_id_state_put.py +200 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/update_notebook_api_v1_notebooks_notebook_id_put.py +200 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/attach_notebook_to_experiment_api_v1_prompt_experiments_experiment_id_notebook_patch.py +208 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/create_prompt_experiment_api_v1_tasks_task_id_prompt_experiments_post.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/delete_prompt_experiment_api_v1_prompt_experiments_experiment_id_delete.py +183 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/get_experiment_test_cases_api_v1_prompt_experiments_experiment_id_test_cases_get.py +248 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/get_prompt_experiment_api_v1_prompt_experiments_experiment_id_get.py +179 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/get_prompt_version_results_api_v1_prompt_experiments_experiment_id_prompts_prompt_key_results_get.py +269 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/list_prompt_experiments_api_v1_tasks_task_id_prompt_experiments_get.py +295 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/add_tag_to_agentic_prompt_version_api_v1_tasks_task_id_prompts_prompt_name_versions_prompt_version_tags_put.py +239 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/delete_agentic_prompt_api_v1_tasks_task_id_prompts_prompt_name_delete.py +197 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/delete_agentic_prompt_version_api_v1_tasks_task_id_prompts_prompt_name_versions_prompt_version_delete.py +218 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/delete_tag_from_agentic_prompt_version_api_v1_tasks_task_id_prompts_prompt_name_versions_prompt_version_tags_tag_delete.py +231 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/get_agentic_prompt_api_v1_tasks_task_id_prompts_prompt_name_versions_prompt_version_get.py +214 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/get_agentic_prompt_by_tag_api_v1_tasks_task_id_prompts_prompt_name_versions_tags_tag_get.py +206 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/get_all_agentic_prompt_versions_api_v1_tasks_task_id_prompts_prompt_name_versions_get.py +417 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/get_all_agentic_prompts_api_v1_tasks_task_id_prompts_get.py +373 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/get_unsaved_prompt_variables_list_api_v1_prompt_variables_post.py +199 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/render_saved_agentic_prompt_api_v1_tasks_task_id_prompts_prompt_name_versions_prompt_version_renders_post.py +246 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/render_unsaved_agentic_prompt_api_v1_prompt_renders_post.py +195 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/run_agentic_prompt_api_v1_completions_post.py +195 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/run_saved_agentic_prompt_api_v1_tasks_task_id_prompts_prompt_name_versions_prompt_version_completions_post.py +242 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/save_agentic_prompt_api_v1_tasks_task_id_prompts_prompt_name_post.py +214 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/attach_notebook_to_rag_experiment_api_v1_rag_experiments_experiment_id_notebook_patch.py +200 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/create_rag_experiment_api_v1_tasks_task_id_rag_experiments_post.py +201 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/delete_rag_experiment_api_v1_rag_experiments_experiment_id_delete.py +183 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/get_rag_config_results_api_v1_rag_experiments_experiment_id_rag_configs_rag_config_key_results_get.py +269 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/get_rag_experiment_api_v1_rag_experiments_experiment_id_get.py +179 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/get_rag_experiment_test_cases_api_v1_rag_experiments_experiment_id_test_cases_get.py +248 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/list_rag_experiments_api_v1_tasks_task_id_rag_experiments_get.py +283 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/create_rag_notebook_api_v1_tasks_task_id_rag_notebooks_post.py +201 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/delete_rag_notebook_api_v1_rag_notebooks_notebook_id_delete.py +183 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/get_rag_notebook_api_v1_rag_notebooks_notebook_id_get.py +179 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/get_rag_notebook_history_api_v1_rag_notebooks_notebook_id_history_get.py +240 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/get_rag_notebook_state_api_v1_rag_notebooks_notebook_id_state_get.py +179 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/list_rag_notebooks_api_v1_tasks_task_id_rag_notebooks_get.py +269 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/set_rag_notebook_state_api_v1_rag_notebooks_notebook_id_state_put.py +200 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/update_rag_notebook_api_v1_rag_notebooks_notebook_id_put.py +200 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/create_rag_provider_api_v1_tasks_task_id_rag_providers_post.py +212 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/delete_rag_provider_api_v1_rag_providers_provider_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/execute_hybrid_search_api_v1_rag_providers_provider_id_hybrid_search_post.py +213 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/execute_keyword_search_api_v1_rag_providers_provider_id_keyword_search_post.py +213 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/execute_similarity_text_search_api_v1_rag_providers_provider_id_similarity_text_search_post.py +213 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/get_rag_provider_api_v1_rag_providers_provider_id_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/get_rag_providers_api_v1_tasks_task_id_rag_providers_get.py +323 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/list_rag_provider_collections_api_v1_rag_providers_provider_id_collections_get.py +192 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/test_rag_provider_connection_api_v1_tasks_task_id_rag_providers_test_connection_post.py +212 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/update_rag_provider_api_v1_rag_providers_provider_id_patch.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/create_rag_search_settings.py +208 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/create_rag_search_settings_version.py +213 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/delete_rag_search_setting.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/delete_rag_search_setting_version.py +197 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting_configuration_versions_api_v1_rag_search_settings_setting_configuration_id_versions_get.py +305 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting_version.py +201 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting_version_by_tag.py +201 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_task_rag_search_settings_api_v1_tasks_task_id_rag_search_settings_get.py +304 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/update_rag_search_settings_api_v1_rag_search_settings_setting_configuration_id_patch.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/update_rag_search_settings_version_api_v1_rag_search_settings_setting_configuration_id_versions_version_number_patch.py +222 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/archive_default_rule_api_v2_default_rules_rule_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/create_default_rule_api_v2_default_rules_post.py +214 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/get_default_rules_api_v2_default_rules_get.py +163 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/search_rules_api_v2_rules_search_post.py +255 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/secrets/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/secrets/rotate_secrets_api_v1_secrets_rotation_post.py +122 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/sessions/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/sessions/compute_session_metrics_api_v1_traces_sessions_session_id_metrics_get.py +252 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/sessions/get_session_traces_api_v1_traces_sessions_session_id_get.py +252 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/sessions/list_sessions_metadata_api_v1_traces_sessions_get.py +319 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/compute_span_metrics_api_v1_traces_spans_span_id_metrics_get.py +187 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/compute_span_metrics_v1_span_span_id_metrics_get.py +187 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/get_span_by_id_api_v1_traces_spans_span_id_get.py +191 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/get_unregistered_root_spans_api_v1_traces_spans_unregistered_get.py +285 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/list_spans_metadata_api_v1_traces_spans_get.py +822 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/query_spans_by_type_v1_spans_query_get.py +335 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/query_spans_v1_traces_query_get.py +818 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/query_spans_with_metrics_v1_traces_metrics_get.py +818 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/task_based_validation/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/task_based_validation/validate_prompt_endpoint_api_v2_tasks_task_id_validate_prompt_post.py +221 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/task_based_validation/validate_response_endpoint_api_v2_tasks_task_id_validate_response_inference_id_post.py +238 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/archive_task_api_v2_tasks_task_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/archive_task_metric_api_v2_tasks_task_id_metrics_metric_id_delete.py +197 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/archive_task_rule_api_v2_tasks_task_id_rules_rule_id_delete.py +197 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/create_task_api_v2_tasks_post.py +199 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/create_task_metric_api_v2_tasks_task_id_metrics_post.py +212 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/create_task_rule_api_v2_tasks_task_id_rules_post.py +220 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/get_all_tasks_api_v2_tasks_get.py +163 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/get_task_api_v2_tasks_task_id_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/redirect_to_tasks_api_v2_task_post.py +108 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/search_tasks_api_v2_tasks_search_post.py +255 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/update_task_metric_api_v2_tasks_task_id_metrics_metric_id_patch.py +222 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/update_task_rules_api_v2_tasks_task_id_rules_rule_id_patch.py +222 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/annotate_trace_api_v1_traces_trace_id_annotations_post.py +208 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/compute_trace_metrics_api_v1_traces_trace_id_metrics_get.py +191 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/delete_annotation_from_trace_api_v1_traces_trace_id_annotations_delete.py +183 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/get_annotation_by_id_api_v1_traces_annotations_annotation_id_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/get_trace_by_id_api_v1_traces_trace_id_get.py +191 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/list_annotations_for_trace_api_v1_traces_trace_id_annotations_get.py +379 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/list_traces_metadata_api_v1_traces_get.py +841 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/receive_traces_api_v1_traces_post.py +193 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/receive_traces_v1_traces_post.py +193 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/create_transform_for_task_api_v1_tasks_task_id_traces_transforms_post.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/delete_transform_api_v1_traces_transforms_transform_id_delete.py +184 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/execute_trace_transform_extraction_api_v1_traces_trace_id_transforms_transform_id_extractions_post.py +201 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/get_transform_api_v1_traces_transforms_transform_id_get.py +188 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/list_transforms_for_task_api_v1_tasks_task_id_traces_transforms_get.py +317 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/update_transform_api_v1_traces_transforms_transform_id_patch.py +209 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/usage/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/usage/get_token_usage_api_v2_usage_tokens_get.py +256 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/check_user_permission_users_permissions_check_get.py +221 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/create_user_users_post.py +195 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/delete_user_users_user_id_delete.py +183 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/reset_user_password_users_user_id_reset_password_post.py +204 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/search_users_users_get.py +264 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/users/__init__.py +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/users/get_user_details_api_v1_traces_users_user_id_get.py +211 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/users/list_users_metadata_api_v1_traces_users_get.py +303 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/client.py +271 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/errors.py +14 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/py.typed +1 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/pyproject.toml +26 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/types.py +53 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/api_client.py +312 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/arthur_client.py +205 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/context.py +72 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/instrumentors.py +432 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/telemetry.py +197 -0
- arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/tracer.py +211 -0
|
@@ -0,0 +1,638 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: arthur-observability-sdk
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Simplified OpenInference tracing for Arthur observability
|
|
5
|
+
Author: Arthur
|
|
6
|
+
Author-email: engineering@arthur.ai
|
|
7
|
+
Requires-Python: >=3.8
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Provides-Extra: all
|
|
16
|
+
Provides-Extra: anthropic
|
|
17
|
+
Provides-Extra: bedrock
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Provides-Extra: groq
|
|
20
|
+
Provides-Extra: langchain
|
|
21
|
+
Provides-Extra: llama-index
|
|
22
|
+
Provides-Extra: mistralai
|
|
23
|
+
Provides-Extra: openai
|
|
24
|
+
Provides-Extra: vertexai
|
|
25
|
+
Requires-Dist: black (>=23.0.0) ; extra == "dev"
|
|
26
|
+
Requires-Dist: mypy (>=1.0.0) ; extra == "dev"
|
|
27
|
+
Requires-Dist: openapi-python-client (>=0.21.0) ; extra == "dev"
|
|
28
|
+
Requires-Dist: openinference-instrumentation (>=0.1.0)
|
|
29
|
+
Requires-Dist: openinference-instrumentation-anthropic (>=0.1.0) ; extra == "all"
|
|
30
|
+
Requires-Dist: openinference-instrumentation-anthropic (>=0.1.0) ; extra == "anthropic"
|
|
31
|
+
Requires-Dist: openinference-instrumentation-bedrock (>=0.1.0) ; extra == "all"
|
|
32
|
+
Requires-Dist: openinference-instrumentation-bedrock (>=0.1.0) ; extra == "bedrock"
|
|
33
|
+
Requires-Dist: openinference-instrumentation-groq (>=0.1.0) ; extra == "all"
|
|
34
|
+
Requires-Dist: openinference-instrumentation-groq (>=0.1.0) ; extra == "groq"
|
|
35
|
+
Requires-Dist: openinference-instrumentation-langchain (>=0.1.0) ; extra == "all"
|
|
36
|
+
Requires-Dist: openinference-instrumentation-langchain (>=0.1.0) ; extra == "langchain"
|
|
37
|
+
Requires-Dist: openinference-instrumentation-llama-index (>=0.1.0) ; extra == "all"
|
|
38
|
+
Requires-Dist: openinference-instrumentation-llama-index (>=0.1.0) ; extra == "llama-index"
|
|
39
|
+
Requires-Dist: openinference-instrumentation-mistralai (>=0.1.0) ; extra == "all"
|
|
40
|
+
Requires-Dist: openinference-instrumentation-mistralai (>=0.1.0) ; extra == "mistralai"
|
|
41
|
+
Requires-Dist: openinference-instrumentation-openai (>=0.1.0) ; extra == "all"
|
|
42
|
+
Requires-Dist: openinference-instrumentation-openai (>=0.1.0) ; extra == "openai"
|
|
43
|
+
Requires-Dist: openinference-instrumentation-vertexai (>=0.1.0) ; extra == "all"
|
|
44
|
+
Requires-Dist: openinference-instrumentation-vertexai (>=0.1.0) ; extra == "vertexai"
|
|
45
|
+
Requires-Dist: opentelemetry-api (>=1.20.0)
|
|
46
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.20.0)
|
|
47
|
+
Requires-Dist: opentelemetry-sdk (>=1.20.0)
|
|
48
|
+
Requires-Dist: pytest (>=7.0.0) ; extra == "dev"
|
|
49
|
+
Requires-Dist: pytest-mock (>=3.10.0) ; extra == "dev"
|
|
50
|
+
Requires-Dist: ruff (>=0.1.0) ; extra == "dev"
|
|
51
|
+
Description-Content-Type: text/markdown
|
|
52
|
+
|
|
53
|
+
# Arthur Observability SDK
|
|
54
|
+
|
|
55
|
+
> ⚠️ **Alpha Release**: This SDK is currently in alpha. PyPI packages will be released soon. For now, please install directly from the monorepo.
|
|
56
|
+
|
|
57
|
+
The official Python SDK for Arthur platform APIs and [OpenInference](https://github.com/Arize-ai/openinference) tracing. This SDK provides a unified interface for both Arthur's REST API and comprehensive observability, enabling you to manage prompts, run experiments, and monitor your LLM-powered applications in production.
|
|
58
|
+
|
|
59
|
+
This SDK is part of the [Arthur Engine](https://github.com/arthur-ai/arthur-engine) monorepo.
|
|
60
|
+
|
|
61
|
+
## Features
|
|
62
|
+
|
|
63
|
+
- **Unified Client**: Single initialization for both API access and telemetry
|
|
64
|
+
- **Prompt Management API**: Fetch, render, and manage prompts programmatically
|
|
65
|
+
- **Automatic Instrumentation**: Built-in span creation for prompt fetching with OpenInference semantic conventions
|
|
66
|
+
- **Multi-Framework Support**: Auto-instrumentation for OpenAI, LangChain, Anthropic, LlamaIndex, and more
|
|
67
|
+
- **Session & User Tracking**: Track conversations and user interactions across your application
|
|
68
|
+
- **Lightweight & Flexible**: Only install dependencies for the frameworks you actually use
|
|
69
|
+
- **Production-Ready**: Battle-tested OpenTelemetry foundation with configurable span processors
|
|
70
|
+
|
|
71
|
+
## Installation
|
|
72
|
+
|
|
73
|
+
### Prerequisites
|
|
74
|
+
|
|
75
|
+
- Python 3.8 or higher
|
|
76
|
+
- Git
|
|
77
|
+
|
|
78
|
+
### Install from Monorepo
|
|
79
|
+
|
|
80
|
+
Since this SDK is currently in alpha and not yet published to PyPI, you need to install it directly from the Arthur Engine monorepo:
|
|
81
|
+
|
|
82
|
+
#### Core SDK (required)
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Clone the monorepo
|
|
86
|
+
git clone https://github.com/arthur-ai/arthur-engine.git
|
|
87
|
+
cd arthur-engine/arthur-sdk
|
|
88
|
+
|
|
89
|
+
# Install the core SDK
|
|
90
|
+
pip install -e .
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### With Framework Support
|
|
94
|
+
|
|
95
|
+
Install with optional dependencies for the frameworks you use:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# After navigating to arthur-engine/arthur-sdk, install with extras
|
|
99
|
+
|
|
100
|
+
# OpenAI
|
|
101
|
+
pip install -e ".[openai]"
|
|
102
|
+
|
|
103
|
+
# LangChain
|
|
104
|
+
pip install -e ".[langchain]"
|
|
105
|
+
|
|
106
|
+
# Anthropic
|
|
107
|
+
pip install -e ".[anthropic]"
|
|
108
|
+
|
|
109
|
+
# LlamaIndex
|
|
110
|
+
pip install -e ".[llama-index]"
|
|
111
|
+
|
|
112
|
+
# Multiple frameworks
|
|
113
|
+
pip install -e ".[openai,langchain]"
|
|
114
|
+
|
|
115
|
+
# All supported frameworks
|
|
116
|
+
pip install -e ".[all]"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Alternative: Install directly via pip from GitHub
|
|
120
|
+
|
|
121
|
+
You can also install directly from GitHub without cloning:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Core SDK
|
|
125
|
+
pip install "git+https://github.com/arthur-ai/arthur-engine.git#subdirectory=arthur-sdk"
|
|
126
|
+
|
|
127
|
+
# With framework support
|
|
128
|
+
pip install "arthur-observability-sdk[langchain] @ git+https://github.com/arthur-ai/arthur-engine.git#subdirectory=arthur-sdk"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Supported Frameworks
|
|
132
|
+
|
|
133
|
+
- OpenAI (`[openai]`)
|
|
134
|
+
- LangChain (`[langchain]`)
|
|
135
|
+
- Anthropic (`[anthropic]`)
|
|
136
|
+
- LlamaIndex (`[llama-index]`)
|
|
137
|
+
- AWS Bedrock (`[bedrock]`)
|
|
138
|
+
- Google VertexAI (`[vertexai]`)
|
|
139
|
+
- MistralAI (`[mistralai]`)
|
|
140
|
+
- Groq (`[groq]`)
|
|
141
|
+
|
|
142
|
+
## Quick Start
|
|
143
|
+
|
|
144
|
+
Here's a complete example using the unified ArthurClient:
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
import os
|
|
148
|
+
from uuid import UUID
|
|
149
|
+
from arthur_observability_sdk import ArthurClient, context, instrument_openai
|
|
150
|
+
|
|
151
|
+
# 1. Initialize Arthur client (handles both API and telemetry)
|
|
152
|
+
arthur = ArthurClient(
|
|
153
|
+
task_id=os.getenv("ARTHUR_TASK_ID"),
|
|
154
|
+
api_key=os.getenv("ARTHUR_API_KEY"),
|
|
155
|
+
base_url=os.getenv("ARTHUR_BASE_URL", "https://app.arthur.ai"),
|
|
156
|
+
service_name="my-recommendation-service"
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
# 2. Fetch and render a prompt (automatically creates a span)
|
|
160
|
+
prompt = arthur.client.prompts.render_saved_agentic_prompt(
|
|
161
|
+
task_id=UUID(os.getenv("ARTHUR_TASK_ID")),
|
|
162
|
+
prompt_name="customer_email_template",
|
|
163
|
+
prompt_version="latest",
|
|
164
|
+
variables={
|
|
165
|
+
"customer_name": "Alice",
|
|
166
|
+
"order_id": "12345"
|
|
167
|
+
}
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
print(f"Rendered prompt: {prompt}")
|
|
171
|
+
|
|
172
|
+
# 3. Auto-instrument your framework (optional)
|
|
173
|
+
instrument_openai()
|
|
174
|
+
|
|
175
|
+
# 4. Add context for session/user tracking
|
|
176
|
+
with context(session_id="session-123", user_id="user-456"):
|
|
177
|
+
# Your application code here
|
|
178
|
+
import openai
|
|
179
|
+
response = openai.chat.completions.create(
|
|
180
|
+
model="gpt-4",
|
|
181
|
+
messages=[{"role": "user", "content": "Hello!"}]
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
# 5. Cleanup when done
|
|
185
|
+
arthur.shutdown()
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Core Concepts
|
|
189
|
+
|
|
190
|
+
### ArthurClient
|
|
191
|
+
|
|
192
|
+
The `ArthurClient` is the main entry point for the SDK. It provides:
|
|
193
|
+
- Access to Arthur platform APIs via `arthur.client.*`
|
|
194
|
+
- Automatic telemetry/tracing configuration
|
|
195
|
+
- Unified credential management
|
|
196
|
+
|
|
197
|
+
```python
|
|
198
|
+
from arthur_observability_sdk import ArthurClient
|
|
199
|
+
|
|
200
|
+
arthur = ArthurClient(
|
|
201
|
+
task_id="your-task-id",
|
|
202
|
+
api_key="your-api-key",
|
|
203
|
+
base_url="https://app.arthur.ai", # optional
|
|
204
|
+
service_name="my-service", # optional, auto-derived if not provided
|
|
205
|
+
enable_telemetry=True, # optional, default True
|
|
206
|
+
use_simple_processor=False # optional, for testing/debugging
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### API Access
|
|
211
|
+
|
|
212
|
+
All Arthur platform APIs are accessible through `arthur.client`:
|
|
213
|
+
|
|
214
|
+
#### Prompts API
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
from uuid import UUID
|
|
218
|
+
|
|
219
|
+
# Render a prompt with variables (creates a span automatically)
|
|
220
|
+
prompt = arthur.client.prompts.render_saved_agentic_prompt(
|
|
221
|
+
task_id=UUID("your-task-id"),
|
|
222
|
+
prompt_name="my_prompt",
|
|
223
|
+
prompt_version="latest", # or version number, tag, datetime
|
|
224
|
+
variables={"var1": "value1", "var2": "value2"}
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
# Access other generated API endpoints via arthur.client.base_client
|
|
228
|
+
# (All endpoints are available, more high-level wrappers coming soon)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
The `render_saved_agentic_prompt` method automatically creates an OpenInference span with:
|
|
232
|
+
- **Span name**: `"template prompt: {prompt_name}"`
|
|
233
|
+
- **Input**: JSON of variables and metadata
|
|
234
|
+
- **Output**: Rendered prompt messages
|
|
235
|
+
- **Metadata**: `{"type": "prompt_templating", "source": "arthur"}`
|
|
236
|
+
|
|
237
|
+
### Telemetry Configuration
|
|
238
|
+
|
|
239
|
+
Access the telemetry handler for advanced configuration:
|
|
240
|
+
|
|
241
|
+
```python
|
|
242
|
+
# Check if telemetry is active
|
|
243
|
+
if arthur.telemetry.is_initialized():
|
|
244
|
+
print("Telemetry is running")
|
|
245
|
+
|
|
246
|
+
# Manually shutdown telemetry
|
|
247
|
+
arthur.telemetry.shutdown()
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Context Manager
|
|
251
|
+
|
|
252
|
+
Use the `context` function to add session, user, and metadata to all spans within a scope:
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
from arthur_observability_sdk import context
|
|
256
|
+
|
|
257
|
+
with context(
|
|
258
|
+
session_id="conversation-123",
|
|
259
|
+
user_id="user-456",
|
|
260
|
+
metadata={"environment": "production"},
|
|
261
|
+
tags=["important", "customer-facing"]
|
|
262
|
+
):
|
|
263
|
+
# All spans created here will inherit these attributes
|
|
264
|
+
result = your_application_logic()
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Available context attributes:
|
|
268
|
+
- `session_id`: Track conversation threads
|
|
269
|
+
- `user_id`: Associate actions with users
|
|
270
|
+
- `metadata`: Dict of custom metadata
|
|
271
|
+
- `tags`: List of tags for filtering
|
|
272
|
+
- Any additional `**kwargs` are added as custom attributes
|
|
273
|
+
|
|
274
|
+
## Framework Instrumentation
|
|
275
|
+
|
|
276
|
+
Auto-instrument your AI/LLM frameworks to capture detailed traces:
|
|
277
|
+
|
|
278
|
+
### OpenAI
|
|
279
|
+
|
|
280
|
+
```python
|
|
281
|
+
from arthur_observability_sdk import ArthurClient, instrument_openai
|
|
282
|
+
import openai
|
|
283
|
+
|
|
284
|
+
arthur = ArthurClient(...)
|
|
285
|
+
instrument_openai()
|
|
286
|
+
|
|
287
|
+
# All OpenAI calls are now automatically traced
|
|
288
|
+
response = openai.chat.completions.create(
|
|
289
|
+
model="gpt-4",
|
|
290
|
+
messages=[{"role": "user", "content": "Hello!"}]
|
|
291
|
+
)
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### LangChain
|
|
295
|
+
|
|
296
|
+
```python
|
|
297
|
+
from arthur_observability_sdk import ArthurClient, instrument_langchain
|
|
298
|
+
from langchain_openai import ChatOpenAI
|
|
299
|
+
from langchain_core.messages import HumanMessage
|
|
300
|
+
|
|
301
|
+
arthur = ArthurClient(...)
|
|
302
|
+
instrument_langchain()
|
|
303
|
+
|
|
304
|
+
# All LangChain operations are now automatically traced
|
|
305
|
+
model = ChatOpenAI(model="gpt-4")
|
|
306
|
+
response = model.invoke([HumanMessage(content="Hello!")])
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Anthropic
|
|
310
|
+
|
|
311
|
+
```python
|
|
312
|
+
from arthur_observability_sdk import ArthurClient, instrument_anthropic
|
|
313
|
+
import anthropic
|
|
314
|
+
|
|
315
|
+
arthur = ArthurClient(...)
|
|
316
|
+
instrument_anthropic()
|
|
317
|
+
|
|
318
|
+
# All Anthropic calls are now automatically traced
|
|
319
|
+
client = anthropic.Anthropic()
|
|
320
|
+
response = client.messages.create(
|
|
321
|
+
model="claude-3-sonnet-20240229",
|
|
322
|
+
messages=[{"role": "user", "content": "Hello!"}]
|
|
323
|
+
)
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### LlamaIndex
|
|
327
|
+
|
|
328
|
+
```python
|
|
329
|
+
from arthur_observability_sdk import ArthurClient, instrument_llama_index
|
|
330
|
+
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
|
|
331
|
+
|
|
332
|
+
arthur = ArthurClient(...)
|
|
333
|
+
instrument_llama_index()
|
|
334
|
+
|
|
335
|
+
# All LlamaIndex operations are now automatically traced
|
|
336
|
+
documents = SimpleDirectoryReader("./data").load_data()
|
|
337
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
338
|
+
query_engine = index.as_query_engine()
|
|
339
|
+
response = query_engine.query("What is the meaning of life?")
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Multiple Frameworks
|
|
343
|
+
|
|
344
|
+
```python
|
|
345
|
+
from arthur_observability_sdk import ArthurClient, instrument_all
|
|
346
|
+
|
|
347
|
+
arthur = ArthurClient(...)
|
|
348
|
+
|
|
349
|
+
# Auto-instrument all installed frameworks at once
|
|
350
|
+
instrument_all()
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Or selectively:
|
|
354
|
+
|
|
355
|
+
```python
|
|
356
|
+
from arthur_observability_sdk import (
|
|
357
|
+
ArthurClient,
|
|
358
|
+
instrument_openai,
|
|
359
|
+
instrument_langchain,
|
|
360
|
+
instrument_anthropic
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
arthur = ArthurClient(...)
|
|
364
|
+
instrument_openai()
|
|
365
|
+
instrument_langchain()
|
|
366
|
+
instrument_anthropic()
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
## Complete Examples
|
|
370
|
+
|
|
371
|
+
### LangChain Agent with Session Tracking
|
|
372
|
+
|
|
373
|
+
```python
|
|
374
|
+
import os
|
|
375
|
+
from arthur_observability_sdk import ArthurClient, context, instrument_langchain
|
|
376
|
+
from langchain_openai import ChatOpenAI
|
|
377
|
+
from langchain_core.messages import HumanMessage, AIMessage
|
|
378
|
+
|
|
379
|
+
# Initialize
|
|
380
|
+
arthur = ArthurClient(
|
|
381
|
+
task_id=os.getenv("ARTHUR_TASK_ID"),
|
|
382
|
+
api_key=os.getenv("ARTHUR_API_KEY"),
|
|
383
|
+
service_name="langchain-agent"
|
|
384
|
+
)
|
|
385
|
+
|
|
386
|
+
instrument_langchain()
|
|
387
|
+
|
|
388
|
+
# Create agent
|
|
389
|
+
model = ChatOpenAI(model="gpt-4")
|
|
390
|
+
|
|
391
|
+
# Simulate a conversation with session tracking
|
|
392
|
+
session_id = "conversation-abc-123"
|
|
393
|
+
user_id = "user-456"
|
|
394
|
+
|
|
395
|
+
with context(session_id=session_id, user_id=user_id, tags=["production"]):
|
|
396
|
+
# First turn
|
|
397
|
+
response1 = model.invoke([
|
|
398
|
+
HumanMessage(content="What's the capital of France?")
|
|
399
|
+
])
|
|
400
|
+
print(f"AI: {response1.content}")
|
|
401
|
+
|
|
402
|
+
# Second turn (same session)
|
|
403
|
+
response2 = model.invoke([
|
|
404
|
+
HumanMessage(content="What's the capital of France?"),
|
|
405
|
+
AIMessage(content=response1.content),
|
|
406
|
+
HumanMessage(content="What's its population?")
|
|
407
|
+
])
|
|
408
|
+
print(f"AI: {response2.content}")
|
|
409
|
+
|
|
410
|
+
arthur.shutdown()
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Prompt Fetching + OpenAI
|
|
414
|
+
|
|
415
|
+
```python
|
|
416
|
+
import os
|
|
417
|
+
from uuid import UUID
|
|
418
|
+
from arthur_observability_sdk import ArthurClient, context, instrument_openai
|
|
419
|
+
import openai
|
|
420
|
+
|
|
421
|
+
# Initialize
|
|
422
|
+
arthur = ArthurClient(
|
|
423
|
+
task_id=os.getenv("ARTHUR_TASK_ID"),
|
|
424
|
+
api_key=os.getenv("ARTHUR_API_KEY"),
|
|
425
|
+
)
|
|
426
|
+
|
|
427
|
+
instrument_openai()
|
|
428
|
+
|
|
429
|
+
# Fetch and render a prompt
|
|
430
|
+
task_id = UUID(os.getenv("ARTHUR_TASK_ID"))
|
|
431
|
+
prompt = arthur.client.prompts.render_saved_agentic_prompt(
|
|
432
|
+
task_id=task_id,
|
|
433
|
+
prompt_name="customer_greeting",
|
|
434
|
+
prompt_version="latest",
|
|
435
|
+
variables={"customer_name": "Alice", "product": "Widget Pro"}
|
|
436
|
+
)
|
|
437
|
+
|
|
438
|
+
# Use the rendered prompt with OpenAI
|
|
439
|
+
with context(session_id="greeting-flow", user_id="alice@example.com"):
|
|
440
|
+
response = openai.chat.completions.create(
|
|
441
|
+
model=prompt.model_name,
|
|
442
|
+
messages=prompt.messages
|
|
443
|
+
)
|
|
444
|
+
print(response.choices[0].message.content)
|
|
445
|
+
|
|
446
|
+
arthur.shutdown()
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
### Disabling Telemetry (API-only mode)
|
|
450
|
+
|
|
451
|
+
```python
|
|
452
|
+
from arthur_observability_sdk import ArthurClient
|
|
453
|
+
from uuid import UUID
|
|
454
|
+
|
|
455
|
+
# Initialize without telemetry
|
|
456
|
+
arthur = ArthurClient(
|
|
457
|
+
task_id="your-task-id",
|
|
458
|
+
api_key="your-api-key",
|
|
459
|
+
enable_telemetry=False # No spans will be created
|
|
460
|
+
)
|
|
461
|
+
|
|
462
|
+
# API calls work normally, but no tracing occurs
|
|
463
|
+
prompt = arthur.client.prompts.render_saved_agentic_prompt(
|
|
464
|
+
task_id=UUID("your-task-id"),
|
|
465
|
+
prompt_name="my_prompt",
|
|
466
|
+
prompt_version="latest",
|
|
467
|
+
variables={"key": "value"}
|
|
468
|
+
)
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### Context Manager for Automatic Cleanup
|
|
472
|
+
|
|
473
|
+
```python
|
|
474
|
+
from arthur_observability_sdk import ArthurClient, instrument_openai
|
|
475
|
+
import openai
|
|
476
|
+
|
|
477
|
+
with ArthurClient(
|
|
478
|
+
task_id="your-task-id",
|
|
479
|
+
api_key="your-api-key"
|
|
480
|
+
) as arthur:
|
|
481
|
+
instrument_openai()
|
|
482
|
+
|
|
483
|
+
# Your application code
|
|
484
|
+
response = openai.chat.completions.create(
|
|
485
|
+
model="gpt-4",
|
|
486
|
+
messages=[{"role": "user", "content": "Hello!"}]
|
|
487
|
+
)
|
|
488
|
+
|
|
489
|
+
# arthur.shutdown() called automatically when exiting context
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
## Environment Variables
|
|
493
|
+
|
|
494
|
+
The SDK supports configuration via environment variables for convenience:
|
|
495
|
+
|
|
496
|
+
```bash
|
|
497
|
+
export ARTHUR_TASK_ID="your-task-id"
|
|
498
|
+
export ARTHUR_API_KEY="your-api-key"
|
|
499
|
+
export ARTHUR_BASE_URL="https://app.arthur.ai" # optional
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
Then initialize without parameters:
|
|
503
|
+
|
|
504
|
+
```python
|
|
505
|
+
from arthur_observability_sdk import ArthurClient
|
|
506
|
+
|
|
507
|
+
# Credentials loaded from environment
|
|
508
|
+
arthur = ArthurClient()
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
## Troubleshooting
|
|
512
|
+
|
|
513
|
+
### Verify Telemetry is Active
|
|
514
|
+
|
|
515
|
+
```python
|
|
516
|
+
arthur = ArthurClient(...)
|
|
517
|
+
|
|
518
|
+
if arthur.telemetry.is_initialized():
|
|
519
|
+
print("✓ Telemetry is active")
|
|
520
|
+
else:
|
|
521
|
+
print("✗ Telemetry is not active")
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### Use Simple Processor for Testing
|
|
525
|
+
|
|
526
|
+
For immediate span export (useful in testing/debugging):
|
|
527
|
+
|
|
528
|
+
```python
|
|
529
|
+
arthur = ArthurClient(
|
|
530
|
+
task_id="...",
|
|
531
|
+
api_key="...",
|
|
532
|
+
use_simple_processor=True # Spans export immediately, not batched
|
|
533
|
+
)
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
### Manual Telemetry Shutdown
|
|
537
|
+
|
|
538
|
+
```python
|
|
539
|
+
# Ensure all spans are flushed before exit
|
|
540
|
+
arthur.telemetry.shutdown()
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
## API Reference
|
|
544
|
+
|
|
545
|
+
### ArthurClient
|
|
546
|
+
|
|
547
|
+
**Parameters:**
|
|
548
|
+
- `task_id` (str, optional): Arthur task ID. Falls back to `ARTHUR_TASK_ID` env var.
|
|
549
|
+
- `api_key` (str, optional): Arthur API key. Falls back to `ARTHUR_API_KEY` env var.
|
|
550
|
+
- `base_url` (str, optional): Arthur base URL. Falls back to `ARTHUR_BASE_URL` env var. Default: `"https://app.arthur.ai"`.
|
|
551
|
+
- `service_name` (str, optional): Service name for traces. Auto-derived from script name if not provided.
|
|
552
|
+
- `enable_telemetry` (bool, optional): Whether to enable tracing. Default: `True`.
|
|
553
|
+
- `use_simple_processor` (bool, optional): Use SimpleSpanProcessor for immediate export. Default: `False`.
|
|
554
|
+
- `resource_attributes` (dict, optional): Additional resource attributes for traces.
|
|
555
|
+
|
|
556
|
+
**Attributes:**
|
|
557
|
+
- `client`: Access to Arthur API client
|
|
558
|
+
- `telemetry`: Access to TelemetryHandler class
|
|
559
|
+
- `task_id`: The configured Arthur task ID
|
|
560
|
+
|
|
561
|
+
**Methods:**
|
|
562
|
+
- `shutdown()`: Shutdown telemetry and HTTP client
|
|
563
|
+
|
|
564
|
+
### context()
|
|
565
|
+
|
|
566
|
+
**Parameters:**
|
|
567
|
+
- `session_id` (str, optional): Session/conversation ID
|
|
568
|
+
- `user_id` (str, optional): User identifier
|
|
569
|
+
- `metadata` (dict, optional): Custom metadata dictionary
|
|
570
|
+
- `tags` (list[str], optional): List of tags
|
|
571
|
+
- `**kwargs`: Additional custom attributes
|
|
572
|
+
|
|
573
|
+
### Instrumentors
|
|
574
|
+
|
|
575
|
+
All instrumentor functions return an instrumentor instance that can be used to uninstrument later:
|
|
576
|
+
|
|
577
|
+
```python
|
|
578
|
+
from arthur_observability_sdk import instrument_openai
|
|
579
|
+
|
|
580
|
+
instrumentor = instrument_openai()
|
|
581
|
+
|
|
582
|
+
# Your code...
|
|
583
|
+
|
|
584
|
+
# Uninstrument when done
|
|
585
|
+
instrumentor.uninstrument()
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
Available instrumentors:
|
|
589
|
+
- `instrument_openai()`
|
|
590
|
+
- `instrument_langchain()`
|
|
591
|
+
- `instrument_anthropic()`
|
|
592
|
+
- `instrument_llama_index()`
|
|
593
|
+
- `instrument_bedrock()`
|
|
594
|
+
- `instrument_vertexai()`
|
|
595
|
+
- `instrument_mistralai()`
|
|
596
|
+
- `instrument_groq()`
|
|
597
|
+
- `instrument_all()`
|
|
598
|
+
|
|
599
|
+
## Generating API Client
|
|
600
|
+
|
|
601
|
+
The SDK uses `openapi-python-client` to generate Python bindings from the Arthur GenAI Engine's OpenAPI specification. To regenerate the client after API updates:
|
|
602
|
+
|
|
603
|
+
```bash
|
|
604
|
+
# From the arthur-sdk directory
|
|
605
|
+
cd arthur-sdk
|
|
606
|
+
./scripts/generate_client.sh
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
This script will:
|
|
610
|
+
1. Read the OpenAPI spec from `../genai-engine/staging.openapi.json`
|
|
611
|
+
2. Generate the client code in `src/arthur_observability_sdk/_generated/`
|
|
612
|
+
|
|
613
|
+
The client generation is configured via [scripts/openapi-generator-config.yaml](scripts/openapi-generator-config.yaml).
|
|
614
|
+
|
|
615
|
+
## Contributing
|
|
616
|
+
|
|
617
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
618
|
+
|
|
619
|
+
## License
|
|
620
|
+
|
|
621
|
+
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
|
|
622
|
+
|
|
623
|
+
## Support
|
|
624
|
+
|
|
625
|
+
For questions, issues, or feature requests:
|
|
626
|
+
- Open an issue on [GitHub](https://github.com/arthur-ai/arthur-engine/issues)
|
|
627
|
+
- Contact Arthur support
|
|
628
|
+
|
|
629
|
+
## Changelog
|
|
630
|
+
|
|
631
|
+
### v0.1.0 (Alpha)
|
|
632
|
+
- Initial alpha release
|
|
633
|
+
- Unified ArthurClient for API and telemetry
|
|
634
|
+
- Prompt management API with automatic instrumentation
|
|
635
|
+
- Multi-framework support for OpenAI, LangChain, Anthropic, LlamaIndex, and more
|
|
636
|
+
- Session and user tracking via context manager
|
|
637
|
+
- OpenTelemetry-based tracing with OTLP export
|
|
638
|
+
|