arize-phoenix 5.2.1__py3-none-any.whl → 5.3.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.
- {arize_phoenix-5.2.1.dist-info → arize_phoenix-5.3.0.dist-info}/METADATA +4 -3
- {arize_phoenix-5.2.1.dist-info → arize_phoenix-5.3.0.dist-info}/RECORD +37 -30
- phoenix/config.py +24 -0
- phoenix/core/model_schema_adapter.py +2 -2
- phoenix/db/migrations/versions/10460e46d750_datasets.py +1 -1
- phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +1 -1
- phoenix/db/migrations/versions/cf03bd6bae1d_init.py +1 -1
- phoenix/db/models.py +6 -6
- phoenix/server/api/input_types/ChatCompletionMessageInput.py +12 -0
- phoenix/server/api/input_types/InvocationParameters.py +20 -0
- phoenix/server/api/openapi/main.py +8 -13
- phoenix/server/api/queries.py +74 -0
- phoenix/server/api/schema.py +2 -0
- phoenix/server/api/subscriptions.py +430 -0
- phoenix/server/api/types/ChatCompletionMessageRole.py +11 -0
- phoenix/server/api/types/GenerativeModel.py +9 -0
- phoenix/server/api/types/GenerativeProvider.py +16 -0
- phoenix/server/app.py +69 -7
- phoenix/server/bearer_auth.py +12 -4
- phoenix/server/main.py +2 -2
- phoenix/server/static/.vite/manifest.json +31 -31
- phoenix/server/static/assets/{components-BqfGSfjl.js → components-DwERj42u.js} +153 -130
- phoenix/server/static/assets/{index-CCZJh73q.js → index-CyOjvLOr.js} +2 -2
- phoenix/server/static/assets/{pages-CCfzLmwR.js → pages-BNYMd7SU.js} +360 -255
- phoenix/server/static/assets/vendor-D-NIjePD.js +872 -0
- phoenix/server/static/assets/{vendor-arizeai-BCDjSYK3.js → vendor-arizeai-DoY5jUTO.js} +30 -28
- phoenix/server/static/assets/vendor-codemirror-CIhY_nEU.js +24 -0
- phoenix/server/static/assets/{vendor-recharts-CJm3CJf0.js → vendor-recharts-Dgcm35Jq.js} +1 -1
- phoenix/trace/fixtures.py +7 -9
- phoenix/utilities/client.py +2 -2
- phoenix/utilities/json.py +11 -0
- phoenix/utilities/template_formatters.py +70 -0
- phoenix/version.py +1 -1
- phoenix/server/static/assets/vendor-WKqfwbiB.js +0 -641
- phoenix/server/static/assets/vendor-codemirror-B_z6EOTv.js +0 -27
- {arize_phoenix-5.2.1.dist-info → arize_phoenix-5.3.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-5.2.1.dist-info → arize_phoenix-5.3.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-5.2.1.dist-info → arize_phoenix-5.3.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-5.2.1.dist-info → arize_phoenix-5.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.3.0
|
|
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
|
|
@@ -38,7 +38,7 @@ Requires-Dist: opentelemetry-proto>=1.12.0
|
|
|
38
38
|
Requires-Dist: opentelemetry-sdk
|
|
39
39
|
Requires-Dist: opentelemetry-semantic-conventions
|
|
40
40
|
Requires-Dist: pandas>=1.0
|
|
41
|
-
Requires-Dist: protobuf<6.0,>=3.20
|
|
41
|
+
Requires-Dist: protobuf<6.0,>=3.20.2
|
|
42
42
|
Requires-Dist: psutil
|
|
43
43
|
Requires-Dist: pyarrow
|
|
44
44
|
Requires-Dist: pydantic!=2.0.*,<3,>=1.0
|
|
@@ -53,6 +53,7 @@ Requires-Dist: tqdm
|
|
|
53
53
|
Requires-Dist: typing-extensions>=4.6
|
|
54
54
|
Requires-Dist: umap-learn
|
|
55
55
|
Requires-Dist: uvicorn
|
|
56
|
+
Requires-Dist: websockets
|
|
56
57
|
Requires-Dist: wrapt
|
|
57
58
|
Provides-Extra: container
|
|
58
59
|
Requires-Dist: fast-hdbscan>=0.2.0; extra == 'container'
|
|
@@ -96,7 +97,7 @@ Requires-Dist: pytest-cov; extra == 'dev'
|
|
|
96
97
|
Requires-Dist: pytest-postgresql; extra == 'dev'
|
|
97
98
|
Requires-Dist: pytest-xdist; extra == 'dev'
|
|
98
99
|
Requires-Dist: pytest==8.3.3; extra == 'dev'
|
|
99
|
-
Requires-Dist: ruff==0.6.
|
|
100
|
+
Requires-Dist: ruff==0.6.9; extra == 'dev'
|
|
100
101
|
Requires-Dist: strawberry-graphql[debug-server,opentelemetry]==0.243.1; extra == 'dev'
|
|
101
102
|
Requires-Dist: tabulate; extra == 'dev'
|
|
102
103
|
Requires-Dist: tox-uv==1.11.3; extra == 'dev'
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
phoenix/__init__.py,sha256=X3eUEwd2rG8KKWWYVNNDJoqo08ihfjgHhlP29dcdNJE,5481
|
|
2
2
|
phoenix/auth.py,sha256=JpkwJbis2INlIXWcQ-M_Nk5Ln9LBgHMdWNnaAQp0D2w,10940
|
|
3
|
-
phoenix/config.py,sha256=
|
|
3
|
+
phoenix/config.py,sha256=LApKCyQYj8qXKXPcbXK_l1uWrcaD-m_Gg9R0US05OZg,22790
|
|
4
4
|
phoenix/datetime_utils.py,sha256=yDKjwX2Vtqw9h5F_ProtP-TsXidM43uIvmJ_pOzYc9A,3405
|
|
5
5
|
phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
|
|
6
6
|
phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
7
7
|
phoenix/services.py,sha256=aTxhcOA1pZHB6U-B3TEcp6fqDF5oT0xCUvEUNMZVTUQ,5175
|
|
8
8
|
phoenix/settings.py,sha256=ht-0oN-sMV6SPXrk7Tu1EZlngpAYkGNLYPhO8DyrdQI,661
|
|
9
|
-
phoenix/version.py,sha256=
|
|
9
|
+
phoenix/version.py,sha256=6-6zx35M00wOupvevZ13oAoDaUlHqsp_N-Ei-zUAwTI,22
|
|
10
10
|
phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
|
|
12
12
|
phoenix/core/model.py,sha256=km_a--PBHOuA337ClRw9xqhOHhrUT6Rl9pz_zV0JYkQ,4843
|
|
13
13
|
phoenix/core/model_schema.py,sha256=F2dbbVnkDLsPYoyZDv1q03uhvP8LcU1wXp0g-exiWs0,50551
|
|
14
|
-
phoenix/core/model_schema_adapter.py,sha256=
|
|
14
|
+
phoenix/core/model_schema_adapter.py,sha256=4bMkJldb-m46tH4oJRC43ytKU44rELDSwEQ9D2hqBkw,8448
|
|
15
15
|
phoenix/db/README.md,sha256=Mjrq0tG68uKQ81mN1Vmu3C795EEpZndmnE6CJXsPCXE,1909
|
|
16
16
|
phoenix/db/__init__.py,sha256=pDjEFXukHmJBM-1D8RjmXkvLsz85YWNxMQczt81ec3A,118
|
|
17
17
|
phoenix/db/alembic.ini,sha256=GIS6HpHaKaJbbuahZg1Rc1D2_QqyCkV9r58wdARGf6w,3262
|
|
@@ -21,7 +21,7 @@ phoenix/db/enums.py,sha256=wIpN2Hwoo0A7XR1lRFjwrjZXbu2-K9hjGRXd-NYJS88,425
|
|
|
21
21
|
phoenix/db/facilitator.py,sha256=Aulr9-sUvRn20Z7mjpWhW6TFE1amRzL8qSEjscvL-xw,4123
|
|
22
22
|
phoenix/db/helpers.py,sha256=2zSc4n5IJfu-CaOFoBfqTB35M1nTFcAc8tqLsNtF2Jw,3488
|
|
23
23
|
phoenix/db/migrate.py,sha256=lf6FFGzdyNjwtQ4TFi3mmHNGnnazMtG30PPB2qRF1Xc,2648
|
|
24
|
-
phoenix/db/models.py,sha256=
|
|
24
|
+
phoenix/db/models.py,sha256=zkT0sPcq3UKB24cts2e9XNpCw1TL2yUJt9nmDUAGQK8,26496
|
|
25
25
|
phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
26
|
phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
|
|
27
27
|
phoenix/db/insertion/dataset.py,sha256=_vxy5e6W5jEuvO2fMKbbNCn9JvHkwI4LRKk_10eKFVg,7171
|
|
@@ -35,10 +35,10 @@ phoenix/db/insertion/types.py,sha256=4u5gvQnLQ1DE75PkWtmTp-J02m77669V9UBSibRn9P8
|
|
|
35
35
|
phoenix/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
36
|
phoenix/db/migrations/env.py,sha256=tFO3ceuCx9Es5_2w_BXclaQMmNQKNX21b1UEV5mYdeo,3387
|
|
37
37
|
phoenix/db/migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
|
38
|
-
phoenix/db/migrations/versions/10460e46d750_datasets.py,sha256=
|
|
39
|
-
phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py,sha256=
|
|
38
|
+
phoenix/db/migrations/versions/10460e46d750_datasets.py,sha256=3wftHgat1sEeKBl0EcQ24r_oOK_T-Tcmd2Loo73RVCs,8679
|
|
39
|
+
phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py,sha256=yRKdK6chzrSCGv3jEIFQeXXoCuH6bQuPg6O1SwNOLrA,3650
|
|
40
40
|
phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py,sha256=fkpmh5PgMZJiZpvLbZIaqlI2cucVpVbbNYpQ-Tznil8,5180
|
|
41
|
-
phoenix/db/migrations/versions/cf03bd6bae1d_init.py,sha256=
|
|
41
|
+
phoenix/db/migrations/versions/cf03bd6bae1d_init.py,sha256=lorqWUcujC0fsYIOriGZlZw2LKjS3nF34KHxi1fp_Z8,8646
|
|
42
42
|
phoenix/experiments/__init__.py,sha256=6JGwgUd7xCbGpuHqYZlsmErmYvVgv7N_j43bn3dUqsk,123
|
|
43
43
|
phoenix/experiments/functions.py,sha256=OEsBQAFZRDcrxGW21BaBIpUP3skQRzYZzAJZLQYjrJI,32478
|
|
44
44
|
phoenix/experiments/tracing.py,sha256=wVpt8Ie9WNPoi1djJdcrkwCokHdTO0bicXViLg3O-1Y,2831
|
|
@@ -73,13 +73,13 @@ phoenix/pointcloud/pointcloud.py,sha256=4zAIkKs2xOUbchpj4XDAV-iPMXrfAJ15TG6rlIYG
|
|
|
73
73
|
phoenix/pointcloud/projectors.py,sha256=TQgwc9cJDjJkin1WZyZzgl3HsYrLLiyWD7Czy4jNW3U,1088
|
|
74
74
|
phoenix/pointcloud/umap_parameters.py,sha256=3UQSjrysVOvq2V4KNpTMqNqNiK0BsTZnPBHWZ4fyJtQ,1708
|
|
75
75
|
phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
-
phoenix/server/app.py,sha256=
|
|
77
|
-
phoenix/server/bearer_auth.py,sha256=
|
|
76
|
+
phoenix/server/app.py,sha256=yfK6jXMFpFO2F06GngSHbsILw2JFRiAcqBLNWCS9Pv4,35084
|
|
77
|
+
phoenix/server/bearer_auth.py,sha256=zhXu-IXJD5WslknHgrITf7HdOiv09DFhcl3Qp5C0sJo,5916
|
|
78
78
|
phoenix/server/dml_event.py,sha256=MpjCFqljxvgb9OB5Cez9vJesb3oHb3XxXictynBfcis,2851
|
|
79
79
|
phoenix/server/dml_event_handler.py,sha256=yU23-DDwXcL35p5EPwFW0oZh6mxQxJrJAQPKcYZYJz4,8310
|
|
80
80
|
phoenix/server/grpc_server.py,sha256=nqeHg0FxGppjy8MqQUQ8DJtY4bkvJkR3tCxxmXGk6n0,3733
|
|
81
81
|
phoenix/server/jwt_store.py,sha256=lmcTRBPoxMHzSV7WT8Ew40ag4uxeMWPLDw-vPIoWL8s,16829
|
|
82
|
-
phoenix/server/main.py,sha256=
|
|
82
|
+
phoenix/server/main.py,sha256=d6I67MWrI38z9M5OEJfL5OB8dgCtkgIpspnmlVPveMk,15770
|
|
83
83
|
phoenix/server/oauth2.py,sha256=4zt6NEh0o2a3HUThYs-FPqOeDcvYM3YKKMg-s_Awls0,2043
|
|
84
84
|
phoenix/server/prometheus.py,sha256=x9zV3M8VeZ9GS32SLr5OxNdi1VaxvdHCZPx2zI8Hoa4,3549
|
|
85
85
|
phoenix/server/rate_limiters.py,sha256=7UJDH9YTmBIeGFLJX1759-LpS-XNp0zN1TlzxyqTnZc,7163
|
|
@@ -92,8 +92,9 @@ phoenix/server/api/auth.py,sha256=OhWmv_Hl-K-yhJeUWXKRYYiUOIPo-rYSQXdm4fjeTJ8,90
|
|
|
92
92
|
phoenix/server/api/context.py,sha256=g5tAYInMifMOdnGTlyfHdB7rDNlC9F2E5bU6IA_3Y0c,5337
|
|
93
93
|
phoenix/server/api/exceptions.py,sha256=TA0JuY2YRnj35qGuMSQ8d0ToHum9gWm9W--3fSKHrX0,1171
|
|
94
94
|
phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
|
|
95
|
-
phoenix/server/api/queries.py,sha256=
|
|
96
|
-
phoenix/server/api/schema.py,sha256=
|
|
95
|
+
phoenix/server/api/queries.py,sha256=sE_w4X9sz0QJBGNQbOMgiZiKpR24jvxCpv6AQeGeE9Y,27153
|
|
96
|
+
phoenix/server/api/schema.py,sha256=JKxcZd0UBX6VnVic9tnKAzehJ2fGYNWAu6Gr1tR1PMI,637
|
|
97
|
+
phoenix/server/api/subscriptions.py,sha256=Ck2IrFcHaqipeHY68up4fXMHcfgjh6J5s9XbDVQxJBA,15934
|
|
97
98
|
phoenix/server/api/utils.py,sha256=Kl47G-1A7QKTDrc75BU2QK6HupsG6MWuXxy351FOfKQ,858
|
|
98
99
|
phoenix/server/api/dataloaders/__init__.py,sha256=jNYvfXjnZzgA2HWTG7AZdqWGla3ZysBUDUei8Zkz6N8,3290
|
|
99
100
|
phoenix/server/api/dataloaders/annotation_summaries.py,sha256=Wv8AORZoGd5TJ4Y-em8iqJu87AMpZP7lWOTr-SML-x8,5560
|
|
@@ -126,6 +127,7 @@ phoenix/server/api/helpers/__init__.py,sha256=_V1eVkchZmTkhOfRC4QqR1sUB2xtIxdsMJ
|
|
|
126
127
|
phoenix/server/api/helpers/dataset_helpers.py,sha256=A6UzEyAb4gFtyc_AV63_yl9OpN0vn8Vw1BBCTNjg9J0,6875
|
|
127
128
|
phoenix/server/api/input_types/AddExamplesToDatasetInput.py,sha256=ZGXMV0H3DYHi4DdqGhejDzaWdFinyem1Mc8DVA7iCh0,436
|
|
128
129
|
phoenix/server/api/input_types/AddSpansToDatasetInput.py,sha256=C4oZ0WqYqca1kleNOCMIM2_aY6Qnc5n1xXG51_C1V0w,368
|
|
130
|
+
phoenix/server/api/input_types/ChatCompletionMessageInput.py,sha256=tzRwo9gth1ZkZULM_w3OE9txt_sW2PEBfrzx0pVyjEQ,362
|
|
129
131
|
phoenix/server/api/input_types/ClearProjectInput.py,sha256=cpPFRyQ3ffy2dLbCZgYpway-mCzhdm4QqnUg8caOBfQ,382
|
|
130
132
|
phoenix/server/api/input_types/ClusterInput.py,sha256=EL4ftvZxQ8mVdruUPcdhMhByORmSmM8S-X6RPqU6GX0,179
|
|
131
133
|
phoenix/server/api/input_types/Coordinates.py,sha256=meTwbIjwTfqx5DGD2DBlH9wQzdQVNM5a8x9dp1FfIgA,173
|
|
@@ -143,6 +145,7 @@ phoenix/server/api/input_types/DeleteExperimentsInput.py,sha256=yUbwMckIBvIL-R9t
|
|
|
143
145
|
phoenix/server/api/input_types/DimensionFilter.py,sha256=vcXgglSnZcB5pGh-6oEtRmGx95hISgFUR7BEPw01g7U,3143
|
|
144
146
|
phoenix/server/api/input_types/DimensionInput.py,sha256=Vfx5FmiMKey4-EHDQsQRPzSAMRJMN5oVMLDUl4NKAa8,164
|
|
145
147
|
phoenix/server/api/input_types/Granularity.py,sha256=6SVfZ5yTZYq1PI6vdpjfkBUc4YilLSkF-k6okuSNbbQ,2301
|
|
148
|
+
phoenix/server/api/input_types/InvocationParameters.py,sha256=Zz4Cd2BwriPxouBzsGIfQrvIasJGHHthyGFkjzGa0Dw,528
|
|
146
149
|
phoenix/server/api/input_types/PatchAnnotationInput.py,sha256=NWhkcbcGNPwfOYsN3wm5YFNNrSc5T-8Y5my74RK99HE,520
|
|
147
150
|
phoenix/server/api/input_types/PatchDatasetExamplesInput.py,sha256=E86aBGXDBC83jiEGwV5rilnoeQf6eqCfZ0aAVeIt2VI,890
|
|
148
151
|
phoenix/server/api/input_types/PatchDatasetInput.py,sha256=OURtTVY8Z_oFEDtKwT1LCMaOK5D4QYo5TVQ6mDrex-g,328
|
|
@@ -163,7 +166,7 @@ phoenix/server/api/mutations/span_annotations_mutations.py,sha256=HwXB_C0y9tK-ae
|
|
|
163
166
|
phoenix/server/api/mutations/trace_annotations_mutations.py,sha256=wZTotf4mWadMVIzr1Drv9vbntPsx7UUIeX7Q5drjc8I,5912
|
|
164
167
|
phoenix/server/api/mutations/user_mutations.py,sha256=32Fcuxn6GWwY2cl3OTYTQIyBANl23UF6wqxeaa3JrmE,13324
|
|
165
168
|
phoenix/server/api/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
166
|
-
phoenix/server/api/openapi/main.py,sha256=
|
|
169
|
+
phoenix/server/api/openapi/main.py,sha256=yKdzJYI4cxy_1mFcK4_7YObIcuRviBIfwNjB23RG14k,461
|
|
167
170
|
phoenix/server/api/openapi/schema.py,sha256=LJ3dRElQP2nXN-HaxOysiiQrvn5PxjuaLYT7q5jUjb8,490
|
|
168
171
|
phoenix/server/api/routers/__init__.py,sha256=YIzHsIFOOXuCRbDkMUHx-McrANFJK5UfUn6a4BNIzmo,277
|
|
169
172
|
phoenix/server/api/routers/auth.py,sha256=T774FE5mqrfRSSYo1snpR5NIp3YzAJnsLsY9FJB9GCA,11164
|
|
@@ -185,6 +188,7 @@ phoenix/server/api/types/AnnotationSummary.py,sha256=8B2LIROqcrPOi8hvYygsblKvSEB
|
|
|
185
188
|
phoenix/server/api/types/AnnotatorKind.py,sha256=rPgGdbN1Gvc109sGQ_ZH-gfJbp93V9wlarzTEJNtUwI,236
|
|
186
189
|
phoenix/server/api/types/ApiKey.py,sha256=76HIkWxyJqL3UjdMesX9l5y6XaD9QphwabXGQVY-MaQ,793
|
|
187
190
|
phoenix/server/api/types/AuthMethod.py,sha256=M25usT6FCNKi-QFMdtMqRjJVGfq1ACnVoSjHXGxfrUk,126
|
|
191
|
+
phoenix/server/api/types/ChatCompletionMessageRole.py,sha256=kmQOilOlVntlmqbaHkqXZuimfljfYaHc3kbo53uK8_0,227
|
|
188
192
|
phoenix/server/api/types/Cluster.py,sha256=ac4YfT1OH3xLVmex7EUmB6b9IpULnhLTt554LR0jglE,5689
|
|
189
193
|
phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
|
|
190
194
|
phoenix/server/api/types/DataQualityMetric.py,sha256=zRKsNvHBu-NdcsunuLhqFpZhi6ks-HMqA1PJD27jTak,590
|
|
@@ -214,6 +218,8 @@ phoenix/server/api/types/ExperimentRun.py,sha256=LkR7fBRZ3nH57ZoHJwePTGtJYcTMM-E
|
|
|
214
218
|
phoenix/server/api/types/ExperimentRunAnnotation.py,sha256=iBxDaD9DgiF-Qymp5QyxWfJRGYXM1_CeWA_qzsZBqkI,1812
|
|
215
219
|
phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrBO4aCMS1lHsg,163
|
|
216
220
|
phoenix/server/api/types/Functionality.py,sha256=tzV9xdhB8zqfsjWxP66NDC7EZsplYkYO7jRbLWJIeeg,382
|
|
221
|
+
phoenix/server/api/types/GenerativeModel.py,sha256=P7eBUMXbeqaLwSSGBKdZy3a5gOLd9I0fuP8o1st6H08,193
|
|
222
|
+
phoenix/server/api/types/GenerativeProvider.py,sha256=FYsx_2tUV2esmconK455yCYFzdHbXVHQJv6PKMXH4d4,269
|
|
217
223
|
phoenix/server/api/types/Inferences.py,sha256=BOMlOSsRtUV9XQxpnjmZxdBcJ1w-t9PiFfVOSTS160E,3367
|
|
218
224
|
phoenix/server/api/types/InferencesRole.py,sha256=Kj9aiXOpGhpeg9PHd9MDU7aXVIT28EjJxr4P6xybfzc,601
|
|
219
225
|
phoenix/server/api/types/LabelFraction.py,sha256=zsDxdFALrNiGA1eNykeP8o65gbA0HOhRp54MPH_iRAM,93
|
|
@@ -258,15 +264,15 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
|
|
|
258
264
|
phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
|
|
259
265
|
phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
|
|
260
266
|
phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
|
|
261
|
-
phoenix/server/static/.vite/manifest.json,sha256=
|
|
262
|
-
phoenix/server/static/assets/components-
|
|
263
|
-
phoenix/server/static/assets/index-
|
|
264
|
-
phoenix/server/static/assets/pages-
|
|
267
|
+
phoenix/server/static/.vite/manifest.json,sha256=U6-H3n01tSVeVy-l94OEK3EruoVfOa9qX_vwKmkgetU,1929
|
|
268
|
+
phoenix/server/static/assets/components-DwERj42u.js,sha256=_UuYjCrj_FQcxrE9bS2L5OdRWjHRYSpaeqlyKz1uGEI,272882
|
|
269
|
+
phoenix/server/static/assets/index-CyOjvLOr.js,sha256=F-_8kYJi1I6xjcpaGnZnv9GBXlbmcd9BbyKRNe8TOzI,7162
|
|
270
|
+
phoenix/server/static/assets/pages-BNYMd7SU.js,sha256=dT3K-yhvV7kZtBmut5iiNTCbO_LvaMDKD27XCJm95oc,585995
|
|
271
|
+
phoenix/server/static/assets/vendor-D-NIjePD.js,sha256=tba6ip4z7SOnhlPkBkyt9CUJiDDzZwi6IRKCnbwHvuA,10898294
|
|
265
272
|
phoenix/server/static/assets/vendor-DxkFTwjz.css,sha256=nZrkr0u6NNElFGvpWHk9GTHeGoibCXCli1bE7mXZGZg,1816
|
|
266
|
-
phoenix/server/static/assets/vendor-
|
|
267
|
-
phoenix/server/static/assets/vendor-
|
|
268
|
-
phoenix/server/static/assets/vendor-
|
|
269
|
-
phoenix/server/static/assets/vendor-recharts-CJm3CJf0.js,sha256=kc9kNfFktozfoXUIYfaD2ABKbV0EtdInsXUBohzh9qo,282859
|
|
273
|
+
phoenix/server/static/assets/vendor-arizeai-DoY5jUTO.js,sha256=RkuJgULcP6CtTAhyLSzI9bNRiJnq84MwkYCF6MQ2sCw,306507
|
|
274
|
+
phoenix/server/static/assets/vendor-codemirror-CIhY_nEU.js,sha256=6g23qgUXzCj6VuoJC9Uhq7Y9qb3_WN3u767NLDhfGkM,392703
|
|
275
|
+
phoenix/server/static/assets/vendor-recharts-Dgcm35Jq.js,sha256=9ifuAYGnEKtBtbTV9sFe95rP4e1NR9j8DOVEb-hRKzM,282859
|
|
270
276
|
phoenix/server/static/assets/vendor-three-DwGkEfCM.js,sha256=0D12ZgKzfKCTSdSTKJBFR2RZO_xxeMXrqDp0AszZqHY,620972
|
|
271
277
|
phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
272
278
|
phoenix/server/templates/index.html,sha256=ULNlp0-agU8pH4wCIapE1goqnwkbctAoQRgrfwH_irg,4379
|
|
@@ -280,7 +286,7 @@ phoenix/trace/attributes.py,sha256=B_OrzVaxZwFkrAFXZyicYoIti1UdUysURsvUS2GyW1U,1
|
|
|
280
286
|
phoenix/trace/errors.py,sha256=wB1z8qdPckngdfU-TORToekvg3344oNFAA83_hC2yFY,180
|
|
281
287
|
phoenix/trace/evaluation_conventions.py,sha256=t8jydM3U0-T5YpiQKRJ3tWdWGlHtzKyttYdw-ddvPOk,1048
|
|
282
288
|
phoenix/trace/exporter.py,sha256=bUXh8fjJIbHurrnt4bAm-cCWqUN5FqNsIc8DZzzklkQ,4695
|
|
283
|
-
phoenix/trace/fixtures.py,sha256=
|
|
289
|
+
phoenix/trace/fixtures.py,sha256=qKYXz33MD7FYkSni7ccyFjXMV5iub7serp1zMGqh1P8,18982
|
|
284
290
|
phoenix/trace/otel.py,sha256=c3Iy9sUTYBliwYfChZIQ9_6xTti1BijY7t_4s2tqbyw,10028
|
|
285
291
|
phoenix/trace/projects.py,sha256=2BwlNjFE-uwpqYtCu5YyBiYZk9wRPpM13vh3-Cv7GkA,2157
|
|
286
292
|
phoenix/trace/schemas.py,sha256=HpWSyzec0yDHEQXEDuwyLbhpvKrqkGps8BJqGiIFj8Y,5978
|
|
@@ -298,17 +304,18 @@ phoenix/trace/v1/__init__.py,sha256=-IbAD0ruESMjvQLvGAg9CTfjBUATFDx1OXseDPis6-0,
|
|
|
298
304
|
phoenix/trace/v1/evaluation_pb2.py,sha256=8sXvv2BW_vqD30MOMbmkeE2zpmm7ncik21kl3e-HzeQ,2254
|
|
299
305
|
phoenix/trace/v1/evaluation_pb2.pyi,sha256=cCbbx06gwQmaH14s3J1X25TtaARh-k1abbxQdQCXGm8,4500
|
|
300
306
|
phoenix/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
301
|
-
phoenix/utilities/client.py,sha256=
|
|
307
|
+
phoenix/utilities/client.py,sha256=kr95EgpTJtCbb7CLoxC-KiyB2Wco03DZGIlcEmozHFs,5605
|
|
302
308
|
phoenix/utilities/deprecation.py,sha256=cFuTVvjSYyRlrdxdJewjJVieIEHPk30BukSRGRydQ3k,1046
|
|
303
309
|
phoenix/utilities/error_handling.py,sha256=7b5rpGFj9EWZ8yrZK1IHvxB89suWk3lggDayUQcvZds,1946
|
|
304
|
-
phoenix/utilities/json.py,sha256
|
|
310
|
+
phoenix/utilities/json.py,sha256=-_LkuoipOMNlC-PWInFez9mMZkAK8fr3Z8bv6ri6la8,2361
|
|
305
311
|
phoenix/utilities/logging.py,sha256=B8t2WPULOwVyuGLRLbwKsw5N41N26vtgF-lCAYgWTEk,508
|
|
306
312
|
phoenix/utilities/project.py,sha256=8IJuMM4yUMoooPi37sictGj8Etu9rGmq6RFtc9848cQ,436
|
|
307
313
|
phoenix/utilities/re.py,sha256=nr_B0txj_7CXc45953X6vr2KCRSWMuaXJSEkL8s8Sjc,2036
|
|
308
314
|
phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
309
|
-
|
|
310
|
-
arize_phoenix-5.
|
|
311
|
-
arize_phoenix-5.
|
|
312
|
-
arize_phoenix-5.
|
|
313
|
-
arize_phoenix-5.
|
|
314
|
-
arize_phoenix-5.
|
|
315
|
+
phoenix/utilities/template_formatters.py,sha256=zWY6gjAMmspYqlmn-ZjKeY5SExylwePk7a1BUdDxVGI,2236
|
|
316
|
+
arize_phoenix-5.3.0.dist-info/METADATA,sha256=dUAQVYFPQEpsSlvr7nWc3ggbxJ8D9M4DQCEdAI7Y3Wo,12001
|
|
317
|
+
arize_phoenix-5.3.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
318
|
+
arize_phoenix-5.3.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
|
|
319
|
+
arize_phoenix-5.3.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
320
|
+
arize_phoenix-5.3.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
321
|
+
arize_phoenix-5.3.0.dist-info/RECORD,,
|
phoenix/config.py
CHANGED
|
@@ -107,6 +107,14 @@ ENV_PHOENIX_PASSWORD_RESET_TOKEN_EXPIRY_MINUTES = "PHOENIX_PASSWORD_RESET_TOKEN_
|
|
|
107
107
|
"""
|
|
108
108
|
The duration, in minutes, before password reset tokens expire.
|
|
109
109
|
"""
|
|
110
|
+
ENV_PHOENIX_CSRF_TRUSTED_ORIGINS = "PHOENIX_CSRF_TRUSTED_ORIGINS"
|
|
111
|
+
"""
|
|
112
|
+
A comma-separated list of origins allowed to bypass Cross-Site Request Forgery (CSRF)
|
|
113
|
+
protection. This setting is recommended when configuring OAuth2 clients or sending
|
|
114
|
+
password reset emails. If this variable is left unspecified or contains no origins, CSRF
|
|
115
|
+
protection will not be enabled. In such cases, when a request includes `origin` or `referer`
|
|
116
|
+
headers, those values will not be validated.
|
|
117
|
+
"""
|
|
110
118
|
|
|
111
119
|
# SMTP settings
|
|
112
120
|
ENV_PHOENIX_SMTP_HOSTNAME = "PHOENIX_SMTP_HOSTNAME"
|
|
@@ -321,6 +329,22 @@ def get_env_refresh_token_expiry() -> timedelta:
|
|
|
321
329
|
return timedelta(minutes=minutes)
|
|
322
330
|
|
|
323
331
|
|
|
332
|
+
def get_env_csrf_trusted_origins() -> List[str]:
|
|
333
|
+
origins: List[str] = []
|
|
334
|
+
if not (csrf_trusted_origins := os.getenv(ENV_PHOENIX_CSRF_TRUSTED_ORIGINS)):
|
|
335
|
+
return origins
|
|
336
|
+
for origin in csrf_trusted_origins.split(","):
|
|
337
|
+
if not origin:
|
|
338
|
+
continue
|
|
339
|
+
if not urlparse(origin).hostname:
|
|
340
|
+
raise ValueError(
|
|
341
|
+
f"The environment variable `{ENV_PHOENIX_CSRF_TRUSTED_ORIGINS}` contains a url "
|
|
342
|
+
f"with missing hostname. Please ensure that each url has a valid hostname."
|
|
343
|
+
)
|
|
344
|
+
origins.append(origin)
|
|
345
|
+
return sorted(set(origins))
|
|
346
|
+
|
|
347
|
+
|
|
324
348
|
def get_env_smtp_username() -> str:
|
|
325
349
|
return os.getenv(ENV_PHOENIX_SMTP_USERNAME) or ""
|
|
326
350
|
|
|
@@ -6,10 +6,10 @@ import pandas as pd
|
|
|
6
6
|
from pandas.api.types import is_object_dtype
|
|
7
7
|
from typing_extensions import TypeAlias, TypeGuard
|
|
8
8
|
|
|
9
|
-
from phoenix import EmbeddingColumnNames, Inferences
|
|
10
9
|
from phoenix.core.model import _get_embedding_dimensions
|
|
11
10
|
from phoenix.core.model_schema import Embedding, Model, RetrievalEmbedding, Schema
|
|
12
|
-
from phoenix.inferences.
|
|
11
|
+
from phoenix.inferences.inferences import Inferences
|
|
12
|
+
from phoenix.inferences.schema import EmbeddingColumnNames, RetrievalEmbeddingColumnNames
|
|
13
13
|
from phoenix.inferences.schema import Schema as InferencesSchema
|
|
14
14
|
|
|
15
15
|
InferencesName: TypeAlias = str
|
phoenix/db/models.py
CHANGED
|
@@ -50,7 +50,7 @@ class JSONB(JSON):
|
|
|
50
50
|
__visit_name__ = "JSONB"
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
@compiles(JSONB, "sqlite")
|
|
53
|
+
@compiles(JSONB, "sqlite")
|
|
54
54
|
def _(*args: Any, **kwargs: Any) -> str:
|
|
55
55
|
# See https://docs.sqlalchemy.org/en/20/core/custom_types.html
|
|
56
56
|
return "JSONB"
|
|
@@ -271,7 +271,7 @@ class LatencyMs(expression.FunctionElement[float]):
|
|
|
271
271
|
name = "latency_ms"
|
|
272
272
|
|
|
273
273
|
|
|
274
|
-
@compiles(LatencyMs)
|
|
274
|
+
@compiles(LatencyMs)
|
|
275
275
|
def _(element: Any, compiler: Any, **kw: Any) -> Any:
|
|
276
276
|
# See https://docs.sqlalchemy.org/en/20/core/compiler.html
|
|
277
277
|
start_time, end_time = list(element.clauses)
|
|
@@ -287,7 +287,7 @@ def _(element: Any, compiler: Any, **kw: Any) -> Any:
|
|
|
287
287
|
)
|
|
288
288
|
|
|
289
289
|
|
|
290
|
-
@compiles(LatencyMs, "sqlite")
|
|
290
|
+
@compiles(LatencyMs, "sqlite")
|
|
291
291
|
def _(element: Any, compiler: Any, **kw: Any) -> Any:
|
|
292
292
|
# See https://docs.sqlalchemy.org/en/20/core/compiler.html
|
|
293
293
|
start_time, end_time = list(element.clauses)
|
|
@@ -308,21 +308,21 @@ class TextContains(expression.FunctionElement[str]):
|
|
|
308
308
|
name = "text_contains"
|
|
309
309
|
|
|
310
310
|
|
|
311
|
-
@compiles(TextContains)
|
|
311
|
+
@compiles(TextContains)
|
|
312
312
|
def _(element: Any, compiler: Any, **kw: Any) -> Any:
|
|
313
313
|
# See https://docs.sqlalchemy.org/en/20/core/compiler.html
|
|
314
314
|
string, substring = list(element.clauses)
|
|
315
315
|
return compiler.process(string.contains(substring), **kw)
|
|
316
316
|
|
|
317
317
|
|
|
318
|
-
@compiles(TextContains, "postgresql")
|
|
318
|
+
@compiles(TextContains, "postgresql")
|
|
319
319
|
def _(element: Any, compiler: Any, **kw: Any) -> Any:
|
|
320
320
|
# See https://docs.sqlalchemy.org/en/20/core/compiler.html
|
|
321
321
|
string, substring = list(element.clauses)
|
|
322
322
|
return compiler.process(func.strpos(string, substring) > 0, **kw)
|
|
323
323
|
|
|
324
324
|
|
|
325
|
-
@compiles(TextContains, "sqlite")
|
|
325
|
+
@compiles(TextContains, "sqlite")
|
|
326
326
|
def _(element: Any, compiler: Any, **kw: Any) -> Any:
|
|
327
327
|
# See https://docs.sqlalchemy.org/en/20/core/compiler.html
|
|
328
328
|
string, substring = list(element.clauses)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import strawberry
|
|
2
|
+
from strawberry.scalars import JSON
|
|
3
|
+
|
|
4
|
+
from phoenix.server.api.types.ChatCompletionMessageRole import ChatCompletionMessageRole
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@strawberry.input
|
|
8
|
+
class ChatCompletionMessageInput:
|
|
9
|
+
role: ChatCompletionMessageRole
|
|
10
|
+
content: JSON = strawberry.field(
|
|
11
|
+
description="The content of the message as JSON to support text and tools",
|
|
12
|
+
)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
from strawberry import UNSET
|
|
5
|
+
from strawberry.scalars import JSON
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@strawberry.input
|
|
9
|
+
class InvocationParameters:
|
|
10
|
+
"""
|
|
11
|
+
Invocation parameters interface shared between different providers.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
temperature: Optional[float] = UNSET
|
|
15
|
+
max_completion_tokens: Optional[int] = UNSET
|
|
16
|
+
max_tokens: Optional[int] = UNSET
|
|
17
|
+
top_p: Optional[float] = UNSET
|
|
18
|
+
stop: Optional[List[str]] = UNSET
|
|
19
|
+
seed: Optional[int] = UNSET
|
|
20
|
+
tool_choice: Optional[JSON] = UNSET
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from argparse import ArgumentParser
|
|
3
|
-
from typing import Optional, Tuple
|
|
4
3
|
|
|
5
|
-
from .schema import get_openapi_schema
|
|
4
|
+
from phoenix.server.api.openapi.schema import get_openapi_schema
|
|
6
5
|
|
|
7
6
|
if __name__ == "__main__":
|
|
8
7
|
parser = ArgumentParser()
|
|
9
8
|
parser.add_argument(
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
"-o",
|
|
10
|
+
"--output",
|
|
11
|
+
type=str,
|
|
12
|
+
required=True,
|
|
13
|
+
help="Path to the output file (e.g., openapi.json)",
|
|
13
14
|
)
|
|
14
15
|
args = parser.parse_args()
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
separator: Optional[Tuple[str, str]] = None
|
|
18
|
-
if args.compress:
|
|
19
|
-
separator = (",", ":")
|
|
20
|
-
else:
|
|
21
|
-
indent = 2
|
|
22
|
-
print(json.dumps(get_openapi_schema(), indent=indent, separators=separator))
|
|
16
|
+
with open(args.output, "w") as f:
|
|
17
|
+
json.dump(get_openapi_schema(), f, indent=2)
|
phoenix/server/api/queries.py
CHANGED
|
@@ -58,6 +58,11 @@ from phoenix.server.api.types.Experiment import Experiment
|
|
|
58
58
|
from phoenix.server.api.types.ExperimentComparison import ExperimentComparison, RunComparisonItem
|
|
59
59
|
from phoenix.server.api.types.ExperimentRun import ExperimentRun, to_gql_experiment_run
|
|
60
60
|
from phoenix.server.api.types.Functionality import Functionality
|
|
61
|
+
from phoenix.server.api.types.GenerativeModel import GenerativeModel
|
|
62
|
+
from phoenix.server.api.types.GenerativeProvider import (
|
|
63
|
+
GenerativeProvider,
|
|
64
|
+
GenerativeProviderKey,
|
|
65
|
+
)
|
|
61
66
|
from phoenix.server.api.types.InferencesRole import AncillaryInferencesRole, InferencesRole
|
|
62
67
|
from phoenix.server.api.types.Model import Model
|
|
63
68
|
from phoenix.server.api.types.node import from_global_id, from_global_id_with_expected_type
|
|
@@ -76,8 +81,77 @@ from phoenix.server.api.types.UserApiKey import UserApiKey, to_gql_api_key
|
|
|
76
81
|
from phoenix.server.api.types.UserRole import UserRole
|
|
77
82
|
|
|
78
83
|
|
|
84
|
+
@strawberry.input
|
|
85
|
+
class ModelsInput:
|
|
86
|
+
provider_key: Optional[GenerativeProviderKey]
|
|
87
|
+
|
|
88
|
+
|
|
79
89
|
@strawberry.type
|
|
80
90
|
class Query:
|
|
91
|
+
@strawberry.field
|
|
92
|
+
async def model_providers(self) -> List[GenerativeProvider]:
|
|
93
|
+
return [
|
|
94
|
+
GenerativeProvider(
|
|
95
|
+
name="OpenAI",
|
|
96
|
+
key=GenerativeProviderKey.OPENAI,
|
|
97
|
+
),
|
|
98
|
+
GenerativeProvider(
|
|
99
|
+
name="Azure OpenAI",
|
|
100
|
+
key=GenerativeProviderKey.AZURE_OPENAI,
|
|
101
|
+
),
|
|
102
|
+
GenerativeProvider(
|
|
103
|
+
name="Anthropic",
|
|
104
|
+
key=GenerativeProviderKey.ANTHROPIC,
|
|
105
|
+
),
|
|
106
|
+
]
|
|
107
|
+
|
|
108
|
+
@strawberry.field
|
|
109
|
+
async def models(self, input: Optional[ModelsInput] = None) -> List[GenerativeModel]:
|
|
110
|
+
openai_models = [
|
|
111
|
+
"o1-preview",
|
|
112
|
+
"o1-preview-2024-09-12",
|
|
113
|
+
"o1-mini",
|
|
114
|
+
"o1-mini-2024-09-12",
|
|
115
|
+
"gpt-4o",
|
|
116
|
+
"gpt-4o-2024-08-06",
|
|
117
|
+
"gpt-4o-2024-05-13",
|
|
118
|
+
"chatgpt-4o-latest",
|
|
119
|
+
"gpt-4o-mini",
|
|
120
|
+
"gpt-4o-mini-2024-07-18",
|
|
121
|
+
"gpt-4-turbo",
|
|
122
|
+
"gpt-4-turbo-2024-04-09",
|
|
123
|
+
"gpt-4-turbo-preview",
|
|
124
|
+
"gpt-4-0125-preview",
|
|
125
|
+
"gpt-4-1106-preview",
|
|
126
|
+
"gpt-4",
|
|
127
|
+
"gpt-4-0613",
|
|
128
|
+
"gpt-3.5-turbo-0125",
|
|
129
|
+
"gpt-3.5-turbo",
|
|
130
|
+
"gpt-3.5-turbo-1106",
|
|
131
|
+
"gpt-3.5-turbo-instruct",
|
|
132
|
+
]
|
|
133
|
+
anthropic_models = [
|
|
134
|
+
"claude-3-5-sonnet-20240620",
|
|
135
|
+
"claude-3-opus-20240229",
|
|
136
|
+
"claude-3-sonnet-20240229",
|
|
137
|
+
"claude-3-haiku-20240307",
|
|
138
|
+
]
|
|
139
|
+
openai_generative_models = [
|
|
140
|
+
GenerativeModel(name=model_name, provider_key=GenerativeProviderKey.OPENAI)
|
|
141
|
+
for model_name in openai_models
|
|
142
|
+
]
|
|
143
|
+
anthropic_generative_models = [
|
|
144
|
+
GenerativeModel(name=model_name, provider_key=GenerativeProviderKey.ANTHROPIC)
|
|
145
|
+
for model_name in anthropic_models
|
|
146
|
+
]
|
|
147
|
+
|
|
148
|
+
all_models = openai_generative_models + anthropic_generative_models
|
|
149
|
+
|
|
150
|
+
if input is not None and input.provider_key is not None:
|
|
151
|
+
return [model for model in all_models if model.provider_key == input.provider_key]
|
|
152
|
+
|
|
153
|
+
return all_models
|
|
154
|
+
|
|
81
155
|
@strawberry.field(permission_classes=[IsAdmin]) # type: ignore
|
|
82
156
|
async def users(
|
|
83
157
|
self,
|
phoenix/server/api/schema.py
CHANGED
|
@@ -3,6 +3,7 @@ import strawberry
|
|
|
3
3
|
from phoenix.server.api.exceptions import get_mask_errors_extension
|
|
4
4
|
from phoenix.server.api.mutations import Mutation
|
|
5
5
|
from phoenix.server.api.queries import Query
|
|
6
|
+
from phoenix.server.api.subscriptions import Subscription
|
|
6
7
|
|
|
7
8
|
# This is the schema for generating `schema.graphql`.
|
|
8
9
|
# See https://strawberry.rocks/docs/guides/schema-export
|
|
@@ -12,4 +13,5 @@ schema = strawberry.Schema(
|
|
|
12
13
|
query=Query,
|
|
13
14
|
mutation=Mutation,
|
|
14
15
|
extensions=[get_mask_errors_extension()],
|
|
16
|
+
subscription=Subscription,
|
|
15
17
|
)
|