arize-phoenix 3.16.0__tar.gz → 3.16.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.

Potentially problematic release.


This version of arize-phoenix might be problematic. Click here for more details.

Files changed (180) hide show
  1. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/PKG-INFO +4 -4
  2. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/README.md +2 -2
  3. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/project.py +5 -3
  4. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/traces.py +6 -10
  5. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/schema.py +7 -13
  6. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Span.py +3 -3
  7. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/node.py +14 -0
  8. arize_phoenix-3.16.1/src/phoenix/version.py +1 -0
  9. arize_phoenix-3.16.0/src/phoenix/version.py +0 -1
  10. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/.gitignore +0 -0
  11. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/IP_NOTICE +0 -0
  12. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/LICENSE +0 -0
  13. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/pyproject.toml +0 -0
  14. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/__init__.py +0 -0
  15. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/config.py +0 -0
  16. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/__init__.py +0 -0
  17. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/embedding_dimension.py +0 -0
  18. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/model.py +0 -0
  19. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/model_schema.py +0 -0
  20. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/core/model_schema_adapter.py +0 -0
  21. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datasets/__init__.py +0 -0
  22. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datasets/dataset.py +0 -0
  23. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datasets/errors.py +0 -0
  24. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datasets/fixtures.py +0 -0
  25. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datasets/schema.py +0 -0
  26. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datasets/validation.py +0 -0
  27. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/datetime_utils.py +0 -0
  28. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/exceptions.py +0 -0
  29. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/__init__.py +0 -0
  30. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/__init__.py +0 -0
  31. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/evaluators.py +0 -0
  32. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/functions/__init__.py +0 -0
  33. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/functions/classify.py +0 -0
  34. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/functions/executor.py +0 -0
  35. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/functions/generate.py +0 -0
  36. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/functions/processing.py +0 -0
  37. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/__init__.py +0 -0
  38. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/anthropic.py +0 -0
  39. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/base.py +0 -0
  40. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/bedrock.py +0 -0
  41. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/litellm.py +0 -0
  42. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/openai.py +0 -0
  43. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/rate_limiters.py +0 -0
  44. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/vertex.py +0 -0
  45. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/models/vertexai.py +0 -0
  46. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/retrievals.py +0 -0
  47. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/templates/__init__.py +0 -0
  48. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/templates/default_templates.py +0 -0
  49. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/templates/template.py +0 -0
  50. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/utils/__init__.py +0 -0
  51. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/experimental/evals/utils/threads.py +0 -0
  52. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/README.md +0 -0
  53. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/__init__.py +0 -0
  54. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/binning.py +0 -0
  55. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/metrics.py +0 -0
  56. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/mixins.py +0 -0
  57. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  58. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/timeseries.py +0 -0
  59. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/metrics/wrappers.py +0 -0
  60. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/pointcloud/__init__.py +0 -0
  61. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/pointcloud/clustering.py +0 -0
  62. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/pointcloud/pointcloud.py +0 -0
  63. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/pointcloud/projectors.py +0 -0
  64. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  65. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/py.typed +0 -0
  66. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/__init__.py +0 -0
  67. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/__init__.py +0 -0
  68. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/context.py +0 -0
  69. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/helpers.py +0 -0
  70. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  71. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  72. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  73. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  74. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  75. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  76. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  77. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  78. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  79. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/input_types/__init__.py +0 -0
  80. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/interceptor.py +0 -0
  81. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/routers/__init__.py +0 -0
  82. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/routers/evaluation_handler.py +0 -0
  83. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/routers/span_handler.py +0 -0
  84. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/routers/trace_handler.py +0 -0
  85. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/routers/utils.py +0 -0
  86. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Cluster.py +0 -0
  87. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  88. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Dataset.py +0 -0
  89. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DatasetRole.py +0 -0
  90. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  91. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Dimension.py +0 -0
  92. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  93. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  94. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DimensionType.py +0 -0
  95. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  96. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  97. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  98. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  99. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  100. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Evaluation.py +0 -0
  101. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  102. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Event.py +0 -0
  103. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  104. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/ExportEventsMutation.py +0 -0
  105. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  106. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Functionality.py +0 -0
  107. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/MimeType.py +0 -0
  108. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Model.py +0 -0
  109. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/NumericRange.py +0 -0
  110. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  111. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Project.py +0 -0
  112. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  113. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Retrieval.py +0 -0
  114. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  115. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/Segments.py +0 -0
  116. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/SortDir.py +0 -0
  117. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  118. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  119. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  120. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  121. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/__init__.py +0 -0
  122. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/api/types/pagination.py +0 -0
  123. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/app.py +0 -0
  124. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/main.py +0 -0
  125. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  126. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  127. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  128. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  129. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  130. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  131. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  132. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  133. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/favicon.ico +0 -0
  134. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/index.css +0 -0
  135. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/index.js +0 -0
  136. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/static/modernizr.js +0 -0
  137. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/templates/__init__.py +0 -0
  138. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/templates/index.html +0 -0
  139. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/server/thread_server.py +0 -0
  140. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/services.py +0 -0
  141. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/session/__init__.py +0 -0
  142. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/session/client.py +0 -0
  143. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/session/data_extractor.py +0 -0
  144. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/session/evaluation.py +0 -0
  145. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/session/session.py +0 -0
  146. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/storage/__init__.py +0 -0
  147. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/storage/span_store/__init__.py +0 -0
  148. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/storage/span_store/text_file.py +0 -0
  149. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/__init__.py +0 -0
  150. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/dsl/__init__.py +0 -0
  151. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/dsl/filter.py +0 -0
  152. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/dsl/helpers.py +0 -0
  153. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/dsl/missing.py +0 -0
  154. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/dsl/query.py +0 -0
  155. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/errors.py +0 -0
  156. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/evaluation_conventions.py +0 -0
  157. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/exporter.py +0 -0
  158. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/fixtures.py +0 -0
  159. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/langchain/__init__.py +0 -0
  160. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/langchain/instrumentor.py +0 -0
  161. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/llama_index/__init__.py +0 -0
  162. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/llama_index/callback.py +0 -0
  163. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/openai/__init__.py +0 -0
  164. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/openai/instrumentor.py +0 -0
  165. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/otel.py +0 -0
  166. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/projects.py +0 -0
  167. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/schemas.py +0 -0
  168. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/span_evaluations.py +0 -0
  169. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/span_json_decoder.py +0 -0
  170. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/span_json_encoder.py +0 -0
  171. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/trace_dataset.py +0 -0
  172. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/utils.py +0 -0
  173. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/v1/__init__.py +0 -0
  174. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  175. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  176. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/utilities/__init__.py +0 -0
  177. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/utilities/error_handling.py +0 -0
  178. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/utilities/logging.py +0 -0
  179. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/utilities/project.py +0 -0
  180. {arize_phoenix-3.16.0 → arize_phoenix-3.16.1}/src/phoenix/utilities/span_store.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: arize-phoenix
