arize-phoenix 4.0.0__tar.gz → 4.0.2__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.0 → arize_phoenix-4.0.2}/PKG-INFO +1 -1
  2. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/bulk_inserter.py +8 -3
  3. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/helpers.py +2 -5
  4. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/otel.py +11 -1
  5. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/trace_dataset.py +3 -2
  6. arize_phoenix-4.0.2/src/phoenix/version.py +1 -0
  7. arize_phoenix-4.0.0/src/phoenix/version.py +0 -1
  8. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/.gitignore +0 -0
  9. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/IP_NOTICE +0 -0
  10. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/LICENSE +0 -0
  11. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/README.md +0 -0
  12. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/chat-service/chat/__init__.py +0 -0
  13. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/chat-service/chat/app.py +0 -0
  14. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/chat-service/chat/types.py +0 -0
  15. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/Dockerfile +0 -0
  16. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/Makefile +0 -0
  17. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/__init__.py +0 -0
  18. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/pyproject.toml +0 -0
  19. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/requirements.txt +0 -0
  20. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/schema.json +0 -0
  21. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/pyproject.toml +0 -0
  22. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/__init__.py +0 -0
  23. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/config.py +0 -0
  24. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/__init__.py +0 -0
  25. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/embedding_dimension.py +0 -0
  26. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/model.py +0 -0
  27. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/model_schema.py +0 -0
  28. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/model_schema_adapter.py +0 -0
  29. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/datetime_utils.py +0 -0
  30. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/README.md +0 -0
  31. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/__init__.py +0 -0
  32. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/alembic.ini +0 -0
  33. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/engines.py +0 -0
  34. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/helpers.py +0 -0
  35. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/__init__.py +0 -0
  36. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/evaluation.py +0 -0
  37. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/span.py +0 -0
  38. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrate.py +0 -0
  39. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/__init__.py +0 -0
  40. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/env.py +0 -0
  41. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/script.py.mako +0 -0
  42. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  43. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/models.py +0 -0
  44. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/exceptions.py +0 -0
  45. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/__init__.py +0 -0
  46. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/errors.py +0 -0
  47. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/fixtures.py +0 -0
  48. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/inferences.py +0 -0
  49. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/schema.py +0 -0
  50. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/validation.py +0 -0
  51. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/README.md +0 -0
  52. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/__init__.py +0 -0
  53. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/binning.py +0 -0
  54. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/metrics.py +0 -0
  55. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/mixins.py +0 -0
  56. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  57. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/timeseries.py +0 -0
  58. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/wrappers.py +0 -0
  59. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/__init__.py +0 -0
  60. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/clustering.py +0 -0
  61. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/pointcloud.py +0 -0
  62. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/projectors.py +0 -0
  63. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  64. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/py.typed +0 -0
  65. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/__init__.py +0 -0
  66. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/__init__.py +0 -0
  67. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/context.py +0 -0
  68. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  69. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  70. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  71. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  72. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  73. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  74. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/evaluation_summaries.py +0 -0
  75. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  76. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  77. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  78. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  79. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/span_evaluations.py +0 -0
  80. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  81. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/trace_evaluations.py +0 -0
  82. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/helpers.py +0 -0
  83. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  84. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  85. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  86. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  87. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  88. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  89. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  90. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  91. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  92. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/__init__.py +0 -0
  93. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/interceptor.py +0 -0
  94. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/__init__.py +0 -0
  95. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/utils.py +0 -0
  96. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  97. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  98. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  99. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  100. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/schema.py +0 -0
  101. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Cluster.py +0 -0
  102. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  103. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Dataset.py +0 -0
  104. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DatasetRole.py +0 -0
  105. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  106. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Dimension.py +0 -0
  107. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  108. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  109. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionType.py +0 -0
  110. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  111. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  112. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  113. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  114. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  115. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Evaluation.py +0 -0
  116. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  117. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Event.py +0 -0
  118. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  119. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ExportEventsMutation.py +0 -0
  120. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  121. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Functionality.py +0 -0
  122. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/MimeType.py +0 -0
  123. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Model.py +0 -0
  124. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/NumericRange.py +0 -0
  125. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  126. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Project.py +0 -0
  127. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  128. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Retrieval.py +0 -0
  129. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  130. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Segments.py +0 -0
  131. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/SortDir.py +0 -0
  132. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Span.py +0 -0
  133. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  134. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Trace.py +0 -0
  135. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  136. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  137. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  138. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/__init__.py +0 -0
  139. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/node.py +0 -0
  140. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/pagination.py +0 -0
  141. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/app.py +0 -0
  142. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/grpc_server.py +0 -0
  143. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/main.py +0 -0
  144. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/openapi/__init__.py +0 -0
  145. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/openapi/docs.py +0 -0
  146. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/prometheus.py +0 -0
  147. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  148. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  149. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  150. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  151. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  152. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  153. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  154. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  155. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/favicon.ico +0 -0
  156. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/index.css +0 -0
  157. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/index.js +0 -0
  158. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/modernizr.js +0 -0
  159. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/telemetry.py +0 -0
  160. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/templates/__init__.py +0 -0
  161. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/templates/index.html +0 -0
  162. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/thread_server.py +0 -0
  163. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/services.py +0 -0
  164. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/__init__.py +0 -0
  165. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/client.py +0 -0
  166. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/data_extractor.py +0 -0
  167. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/evaluation.py +0 -0
  168. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/session.py +0 -0
  169. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/settings.py +0 -0
  170. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/__init__.py +0 -0
  171. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/attributes.py +0 -0
  172. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/README.md +0 -0
  173. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/__init__.py +0 -0
  174. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/filter.py +0 -0
  175. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/helpers.py +0 -0
  176. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/query.py +0 -0
  177. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/errors.py +0 -0
  178. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/evaluation_conventions.py +0 -0
  179. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/exporter.py +0 -0
  180. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/fixtures.py +0 -0
  181. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/langchain/__init__.py +0 -0
  182. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/langchain/instrumentor.py +0 -0
  183. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/llama_index/__init__.py +0 -0
  184. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/llama_index/callback.py +0 -0
  185. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/openai/__init__.py +0 -0
  186. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/openai/instrumentor.py +0 -0
  187. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/projects.py +0 -0
  188. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/schemas.py +0 -0
  189. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/span_evaluations.py +0 -0
  190. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/span_json_decoder.py +0 -0
  191. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/span_json_encoder.py +0 -0
  192. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/utils.py +0 -0
  193. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/v1/__init__.py +0 -0
  194. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  195. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  196. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/__init__.py +0 -0
  197. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/deprecation.py +0 -0
  198. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/error_handling.py +0 -0
  199. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/logging.py +0 -0
  200. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/project.py +0 -0
  201. {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/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.0
3
+ Version: 4.0.2
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
@@ -63,6 +63,10 @@ class BulkInserter:
63
63
  self._db = db
64
64
  self._running = False
65
65
  self._run_interval_seconds = run_interval_in_seconds
66
+
67
+ # tracks time between insertions to improve responsiveness for small batches
68
+ self._last_insertion_time = time() - self._run_interval_seconds
69
+
66
70
  self._max_num_per_transaction = max_num_per_transaction
67
71
  self._spans: List[Tuple[Span, str]] = (
68
72
  [] if initial_batch_of_spans is None else list(initial_batch_of_spans)
@@ -98,10 +102,10 @@ class BulkInserter:
98
102
 
99
103
  async def _bulk_insert(self) -> None:
100
104
  spans_buffer, evaluations_buffer = None, None
101
- next_run_at = time() + self._run_interval_seconds
105
+ # start first insert immediately if the inserter has not run recently
102
106
  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
107
+ next_run_at = self._last_insertion_time + self._run_interval_seconds
108
+ await asyncio.sleep(max(next_run_at - time(), 0))
105
109
  if not (self._spans or self._evaluations):
106
110
  continue
107
111
  # It's important to grab the buffers at the same time so there's
@@ -128,6 +132,7 @@ class BulkInserter:
128
132
  evaluations_buffer = None
129
133
  for project_rowid in transaction_result.updated_project_rowids:
130
134
  self._last_updated_at_by_project[project_rowid] = datetime.now(timezone.utc)
135
+ self._last_insertion_time = time()
131
136
 
132
137
  async def _insert_spans(self, spans: List[Tuple[Span, str]]) -> TransactionResult:
133
138
  transaction_result = TransactionResult()
@@ -30,11 +30,8 @@ def insert_stmt(
30
30
  raise ValueError(
31
31
  "Both `constraint` and `column_names` must be provided or omitted at the same time."
32
32
  )
33
- if (
34
- dialect is SupportedSQLDialect.POSTGRESQL
35
- and constraint is None
36
- or dialect is SupportedSQLDialect.SQLITE
37
- and not column_names
33
+ if (dialect is SupportedSQLDialect.POSTGRESQL and constraint is None) or (
34
+ dialect is SupportedSQLDialect.SQLITE and not column_names
38
35
  ):
39
36
  return insert(table).values(values)
40
37
  if dialect is SupportedSQLDialect.POSTGRESQL:
@@ -17,7 +17,11 @@ from typing import (
17
17
 
18
18
  import numpy as np
19
19
  import opentelemetry.proto.trace.v1.trace_pb2 as otlp
20
- from openinference.semconv.trace import DocumentAttributes, SpanAttributes
20
+ from openinference.semconv.trace import (
21
+ DocumentAttributes,
22
+ OpenInferenceMimeTypeValues,
23
+ SpanAttributes,
24
+ )
21
25
  from opentelemetry.proto.common.v1.common_pb2 import AnyValue, ArrayValue, KeyValue
22
26
  from opentelemetry.util.types import Attributes, AttributeValue
23
27
  from typing_extensions import TypeAlias, assert_never
@@ -70,6 +74,12 @@ def decode_otlp_span(otlp_span: otlp.Span) -> Span:
70
74
  status_code, status_message = _decode_status(otlp_span.status)
71
75
  events = [_decode_event(event) for event in otlp_span.events]
72
76
 
77
+ if (input_value := get_attribute_value(attributes, INPUT_VALUE)) and not isinstance(
78
+ input_value, str
79
+ ):
80
+ attributes["input"]["value"] = json.dumps(input_value)
81
+ attributes["input"]["mime_type"] = OpenInferenceMimeTypeValues.JSON.value
82
+
73
83
  return Span(
74
84
  name=otlp_span.name,
75
85
  context=SpanContext(
@@ -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.2"
@@ -1 +0,0 @@
1
- __version__ = "4.0.0"
File without changes
File without changes
File without changes
File without changes