arize-phoenix 11.37.0__py3-none-any.whl → 12.0.0__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.

Potentially problematic release.


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

Files changed (75) hide show
  1. {arize_phoenix-11.37.0.dist-info → arize_phoenix-12.0.0.dist-info}/METADATA +3 -3
  2. {arize_phoenix-11.37.0.dist-info → arize_phoenix-12.0.0.dist-info}/RECORD +74 -53
  3. phoenix/config.py +1 -11
  4. phoenix/db/bulk_inserter.py +8 -0
  5. phoenix/db/facilitator.py +1 -1
  6. phoenix/db/helpers.py +202 -33
  7. phoenix/db/insertion/dataset.py +7 -0
  8. phoenix/db/insertion/helpers.py +2 -2
  9. phoenix/db/insertion/session_annotation.py +176 -0
  10. phoenix/db/insertion/types.py +30 -0
  11. phoenix/db/migrations/versions/01a8342c9cdf_add_user_id_on_datasets.py +40 -0
  12. phoenix/db/migrations/versions/0df286449799_add_session_annotations_table.py +105 -0
  13. phoenix/db/migrations/versions/272b66ff50f8_drop_single_indices.py +119 -0
  14. phoenix/db/migrations/versions/58228d933c91_dataset_labels.py +67 -0
  15. phoenix/db/migrations/versions/699f655af132_experiment_tags.py +57 -0
  16. phoenix/db/migrations/versions/735d3d93c33e_add_composite_indices.py +41 -0
  17. phoenix/db/migrations/versions/ab513d89518b_add_user_id_on_dataset_versions.py +40 -0
  18. phoenix/db/migrations/versions/d0690a79ea51_users_on_experiments.py +40 -0
  19. phoenix/db/migrations/versions/deb2c81c0bb2_dataset_splits.py +139 -0
  20. phoenix/db/migrations/versions/e76cbd66ffc3_add_experiments_dataset_examples.py +87 -0
  21. phoenix/db/models.py +285 -46
  22. phoenix/server/api/context.py +13 -2
  23. phoenix/server/api/dataloaders/__init__.py +6 -2
  24. phoenix/server/api/dataloaders/dataset_example_splits.py +40 -0
  25. phoenix/server/api/dataloaders/session_annotations_by_session.py +29 -0
  26. phoenix/server/api/dataloaders/table_fields.py +2 -2
  27. phoenix/server/api/dataloaders/trace_annotations_by_trace.py +27 -0
  28. phoenix/server/api/helpers/playground_clients.py +65 -35
  29. phoenix/server/api/helpers/playground_spans.py +2 -1
  30. phoenix/server/api/helpers/playground_users.py +26 -0
  31. phoenix/server/api/input_types/{SpanAnnotationFilter.py → AnnotationFilter.py} +22 -14
  32. phoenix/server/api/input_types/ChatCompletionInput.py +2 -0
  33. phoenix/server/api/input_types/CreateProjectSessionAnnotationInput.py +37 -0
  34. phoenix/server/api/input_types/UpdateAnnotationInput.py +34 -0
  35. phoenix/server/api/mutations/__init__.py +6 -0
  36. phoenix/server/api/mutations/chat_mutations.py +24 -9
  37. phoenix/server/api/mutations/dataset_mutations.py +5 -0
  38. phoenix/server/api/mutations/dataset_split_mutations.py +387 -0
  39. phoenix/server/api/mutations/project_session_annotations_mutations.py +161 -0
  40. phoenix/server/api/queries.py +32 -0
  41. phoenix/server/api/routers/v1/__init__.py +2 -0
  42. phoenix/server/api/routers/v1/annotations.py +320 -0
  43. phoenix/server/api/routers/v1/datasets.py +5 -0
  44. phoenix/server/api/routers/v1/experiments.py +10 -3
  45. phoenix/server/api/routers/v1/sessions.py +111 -0
  46. phoenix/server/api/routers/v1/traces.py +1 -2
  47. phoenix/server/api/routers/v1/users.py +7 -0
  48. phoenix/server/api/subscriptions.py +25 -7
  49. phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +1 -0
  50. phoenix/server/api/types/DatasetExample.py +11 -0
  51. phoenix/server/api/types/DatasetSplit.py +32 -0
  52. phoenix/server/api/types/Experiment.py +0 -4
  53. phoenix/server/api/types/Project.py +16 -0
  54. phoenix/server/api/types/ProjectSession.py +88 -3
  55. phoenix/server/api/types/ProjectSessionAnnotation.py +68 -0
  56. phoenix/server/api/types/Span.py +5 -5
  57. phoenix/server/api/types/Trace.py +61 -0
  58. phoenix/server/app.py +6 -2
  59. phoenix/server/cost_tracking/model_cost_manifest.json +132 -2
  60. phoenix/server/dml_event.py +13 -0
  61. phoenix/server/static/.vite/manifest.json +39 -39
  62. phoenix/server/static/assets/{components-CFzdBkk_.js → components-Dl9SUw1U.js} +371 -327
  63. phoenix/server/static/assets/{index-DayUA9lQ.js → index-CqQS0dTo.js} +2 -2
  64. phoenix/server/static/assets/{pages-CvUhOO9h.js → pages-DKSjVA_E.js} +771 -518
  65. phoenix/server/static/assets/{vendor-BdjZxMii.js → vendor-CtbHQYl8.js} +1 -1
  66. phoenix/server/static/assets/{vendor-arizeai-CHYlS8jV.js → vendor-arizeai-D-lWOwIS.js} +1 -1
  67. phoenix/server/static/assets/{vendor-codemirror-Di6t4HnH.js → vendor-codemirror-BRBpy3_z.js} +3 -3
  68. phoenix/server/static/assets/{vendor-recharts-C9wCDYj3.js → vendor-recharts--KdSwB3m.js} +1 -1
  69. phoenix/server/static/assets/{vendor-shiki-MNnmOotP.js → vendor-shiki-CvRzZnIo.js} +1 -1
  70. phoenix/version.py +1 -1
  71. phoenix/server/api/dataloaders/experiment_repetition_counts.py +0 -39
  72. {arize_phoenix-11.37.0.dist-info → arize_phoenix-12.0.0.dist-info}/WHEEL +0 -0
  73. {arize_phoenix-11.37.0.dist-info → arize_phoenix-12.0.0.dist-info}/entry_points.txt +0 -0
  74. {arize_phoenix-11.37.0.dist-info → arize_phoenix-12.0.0.dist-info}/licenses/IP_NOTICE +0 -0
  75. {arize_phoenix-11.37.0.dist-info → arize_phoenix-12.0.0.dist-info}/licenses/LICENSE +0 -0
