arize-phoenix 4.0.1__tar.gz → 4.0.3__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 (201) hide show
  1. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/PKG-INFO +1 -1
  2. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/bulk_inserter.py +7 -8
  3. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/trace_dataset.py +3 -2
  4. arize_phoenix-4.0.3/src/phoenix/version.py +1 -0
  5. arize_phoenix-4.0.1/src/phoenix/version.py +0 -1
  6. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/.gitignore +0 -0
  7. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/IP_NOTICE +0 -0
  8. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/LICENSE +0 -0
  9. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/README.md +0 -0
  10. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/chat-service/chat/__init__.py +0 -0
  11. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/chat-service/chat/app.py +0 -0
  12. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/chat-service/chat/types.py +0 -0
  13. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/frontend/Dockerfile +0 -0
  14. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/frontend/Makefile +0 -0
  15. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/frontend/__init__.py +0 -0
  16. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/frontend/pyproject.toml +0 -0
  17. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/frontend/requirements.txt +0 -0
  18. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/examples/manually-instrumented-chatbot/frontend/schema.json +0 -0
  19. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/pyproject.toml +0 -0
  20. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/__init__.py +0 -0
  21. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/config.py +0 -0
  22. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/core/__init__.py +0 -0
  23. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/core/embedding_dimension.py +0 -0
  24. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/core/model.py +0 -0
  25. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/core/model_schema.py +0 -0
  26. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/core/model_schema_adapter.py +0 -0
  27. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/datetime_utils.py +0 -0
  28. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/README.md +0 -0
  29. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/__init__.py +0 -0
  30. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/alembic.ini +0 -0
  31. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/engines.py +0 -0
  32. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/helpers.py +0 -0
  33. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/insertion/__init__.py +0 -0
  34. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/insertion/evaluation.py +0 -0
  35. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/insertion/helpers.py +0 -0
  36. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/insertion/span.py +0 -0
  37. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/migrate.py +0 -0
  38. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/migrations/__init__.py +0 -0
  39. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/migrations/env.py +0 -0
  40. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/migrations/script.py.mako +0 -0
  41. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  42. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/db/models.py +0 -0
  43. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/exceptions.py +0 -0
  44. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/inferences/__init__.py +0 -0
  45. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/inferences/errors.py +0 -0
  46. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/inferences/fixtures.py +0 -0
  47. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/inferences/inferences.py +0 -0
  48. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/inferences/schema.py +0 -0
  49. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/inferences/validation.py +0 -0
  50. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/README.md +0 -0
  51. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/__init__.py +0 -0
  52. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/binning.py +0 -0
  53. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/metrics.py +0 -0
  54. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/mixins.py +0 -0
  55. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  56. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/timeseries.py +0 -0
  57. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/metrics/wrappers.py +0 -0
  58. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/pointcloud/__init__.py +0 -0
  59. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/pointcloud/clustering.py +0 -0
  60. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/pointcloud/pointcloud.py +0 -0
  61. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/pointcloud/projectors.py +0 -0
  62. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  63. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/py.typed +0 -0
  64. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/__init__.py +0 -0
  65. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/__init__.py +0 -0
  66. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/context.py +0 -0
  67. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  68. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  69. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  70. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  71. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  72. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  73. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/evaluation_summaries.py +0 -0
  74. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  75. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  76. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  77. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  78. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/span_evaluations.py +0 -0
  79. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  80. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/dataloaders/trace_evaluations.py +0 -0
  81. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/helpers.py +0 -0
  82. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  83. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  84. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  85. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  86. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  87. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  88. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  89. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  90. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  91. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/input_types/__init__.py +0 -0
  92. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/interceptor.py +0 -0
  93. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/routers/__init__.py +0 -0
  94. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/routers/utils.py +0 -0
  95. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  96. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  97. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  98. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  99. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/schema.py +0 -0
  100. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Cluster.py +0 -0
  101. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  102. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Dataset.py +0 -0
  103. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DatasetRole.py +0 -0
  104. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  105. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Dimension.py +0 -0
  106. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  107. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  108. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DimensionType.py +0 -0
  109. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  110. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  111. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  112. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  113. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  114. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Evaluation.py +0 -0
  115. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  116. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Event.py +0 -0
  117. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  118. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/ExportEventsMutation.py +0 -0
  119. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  120. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Functionality.py +0 -0
  121. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/MimeType.py +0 -0
  122. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Model.py +0 -0
  123. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/NumericRange.py +0 -0
  124. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  125. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Project.py +0 -0
  126. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  127. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Retrieval.py +0 -0
  128. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  129. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Segments.py +0 -0
  130. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/SortDir.py +0 -0
  131. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Span.py +0 -0
  132. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  133. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/Trace.py +0 -0
  134. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  135. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  136. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  137. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/__init__.py +0 -0
  138. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/node.py +0 -0
  139. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/api/types/pagination.py +0 -0
  140. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/app.py +0 -0
  141. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/grpc_server.py +0 -0
  142. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/main.py +0 -0
  143. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/openapi/__init__.py +0 -0
  144. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/openapi/docs.py +0 -0
  145. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/prometheus.py +0 -0
  146. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  147. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  148. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  149. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  150. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  151. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  152. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  153. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  154. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/favicon.ico +0 -0
  155. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/index.css +0 -0
  156. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/index.js +0 -0
  157. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/static/modernizr.js +0 -0
  158. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/telemetry.py +0 -0
  159. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/templates/__init__.py +0 -0
  160. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/templates/index.html +0 -0
  161. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/server/thread_server.py +0 -0
  162. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/services.py +0 -0
  163. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/session/__init__.py +0 -0
  164. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/session/client.py +0 -0
  165. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/session/data_extractor.py +0 -0
  166. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/session/evaluation.py +0 -0
  167. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/session/session.py +0 -0
  168. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/settings.py +0 -0
  169. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/__init__.py +0 -0
  170. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/attributes.py +0 -0
  171. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/dsl/README.md +0 -0
  172. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/dsl/__init__.py +0 -0
  173. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/dsl/filter.py +0 -0
  174. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/dsl/helpers.py +0 -0
  175. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/dsl/query.py +0 -0
  176. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/errors.py +0 -0
  177. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/evaluation_conventions.py +0 -0
  178. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/exporter.py +0 -0
  179. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/fixtures.py +0 -0
  180. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/langchain/__init__.py +0 -0
  181. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/langchain/instrumentor.py +0 -0
  182. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/llama_index/__init__.py +0 -0
  183. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/llama_index/callback.py +0 -0
  184. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/openai/__init__.py +0 -0
  185. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/openai/instrumentor.py +0 -0
  186. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/otel.py +0 -0
  187. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/projects.py +0 -0
  188. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/schemas.py +0 -0
  189. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/span_evaluations.py +0 -0
  190. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/span_json_decoder.py +0 -0
  191. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/span_json_encoder.py +0 -0
  192. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/utils.py +0 -0
  193. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/v1/__init__.py +0 -0
  194. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  195. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  196. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/utilities/__init__.py +0 -0
  197. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/utilities/deprecation.py +0 -0
  198. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/utilities/error_handling.py +0 -0
  199. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/utilities/logging.py +0 -0
  200. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/utilities/project.py +0 -0
  201. {arize_phoenix-4.0.1 → arize_phoenix-4.0.3}/src/phoenix/utilities/span_store.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arize-phoenix
