custom-phoenix 13.15.0.dev5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. custom_phoenix-13.15.0.dev5.dist-info/METADATA +288 -0
  2. custom_phoenix-13.15.0.dev5.dist-info/RECORD +510 -0
  3. custom_phoenix-13.15.0.dev5.dist-info/WHEEL +4 -0
  4. custom_phoenix-13.15.0.dev5.dist-info/entry_points.txt +3 -0
  5. custom_phoenix-13.15.0.dev5.dist-info/licenses/IP_NOTICE +5 -0
  6. custom_phoenix-13.15.0.dev5.dist-info/licenses/LICENSE +44 -0
  7. phoenix/__generated__/__init__.py +0 -0
  8. phoenix/__generated__/classification_evaluator_configs/__init__.py +42 -0
  9. phoenix/__generated__/classification_evaluator_configs/_conciseness_classification_evaluator_config.py +19 -0
  10. phoenix/__generated__/classification_evaluator_configs/_correctness_classification_evaluator_config.py +19 -0
  11. phoenix/__generated__/classification_evaluator_configs/_document_relevance_classification_evaluator_config.py +19 -0
  12. phoenix/__generated__/classification_evaluator_configs/_faithfulness_classification_evaluator_config.py +19 -0
  13. phoenix/__generated__/classification_evaluator_configs/_hallucination_classification_evaluator_config.py +19 -0
  14. phoenix/__generated__/classification_evaluator_configs/_models.py +20 -0
  15. phoenix/__generated__/classification_evaluator_configs/_refusal_classification_evaluator_config.py +19 -0
  16. phoenix/__generated__/classification_evaluator_configs/_tool_invocation_classification_evaluator_config.py +22 -0
  17. phoenix/__generated__/classification_evaluator_configs/_tool_response_handling_classification_evaluator_config.py +19 -0
  18. phoenix/__generated__/classification_evaluator_configs/_tool_selection_classification_evaluator_config.py +22 -0
  19. phoenix/__init__.py +129 -0
  20. phoenix/auth.py +375 -0
  21. phoenix/config.py +3393 -0
  22. phoenix/core/__init__.py +0 -0
  23. phoenix/datetime_utils.py +225 -0
  24. phoenix/db/README.md +1049 -0
  25. phoenix/db/__init__.py +4 -0
  26. phoenix/db/alembic.ini +85 -0
  27. phoenix/db/bulk_inserter.py +336 -0
  28. phoenix/db/constants.py +1 -0
  29. phoenix/db/engines.py +313 -0
  30. phoenix/db/enums.py +10 -0
  31. phoenix/db/facilitator.py +560 -0
  32. phoenix/db/helpers.py +1119 -0
  33. phoenix/db/iam_auth.py +64 -0
  34. phoenix/db/insertion/__init__.py +0 -0
  35. phoenix/db/insertion/constants.py +2 -0
  36. phoenix/db/insertion/dataset.py +509 -0
  37. phoenix/db/insertion/document_annotation.py +192 -0
  38. phoenix/db/insertion/evaluation.py +202 -0
  39. phoenix/db/insertion/helpers.py +114 -0
  40. phoenix/db/insertion/session_annotation.py +176 -0
  41. phoenix/db/insertion/span.py +197 -0
  42. phoenix/db/insertion/span_annotation.py +174 -0
  43. phoenix/db/insertion/trace_annotation.py +173 -0
  44. phoenix/db/insertion/types.py +293 -0
  45. phoenix/db/migrate.py +92 -0
  46. phoenix/db/migrations/__init__.py +0 -0
  47. phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
  48. phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +199 -0
  49. phoenix/db/migrations/env.py +114 -0
  50. phoenix/db/migrations/script.py.mako +26 -0
  51. phoenix/db/migrations/versions/01a8342c9cdf_add_user_id_on_datasets.py +40 -0
  52. phoenix/db/migrations/versions/02463bd83119_add_evaluators.py +279 -0
  53. phoenix/db/migrations/versions/0df286449799_add_session_annotations_table.py +105 -0
  54. phoenix/db/migrations/versions/10460e46d750_datasets.py +317 -0
  55. phoenix/db/migrations/versions/272b66ff50f8_drop_single_indices.py +119 -0
  56. phoenix/db/migrations/versions/2f9d1a65945f_annotation_config_migration.py +322 -0
  57. phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +126 -0
  58. phoenix/db/migrations/versions/3f53d82a1b7e_add_custom_provider_to_prompt_versions.py +57 -0
  59. phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +66 -0
  60. phoenix/db/migrations/versions/58228d933c91_dataset_labels.py +67 -0
  61. phoenix/db/migrations/versions/699f655af132_experiment_tags.py +57 -0
  62. phoenix/db/migrations/versions/6a88424799fe_update_users_with_auth_method.py +179 -0
  63. phoenix/db/migrations/versions/735d3d93c33e_add_composite_indices.py +41 -0
  64. phoenix/db/migrations/versions/8a3764fe7f1a_change_jsonb_to_json_for_prompts.py +76 -0
  65. phoenix/db/migrations/versions/a1b2c3d4e5f6_ldap_schema_migration.py +286 -0
  66. phoenix/db/migrations/versions/a20694b15f82_cost.py +196 -0
  67. phoenix/db/migrations/versions/ab513d89518b_add_user_id_on_dataset_versions.py +40 -0
  68. phoenix/db/migrations/versions/bb8139330879_create_project_trace_retention_policies_table.py +77 -0
  69. phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +197 -0
  70. phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +157 -0
  71. phoenix/db/migrations/versions/cf03bd6bae1d_init.py +280 -0
  72. phoenix/db/migrations/versions/d0690a79ea51_users_on_experiments.py +40 -0
  73. phoenix/db/migrations/versions/deb2c81c0bb2_dataset_splits.py +139 -0
  74. phoenix/db/migrations/versions/e76cbd66ffc3_add_experiments_dataset_examples.py +87 -0
  75. phoenix/db/migrations/versions/f1a6b2f0c9d5_add_span_session_id_index.py +137 -0
  76. phoenix/db/models.py +2530 -0
  77. phoenix/db/pg_config.py +207 -0
  78. phoenix/db/types/__init__.py +0 -0
  79. phoenix/db/types/annotation_configs.py +116 -0
  80. phoenix/db/types/db_helper_types.py +41 -0
  81. phoenix/db/types/evaluators.py +253 -0
  82. phoenix/db/types/identifier.py +10 -0
  83. phoenix/db/types/model_provider.py +714 -0
  84. phoenix/db/types/token_price_customization.py +29 -0
  85. phoenix/db/types/trace_retention.py +275 -0
  86. phoenix/exceptions.py +10 -0
  87. phoenix/experiments/__init__.py +6 -0
  88. phoenix/experiments/evaluators/__init__.py +31 -0
  89. phoenix/experiments/evaluators/base.py +158 -0
  90. phoenix/experiments/evaluators/code_evaluators.py +184 -0
  91. phoenix/experiments/evaluators/llm_evaluators.py +473 -0
  92. phoenix/experiments/evaluators/utils.py +236 -0
  93. phoenix/experiments/functions.py +1012 -0
  94. phoenix/experiments/tracing.py +86 -0
  95. phoenix/experiments/types.py +728 -0
  96. phoenix/experiments/utils.py +25 -0
  97. phoenix/logging/__init__.py +3 -0
  98. phoenix/logging/_config.py +90 -0
  99. phoenix/logging/_filter.py +6 -0
  100. phoenix/logging/_formatter.py +69 -0
  101. phoenix/metrics/__init__.py +5 -0
  102. phoenix/metrics/retrieval_metrics.py +106 -0
  103. phoenix/py.typed +1 -0
  104. phoenix/server/__init__.py +0 -0
  105. phoenix/server/api/README.md +28 -0
  106. phoenix/server/api/__init__.py +0 -0
  107. phoenix/server/api/auth.py +84 -0
  108. phoenix/server/api/auth_messages.py +46 -0
  109. phoenix/server/api/builtin_evaluator_sync.py +95 -0
  110. phoenix/server/api/context.py +295 -0
  111. phoenix/server/api/dataloaders/__init__.py +191 -0
  112. phoenix/server/api/dataloaders/annotation_configs_by_project.py +31 -0
  113. phoenix/server/api/dataloaders/annotation_summaries.py +370 -0
  114. phoenix/server/api/dataloaders/average_experiment_repeated_run_group_latency.py +50 -0
  115. phoenix/server/api/dataloaders/average_experiment_run_latency.py +47 -0
  116. phoenix/server/api/dataloaders/cache/__init__.py +3 -0
  117. phoenix/server/api/dataloaders/cache/two_tier_cache.py +67 -0
  118. phoenix/server/api/dataloaders/dataset_dataset_splits.py +52 -0
  119. phoenix/server/api/dataloaders/dataset_evaluators.py +43 -0
  120. phoenix/server/api/dataloaders/dataset_evaluators_by_evaluator.py +36 -0
  121. phoenix/server/api/dataloaders/dataset_evaluators_by_id.py +21 -0
  122. phoenix/server/api/dataloaders/dataset_example_revisions.py +106 -0
  123. phoenix/server/api/dataloaders/dataset_example_spans.py +38 -0
  124. phoenix/server/api/dataloaders/dataset_example_splits.py +40 -0
  125. phoenix/server/api/dataloaders/dataset_examples_and_versions_by_experiment_run.py +47 -0
  126. phoenix/server/api/dataloaders/dataset_labels.py +36 -0
  127. phoenix/server/api/dataloaders/datasets_by_evaluator.py +40 -0
  128. phoenix/server/api/dataloaders/document_evaluation_summaries.py +144 -0
  129. phoenix/server/api/dataloaders/document_evaluations.py +28 -0
  130. phoenix/server/api/dataloaders/document_retrieval_metrics.py +89 -0
  131. phoenix/server/api/dataloaders/experiment_annotation_summaries.py +133 -0
  132. phoenix/server/api/dataloaders/experiment_dataset_splits.py +43 -0
  133. phoenix/server/api/dataloaders/experiment_error_rates.py +51 -0
  134. phoenix/server/api/dataloaders/experiment_repeated_run_group_annotation_summaries.py +77 -0
  135. phoenix/server/api/dataloaders/experiment_repeated_run_groups.py +57 -0
  136. phoenix/server/api/dataloaders/experiment_run_annotations.py +36 -0
  137. phoenix/server/api/dataloaders/experiment_run_counts.py +49 -0
  138. phoenix/server/api/dataloaders/experiment_runs_by_experiment_and_example.py +44 -0
  139. phoenix/server/api/dataloaders/experiment_sequence_number.py +44 -0
  140. phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py +35 -0
  141. phoenix/server/api/dataloaders/latency_ms_quantile.py +220 -0
  142. phoenix/server/api/dataloaders/latest_prompt_version_ids.py +45 -0
  143. phoenix/server/api/dataloaders/min_start_or_max_end_times.py +85 -0
  144. phoenix/server/api/dataloaders/num_child_spans.py +35 -0
  145. phoenix/server/api/dataloaders/num_spans_per_trace.py +28 -0
  146. phoenix/server/api/dataloaders/project_by_name.py +31 -0
  147. phoenix/server/api/dataloaders/project_ids_by_trace_retention_policy_id.py +42 -0
  148. phoenix/server/api/dataloaders/prompt_version_sequence_number.py +35 -0
  149. phoenix/server/api/dataloaders/record_counts.py +143 -0
  150. phoenix/server/api/dataloaders/secrets.py +32 -0
  151. phoenix/server/api/dataloaders/session_annotations_by_session.py +29 -0
  152. phoenix/server/api/dataloaders/session_io.py +79 -0
  153. phoenix/server/api/dataloaders/session_num_traces.py +30 -0
  154. phoenix/server/api/dataloaders/session_num_traces_with_error.py +32 -0
  155. phoenix/server/api/dataloaders/session_token_usages.py +41 -0
  156. phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +55 -0
  157. phoenix/server/api/dataloaders/span_annotations.py +26 -0
  158. phoenix/server/api/dataloaders/span_by_id.py +29 -0
  159. phoenix/server/api/dataloaders/span_cost_by_span.py +24 -0
  160. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py +56 -0
  161. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py +57 -0
  162. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py +43 -0
  163. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py +56 -0
  164. phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +27 -0
  165. phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +57 -0
  166. phoenix/server/api/dataloaders/span_cost_summary_by_experiment_repeated_run_group.py +64 -0
  167. phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +58 -0
  168. phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +55 -0
  169. phoenix/server/api/dataloaders/span_cost_summary_by_project.py +152 -0
  170. phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +56 -0
  171. phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +55 -0
  172. phoenix/server/api/dataloaders/span_costs.py +29 -0
  173. phoenix/server/api/dataloaders/span_dataset_examples.py +31 -0
  174. phoenix/server/api/dataloaders/span_descendants.py +103 -0
  175. phoenix/server/api/dataloaders/span_projects.py +33 -0
  176. phoenix/server/api/dataloaders/table_fields.py +74 -0
  177. phoenix/server/api/dataloaders/token_counts.py +124 -0
  178. phoenix/server/api/dataloaders/token_prices_by_model.py +30 -0
  179. phoenix/server/api/dataloaders/trace_annotations_by_trace.py +27 -0
  180. phoenix/server/api/dataloaders/trace_by_trace_ids.py +25 -0
  181. phoenix/server/api/dataloaders/trace_retention_policy_id_by_project_id.py +34 -0
  182. phoenix/server/api/dataloaders/trace_root_spans.py +31 -0
  183. phoenix/server/api/dataloaders/types.py +29 -0
  184. phoenix/server/api/dataloaders/user_roles.py +30 -0
  185. phoenix/server/api/dataloaders/users.py +33 -0
  186. phoenix/server/api/evaluators.py +2367 -0
  187. phoenix/server/api/exceptions.py +58 -0
  188. phoenix/server/api/helpers/__init__.py +12 -0
  189. phoenix/server/api/helpers/annotations.py +9 -0
  190. phoenix/server/api/helpers/classification_evaluator_configs.py +47 -0
  191. phoenix/server/api/helpers/dataset_helpers.py +385 -0
  192. phoenix/server/api/helpers/evaluators.py +378 -0
  193. phoenix/server/api/helpers/experiment_run_filters.py +763 -0
  194. phoenix/server/api/helpers/message_helpers.py +236 -0
  195. phoenix/server/api/helpers/playground_clients.py +3544 -0
  196. phoenix/server/api/helpers/playground_experiment_runs.py +34 -0
  197. phoenix/server/api/helpers/playground_registry.py +72 -0
  198. phoenix/server/api/helpers/playground_users.py +26 -0
  199. phoenix/server/api/helpers/prompts/__init__.py +0 -0
  200. phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
  201. phoenix/server/api/helpers/prompts/conversions/anthropic.py +95 -0
  202. phoenix/server/api/helpers/prompts/conversions/aws.py +83 -0
  203. phoenix/server/api/helpers/prompts/conversions/google.py +103 -0
  204. phoenix/server/api/helpers/prompts/conversions/openai.py +82 -0
  205. phoenix/server/api/helpers/prompts/models.py +879 -0
  206. phoenix/server/api/helpers/prompts/template_helpers.py +54 -0
  207. phoenix/server/api/helpers/substitutions/server.yaml +30 -0
  208. phoenix/server/api/helpers/substitutions.py +116 -0
  209. phoenix/server/api/input_types/AddExamplesToDatasetInput.py +16 -0
  210. phoenix/server/api/input_types/AddSpansToDatasetInput.py +14 -0
  211. phoenix/server/api/input_types/AnnotationConfigInput.py +70 -0
  212. phoenix/server/api/input_types/AnnotationFilter.py +75 -0
  213. phoenix/server/api/input_types/ChatCompletionInput.py +61 -0
  214. phoenix/server/api/input_types/ChatCompletionMessageInput.py +24 -0
  215. phoenix/server/api/input_types/ClearProjectInput.py +15 -0
  216. phoenix/server/api/input_types/Coordinates.py +14 -0
  217. phoenix/server/api/input_types/CreateDatasetInput.py +12 -0
  218. phoenix/server/api/input_types/CreateDocumentAnnotationInput.py +22 -0
  219. phoenix/server/api/input_types/CreateProjectInput.py +21 -0
  220. phoenix/server/api/input_types/CreateProjectSessionAnnotationInput.py +37 -0
  221. phoenix/server/api/input_types/CreateSpanAnnotationInput.py +27 -0
  222. phoenix/server/api/input_types/CreateTraceAnnotationInput.py +21 -0
  223. phoenix/server/api/input_types/DatasetEvaluatorFilter.py +14 -0
  224. phoenix/server/api/input_types/DatasetEvaluatorSort.py +19 -0
  225. phoenix/server/api/input_types/DatasetExampleInput.py +14 -0
  226. phoenix/server/api/input_types/DatasetFilter.py +17 -0
  227. phoenix/server/api/input_types/DatasetSort.py +17 -0
  228. phoenix/server/api/input_types/DatasetVersionSort.py +16 -0
  229. phoenix/server/api/input_types/DeleteAnnotationsInput.py +7 -0
  230. phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +13 -0
  231. phoenix/server/api/input_types/DeleteDatasetInput.py +7 -0
  232. phoenix/server/api/input_types/DeleteExperimentsInput.py +7 -0
  233. phoenix/server/api/input_types/EvaluatorFilter.py +14 -0
  234. phoenix/server/api/input_types/EvaluatorPreviewInput.py +53 -0
  235. phoenix/server/api/input_types/EvaluatorSort.py +19 -0
  236. phoenix/server/api/input_types/ExperimentRunSort.py +237 -0
  237. phoenix/server/api/input_types/GenerativeCredentialInput.py +11 -0
  238. phoenix/server/api/input_types/GenerativeModelCustomerProviderConfigInput.py +343 -0
  239. phoenix/server/api/input_types/GenerativeModelInput.py +51 -0
  240. phoenix/server/api/input_types/InvocationParameters.py +164 -0
  241. phoenix/server/api/input_types/PatchAnnotationInput.py +22 -0
  242. phoenix/server/api/input_types/PatchDatasetExamplesInput.py +35 -0
  243. phoenix/server/api/input_types/PatchDatasetInput.py +14 -0
  244. phoenix/server/api/input_types/PatchProjectInput.py +19 -0
  245. phoenix/server/api/input_types/PlaygroundEvaluatorInput.py +51 -0
  246. phoenix/server/api/input_types/ProjectFilter.py +14 -0
  247. phoenix/server/api/input_types/ProjectSessionSort.py +189 -0
  248. phoenix/server/api/input_types/ProjectSort.py +17 -0
  249. phoenix/server/api/input_types/PromptFilter.py +14 -0
  250. phoenix/server/api/input_types/PromptTemplateOptions.py +10 -0
  251. phoenix/server/api/input_types/PromptVersionInput.py +200 -0
  252. phoenix/server/api/input_types/SpanAnnotationSort.py +17 -0
  253. phoenix/server/api/input_types/SpanSort.py +211 -0
  254. phoenix/server/api/input_types/TimeBinConfig.py +23 -0
  255. phoenix/server/api/input_types/TimeRange.py +25 -0
  256. phoenix/server/api/input_types/TraceAnnotationSort.py +17 -0
  257. phoenix/server/api/input_types/UpdateAnnotationInput.py +34 -0
  258. phoenix/server/api/input_types/UserRoleInput.py +10 -0
  259. phoenix/server/api/input_types/__init__.py +0 -0
  260. phoenix/server/api/input_types/helpers.py +11 -0
  261. phoenix/server/api/interceptor.py +41 -0
  262. phoenix/server/api/mutations/__init__.py +62 -0
  263. phoenix/server/api/mutations/annotation_config_mutations.py +368 -0
  264. phoenix/server/api/mutations/api_key_mutations.py +163 -0
  265. phoenix/server/api/mutations/chat_mutations.py +856 -0
  266. phoenix/server/api/mutations/dataset_label_mutations.py +243 -0
  267. phoenix/server/api/mutations/dataset_mutations.py +640 -0
  268. phoenix/server/api/mutations/dataset_split_mutations.py +351 -0
  269. phoenix/server/api/mutations/document_annotations_mutations.py +324 -0
  270. phoenix/server/api/mutations/evaluator_mutations.py +916 -0
  271. phoenix/server/api/mutations/experiment_mutations.py +75 -0
  272. phoenix/server/api/mutations/generative_model_custom_provider_mutations.py +288 -0
  273. phoenix/server/api/mutations/model_mutations.py +210 -0
  274. phoenix/server/api/mutations/project_mutations.py +125 -0
  275. phoenix/server/api/mutations/project_session_annotations_mutations.py +158 -0
  276. phoenix/server/api/mutations/project_trace_retention_policy_mutations.py +249 -0
  277. phoenix/server/api/mutations/prompt_label_mutations.py +201 -0
  278. phoenix/server/api/mutations/prompt_mutations.py +273 -0
  279. phoenix/server/api/mutations/prompt_version_tag_mutations.py +158 -0
  280. phoenix/server/api/mutations/secret_mutations.py +208 -0
  281. phoenix/server/api/mutations/span_annotations_mutations.py +335 -0
  282. phoenix/server/api/mutations/trace_annotations_mutations.py +260 -0
  283. phoenix/server/api/mutations/trace_mutations.py +118 -0
  284. phoenix/server/api/mutations/user_mutations.py +399 -0
  285. phoenix/server/api/openapi/__init__.py +0 -0
  286. phoenix/server/api/openapi/schema.py +17 -0
  287. phoenix/server/api/queries.py +1837 -0
  288. phoenix/server/api/routers/__init__.py +11 -0
  289. phoenix/server/api/routers/auth.py +410 -0
  290. phoenix/server/api/routers/chat.py +146 -0
  291. phoenix/server/api/routers/data_stream_protocol.py +242 -0
  292. phoenix/server/api/routers/ldap.py +224 -0
  293. phoenix/server/api/routers/oauth2.py +941 -0
  294. phoenix/server/api/routers/utils.py +21 -0
  295. phoenix/server/api/routers/v1/__init__.py +92 -0
  296. phoenix/server/api/routers/v1/annotation_configs.py +441 -0
  297. phoenix/server/api/routers/v1/annotations.py +625 -0
  298. phoenix/server/api/routers/v1/datasets.py +1555 -0
  299. phoenix/server/api/routers/v1/documents.py +142 -0
  300. phoenix/server/api/routers/v1/evaluations.py +363 -0
  301. phoenix/server/api/routers/v1/experiment_evaluations.py +126 -0
  302. phoenix/server/api/routers/v1/experiment_runs.py +459 -0
  303. phoenix/server/api/routers/v1/experiments.py +963 -0
  304. phoenix/server/api/routers/v1/models.py +52 -0
  305. phoenix/server/api/routers/v1/projects.py +324 -0
  306. phoenix/server/api/routers/v1/prompts.py +756 -0
  307. phoenix/server/api/routers/v1/sessions.py +429 -0
  308. phoenix/server/api/routers/v1/spans.py +1412 -0
  309. phoenix/server/api/routers/v1/traces.py +482 -0
  310. phoenix/server/api/routers/v1/users.py +384 -0
  311. phoenix/server/api/routers/v1/utils.py +151 -0
  312. phoenix/server/api/routers/v1/validators.py +18 -0
  313. phoenix/server/api/schema.py +65 -0
  314. phoenix/server/api/subscriptions.py +851 -0
  315. phoenix/server/api/types/Annotation.py +98 -0
  316. phoenix/server/api/types/AnnotationConfig.py +124 -0
  317. phoenix/server/api/types/AnnotationSource.py +9 -0
  318. phoenix/server/api/types/AnnotationSummary.py +69 -0
  319. phoenix/server/api/types/AnnotatorKind.py +17 -0
  320. phoenix/server/api/types/ApiKey.py +23 -0
  321. phoenix/server/api/types/AuthMethod.py +10 -0
  322. phoenix/server/api/types/ChatCompletionMessageRole.py +11 -0
  323. phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +57 -0
  324. phoenix/server/api/types/ClassificationEvaluatorConfig.py +16 -0
  325. phoenix/server/api/types/CostBreakdown.py +12 -0
  326. phoenix/server/api/types/CreateDatasetPayload.py +8 -0
  327. phoenix/server/api/types/CronExpression.py +15 -0
  328. phoenix/server/api/types/Dataset.py +551 -0
  329. phoenix/server/api/types/DatasetExample.py +155 -0
  330. phoenix/server/api/types/DatasetExampleRevision.py +34 -0
  331. phoenix/server/api/types/DatasetExperimentAnnotationSummary.py +10 -0
  332. phoenix/server/api/types/DatasetLabel.py +57 -0
  333. phoenix/server/api/types/DatasetSplit.py +98 -0
  334. phoenix/server/api/types/DatasetValues.py +28 -0
  335. phoenix/server/api/types/DatasetVersion.py +59 -0
  336. phoenix/server/api/types/DocumentAnnotation.py +212 -0
  337. phoenix/server/api/types/DocumentEvaluationSummary.py +95 -0
  338. phoenix/server/api/types/DocumentRetrievalMetrics.py +47 -0
  339. phoenix/server/api/types/EmbeddingMetadata.py +14 -0
  340. phoenix/server/api/types/EvaluationSummary.py +55 -0
  341. phoenix/server/api/types/Evaluator.py +786 -0
  342. phoenix/server/api/types/EventMetadata.py +16 -0
  343. phoenix/server/api/types/ExampleRevisionInterface.py +14 -0
  344. phoenix/server/api/types/Experiment.py +373 -0
  345. phoenix/server/api/types/ExperimentAnnotationSummary.py +13 -0
  346. phoenix/server/api/types/ExperimentComparison.py +12 -0
  347. phoenix/server/api/types/ExperimentRepeatedRunGroup.py +155 -0
  348. phoenix/server/api/types/ExperimentRepeatedRunGroupAnnotationSummary.py +9 -0
  349. phoenix/server/api/types/ExperimentRun.py +223 -0
  350. phoenix/server/api/types/ExperimentRunAnnotation.py +206 -0
  351. phoenix/server/api/types/ExportedFile.py +8 -0
  352. phoenix/server/api/types/GenerativeModel.py +251 -0
  353. phoenix/server/api/types/GenerativeModelCustomProvider.py +501 -0
  354. phoenix/server/api/types/GenerativeProvider.py +308 -0
  355. phoenix/server/api/types/Identifier.py +15 -0
  356. phoenix/server/api/types/LabelFraction.py +7 -0
  357. phoenix/server/api/types/MimeType.py +16 -0
  358. phoenix/server/api/types/ModelInterface.py +16 -0
  359. phoenix/server/api/types/NumericRange.py +10 -0
  360. phoenix/server/api/types/PlaygroundModel.py +20 -0
  361. phoenix/server/api/types/Project.py +1814 -0
  362. phoenix/server/api/types/ProjectSession.py +299 -0
  363. phoenix/server/api/types/ProjectSessionAnnotation.py +187 -0
  364. phoenix/server/api/types/ProjectTraceRetentionPolicy.py +110 -0
  365. phoenix/server/api/types/Prompt.py +214 -0
  366. phoenix/server/api/types/PromptLabel.py +58 -0
  367. phoenix/server/api/types/PromptResponse.py +24 -0
  368. phoenix/server/api/types/PromptVersion.py +172 -0
  369. phoenix/server/api/types/PromptVersionTag.py +80 -0
  370. phoenix/server/api/types/PromptVersionTemplate.py +148 -0
  371. phoenix/server/api/types/ResponseFormat.py +9 -0
  372. phoenix/server/api/types/Retrieval.py +13 -0
  373. phoenix/server/api/types/Secret.py +83 -0
  374. phoenix/server/api/types/SecretString.py +10 -0
  375. phoenix/server/api/types/Segments.py +101 -0
  376. phoenix/server/api/types/ServerStatus.py +6 -0
  377. phoenix/server/api/types/SortDir.py +13 -0
  378. phoenix/server/api/types/Span.py +906 -0
  379. phoenix/server/api/types/SpanAnnotation.py +214 -0
  380. phoenix/server/api/types/SpanCostDetailSummaryEntry.py +10 -0
  381. phoenix/server/api/types/SpanCostSummary.py +10 -0
  382. phoenix/server/api/types/SpanIOValue.py +48 -0
  383. phoenix/server/api/types/SystemApiKey.py +73 -0
  384. phoenix/server/api/types/TimeSeries.py +29 -0
  385. phoenix/server/api/types/TokenCountPromptDetails.py +10 -0
  386. phoenix/server/api/types/TokenPrice.py +16 -0
  387. phoenix/server/api/types/TokenUsage.py +11 -0
  388. phoenix/server/api/types/ToolDefinition.py +9 -0
  389. phoenix/server/api/types/Trace.py +403 -0
  390. phoenix/server/api/types/TraceAnnotation.py +167 -0
  391. phoenix/server/api/types/User.py +140 -0
  392. phoenix/server/api/types/UserApiKey.py +92 -0
  393. phoenix/server/api/types/UserRole.py +15 -0
  394. phoenix/server/api/types/ValidationResult.py +9 -0
  395. phoenix/server/api/types/__init__.py +0 -0
  396. phoenix/server/api/types/node.py +35 -0
  397. phoenix/server/api/types/pagination.py +282 -0
  398. phoenix/server/api/utils.py +34 -0
  399. phoenix/server/app.py +1613 -0
  400. phoenix/server/authorization.py +88 -0
  401. phoenix/server/bearer_auth.py +196 -0
  402. phoenix/server/cost_tracking/__init__.py +0 -0
  403. phoenix/server/cost_tracking/cost_details_calculator.py +196 -0
  404. phoenix/server/cost_tracking/cost_model_lookup.py +179 -0
  405. phoenix/server/cost_tracking/helpers.py +68 -0
  406. phoenix/server/cost_tracking/model_cost_manifest.json +5923 -0
  407. phoenix/server/cost_tracking/regex_specificity.py +397 -0
  408. phoenix/server/cost_tracking/token_cost_calculator.py +57 -0
  409. phoenix/server/daemons/__init__.py +0 -0
  410. phoenix/server/daemons/db_disk_usage_monitor.py +216 -0
  411. phoenix/server/daemons/generative_model_store.py +103 -0
  412. phoenix/server/daemons/span_cost_calculator.py +99 -0
  413. phoenix/server/dml_event.py +153 -0
  414. phoenix/server/dml_event_handler.py +261 -0
  415. phoenix/server/email/__init__.py +0 -0
  416. phoenix/server/email/sender.py +178 -0
  417. phoenix/server/email/templates/__init__.py +0 -0
  418. phoenix/server/email/templates/db_disk_usage_notification.html +19 -0
  419. phoenix/server/email/templates/password_reset.html +19 -0
  420. phoenix/server/email/templates/welcome.html +12 -0
  421. phoenix/server/email/types.py +37 -0
  422. phoenix/server/encryption.py +133 -0
  423. phoenix/server/experiments/__init__.py +0 -0
  424. phoenix/server/experiments/utils.py +14 -0
  425. phoenix/server/grpc_server.py +122 -0
  426. phoenix/server/jwt_store.py +508 -0
  427. phoenix/server/ldap.py +1318 -0
  428. phoenix/server/main.py +464 -0
  429. phoenix/server/middleware/__init__.py +0 -0
  430. phoenix/server/middleware/gzip.py +40 -0
  431. phoenix/server/oauth2.py +438 -0
  432. phoenix/server/openapi/__init__.py +0 -0
  433. phoenix/server/prometheus.py +879 -0
  434. phoenix/server/rate_limiters.py +292 -0
  435. phoenix/server/retention.py +89 -0
  436. phoenix/server/session_filters.py +49 -0
  437. phoenix/server/static/.vite/manifest.json +171 -0
  438. phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  439. phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  440. phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  441. phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  442. phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  443. phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  444. phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  445. phoenix/server/static/apple-touch-icon.png +0 -0
  446. phoenix/server/static/assets/DiskMonitorPage-wz-H8SOd.js +1 -0
  447. phoenix/server/static/assets/GpuMonitorPage-Ddoirds6.js +1 -0
  448. phoenix/server/static/assets/NetworkMonitorPage-DeFJYA2C.js +1 -0
  449. phoenix/server/static/assets/SystemMonitorPage-BmlVT5OD.js +1 -0
  450. phoenix/server/static/assets/chart-CKGKL2Ws.js +3450 -0
  451. phoenix/server/static/assets/highlighted-body-TPN3WLV5-Byu4RkPr.js +1 -0
  452. phoenix/server/static/assets/index-ClMdv6sO.js +16778 -0
  453. phoenix/server/static/assets/mermaid-O7DHMXV3-Bs-71plO.js +1 -0
  454. phoenix/server/static/assets/rolldown-runtime-DVSNanqQ.js +1 -0
  455. phoenix/server/static/assets/vendor-CAy9C7li.css +1 -0
  456. phoenix/server/static/assets/vendor-Ds9RWav3.js +71 -0
  457. phoenix/server/static/assets/vendor-ai-sdk-react-DrWlVqC6.js +50 -0
  458. phoenix/server/static/assets/vendor-codemirror-BgAm6hhc.js +244 -0
  459. phoenix/server/static/assets/vendor-recharts-DtnAUHG7.js +36 -0
  460. phoenix/server/static/assets/vendor-shiki-BWhMZ0Km.js +1 -0
  461. phoenix/server/static/assets/vendor-streamdown-Y3QuvXkM.js +122 -0
  462. phoenix/server/static/favicon.ico +0 -0
  463. phoenix/server/static/modernizr.js +5 -0
  464. phoenix/server/telemetry.py +68 -0
  465. phoenix/server/templates/__init__.py +0 -0
  466. phoenix/server/templates/index.html +133 -0
  467. phoenix/server/thread_server.py +67 -0
  468. phoenix/server/types.py +285 -0
  469. phoenix/server/utils.py +74 -0
  470. phoenix/services.py +129 -0
  471. phoenix/session/__init__.py +0 -0
  472. phoenix/session/client.py +935 -0
  473. phoenix/session/data_extractor.py +90 -0
  474. phoenix/session/evaluation.py +158 -0
  475. phoenix/session/session.py +695 -0
  476. phoenix/settings.py +29 -0
  477. phoenix/trace/__init__.py +15 -0
  478. phoenix/trace/attributes.py +410 -0
  479. phoenix/trace/dsl/README.md +116 -0
  480. phoenix/trace/dsl/__init__.py +7 -0
  481. phoenix/trace/dsl/filter.py +874 -0
  482. phoenix/trace/dsl/helpers.py +216 -0
  483. phoenix/trace/dsl/query.py +881 -0
  484. phoenix/trace/errors.py +9 -0
  485. phoenix/trace/evaluation_conventions.py +26 -0
  486. phoenix/trace/exporter.py +137 -0
  487. phoenix/trace/fixtures.py +557 -0
  488. phoenix/trace/otel.py +308 -0
  489. phoenix/trace/projects.py +72 -0
  490. phoenix/trace/schemas.py +227 -0
  491. phoenix/trace/span_evaluations.py +350 -0
  492. phoenix/trace/span_json_decoder.py +100 -0
  493. phoenix/trace/span_json_encoder.py +64 -0
  494. phoenix/trace/trace_dataset.py +378 -0
  495. phoenix/trace/utils.py +64 -0
  496. phoenix/trace/v1/__init__.py +5 -0
  497. phoenix/trace/v1/evaluation_pb2.py +32 -0
  498. phoenix/trace/v1/evaluation_pb2.pyi +102 -0
  499. phoenix/tracers.py +268 -0
  500. phoenix/utilities/__init__.py +26 -0
  501. phoenix/utilities/client.py +138 -0
  502. phoenix/utilities/env_vars.py +57 -0
  503. phoenix/utilities/error_handling.py +53 -0
  504. phoenix/utilities/json.py +109 -0
  505. phoenix/utilities/logging.py +18 -0
  506. phoenix/utilities/project.py +13 -0
  507. phoenix/utilities/re.py +52 -0
  508. phoenix/utilities/span_store.py +0 -0
  509. phoenix/utilities/template_formatters.py +419 -0
  510. phoenix/version.py +1 -0