phoenix/server/app.py CHANGED
@@ -92,6 +92,7 @@ from phoenix.server.api.dataloaders import (
92
92
  DatasetExampleRevisionsDataLoader,
93
93
  DatasetExamplesAndVersionsByExperimentRunDataLoader,
94
94
  DatasetExampleSpansDataLoader,
95
+ DatasetExampleSplitsDataLoader,
95
96
  DocumentEvaluationsDataLoader,
96
97
  DocumentEvaluationSummaryDataLoader,
97
98
  DocumentRetrievalMetricsDataLoader,
@@ -99,7 +100,6 @@ from phoenix.server.api.dataloaders import (
99
100
  ExperimentErrorRatesDataLoader,
100
101
  ExperimentRepeatedRunGroupAnnotationSummariesDataLoader,
101
102
  ExperimentRepeatedRunGroupsDataLoader,
102
- ExperimentRepetitionCountsDataLoader,
103
103
  ExperimentRunAnnotations,
104
104
  ExperimentRunCountsDataLoader,
105
105
  ExperimentSequenceNumberDataLoader,
@@ -112,6 +112,7 @@ from phoenix.server.api.dataloaders import (
112
112
  ProjectIdsByTraceRetentionPolicyIdDataLoader,
113
113
  PromptVersionSequenceNumberDataLoader,
114
114
  RecordCountDataLoader,
115
+ SessionAnnotationsBySessionDataLoader,
115
116
  SessionIODataLoader,
116
117
  SessionNumTracesDataLoader,
117
118
  SessionNumTracesWithErrorDataLoader,
@@ -137,6 +138,7 @@ from phoenix.server.api.dataloaders import (
137
138
  SpanProjectsDataLoader,
138
139
  TableFieldsDataLoader,
139
140
  TokenCountDataLoader,
141
+ TraceAnnotationsByTraceDataLoader,
140
142
  TraceByTraceIdsDataLoader,
141
143
  TraceRetentionPolicyIdByProjectIdDataLoader,
142
144
  TraceRootSpansDataLoader,
@@ -715,6 +717,7 @@ def create_graphql_router(
715
717
  dataset_examples_and_versions_by_experiment_run=DatasetExamplesAndVersionsByExperimentRunDataLoader(
716
718
  db
717
719
  ),
720
+ dataset_example_splits=DatasetExampleSplitsDataLoader(db),
718
721
  document_evaluation_summaries=DocumentEvaluationSummaryDataLoader(
719
722
  db,
720
723
  cache_map=(
@@ -737,7 +740,6 @@ def create_graphql_router(
737
740
  db
738
741
  ),
739
742
  experiment_repeated_run_groups=ExperimentRepeatedRunGroupsDataLoader(db),
740
- experiment_repetition_counts=ExperimentRepetitionCountsDataLoader(db),
741
743
  experiment_run_annotations=ExperimentRunAnnotations(db),
742
744
  experiment_run_counts=ExperimentRunCountsDataLoader(db),
743
745
  experiment_sequence_number=ExperimentSequenceNumberDataLoader(db),
@@ -769,6 +771,7 @@ def create_graphql_router(
769
771
  db,
770
772
  cache_map=cache_for_dataloaders.record_count if cache_for_dataloaders else None,
771
773
  ),
774
+ session_annotations_by_session=SessionAnnotationsBySessionDataLoader(db),
772
775
  session_first_inputs=SessionIODataLoader(db, "first_input"),
773
776
  session_last_outputs=SessionIODataLoader(db, "last_output"),
774
777
  session_num_traces=SessionNumTracesDataLoader(db),
@@ -815,6 +818,7 @@ def create_graphql_router(
815
818
  db,
816
819
  cache_map=cache_for_dataloaders.token_count if cache_for_dataloaders else None,
817
820
  ),
821
+ trace_annotations_by_trace=TraceAnnotationsByTraceDataLoader(db),
818
822
  trace_by_trace_ids=TraceByTraceIdsDataLoader(db),
819
823
  trace_fields=TableFieldsDataLoader(db, models.Trace),
820
824
  trace_retention_policy_id_by_project_id=TraceRetentionPolicyIdByProjectIdDataLoader(
@@ -768,6 +768,33 @@
768
768
  }
769
769
  ]
770
770
  },
771
+ {
772
+ "name": "gemini-2.5-flash-lite-preview-09-2025",
773
+ "name_pattern": "gemini-2\\.5-flash-lite-preview-09-2025",
774
+ "source": "litellm",
775
+ "token_prices": [
776
+ {
777
+ "base_rate": 1e-7,
778
+ "is_prompt": true,
779
+ "token_type": "input"
780
+ },
781
+ {
782
+ "base_rate": 4e-7,
783
+ "is_prompt": false,
784
+ "token_type": "output"
785
+ },
786
+ {
787
+ "base_rate": 2.5e-8,
788
+ "is_prompt": true,
789
+ "token_type": "cache_read"
790
+ },
791
+ {
792
+ "base_rate": 3e-7,
793
+ "is_prompt": true,
794
+ "token_type": "audio"
795
+ }
796
+ ]
797
+ },
771
798
  {
772
799
  "name": "gemini-2.5-flash-preview-04-17",
773
800
  "name_pattern": "gemini-2\\.5-flash-preview-04-17",
@@ -822,6 +849,33 @@
822
849
  }
823
850
  ]
824
851
  },
852
+ {
853
+ "name": "gemini-2.5-flash-preview-09-2025",
854
+ "name_pattern": "gemini-2\\.5-flash-preview-09-2025",
855
+ "source": "litellm",
856
+ "token_prices": [
857
+ {
858
+ "base_rate": 3e-7,
859
+ "is_prompt": true,
860
+ "token_type": "input"
861
+ },
862
+ {
863
+ "base_rate": 2.5e-6,
864
+ "is_prompt": false,
865
+ "token_type": "output"
866
+ },
867
+ {
868
+ "base_rate": 7.5e-8,
869
+ "is_prompt": true,
870
+ "token_type": "cache_read"
871
+ },
872
+ {
873
+ "base_rate": 1e-6,
874
+ "is_prompt": true,
875
+ "token_type": "audio"
876
+ }
877
+ ]
878
+ },
825
879
  {
826
880
  "name": "gemini-2.5-pro",
827
881
  "name_pattern": "gemini-2.5-pro(@[a-zA-Z0-9]+)?",
@@ -974,18 +1028,72 @@
974
1028
  }
975
1029
  ]
976
1030
  },
1031
+ {
1032
+ "name": "gemini-flash-latest",
1033
+ "name_pattern": "gemini-flash-latest",
1034
+ "source": "litellm",
1035
+ "token_prices": [
1036
+ {
1037
+ "base_rate": 3e-7,
1038
+ "is_prompt": true,
1039
+ "token_type": "input"
1040
+ },
1041
+ {
1042
+ "base_rate": 2.5e-6,
1043
+ "is_prompt": false,
1044
+ "token_type": "output"
1045
+ },
1046
+ {
1047
+ "base_rate": 7.5e-8,
1048
+ "is_prompt": true,
1049
+ "token_type": "cache_read"
1050
+ },
1051
+ {
1052
+ "base_rate": 1e-6,
1053
+ "is_prompt": true,
1054
+ "token_type": "audio"
1055
+ }
1056
+ ]
1057
+ },
1058
+ {
1059
+ "name": "gemini-flash-lite-latest",
1060
+ "name_pattern": "gemini-flash-lite-latest",
1061
+ "source": "litellm",
1062
+ "token_prices": [
1063
+ {
1064
+ "base_rate": 1e-7,
1065
+ "is_prompt": true,
1066
+ "token_type": "input"
1067
+ },
1068
+ {
1069
+ "base_rate": 4e-7,
1070
+ "is_prompt": false,
1071
+ "token_type": "output"
1072
+ },
1073
+ {
1074
+ "base_rate": 2.5e-8,
1075
+ "is_prompt": true,
1076
+ "token_type": "cache_read"
1077
+ },
1078
+ {
1079
+ "base_rate": 3e-7,
1080
+ "is_prompt": true,
1081
+ "token_type": "audio"
1082
+ }
1083
+ ]
1084
+ },
977
1085
  {
978
1086
  "name": "gpt-3.5-turbo",
979
1087
  "name_pattern": "gpt-(35|3.5)-turbo",
980
1088
  "source": "litellm",
981
1089
  "token_prices": [
982
1090
  {
983
- "base_rate": 1.5e-6,
1091
+ "base_rate": 5e-7,
984
1092
  "is_prompt": true,
985
1093
  "token_type": "input"
986
1094
  },
987
1095
  {
988
- "base_rate": 2e-6,
1096
+ "base_rate": 1.5e-6,
989
1097
  "is_prompt": false,
990
1098
  "token_type": "output"
991
1099
  }
@@ -2247,6 +2355,28 @@
2247
2355
  }
2248
2356
  ]
2249
2357
  },