3
- Version: 4.0.1
3
+ Version: 4.0.3
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
@@ -3,7 +3,7 @@ import logging
3
3
  from dataclasses import dataclass, field
4
4
  from datetime import datetime, timezone
5
5
  from itertools import islice
6
- from time import perf_counter, time
6
+ from time import perf_counter
7
7
  from typing import (
8
8
  Any,
9
9
  AsyncContextManager,
@@ -48,21 +48,20 @@ class BulkInserter:
48
48
  cache_for_dataloaders: Optional[CacheForDataLoaders] = None,
49
49
  initial_batch_of_spans: Optional[Iterable[Tuple[Span, str]]] = None,
50
50
  initial_batch_of_evaluations: Optional[Iterable[pb.Evaluation]] = None,
51
- run_interval_in_seconds: float = 2,
51
+ sleep: float = 0.1,
52
52
  max_num_per_transaction: int = 1000,
53
53
  enable_prometheus: bool = False,
54
54
  ) -> None:
55
55
  """
56
56
  :param db: A function to initiate a new database session.
57
57
  :param initial_batch_of_spans: Initial batch of spans to insert.
58
- :param run_interval_in_seconds: The time interval between the starts of each
59
- bulk insert. If there's nothing to insert, the inserter goes back to sleep.
58
+ :param sleep: The time to sleep between bulk insertions
60
59
  :param max_num_per_transaction: The maximum number of items to insert in a single
61
60
  transaction. Multiple transactions will be used if there are more items in the batch.
62
61
  """