@@ -0,0 +1,288 @@
1
+ Metadata-Version: 2.4
2
+ Name: custom-phoenix
3
+ Version: 13.15.0.dev5
4
+ Summary: AI Observability and Evaluation
5
+ Project-URL: Documentation, https://arize.com/docs/phoenix/
6
+ Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
7
+ Project-URL: Source, https://github.com/Arize-ai/phoenix
8
+ Author-email: Arize AI <phoenix-devs@arize.com>
9
+ License: Elastic-2.0
10
+ License-File: IP_NOTICE
11
+ License-File: LICENSE
12
+ Keywords: Explainability,Monitoring,Observability
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Python: <3.14,>=3.10
19
+ Requires-Dist: aioitertools
20
+ Requires-Dist: aiosqlite
21
+ Requires-Dist: alembic<2,>=1.3.0
22
+ Requires-Dist: arize-phoenix-client>=2.0.1
23
+ Requires-Dist: arize-phoenix-evals>=2.11.0
24
+ Requires-Dist: arize-phoenix-otel>=0.15.0
25
+ Requires-Dist: authlib
26
+ Requires-Dist: cachetools
27
+ Requires-Dist: email-validator
28
+ Requires-Dist: fastapi
29
+ Requires-Dist: grpc-interceptor
30
+ Requires-Dist: grpcio
31
+ Requires-Dist: httpx
32
+ Requires-Dist: jinja2
33
+ Requires-Dist: jmespath
34
+ Requires-Dist: jsonpath-ng
35
+ Requires-Dist: jsonschema
36
+ Requires-Dist: ldap3
37
+ Requires-Dist: numpy
38
+ Requires-Dist: openinference-instrumentation-openai>=0.1.41
39
+ Requires-Dist: openinference-instrumentation>=0.1.44
40
+ Requires-Dist: openinference-semantic-conventions>=0.1.26
41
+ Requires-Dist: opentelemetry-exporter-otlp
42
+ Requires-Dist: opentelemetry-proto>=1.12.0
43
+ Requires-Dist: opentelemetry-sdk
44
+ Requires-Dist: orjson
45
+ Requires-Dist: pandas>=1.0
46
+ Requires-Dist: prometheus-client
47
+ Requires-Dist: protobuf>=4.25.8
48
+ Requires-Dist: psutil
49
+ Requires-Dist: pyarrow
50
+ Requires-Dist: pydantic>=2.1.0
51
+ Requires-Dist: pystache
52
+ Requires-Dist: python-dateutil
53
+ Requires-Dist: python-multipart
54
+ Requires-Dist: pyyaml
55
+ Requires-Dist: scikit-learn
56
+ Requires-Dist: scipy
57
+ Requires-Dist: sqlalchemy[asyncio]<3,>=2.0.4
58
+ Requires-Dist: sqlean-py<3.50,>=3.45.1; platform_system == 'Windows'
59
+ Requires-Dist: sqlean-py>=3.45.1; platform_system != 'Windows'
60
+ Requires-Dist: starlette
61
+ Requires-Dist: strawberry-graphql==0.287.3
62
+ Requires-Dist: tqdm
63
+ Requires-Dist: typing-extensions>=4.6
64
+ Requires-Dist: uvicorn
65
+ Requires-Dist: wrapt<2,>=1.17.2
66
+ Provides-Extra: aws
67
+ Requires-Dist: aioboto3; extra == 'aws'
68
+ Provides-Extra: container
69
+ Requires-Dist: aioboto3; extra == 'container'
70
+ Requires-Dist: aiohttp; extra == 'container'
71
+ Requires-Dist: anthropic>=0.78.0; extra == 'container'
72
+ Requires-Dist: azure-identity; extra == 'container'
73
+ Requires-Dist: google-genai; (python_version < '3.10') and extra == 'container'
74
+ Requires-Dist: google-genai>=1.50.0; (python_version >= '3.10') and extra == 'container'
75
+ Requires-Dist: openai>=2.14.0; extra == 'container'
76
+ Requires-Dist: opentelemetry-exporter-otlp==1.39.1; extra == 'container'
77
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.60b1; extra == 'container'
78
+ Requires-Dist: opentelemetry-instrumentation-grpc==0.60b1; extra == 'container'
79
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.60b1; extra == 'container'
80
+ Requires-Dist: opentelemetry-proto==1.39.1; extra == 'container'
81
+ Requires-Dist: opentelemetry-sdk==1.39.1; extra == 'container'
82
+ Requires-Dist: opentelemetry-semantic-conventions==0.60b1; extra == 'container'
83
+ Requires-Dist: prometheus-client; extra == 'container'
84
+ Requires-Dist: py-grpc-prometheus; extra == 'container'
85
+ Requires-Dist: strawberry-graphql[opentelemetry]==0.287.3; extra == 'container'
86
+ Requires-Dist: uvloop; (platform_system != 'Windows') and extra == 'container'
87
+ Provides-Extra: evals
88
+ Provides-Extra: experimental
89
+ Provides-Extra: pg
90
+ Requires-Dist: asyncpg; extra == 'pg'
91
+ Requires-Dist: psycopg[binary,pool]; extra == 'pg'
92
+ Description-Content-Type: text/markdown
93
+
94
+ <p align="center">
95
+ <a target="_blank" href="https://phoenix.arize.com" style="background:none">
96
+ <img alt="phoenix banner" src="https://github.com/Arize-ai/phoenix-assets/blob/main/images/socal/github-large-banner-phoenix-v2.jpg?raw=true" width="auto" height="auto"></img>
97
+ </a>
98
+ <br/>
99
+ <br/>
100
+ <a href="https://arize.com/docs/phoenix/">
101
+ <img src="https://img.shields.io/static/v1?message=Docs&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAG4ElEQVR4nO2d4XHjNhCFcTf+b3ZgdWCmgmMqOKUC0xXYrsBOBVEqsFRB7ApCVRCygrMriFQBM7h5mNlwKBECARLg7jeDscamSQj7sFgsQfBL27ZK4MtXsT1vRADMEQEwRwTAHBEAc0QAzBEBMEcEwBwRAHNEAMwRATBnjAByFGE+MqVUMcYOY24GVUqpb/h8VErVKAf87QNFcEcbd4WSw+D6803njHscO5sATmGEURGBiCj6yUlv1uX2gv91FsDViArbcA2RUKF8QhAV8RQc0b15DcOt0VaTE1oAfWj3dYdCBfGGsmSM0XX5HsP3nEMAXbqCeCdiOERQPx9og5exGJ0S4zRQN9KrUupfpdQWjZciure/YIj7K0bjqwTyAHdovA805iqCOg2xgnB1nZ97IvaoSCURdIPG/IHGjTH/YAz/A8KdJai7lBQzgbpx/0Hg6DT18UzWMXxSjMkDrElPNEmKfAbl6znwI3IMU/OCa0/1nfckwWaSbvWYYDnEsvCMJDNckhqu7GCMKWYOBXp9yPGd5kvqUAKf6rkAk7M2SY9QDXdEr9wEOr9x96EiejMFnixBNteDISsyNw7hHRqc22evWcP4vt39O85bzZH30AKg4+eo8cQRI4bHAJ7hyYM3CNHrG9RrimSXuZmUkZjN/O6nAPpcwCcJNmipAle2QM/1GU3vITCXhvY91u9geN/jOY27VuTnYL1PCeAcRhwh7/Bl8Ai+IuxPiOCShtfX/sPDtY8w+sZjby86dw6dBeoigD7obd/Ko6fI4BF8DA9HnGdrcU0fLt+n4dfE6H5jpjYcVdu2L23b5lpjHoo+18FDbcszddF1rUee/4C6ZiO+80rHZmjDoIQUQLdRtm3brkcKIUPjjqVPBIUHgW1GGN4YfawAL2IqAVB8iEE31tvIelARlCPPVaFOLoIupzY6xVcM4MoRUyHXyHhslH6PaPl5RP1Lh4UsOeKR2e8dzC0Aiuvc2Nx3fwhfxf/hknouUYbWUk5GTAIwmOh5e+H0cor8vEL91hfOdEqINLq1AV+RKImJ6869f9tFIBVc6y7gd3lHfWyNX0LEr7EuDElhRdAlQjig0e/RU31xxDltM4pF7IY3pLIgxAhhgzF/iC2M0Hi4dkOGlyGMd/g7dsMbUlsR9ICe9WhxbA3DjRkSdjiHzQzlBSKNJsCzIcUlYdfI0dcWS8LMkPDkcJ0n/O+Qyy/IAtDkSPnp4Fu4WpthQR/zm2VcoI/51fI28iYld9/HEh4Pf7D0Bm845pwIPnHMUJSf45pT5x68s5T9AW6INzhHDeP1BYcNMew5SghkinWOwVnaBhHGG5ybMn70zBDe8buh8X6DqV0Sa/5tWOIOIbcWQ8KBiGBnMb/P0OuTd/lddCrY5jn/VLm3nL+fY4X4YREuv8vS9wh6HSkAExMs0viKySZRd44iyOH2FzPe98Fll7A7GNMmjay4GF9BAKGXesfCN0sRsDG+YrhP4O2ACFgZXzHdKPL2RMJoxc34ivFOod3AMMNUj5XxFfOtYrUIXvB5MandS+G+V/AzZ+MrEcBPlpoFtUIEwBwRAG+OIgDe1CIA5ogAmCMCYI4IgDkiAOaIAJgjAmCOCIA5IgDmiACYIwJgjgiAOSIA5ogAmCMCYI4IgDkiAOaIAJgjAmCOCIA5IgDmiACYIwJgjgiAOSIA5ogAmCMCYI4IgDkiAOaIAJgjAmDOVYBXvwvxQV8NWJOd0esvJ94babZaz7B5ovldxnlDpYhp0JFr/KTlLKcEMMQKpcDPXIQxGXsYmhZnXAXQh/EWBQrr3bc80mATyyrEvs4+BdBHgbdxFOIhrDkSg1/6Iu2LCS0AyoqI4ftUF00EY/Q3h1fRj2JKAVCMGErmnsH1lfnemEsAlByvgl0z2qx5B8OPCuB8EIMADBlEEOV79j1whNE3c/X2PmISAGUNr7CEmUSUhjfEKgBDAY+QohCiNrwhdgEYzPv7UxkadvBg0RrekMrNoAozh3vLN4DPhc7S/WL52vkoSO1u4BZC+DOCulC0KJ/gqWaP7C8hlSGgjxyCmDuPsEePT/KuasrrAcyr4H+f6fq01yd7Sz1lD0CZ2hs06PVJufs+lrIiyLwufjfBtXYpjvWnWIoHoJSYe4dIK/t4HX1ULFEACkPCm8e8wXFJvZ6y1EWhJkDcWxw7RINzLc74auGrgg8e4oIm9Sh/CA7LwkvHqaIJ9pLI6Lmy1BigDy2EV8tjdzh+8XB6MGSLKH4INsZXDJ8MGhIBK+Mrpo+GnRIBO+MrZjFAFxoTNBwCvj6u4qvSZJiM3iNX4yvmHoA9Sh4PF0QAzBEBMEcEwBwRAHNEAMwRAXBGKfUfr5hKvglRfO4AAAAASUVORK5CYII=&labelColor=grey&color=blue&logoColor=white&label=%20"/>
102
+ </a>
103
+ <a target="_blank" href="https://join.slack.com/t/arize-ai/shared_invite/zt-3r07iavnk-ammtATWSlF0pSrd1DsMW7g">
104
+ <img src="https://img.shields.io/static/v1?message=Community&logo=slack&labelColor=grey&color=blue&logoColor=white&label=%20"/>
105
+ </a>
106
+ <a target="_blank" href="https://bsky.app/profile/arize-phoenix.bsky.social">
107
+ <img src="https://img.shields.io/badge/-phoenix-blue.svg?color=blue&labelColor=gray&logo=bluesky">
108
+ </a>
109
+ <a target="_blank" href="https://x.com/ArizePhoenix">
110
+ <img src="https://img.shields.io/badge/-ArizePhoenix-blue.svg?color=blue&labelColor=gray&logo=x">
111
+ </a>
112
+ <a target="_blank" href="https://pypi.org/project/arize-phoenix/">
113
+ <img src="https://img.shields.io/pypi/v/arize-phoenix?color=blue">
114
+ </a>
115
+ <a target="_blank" href="https://anaconda.org/conda-forge/arize-phoenix">
116
+ <img src="https://img.shields.io/conda/vn/conda-forge/arize-phoenix.svg?color=blue">
117
+ </a>
118
+ <a target="_blank" href="https://pypi.org/project/arize-phoenix/">
119
+ <img src="https://img.shields.io/pypi/pyversions/arize-phoenix">
120
+ </a>
121
+ <a target="_blank" href="https://hub.docker.com/r/arizephoenix/phoenix/tags">
122
+ <img src="https://img.shields.io/docker/v/arizephoenix/phoenix?sort=semver&logo=docker&label=image&color=blue">
123
+ </a>
124
+ <a target="_blank" href="https://hub.docker.com/r/arizephoenix/phoenix-helm">
125
+ <img src="https://img.shields.io/badge/Helm-blue?style=flat&logo=helm&labelColor=grey"/>
126
+ </a>
127
+ <a target="_blank" href="https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-mcp">
128
+ <img src="https://badge.mcpx.dev?status=on" title="MCP Enabled"/>
129
+ </a>
130
+ <a href="cursor://anysphere.cursor-deeplink/mcp/install?name=phoenix&config=eyJjb21tYW5kIjoibnB4IC15IEBhcml6ZWFpL3Bob2VuaXgtbWNwQGxhdGVzdCAtLWJhc2VVcmwgaHR0cHM6Ly9teS1waG9lbml4LmNvbSAtLWFwaUtleSB5b3VyLWFwaS1rZXkifQ%3D%3D"><img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add Arize Phoenix MCP server to Cursor" height=20 /></a>
131
+ <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=8e8e8b34-7900-43fa-a38f-1f070bd48c64&page=README.md" />
132
+ </p>
133
+
134
+ Phoenix is an open-source AI observability platform designed for experimentation, evaluation, and troubleshooting. It provides:
135
+
136
+ - [**_Tracing_**](https://arize.com/docs/phoenix/tracing/llm-traces) - Trace your LLM application's runtime using OpenTelemetry-based instrumentation.
137
+ - [**_Evaluation_**](https://arize.com/docs/phoenix/evaluation/llm-evals) - Leverage LLMs to benchmark your application's performance using response and retrieval evals.
138
+ - [**_Datasets_**](https://arize.com/docs/phoenix/datasets-and-experiments/overview-datasets) - Create versioned datasets of examples for experimentation, evaluation, and fine-tuning.
139
+ - [**_Experiments_**](https://arize.com/docs/phoenix/datasets-and-experiments/overview-datasets#experiments) - Track and evaluate changes to prompts, LLMs, and retrieval.
140
+ - [**_Playground_**](https://arize.com/docs/phoenix/prompt-engineering/overview-prompts)- Optimize prompts, compare models, adjust parameters, and replay traced LLM calls.
141
+ - [**_Prompt Management_**](https://arize.com/docs/phoenix/prompt-engineering/overview-prompts/prompt-management)- Manage and test prompt changes systematically using version control, tagging, and experimentation.
142
+
143
+ Phoenix is vendor and language agnostic with out-of-the-box support for popular frameworks ([OpenAI Agents SDK](https://arize.com/docs/phoenix/tracing/integrations-tracing/openai-agents-sdk), [Claude Agent SDK](https://arize.com/docs/phoenix/integrations/python/claude-agent-sdk), [LangGraph](https://arize.com/docs/phoenix/tracing/integrations-tracing/langchain), [Vercel AI SDK](https://arize.com/docs/phoenix/tracing/integrations-tracing/vercel-ai-sdk), [Mastra](https://arize.com/docs/phoenix/integrations/typescript/mastra), [CrewAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/crewai), [LlamaIndex](https://arize.com/docs/phoenix/tracing/integrations-tracing/llamaindex), [DSPy](https://arize.com/docs/phoenix/tracing/integrations-tracing/dspy)) and LLM providers ([OpenAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/openai), [Anthropic](https://arize.com/docs/phoenix/tracing/integrations-tracing/anthropic), [Google GenAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/google-genai), [Google ADK](https://arize.com/docs/phoenix/integrations/llm-providers/google-gen-ai/google-adk-tracing), [AWS Bedrock](https://arize.com/docs/phoenix/tracing/integrations-tracing/bedrock), [OpenRouter](https://arize.com/docs/phoenix/integrations/python/openrouter), [LiteLLM](https://arize.com/docs/phoenix/tracing/integrations-tracing/litellm), and more). For details on auto-instrumentation, check out the [OpenInference](https://github.com/Arize-ai/openinference) project.
144
+
145
+ Phoenix runs practically anywhere, including your local machine, a Jupyter notebook, a containerized deployment, or in the cloud.
146
+
147
+ ## Installation
148
+
149
+ Install Phoenix via `pip` or `conda`
150
+
151
+ ```shell
152
+ pip install arize-phoenix
153
+ ```
154
+
155
+ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r/arizephoenix/phoenix) and can be deployed using Docker or Kubernetes. Arize AI also provides cloud instances at [app.phoenix.arize.com](https://app.phoenix.arize.com/).
156
+
157
+ ## Packages
158
+
159
+ The `arize-phoenix` package includes the entire Phoenix platform. However, if you have deployed the Phoenix platform, there are lightweight Python sub-packages and TypeScript packages that can be used in conjunction with the platform.
160
+
161
+ ### Python Subpackages
162
+
163
+ | Package | Version & Docs | Description |
164
+ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
165
+ | [arize-phoenix-otel](https://github.com/Arize-ai/phoenix/tree/main/packages/phoenix-otel) | [![PyPI Version](https://img.shields.io/pypi/v/arize-phoenix-otel)](https://pypi.org/project/arize-phoenix-otel/) [![Docs](https://img.shields.io/badge/docs-blue?logo=readthedocs&logoColor=white)](https://arize-phoenix.readthedocs.io/projects/otel/en/latest/index.html) | Provides a lightweight wrapper around OpenTelemetry primitives with Phoenix-aware defaults |
166
+ | [arize-phoenix-client](https://github.com/Arize-ai/phoenix/tree/main/packages/phoenix-client) | [![PyPI Version](https://img.shields.io/pypi/v/arize-phoenix-client)](https://pypi.org/project/arize-phoenix-client/) [![Docs](https://img.shields.io/badge/docs-blue?logo=readthedocs&logoColor=white)](https://arize-phoenix.readthedocs.io/projects/client/en/latest/index.html) | Lightweight client for interacting with the Phoenix server via its OpenAPI REST interface |
167
+ | [arize-phoenix-evals](https://github.com/Arize-ai/phoenix/tree/main/packages/phoenix-evals) | [![PyPI Version](https://img.shields.io/pypi/v/arize-phoenix-evals)](https://pypi.org/project/arize-phoenix-evals/) [![Docs](https://img.shields.io/badge/docs-blue?logo=readthedocs&logoColor=white)](https://arize-phoenix.readthedocs.io/projects/evals/en/latest/index.html) | Tooling to evaluate LLM applications including RAG relevance, answer relevance, and more |
168
+
169
+ ### TypeScript Subpackages
170
+
171
+ | Package | Version & Docs | Description |
172
+ | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
173
+ | [@arizeai/phoenix-otel](https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-otel) | [![NPM Version](https://img.shields.io/npm/v/%40arizeai%2Fphoenix-otel)](https://www.npmjs.com/package/@arizeai/phoenix-otel) [![Docs](https://img.shields.io/badge/docs-blue?logo=typescript&logoColor=white)](https://arize-ai.github.io/phoenix/) | Provides a lightweight wrapper around OpenTelemetry primitives with Phoenix-aware defaults |
174
+ | [@arizeai/phoenix-client](https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-client) | [![NPM Version](https://img.shields.io/npm/v/%40arizeai%2Fphoenix-client)](https://www.npmjs.com/package/@arizeai/phoenix-client) [![Docs](https://img.shields.io/badge/docs-blue?logo=typescript&logoColor=white)](https://arize-ai.github.io/phoenix/) | Client for the Arize Phoenix API |
175
+ | [@arizeai/phoenix-evals](https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-evals) | [![NPM Version](https://img.shields.io/npm/v/%40arizeai%2Fphoenix-evals)](https://www.npmjs.com/package/@arizeai/phoenix-evals) [![Docs](https://img.shields.io/badge/docs-blue?logo=typescript&logoColor=white)](https://arize-ai.github.io/phoenix/) | TypeScript evaluation library for LLM applications (alpha release) |
176
+ | [@arizeai/phoenix-mcp](https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-mcp) | [![NPM Version](https://img.shields.io/npm/v/%40arizeai%2Fphoenix-mcp)](https://www.npmjs.com/package/@arizeai/phoenix-mcp) [![Docs](https://img.shields.io/badge/docs-blue?logo=markdown&logoColor=white)](./js/packages/phoenix-mcp/README.md) | MCP server implementation for Arize Phoenix providing unified interface to Phoenix's capabilities |
177
+ | [@arizeai/phoenix-cli](https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli) | [![NPM Version](https://img.shields.io/npm/v/%40arizeai%2Fphoenix-cli)](https://www.npmjs.com/package/@arizeai/phoenix-cli) [![Docs](https://img.shields.io/badge/docs-blue?logo=typescript&logoColor=white)](https://arize.com/docs/phoenix/sdk-api-reference/typescript/arizeai-phoenix-cli) | CLI for fetching traces, datasets, and experiments for use with Claude Code, Cursor, and other coding agents |
178
+
179
+ ## Tracing Integrations
180
+
181
+ Phoenix is built on top of OpenTelemetry and is vendor, language, and framework agnostic. For details about tracing integrations and example applications, see the [OpenInference](https://github.com/Arize-ai/openinference) project.
182
+
183
+ **Python Integrations**
184
+ | | Integration | Package | Version |
185
+ |:---:|---|---|---|
186
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/openai.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/openai.png"></picture> | [OpenAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/openai) | `openinference-instrumentation-openai` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-openai.svg)](https://pypi.python.org/pypi/openinference-instrumentation-openai) |
187
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/openai.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/openai.png"></picture> | [OpenAI Agents](https://arize.com/docs/phoenix/tracing/integrations-tracing/openai-agents-sdk) | `openinference-instrumentation-openai-agents` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-openai-agents.svg)](https://pypi.python.org/pypi/openinference-instrumentation-openai-agents) |
188
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/llamaindex-color.png" height="14"> | [LlamaIndex](https://arize.com/docs/phoenix/tracing/integrations-tracing/llamaindex) | `openinference-instrumentation-llama-index` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-llama-index.svg)](https://pypi.python.org/pypi/openinference-instrumentation-llama-index) |
189
+ | | [DSPy](https://arize.com/docs/phoenix/tracing/integrations-tracing/dspy) | `openinference-instrumentation-dspy` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-dspy.svg)](https://pypi.python.org/pypi/openinference-instrumentation-dspy) |
190
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/bedrock-color.png" height="14"> | [AWS Bedrock](https://arize.com/docs/phoenix/tracing/integrations-tracing/bedrock) | `openinference-instrumentation-bedrock` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-bedrock.svg)](https://pypi.python.org/pypi/openinference-instrumentation-bedrock) |
191
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/langchain-color.png" height="14"> | [LangChain](https://arize.com/docs/phoenix/tracing/integrations-tracing/langchain) | `openinference-instrumentation-langchain` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-langchain.svg)](https://pypi.python.org/pypi/openinference-instrumentation-langchain) |
192
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/mistral-color.png" height="14"> | [MistralAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/mistralai) | `openinference-instrumentation-mistralai` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-mistralai.svg)](https://pypi.python.org/pypi/openinference-instrumentation-mistralai) |
193
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/google-color.png" height="14"> | [Google GenAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/google-gen-ai) | `openinference-instrumentation-google-genai` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-google-genai.svg)](https://pypi.python.org/pypi/openinference-instrumentation-google-genai) |
194
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/google-color.png" height="14"> | [Google ADK](https://arize.com/docs/phoenix/integrations/llm-providers/google-gen-ai/google-adk-tracing) | `openinference-instrumentation-google-adk` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-google-adk.svg)](https://pypi.python.org/pypi/openinference-instrumentation-google-adk) |
195
+ | | [Guardrails](https://arize.com/docs/phoenix/tracing/integrations-tracing/guardrails) | `openinference-instrumentation-guardrails` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-guardrails.svg)](https://pypi.python.org/pypi/openinference-instrumentation-guardrails) |
196
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/vertexai-color.png" height="14"> | [VertexAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/vertexai) | `openinference-instrumentation-vertexai` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-vertexai.svg)](https://pypi.python.org/pypi/openinference-instrumentation-vertexai) |
197
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/crewai-color.png" height="14"> | [CrewAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/crewai) | `openinference-instrumentation-crewai` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-crewai.svg)](https://pypi.python.org/pypi/openinference-instrumentation-crewai) |
198
+ | | [Haystack](https://arize.com/docs/phoenix/tracing/integrations-tracing/haystack) | `openinference-instrumentation-haystack` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-haystack.svg)](https://pypi.python.org/pypi/openinference-instrumentation-haystack) |
199
+ | | [LiteLLM](https://arize.com/docs/phoenix/tracing/integrations-tracing/litellm) | `openinference-instrumentation-litellm` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-litellm.svg)](https://pypi.python.org/pypi/openinference-instrumentation-litellm) |
200
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/groq.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/groq.png"></picture> | [Groq](https://arize.com/docs/phoenix/tracing/integrations-tracing/groq) | `openinference-instrumentation-groq` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-groq.svg)](https://pypi.python.org/pypi/openinference-instrumentation-groq) |
201
+ | | [Instructor](https://arize.com/docs/phoenix/tracing/integrations-tracing/instructor) | `openinference-instrumentation-instructor` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-instructor.svg)](https://pypi.python.org/pypi/openinference-instrumentation-instructor) |
202
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/anthropic.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/anthropic.png"></picture> | [Anthropic](https://arize.com/docs/phoenix/tracing/integrations-tracing/anthropic) | `openinference-instrumentation-anthropic` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-anthropic.svg)](https://pypi.python.org/pypi/openinference-instrumentation-anthropic) |
203
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/huggingface-color.png" height="14"> | [Smolagents](https://huggingface.co/docs/smolagents/en/tutorials/inspect_runs) | `openinference-instrumentation-smolagents` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-smolagents.svg)](https://pypi.python.org/pypi/openinference-instrumentation-smolagents) |
204
+ | | [Agno](https://arize.com/docs/phoenix/tracing/integrations-tracing/agno) | `openinference-instrumentation-agno` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-agno.svg)](https://pypi.python.org/pypi/openinference-instrumentation-agno) |
205
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/mcp.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/mcp.png"></picture> | [MCP](https://arize.com/docs/phoenix/tracing/integrations-tracing/model-context-protocol-mcp) | `openinference-instrumentation-mcp` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-mcp.svg)](https://pypi.python.org/pypi/openinference-instrumentation-mcp) |
206
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/pydanticai-color.png" height="14"> | [Pydantic AI](https://arize.com/docs/phoenix/integrations/python/pydantic) | `openinference-instrumentation-pydantic-ai` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-pydantic-ai.svg)](https://pypi.python.org/pypi/openinference-instrumentation-pydantic-ai) |
207
+ | | [Autogen AgentChat](https://arize.com/docs/phoenix/integrations/frameworks/autogen/autogen-tracing) | `openinference-instrumentation-autogen-agentchat` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-autogen-agentchat.svg)](https://pypi.python.org/pypi/openinference-instrumentation-autogen-agentchat) |
208
+ | | [Portkey](https://arize.com/docs/phoenix/integrations/portkey) | `openinference-instrumentation-portkey` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-portkey.svg)](https://pypi.python.org/pypi/openinference-instrumentation-portkey) |
209
+ | | [Agent Spec](https://arize.com/docs/phoenix/tracing/integrations-tracing/agentspec) | `openinference-instrumentation-agentspec` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-agentspec.svg)](https://pypi.python.org/pypi/openinference-instrumentation-agentspec) |
210
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/claude-color.png" height="14"> | [Claude Agent SDK](https://arize.com/docs/phoenix/integrations/python/claude-agent-sdk) | `openinference-instrumentation-claude-agent-sdk` | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-claude-agent-sdk.svg)](https://pypi.python.org/pypi/openinference-instrumentation-claude-agent-sdk) |
211
+
212
+ ## Span Processors
213
+
214
+ Normalize and convert data across other instrumentation libraries by adding span processors that unify data.
215
+
216
+ | Package | Description | Version |
217
+ | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
218
+ | [`openinference-instrumentation-openlit`](./python/instrumentation/openinference-instrumentation-openlit) | OpenInference Span Processor for OpenLIT traces. | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-openlit.svg)](https://pypi.python.org/pypi/openinference-instrumentation-openlit) |
219
+ | [`openinference-instrumentation-openllmetry`](./python/instrumentation/openinference-instrumentation-openllmetry) | OpenInference Span Processor for OpenLLMetry (Traceloop) traces. | [![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation-openllmetry.svg)](https://pypi.python.org/pypi/openinference-instrumentation-openllmetry) |
220
+
221
+ ### JavaScript Integrations
222
+
223
+ | | Integration | Package | Version |
224
+ |:---:|---|---|---|
225
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/openai.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/openai.png"></picture> | [OpenAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/openai-node-sdk) | `@arizeai/openinference-instrumentation-openai` | [![NPM Version](https://img.shields.io/npm/v/@arizeai/openinference-instrumentation-openai.svg)](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-openai) |
226
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/langchain-color.png" height="14"> | [LangChain.js](https://arize.com/docs/phoenix/tracing/integrations-tracing/langchain) | `@arizeai/openinference-instrumentation-langchain` | [![NPM Version](https://img.shields.io/npm/v/@arizeai/openinference-instrumentation-langchain.svg)](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-langchain) |
227
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/vercel.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/vercel.png"></picture> | [Vercel AI SDK](https://arize.com/docs/phoenix/tracing/integrations-tracing/vercel-ai-sdk) | `@arizeai/openinference-vercel` | [![NPM Version](https://img.shields.io/npm/v/@arizeai/openinference-vercel)](https://www.npmjs.com/package/@arizeai/openinference-vercel) |
228
+ | | [BeeAI](https://arize.com/docs/phoenix/tracing/integrations-tracing/beeai) | `@arizeai/openinference-instrumentation-beeai` | [![NPM Version](https://img.shields.io/npm/v/@arizeai/openinference-vercel)](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-beeai) |
229
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/claude-color.png" height="14"> | [Claude Agent SDK](https://arize.com/docs/phoenix/integrations/typescript/claude-agent-sdk) | `@arizeai/openinference-instrumentation-claude-agent-sdk` | [![NPM Version](https://img.shields.io/npm/v/@arizeai%2Fopeninference-instrumentation-claude-agent-sdk.svg)](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-claude-agent-sdk) |
230
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/mastra.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/mastra.png"></picture> | [Mastra](https://arize.com/docs/phoenix/integrations/typescript/mastra) | `@mastra/arize` | [![NPM Version](https://img.shields.io/npm/v/@mastra/arize.svg)](https://www.npmjs.com/package/@mastra/arize) |
231
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://unpkg.com/@lobehub/icons-static-png@latest/dark/mcp.png"><img height="14" src="https://unpkg.com/@lobehub/icons-static-png@latest/light/mcp.png"></picture> | [MCP](https://arize.com/docs/phoenix/integrations/typescript/mcp) | `@arizeai/openinference-instrumentation-mcp` | [![NPM Version](https://img.shields.io/npm/v/@arizeai%2Fopeninference-instrumentation-mcp.svg)](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-mcp) |
232
+
233
+ ### Java Integrations
234
+
235
+ | | Integration | Package | Version |
236
+ |:---:|---|---|---|
237
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/langchain-color.png" height="14"> | [LangChain4j](https://github.com/Arize-ai/openinference/tree/main/java/instrumentation/openinference-instrumentation-langchain4j) | `openinference-instrumentation-langchain4j` | [![Maven Central](https://img.shields.io/maven-central/v/com.arize/openinference-instrumentation-langchain4j.svg)](https://central.sonatype.com/artifact/com.arize/openinference-instrumentation-langchain4j) |
238
+ | | SpringAI | `openinference-instrumentation-springAI` | [![Maven Central](https://img.shields.io/maven-central/v/com.arize/openinference-instrumentation-springAI.svg)](https://central.sonatype.com/artifact/com.arize/openinference-instrumentation-springAI) |
239
+ | | [Arconia](https://arconia.io/docs/arconia/latest/observability/generative-ai/) | `openinference-instrumentation-springAI` | [![Maven Central](https://img.shields.io/maven-central/v/com.arize/openinference-instrumentation-springAI.svg)](https://central.sonatype.com/artifact/com.arize/openinference-instrumentation-springAI) |
240
+
241
+ ### Platforms
242
+
243
+ | | Platform | Description | Docs |
244
+ |:---:|---|---|---|
245
+ | | [BeeAI](https://docs.beeai.dev/observability/agents-traceability) | AI agent framework with built-in observability | [Integration Guide](https://docs.beeai.dev/observability/agents-traceability) |
246
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/dify-color.png" height="14"> | [Dify](https://docs.dify.ai/en/guides/monitoring/integrate-external-ops-tools/integrate-phoenix) | Open-source LLM app development platform | [Integration Guide](https://docs.dify.ai/en/guides/monitoring/integrate-external-ops-tools/integrate-phoenix) |
247
+ | | [Envoy AI Gateway](https://github.com/envoyproxy/ai-gateway) | AI Gateway built on Envoy Proxy for AI workloads | [Integration Guide](https://github.com/envoyproxy/ai-gateway/tree/main/cmd/aigw#opentelemetry-setup-with-phoenix) |
248
+ | | [LangFlow](https://arize.com/docs/phoenix/tracing/integrations-tracing/langflow) | Visual framework for building multi-agent and RAG applications | [Integration Guide](https://arize.com/docs/phoenix/tracing/integrations-tracing/langflow) |
249
+ | | [LiteLLM Proxy](https://docs.litellm.ai/docs/observability/phoenix_integration#using-with-litellm-proxy) | Proxy server for LLMs | [Integration Guide](https://docs.litellm.ai/docs/observability/phoenix_integration#using-with-litellm-proxy) |
250
+ | | [Flowise](https://arize.com/docs/phoenix/integrations/platforms/flowise) | Visual framework for building LLM applications | [Integration Guide](https://arize.com/docs/phoenix/integrations/platforms/flowise) |
251
+ | | [Prompt Flow](https://arize.com/docs/phoenix/integrations/platforms/prompt-flow) | Microsoft's prompt flow orchestration tool | [Integration Guide](https://arize.com/docs/phoenix/integrations/platforms/prompt-flow) |
252
+ | <img src="https://unpkg.com/@lobehub/icons-static-png@latest/dark/nvidia-color.png" height="14"> | [NVIDIA NeMo](https://arize.com/docs/phoenix/integrations/python/nvidia) | NVIDIA NeMo Agent Toolkit for enterprise agents | [Integration Guide](https://arize.com/docs/phoenix/integrations/python/nvidia) |
253
+ | | [Graphite](https://arize.com/docs/phoenix/integrations/python/graphite) | Multi-agent LLM workflow framework with visual builder | [Integration Guide](https://arize.com/docs/phoenix/integrations/python/graphite) |
254
+
255
+ ## Security & Privacy
256
+
257
+ We take data security and privacy very seriously. For more details, see our [Security and Privacy documentation](https://arize.com/docs/phoenix/self-hosting/security/privacy).
258
+
259
+ ### Telemetry
260
+
261
+ By default, Phoenix collects basic web analytics (e.g., page views, UI interactions) to help us understand how Phoenix is used and improve the product. **None of your trace data, evaluation results, or any sensitive information is ever collected.**
262
+
263
+ You can opt-out of telemetry by setting the environment variable: `PHOENIX_TELEMETRY_ENABLED=false`
264
+
265
+ ## Community
266
+
267
+ Join our community to connect with thousands of AI builders.
268
+
269
+ - 🌍 Join our [Slack community](https://join.slack.com/t/arize-ai/shared_invite/zt-3r07iavnk-ammtATWSlF0pSrd1DsMW7g).
270
+ - πŸ“š Read our [documentation](https://arize.com/docs/phoenix).
271
+ - πŸ’‘ Ask questions and provide feedback in the _#phoenix-support_ channel.
272
+ - 🌟 Leave a star on our [GitHub](https://github.com/Arize-ai/phoenix).
273
+ - 🐞 Report bugs with [GitHub Issues](https://github.com/Arize-ai/phoenix/issues).
274
+ - 𝕏 Follow us on [𝕏](https://twitter.com/ArizePhoenix).
275
+ - πŸ—ΊοΈ Check out our [roadmap](https://github.com/orgs/Arize-ai/projects/45) to see where we're heading next.
276
+ - πŸ§‘β€πŸ« Deep dive into everything [Agents](http://arize.com/ai-agents/) and [LLM Evaluations](https://arize.com/llm-evaluation) on Arize's Learning Hubs.
277
+
278
+ ## Breaking Changes
279
+
280
+ See the [migration guide](./MIGRATION.md) for a list of breaking changes.
281
+
282
+ ## Copyright, Patent, and License
283
+
284
+ Copyright 2025 Arize AI, Inc. All Rights Reserved.
285
+
286
+ Portions of this code are patent protected by one or more U.S. Patents. See the [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).
287
+
288
+ This software is licensed under the terms of the Elastic License 2.0 (ELv2). See [LICENSE](https://github.com/Arize-ai/phoenix/blob/main/LICENSE).