2358
+ {
2359
+ "name": "gpt-5-codex",
2360
+ "name_pattern": "gpt-5-codex",
2361
+ "source": "litellm",
2362
+ "token_prices": [
2363
+ {
2364
+ "base_rate": 1.25e-6,
2365
+ "is_prompt": true,
2366
+ "token_type": "input"
2367
+ },
2368
+ {
2369
+ "base_rate": 0.00001,
2370
+ "is_prompt": false,
2371
+ "token_type": "output"
2372
+ },
2373
+ {
2374
+ "base_rate": 1.25e-7,
2375
+ "is_prompt": true,
2376
+ "token_type": "cache_read"
2377
+ }
2378
+ ]
2379
+ },
2250
2380
  {
2251
2381
  "name": "gpt-5-mini",
2252
2382
  "name_pattern": "gpt-5-mini",
@@ -127,6 +127,19 @@ class TraceAnnotationInsertEvent(TraceAnnotationDmlEvent): ...
127
127
  class TraceAnnotationDeleteEvent(TraceAnnotationDmlEvent): ...
128
128
 
129
129
 
130
+ @dataclass(frozen=True)
131
+ class ProjectSessionAnnotationDmlEvent(DmlEvent):
132
+ table = models.ProjectSessionAnnotation
133
+
134
+
135
+ @dataclass(frozen=True)
136
+ class ProjectSessionAnnotationInsertEvent(ProjectSessionAnnotationDmlEvent): ...
137
+
138
+
139
+ @dataclass(frozen=True)
140
+ class ProjectSessionAnnotationDeleteEvent(ProjectSessionAnnotationDmlEvent): ...
141
+
142
+
130
143
  @dataclass(frozen=True)
131
144
  class DocumentAnnotationDmlEvent(DmlEvent):
132
145
  table = models.DocumentAnnotation
@@ -1,32 +1,32 @@
1
1
  {
2
- "_components-CFzdBkk_.js": {
3
- "file": "assets/components-CFzdBkk_.js",
2
+ "_components-Dl9SUw1U.js": {
3
+ "file": "assets/components-Dl9SUw1U.js",
4
4
  "name": "components",
5
5
  "imports": [
6
- "_vendor-BdjZxMii.js",
7
- "_vendor-arizeai-CHYlS8jV.js",
8
- "_pages-CvUhOO9h.js",
9
- "_vendor-codemirror-Di6t4HnH.js",
6
+ "_vendor-CtbHQYl8.js",
7
+ "_vendor-arizeai-D-lWOwIS.js",
8
+ "_pages-DKSjVA_E.js",
9
+ "_vendor-codemirror-BRBpy3_z.js",
10
10
  "_vendor-three-BLWp5bic.js"
11
11
  ]
12
12
  },
13
- "_pages-CvUhOO9h.js": {
14
- "file": "assets/pages-CvUhOO9h.js",
13
+ "_pages-DKSjVA_E.js": {
14
+ "file": "assets/pages-DKSjVA_E.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
- "_vendor-BdjZxMii.js",
18
- "_vendor-arizeai-CHYlS8jV.js",
19
- "_components-CFzdBkk_.js",
20
- "_vendor-codemirror-Di6t4HnH.js",
21
- "_vendor-recharts-C9wCDYj3.js"
17
+ "_vendor-CtbHQYl8.js",
18
+ "_vendor-arizeai-D-lWOwIS.js",
19
+ "_components-Dl9SUw1U.js",
20
+ "_vendor-codemirror-BRBpy3_z.js",
21
+ "_vendor-recharts--KdSwB3m.js"
22
22
  ]
23
23
  },
24
24
  "_vendor-BGzfc4EU.css": {
25
25
  "file": "assets/vendor-BGzfc4EU.css",
26
26
  "src": "_vendor-BGzfc4EU.css"
27
27
  },
28
- "_vendor-BdjZxMii.js": {
29
- "file": "assets/vendor-BdjZxMii.js",
28
+ "_vendor-CtbHQYl8.js": {
29
+ "file": "assets/vendor-CtbHQYl8.js",
30
30
  "name": "vendor",
31
31
  "imports": [
32
32
  "_vendor-three-BLWp5bic.js"
@@ -35,39 +35,39 @@
35
35
  "assets/vendor-BGzfc4EU.css"
36
36
  ]
37
37
  },
38
- "_vendor-arizeai-CHYlS8jV.js": {
39
- "file": "assets/vendor-arizeai-CHYlS8jV.js",
38
+ "_vendor-arizeai-D-lWOwIS.js": {
39
+ "file": "assets/vendor-arizeai-D-lWOwIS.js",
40
40
  "name": "vendor-arizeai",
41
41
  "imports": [
42
- "_vendor-BdjZxMii.js"
42
+ "_vendor-CtbHQYl8.js"
43
43
  ]
44
44
  },
45
- "_vendor-codemirror-Di6t4HnH.js": {
46
- "file": "assets/vendor-codemirror-Di6t4HnH.js",
45
+ "_vendor-codemirror-BRBpy3_z.js": {
46
+ "file": "assets/vendor-codemirror-BRBpy3_z.js",
47
47
  "name": "vendor-codemirror",
48
48
  "imports": [
49
- "_vendor-BdjZxMii.js",
50
- "_vendor-shiki-MNnmOotP.js"
49
+ "_vendor-CtbHQYl8.js",
50
+ "_vendor-shiki-CvRzZnIo.js"
51
51
  ],
52
52
  "dynamicImports": [
53
- "_vendor-shiki-MNnmOotP.js",
54
- "_vendor-shiki-MNnmOotP.js",
55
- "_vendor-shiki-MNnmOotP.js"
53
+ "_vendor-shiki-CvRzZnIo.js",
54
+ "_vendor-shiki-CvRzZnIo.js",
55
+ "_vendor-shiki-CvRzZnIo.js"
56
56
  ]
57
57
  },
58
- "_vendor-recharts-C9wCDYj3.js": {
59
- "file": "assets/vendor-recharts-C9wCDYj3.js",
58
+ "_vendor-recharts--KdSwB3m.js": {
59
+ "file": "assets/vendor-recharts--KdSwB3m.js",
60
60
  "name": "vendor-recharts",
61
61
  "imports": [
62
- "_vendor-BdjZxMii.js"
62
+ "_vendor-CtbHQYl8.js"
63
63
  ]
64
64
  },
65
- "_vendor-shiki-MNnmOotP.js": {
66
- "file": "assets/vendor-shiki-MNnmOotP.js",
65
+ "_vendor-shiki-CvRzZnIo.js": {
66
+ "file": "assets/vendor-shiki-CvRzZnIo.js",
67
67
  "name": "vendor-shiki",
68
68
  "isDynamicEntry": true,
69
69
  "imports": [
70
- "_vendor-BdjZxMii.js"
70
+ "_vendor-CtbHQYl8.js"
71
71
  ]
72
72
  },
73
73
  "_vendor-three-BLWp5bic.js": {
@@ -75,19 +75,19 @@
75
75
  "name": "vendor-three"
76
76
  },
77
77
  "index.tsx": {
78
- "file": "assets/index-DayUA9lQ.js",
78
+ "file": "assets/index-CqQS0dTo.js",
79
79
  "name": "index",
80
80
  "src": "index.tsx",
81
81
  "isEntry": true,
82
82
  "imports": [
83
- "_vendor-BdjZxMii.js",
84
- "_vendor-arizeai-CHYlS8jV.js",
85
- "_pages-CvUhOO9h.js",
86
- "_components-CFzdBkk_.js",
83
+ "_vendor-CtbHQYl8.js",
84
+ "_vendor-arizeai-D-lWOwIS.js",
85
+ "_pages-DKSjVA_E.js",
86
+ "_components-Dl9SUw1U.js",
87
87
  "_vendor-three-BLWp5bic.js",
88
- "_vendor-codemirror-Di6t4HnH.js",
89
- "_vendor-shiki-MNnmOotP.js",
90
- "_vendor-recharts-C9wCDYj3.js"
88
+ "_vendor-codemirror-BRBpy3_z.js",
89
+ "_vendor-shiki-CvRzZnIo.js",
90
+ "_vendor-recharts--KdSwB3m.js"
91
91
  ]
92
92
  }
93
93
  }