3
- Version: 3.16.0
3
+ Version: 3.16.1
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://docs.arize.com/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -109,7 +109,7 @@ Phoenix provides MLOps and LLMOps insights at lightning speed with zero-config o
109
109
  - **LLM Traces** - Trace through the execution of your LLM Application to understand the internals of your LLM Application and to troubleshoot problems related to things like retrieval and tool execution.
110
110
  - **LLM Evals** - Leverage the power of large language models to evaluate your generative model or application's relevance, toxicity, and more.
111
111
  - **Embedding Analysis** - Explore embedding point-clouds and identify clusters of high drift and performance degradation.
112
- - **RAG Analysis** - Visualize your generative application's search and retrieval process to solve improve your retrieval-augmented generation.
112
+ - **RAG Analysis** - Visualize your generative application's search and retrieval process to identify problems and improve your RAG pipeline.
113
113
  - **Structured Data Analysis** - Statistically analyze your structured data by performing A/B analysis, temporal drift analysis, and more.
114
114
 
115
115
  **Table of Contents**
@@ -230,7 +230,7 @@ session = px.launch_app()
230
230
 
231
231
  # Once you have started a Phoenix server, you can start your LangChain application with the OpenInferenceTracer as a callback. To do this, you will have to instrument your LangChain application with the tracer:
