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.
Files changed (212) hide show
  1. arthur_observability_sdk-0.0.1/PKG-INFO +638 -0
  2. arthur_observability_sdk-0.0.1/README.md +585 -0
  3. arthur_observability_sdk-0.0.1/pyproject.toml +54 -0
  4. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/__init__.py +69 -0
  5. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/.gitignore +23 -0
  6. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/README.md +124 -0
  7. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/__init__.py +8 -0
  8. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/__init__.py +1 -0
  9. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/__init__.py +1 -0
  10. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/api_keys/create_api_key_auth_api_keys_post.py +203 -0
  11. 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
  12. 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
  13. 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
  14. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/__init__.py +1 -0
  15. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/chat_request.py +195 -0
  16. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/delete_file_api_chat_files_file_id_delete.py +184 -0
  17. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_conversations_api_chat_conversations_get.py +211 -0
  18. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_default_task_api_chat_default_task_get.py +158 -0
  19. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/get_files_api_chat_files_get.py +163 -0
  20. 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
  21. 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
  22. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/update_default_task_api_chat_default_task_put.py +195 -0
  23. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/chat/upload_embeddings_file_api_chat_files_post.py +215 -0
  24. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/continuous_evals/__init__.py +1 -0
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/__init__.py +1 -0
  33. 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
  34. 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
  35. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/delete_dataset_api_v2_datasets_dataset_id_delete.py +184 -0
  36. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/get_dataset_api_v2_datasets_dataset_id_get.py +188 -0
  37. 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
  38. 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
  39. 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
  40. 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
  41. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/datasets/update_dataset_api_v2_datasets_dataset_id_patch.py +209 -0
  42. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/default_validation/__init__.py +1 -0
  43. 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
  44. 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
  45. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/feedback/__init__.py +1 -0
  46. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/feedback/post_feedback_api_v2_feedback_inference_id_post.py +209 -0
  47. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/feedback/query_feedback_api_v2_feedback_query_get.py +491 -0
  48. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/inferences/__init__.py +1 -0
  49. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/inferences/query_inferences_api_v2_inferences_query_get.py +510 -0
  50. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/llm_evals/__init__.py +1 -0
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/model_providers/__init__.py +1 -0
  62. 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
  63. 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
  64. 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
  65. 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
  66. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/__init__.py +1 -0
  67. 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
  68. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/delete_notebook_api_v1_notebooks_notebook_id_delete.py +183 -0
  69. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/get_notebook_api_v1_notebooks_notebook_id_get.py +179 -0
  70. 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
  71. 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
  72. 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
  73. 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
  74. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/notebooks/update_notebook_api_v1_notebooks_notebook_id_put.py +200 -0
  75. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompt_experiments/__init__.py +1 -0
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/__init__.py +1 -0
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/prompts/run_agentic_prompt_api_v1_completions_post.py +195 -0
  96. 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
  97. 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
  98. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_experiments/__init__.py +1 -0
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_notebooks/__init__.py +1 -0
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_providers/__init__.py +1 -0
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/__init__.py +1 -0
  127. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/create_rag_search_settings.py +208 -0
  128. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/create_rag_search_settings_version.py +213 -0
  129. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/delete_rag_search_setting.py +184 -0
  130. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/delete_rag_search_setting_version.py +197 -0
  131. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting.py +188 -0
  132. 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
  133. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting_version.py +201 -0
  134. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rag_settings/get_rag_search_setting_version_by_tag.py +201 -0
  135. 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
  136. 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
  137. 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
  138. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/__init__.py +1 -0
  139. 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
  140. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/create_default_rule_api_v2_default_rules_post.py +214 -0
  141. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/get_default_rules_api_v2_default_rules_get.py +163 -0
  142. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/rules/search_rules_api_v2_rules_search_post.py +255 -0
  143. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/secrets/__init__.py +1 -0
  144. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/secrets/rotate_secrets_api_v1_secrets_rotation_post.py +122 -0
  145. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/sessions/__init__.py +1 -0
  146. 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
  147. 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
  148. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/sessions/list_sessions_metadata_api_v1_traces_sessions_get.py +319 -0
  149. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/__init__.py +1 -0
  150. 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
  151. 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
  152. 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
  153. 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
  154. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/list_spans_metadata_api_v1_traces_spans_get.py +822 -0
  155. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/query_spans_by_type_v1_spans_query_get.py +335 -0
  156. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/query_spans_v1_traces_query_get.py +818 -0
  157. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/spans/query_spans_with_metrics_v1_traces_metrics_get.py +818 -0
  158. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/task_based_validation/__init__.py +1 -0
  159. 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
  160. 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
  161. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/__init__.py +1 -0
  162. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/archive_task_api_v2_tasks_task_id_delete.py +184 -0
  163. 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
  164. 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
  165. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/create_task_api_v2_tasks_post.py +199 -0
  166. 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
  167. 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
  168. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/get_all_tasks_api_v2_tasks_get.py +163 -0
  169. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/get_task_api_v2_tasks_task_id_get.py +188 -0
  170. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/redirect_to_tasks_api_v2_task_post.py +108 -0
  171. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/tasks/search_tasks_api_v2_tasks_search_post.py +255 -0
  172. 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
  173. 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
  174. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/__init__.py +1 -0
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. 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
  181. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/list_traces_metadata_api_v1_traces_get.py +841 -0
  182. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/receive_traces_api_v1_traces_post.py +193 -0
  183. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/traces/receive_traces_v1_traces_post.py +193 -0
  184. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/transforms/__init__.py +1 -0
  185. 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
  186. 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
  187. 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
  188. 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
  189. 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
  190. 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
  191. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/usage/__init__.py +1 -0
  192. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/usage/get_token_usage_api_v2_usage_tokens_get.py +256 -0
  193. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/__init__.py +1 -0
  194. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/check_user_permission_users_permissions_check_get.py +221 -0
  195. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/create_user_users_post.py +195 -0
  196. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/delete_user_users_user_id_delete.py +183 -0
  197. 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
  198. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/user_management/search_users_users_get.py +264 -0
  199. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/users/__init__.py +1 -0
  200. 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
  201. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/api/users/list_users_metadata_api_v1_traces_users_get.py +303 -0
  202. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/client.py +271 -0
  203. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/errors.py +14 -0
  204. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/py.typed +1 -0
  205. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/pyproject.toml +26 -0
  206. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/_generated/types.py +53 -0
  207. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/api_client.py +312 -0
  208. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/arthur_client.py +205 -0
  209. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/context.py +72 -0
  210. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/instrumentors.py +432 -0
  211. arthur_observability_sdk-0.0.1/src/arthur_observability_sdk/telemetry.py +197 -0
  212. 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
+