63
62
  self._db = db
64
63
  self._running = False
65
- self._run_interval_seconds = run_interval_in_seconds
64
+ self._sleep = sleep
66
65
  self._max_num_per_transaction = max_num_per_transaction
67
66
  self._spans: List[Tuple[Span, str]] = (
68
67
  [] if initial_batch_of_spans is None else list(initial_batch_of_spans)
@@ -98,11 +97,10 @@ class BulkInserter:
98
97
 
99
98
  async def _bulk_insert(self) -> None:
100
99
  spans_buffer, evaluations_buffer = None, None
101
- next_run_at = time() + self._run_interval_seconds
100
+ # start first insert immediately if the inserter has not run recently
102
101
  while self._spans or self._evaluations or self._running:
103
- await asyncio.sleep(next_run_at - time())
104
- next_run_at = time() + self._run_interval_seconds
105
102
  if not (self._spans or self._evaluations):
103
+ await asyncio.sleep(self._sleep)
106
104
  continue
107
105
  # It's important to grab the buffers at the same time so there's
108
106
  # no race condition, since an eval insertion will fail if the span
@@ -128,6 +126,7 @@ class BulkInserter:
128
126
  evaluations_buffer = None
129
127
  for project_rowid in transaction_result.updated_project_rowids:
130
128
  self._last_updated_at_by_project[project_rowid] = datetime.now(timezone.utc)
129
+ await asyncio.sleep(self._sleep)
131
130
 
132
131
  async def _insert_spans(self, spans: List[Tuple[Span, str]]) -> TransactionResult:
133
132
  transaction_result = TransactionResult()
@@ -16,6 +16,7 @@ from pyarrow import Schema, Table, parquet
16
16
 
17
17
  from phoenix.config import DATASET_DIR, GENERATED_DATASET_NAME_PREFIX, TRACE_DATASET_DIR
18
18
  from phoenix.datetime_utils import normalize_timestamps
19
+ from phoenix.trace.attributes import unflatten
19
20
  from phoenix.trace.errors import InvalidParquetMetadataError
20
21
  from phoenix.trace.schemas import ATTRIBUTE_PREFIX, CONTEXT_PREFIX, Span
21
22
  from phoenix.trace.span_evaluations import Evaluations, SpanEvaluations
@@ -161,13 +162,13 @@ class TraceDataset:
161
162
  for _, row in self.dataframe.iterrows():
162
163
  is_attribute = row.index.str.startswith(ATTRIBUTE_PREFIX)
163
164
  attribute_keys = row.index[is_attribute]
164
- attributes = (
165
+ attributes = unflatten(
165
166
  row.loc[is_attribute]
166
167
  .rename(
167
168
  {key: key[len(ATTRIBUTE_PREFIX) :] for key in attribute_keys},
168
169
  )
169
170
  .dropna()
170
- .to_dict()
171
+ .items()
171
172
  )
172
173
  is_context = row.index.str.startswith(CONTEXT_PREFIX)
173
174
  context_keys = row.index[is_context]
@@ -0,0 +1 @@
1
+ __version__ = "4.0.3"
@@ -1 +0,0 @@
1
- __version__ = "4.0.1"
File without changes
File without changes
File without changes
File without changes