232
232
 
233
- from phoenix.trace.langchain import OpenInferenceTracer, LangChainInstrumentor
233
+ from phoenix.trace.langchain import LangChainInstrumentor
234
234
 
235
235
  # By default, the traces will be exported to the locally running Phoenix server.
236
236
  LangChainInstrumentor().instrument()
@@ -34,7 +34,7 @@ Phoenix provides MLOps and LLMOps insights at lightning speed with zero-config o
34
34
  - **LLM Traces** - Trace through the execution of your LLM Application to understand the internals of your LLM Application and to troubleshoot problems related to things like retrieval and tool execution.
35
35
  - **LLM Evals** - Leverage the power of large language models to evaluate your generative model or application's relevance, toxicity, and more.
36
36
  - **Embedding Analysis** - Explore embedding point-clouds and identify clusters of high drift and performance degradation.
37
- - **RAG Analysis** - Visualize your generative application's search and retrieval process to solve improve your retrieval-augmented generation.
37
+ - **RAG Analysis** - Visualize your generative application's search and retrieval process to identify problems and improve your RAG pipeline.
38
38
  - **Structured Data Analysis** - Statistically analyze your structured data by performing A/B analysis, temporal drift analysis, and more.
39
39
 
40
40
  **Table of Contents**
@@ -155,7 +155,7 @@ session = px.launch_app()
155
155
 
156
156
  # Once you have started a Phoenix server, you can start your LangChain application with the OpenInferenceTracer as a callback. To do this, you will have to instrument your LangChain application with the tracer:
157
157
 
158
- from phoenix.trace.langchain import OpenInferenceTracer, LangChainInstrumentor
158
+ from phoenix.trace.langchain import LangChainInstrumentor
159
159
 
160
160
  # By default, the traces will be exported to the locally running Phoenix server.
161
161
  LangChainInstrumentor().instrument()
@@ -13,6 +13,7 @@ from typing import (
13
13
  Mapping,
14
14
  Optional,
15
15
  Set,
16
+ Sized,
16
17
  Tuple,
17
18
  Union,
18
19
  cast,
@@ -386,9 +387,10 @@ class _Spans:
386
387
  span_id = span.context.span_id
387
388
  if token_count_update := span.attributes.get(SpanAttributes.LLM_TOKEN_COUNT_TOTAL):
388
389
  self._token_count_total += token_count_update
389
- if num_documents_update := len(
390
- span.attributes.get(SpanAttributes.RETRIEVAL_DOCUMENTS) or ()
391
- ):
390
+ if isinstance(
391
+ (retrieval_documents := span.attributes.get(SpanAttributes.RETRIEVAL_DOCUMENTS)),
392
+ Sized,
393
+ ) and (num_documents_update := len(retrieval_documents)):
392
394
  self._num_documents[span_id] += num_documents_update
393
395
 
394
396
  def _propagate_cumulative_values(self, span: WrappedSpan) -> None:
@@ -46,17 +46,13 @@ class Traces:
46
46
  yield project_id, project_name, project
47
47
 
48
48
  def archive_project(self, id: int) -> Optional["Project"]:
49
+ if id == 0:
50
+ raise ValueError("Cannot archive the default project")
49
51
  with self._lock:
50
- active_projects = {
51
- project_id: project
52
- for project_id, _, project in self.get_projects()
53
- if not project.is_archived
54
- }
55
- if len(active_projects) <= 1:
56
- return None
57
- if project := active_projects.get(id):
58
- project.archive()
59
- return project
52
+ for project_id, _, project in self.get_projects():
53
+ if id == project_id:
54
+ project.archive()
55
+ return project
60
56
  return None
61
57
 
62
58
  def put(
@@ -31,7 +31,7 @@ from .types.Event import create_event_id, unpack_event_id
31
31
  from .types.ExportEventsMutation import ExportEventsMutation
32
32
  from .types.Functionality import Functionality
33
33
  from .types.Model import Model
34
- from .types.node import GlobalID, Node, from_global_id
34
+ from .types.node import GlobalID, Node, from_global_id, from_global_id_with_expected_type
35
35
  from .types.pagination import Connection, ConnectionArgs, Cursor, connection_from_list
36
36
 
37
37
 
@@ -230,22 +230,16 @@ class Query:
230
230
  class Mutation(ExportEventsMutation):
231
231
  @strawberry.mutation
232
232
  def delete_project(self, info: Info[Context, None], id: GlobalID) -> Query:
233
- if (traces := info.context.traces) is None:
234
- return Query()
235
- type_name, node_id = from_global_id(str(id))
236
- if type_name != "Project":
237
- return Query()
238
- traces.archive_project(node_id)
233
+ if (traces := info.context.traces) is not None:
234
+ node_id = from_global_id_with_expected_type(str(id), "Project")
235
+ traces.archive_project(node_id)
239
236
  return Query()
240
237
 
241
238
  @strawberry.mutation
242
239
  def archive_project(self, info: Info[Context, None], id: GlobalID) -> Query:
243
- if (traces := info.context.traces) is None:
244
- return Query()
245
- type_name, node_id = from_global_id(str(id))
246
- if type_name != "Project":
247
- return Query()
248
- traces.archive_project(node_id)
240
+ if (traces := info.context.traces) is not None:
241
+ node_id = from_global_id_with_expected_type(str(id), "Project")
242
+ traces.archive_project(node_id)
249
243
  return Query()
250
244
 
251
245
 
@@ -2,7 +2,7 @@ import json
2
2
  from collections import defaultdict
3
3
  from datetime import datetime
4
4
  from enum import Enum
5
- from typing import Any, DefaultDict, Dict, List, Mapping, Optional, Sized, cast
5
+ from typing import Any, DefaultDict, Dict, Iterable, List, Mapping, Optional, Sized, cast
6
6
 
7
7
  import numpy as np
8
8
  import strawberry
@@ -339,12 +339,12 @@ def _hide_embedding_vectors(
339
339
  attributes: Mapping[str, Any],
340
340
  ) -> Dict[str, Any]:
341
341
  _attributes = dict(attributes)
342
- if not (embeddings := _attributes.get(EMBEDDING_EMBEDDINGS)):
342
+ if not isinstance((embeddings := _attributes.get(EMBEDDING_EMBEDDINGS)), Iterable):
343
343
  return _attributes
344
344
  _embeddings = []
345
345
  for embedding in embeddings:
346
346
  _embedding = dict(embedding)
347
- if vector := _embedding.get(EMBEDDING_VECTOR):
347
+ if isinstance((vector := _embedding.get(EMBEDDING_VECTOR)), Sized):
348
348
  _embedding[EMBEDDING_VECTOR] = f"<{len(vector)} dimensional vector>"
349
349
  _embeddings.append(_embedding)
350
350
  _attributes[EMBEDDING_EMBEDDINGS] = _embeddings
@@ -30,6 +30,20 @@ def from_global_id(global_id: str) -> Tuple[str, int]:
30
30
  return type_name, int(node_id)
31
31
 
32
32
 
33
+ def from_global_id_with_expected_type(global_id: str, expected_type_name: str) -> int:
34
+ """
35
+ Decodes the given global id and return the id, checking that the type
36
+ matches the expected type.
37
+ """
38
+ type_name, node_id = from_global_id(global_id)
39
+ if type_name != expected_type_name:
40
+ raise ValueError(
41
+ f"The node id must correspond to a node of type {expected_type_name}, "
42
+ f"but instead corresponds to a node of type: {type_name}"
43
+ )
44
+ return node_id
45
+
46
+
33
47
  class GlobalIDValueError(ValueError):
34
48
  """GlobalID value error, usually related to parsing or serialization."""
35
49
 
@@ -0,0 +1 @@
1
+ __version__ = "3.16.1"
@@ -1 +0,0 @@
1
- __version__ = "3.16.0"
File without changes
File without changes