arize-phoenix 10.15.0__py3-none-any.whl → 11.1.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 (79) hide show
  1. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.1.0.dist-info}/METADATA +2 -2
  2. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.1.0.dist-info}/RECORD +77 -46
  3. phoenix/config.py +5 -2
  4. phoenix/datetime_utils.py +8 -1
  5. phoenix/db/bulk_inserter.py +40 -1
  6. phoenix/db/facilitator.py +263 -4
  7. phoenix/db/insertion/helpers.py +15 -0
  8. phoenix/db/insertion/span.py +3 -1
  9. phoenix/db/migrations/versions/a20694b15f82_cost.py +196 -0
  10. phoenix/db/models.py +267 -9
  11. phoenix/db/types/token_price_customization.py +29 -0
  12. phoenix/server/api/context.py +38 -4
  13. phoenix/server/api/dataloaders/__init__.py +41 -5
  14. phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py +35 -0
  15. phoenix/server/api/dataloaders/span_cost_by_span.py +24 -0
  16. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py +56 -0
  17. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py +57 -0
  18. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py +43 -0
  19. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py +56 -0
  20. phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +27 -0
  21. phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +58 -0
  22. phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +58 -0
  23. phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +55 -0
  24. phoenix/server/api/dataloaders/span_cost_summary_by_project.py +140 -0
  25. phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +56 -0
  26. phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +55 -0
  27. phoenix/server/api/dataloaders/span_costs.py +35 -0
  28. phoenix/server/api/dataloaders/types.py +29 -0
  29. phoenix/server/api/helpers/playground_clients.py +103 -12
  30. phoenix/server/api/input_types/ProjectSessionSort.py +3 -0
  31. phoenix/server/api/input_types/SpanSort.py +17 -0
  32. phoenix/server/api/mutations/__init__.py +2 -0
  33. phoenix/server/api/mutations/chat_mutations.py +17 -0
  34. phoenix/server/api/mutations/model_mutations.py +208 -0
  35. phoenix/server/api/queries.py +82 -41
  36. phoenix/server/api/routers/v1/traces.py +11 -4
  37. phoenix/server/api/subscriptions.py +36 -2
  38. phoenix/server/api/types/CostBreakdown.py +15 -0
  39. phoenix/server/api/types/Experiment.py +59 -1
  40. phoenix/server/api/types/ExperimentRun.py +58 -4
  41. phoenix/server/api/types/GenerativeModel.py +143 -2
  42. phoenix/server/api/types/{Model.py → InferenceModel.py} +1 -1
  43. phoenix/server/api/types/ModelInterface.py +11 -0
  44. phoenix/server/api/types/PlaygroundModel.py +10 -0
  45. phoenix/server/api/types/Project.py +42 -0
  46. phoenix/server/api/types/ProjectSession.py +44 -0
  47. phoenix/server/api/types/Span.py +137 -0
  48. phoenix/server/api/types/SpanCostDetailSummaryEntry.py +10 -0
  49. phoenix/server/api/types/SpanCostSummary.py +10 -0
  50. phoenix/server/api/types/TokenPrice.py +16 -0
  51. phoenix/server/api/types/TokenUsage.py +3 -3
  52. phoenix/server/api/types/Trace.py +41 -0
  53. phoenix/server/app.py +59 -0
  54. phoenix/server/cost_tracking/cost_details_calculator.py +190 -0
  55. phoenix/server/cost_tracking/cost_model_lookup.py +151 -0
  56. phoenix/server/cost_tracking/helpers.py +68 -0
  57. phoenix/server/cost_tracking/model_cost_manifest.json +59 -329
  58. phoenix/server/cost_tracking/regex_specificity.py +397 -0
  59. phoenix/server/cost_tracking/token_cost_calculator.py +57 -0
  60. phoenix/server/daemons/__init__.py +0 -0
  61. phoenix/server/daemons/generative_model_store.py +51 -0
  62. phoenix/server/daemons/span_cost_calculator.py +103 -0
  63. phoenix/server/dml_event_handler.py +1 -0
  64. phoenix/server/static/.vite/manifest.json +36 -36
  65. phoenix/server/static/assets/components-BQWqzM6Z.js +5055 -0
  66. phoenix/server/static/assets/{index-DIlhmbjB.js → index-t6f0PRIo.js} +13 -13
  67. phoenix/server/static/assets/{pages-YX47cEoQ.js → pages-B8Uyb2qa.js} +818 -422
  68. phoenix/server/static/assets/{vendor-DCZoBorz.js → vendor-DqQvHbPa.js} +147 -147
  69. phoenix/server/static/assets/{vendor-arizeai-Ckci3irT.js → vendor-arizeai-CLX44PFA.js} +1 -1
  70. phoenix/server/static/assets/{vendor-codemirror-BODM513D.js → vendor-codemirror-Du3XyJnB.js} +1 -1
  71. phoenix/server/static/assets/{vendor-recharts-C9O2a-N3.js → vendor-recharts-B2PJDrnX.js} +25 -25
  72. phoenix/server/static/assets/{vendor-shiki-Dq54rRC7.js → vendor-shiki-CNbrFjf9.js} +1 -1
  73. phoenix/version.py +1 -1
  74. phoenix/server/cost_tracking/cost_lookup.py +0 -255
  75. phoenix/server/static/assets/components-SpUMF1qV.js +0 -4509
  76. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.1.0.dist-info}/WHEEL +0 -0
  77. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.1.0.dist-info}/entry_points.txt +0 -0
  78. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.1.0.dist-info}/licenses/IP_NOTICE +0 -0
  79. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.1.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 10.15.0
3
+ Version: 11.1.0
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://arize.com/docs/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -33,7 +33,7 @@ Requires-Dist: httpx
33
33
  Requires-Dist: jinja2
34
34
  Requires-Dist: numpy!=2.0.0
35
35
  Requires-Dist: openinference-instrumentation>=0.1.32
36
- Requires-Dist: openinference-semantic-conventions>=0.1.17
36
+ Requires-Dist: openinference-semantic-conventions>=0.1.20
37
37
  Requires-Dist: opentelemetry-exporter-otlp
38
38
  Requires-Dist: opentelemetry-proto>=1.12.0
39
39
  Requires-Dist: opentelemetry-sdk
@@ -1,12 +1,12 @@
1
1
  phoenix/__init__.py,sha256=xkpXH76HFbEDCq8IhiFp-2GnEHx39xPMdOpV5Skew1w,5481
2
2
  phoenix/auth.py,sha256=yW78f1xWNjTE30ACGUM14nOd5BzkukhlzA9B45kSUkM,11053
3
- phoenix/config.py,sha256=qWSfDE4xH_83XawfFH2oxawx2aBNWA64E_b69aZSi8I,57571
4
- phoenix/datetime_utils.py,sha256=iJzNG6YJ6V7_u8B2iA7P2Z26FyxYbOPtx0dhJ7kNDHA,3398
3
+ phoenix/config.py,sha256=ql9rAKvD45l01zmlyE8lDHCkUBgRGxYmtcZvhMSwzGs,57673
4
+ phoenix/datetime_utils.py,sha256=fpISOdaeDBdfIa-psFp6FJyAUPWEsiT5s3-_aLV12bg,3576
5
5
  phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
6
6
  phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
7
  phoenix/services.py,sha256=ngkyKGVatX3cO2WJdo2hKdaVKP-xJCMvqthvga6kJss,5196
8
8
  phoenix/settings.py,sha256=2kHfT3BNOVd4dAO1bq-syEQbHSG8oX2-7NhOwK2QREk,896
9
- phoenix/version.py,sha256=jpWizMuX7YqQHh4siflLCEQbxrdSqz8Okj76Y23IUME,24
9
+ phoenix/version.py,sha256=5eqXAZgVViX8GN8WbhGikfWiIAnt-0S57_GDXj5j6uI,23
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=qBFraOtmwCCnWJltKNP18DDG0mULXigytlFsa6YOz6k,4837
@@ -15,22 +15,22 @@ phoenix/core/model_schema_adapter.py,sha256=y1RXPYGt2HLTGpkB2X-XVQvRJXYGmJ9EL4m7
15
15
  phoenix/db/README.md,sha256=sU5uHVHVIMgHj4lSf7E_qLwY8Cc_9G0c83e_4uRhhtI,9640
16
16
  phoenix/db/__init__.py,sha256=pDjEFXukHmJBM-1D8RjmXkvLsz85YWNxMQczt81ec3A,118
17
17
  phoenix/db/alembic.ini,sha256=GIS6HpHaKaJbbuahZg1Rc1D2_QqyCkV9r58wdARGf6w,3262
18
- phoenix/db/bulk_inserter.py,sha256=faNjuwLqqsw4ky8sa4D0h9u5TvEDTOjrccUW89L008E,12725
18
+ phoenix/db/bulk_inserter.py,sha256=MbbmKip6gFtnLP1ZA3Z-mP-zy-Qnb9bPD8mRXJQOW2c,14536
19
19
  phoenix/db/constants.py,sha256=-YE2rkzcROG06_rerfnX5hC7fLzOHx1Gjw4nXhX_um4,46
20
20
  phoenix/db/engines.py,sha256=tB_8iWMDz0folryVvw29sbBUxJOB2XZ-Xx0Uexj3uns,6889
21
21
  phoenix/db/enums.py,sha256=w3O5YuJEEzVTwVDZb8b2UUFhU8yK_GosF081VVrrno0,188
22
- phoenix/db/facilitator.py,sha256=E25egiPMhuDVjH_kl1yMSO1bNWsP8Kn0IK-hXJXDD_4,9574
22
+ phoenix/db/facilitator.py,sha256=NIs_P6ARHhCOYWOddURtcHIsTMufnLp2R_6Sxqxfim0,20473
23
23
  phoenix/db/helpers.py,sha256=rbbHcl-STzcEpcXCYx6jbKzko7r3ggrWHHsXjZ48HsM,5352
24
24
  phoenix/db/migrate.py,sha256=oUrXH8yEbcpL4eh09aSCuUiSrhFli0eT5D_j4ZmYChY,2797
25
- phoenix/db/models.py,sha256=UXUyYD4f6Cz4Zmg76jhjJmUbpTf1evC5mTc__u1l3FY,52195
25
+ phoenix/db/models.py,sha256=0avhbUmDEBZ1_NgBSr9Ck9BYxXtJTraPfQqDGZFE2-Y,60388
26
26
  phoenix/db/pg_config.py,sha256=h6mB7qF7t4Zk6VGvAiyefHGVu74o-yJynaWzeE39k9Y,6001
27
27
  phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
29
29
  phoenix/db/insertion/dataset.py,sha256=KeUtfSnznmkDDlGs6KM5URduZtIo8I951tybamwoLsc,7216
30
30
  phoenix/db/insertion/document_annotation.py,sha256=46IHWgILlIIoCkzgEtZIubqfpgF9KVA8ETWeblcpff0,6544
31
31
  phoenix/db/insertion/evaluation.py,sha256=XIlDQMx9FFu_hO1TEao8_ScgKETw61AoeGezsmngXrY,6876
32
- phoenix/db/insertion/helpers.py,sha256=PAYKxm21OKe_cLsIo08KGJCqT9avjabWLmvD1CpteRs,3499
33
- phoenix/db/insertion/span.py,sha256=02hpGo5ZY6N-n6Z-far-AC_yVAloXpJyt-CIHOeor0k,8126
32
+ phoenix/db/insertion/helpers.py,sha256=wA4f_B8DI1pfNvX7R5luG1MklwX6rtCrvv_SOcjtJGo,4106
33
+ phoenix/db/insertion/span.py,sha256=UTPwWx-rSxIjRjr1x-p-RkECDmsHfNv0iSXLEooELMM,8189
34
34
  phoenix/db/insertion/span_annotation.py,sha256=7m0kaOkdHhLTqs_E9Kt8BeCiHUpaU3mspm5ZdMz3lio,5728
35
35
  phoenix/db/insertion/trace_annotation.py,sha256=Qijh7eROXLjV6OLIuKwsrc2OB9A7JnefzP4eZxlPRlc,5768
36
36
  phoenix/db/insertion/types.py,sha256=0p1IQj4WlhNAWonuCnNzWaV6G6xTvAFXRattUGw_zrk,8378
@@ -45,6 +45,7 @@ phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py,
45
45
  phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py,sha256=HDP3X5yxm5PwxMkODd-wrSwspQpFotTEz40jXRgq320,1787
46
46
  phoenix/db/migrations/versions/6a88424799fe_update_users_with_auth_method.py,sha256=URZ1JYPHtP4atDGgqiQDpQ45feTFD19QqR4RHetEImY,8181
47
47
  phoenix/db/migrations/versions/8a3764fe7f1a_change_jsonb_to_json_for_prompts.py,sha256=VWluPffBH11NADJ1-CTzoFvbrqIFmEAOSKI21_jsLk8,1841
48
+ phoenix/db/migrations/versions/a20694b15f82_cost.py,sha256=e9EHI7Yw4RUAK96p2w0__tEM0ZgwVOgDAXT1MvIY-8s,5215
48
49
  phoenix/db/migrations/versions/bb8139330879_create_project_trace_retention_policies_table.py,sha256=MmkEZRfDPppX9iM9yxyDzmXlJXlGCEqhbN0nCT8aBF0,2044
49
50
  phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py,sha256=rq-bwg0grRVvbKvwE2ZBCFG_nQRmYNCd2PJeFd_5SDk,5527
50
51
  phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py,sha256=fkpmh5PgMZJiZpvLbZIaqlI2cucVpVbbNYpQ-Tznil8,5180
@@ -54,6 +55,7 @@ phoenix/db/types/annotation_configs.py,sha256=keiQ9mzLZWE8Eqsu1xFxQBXvBiym0s-yPz
54
55
  phoenix/db/types/db_models.py,sha256=nMSd9gWHwObnVO3_slztlHqoeh04czS-Jxu-omS6M6E,1135
55
56
  phoenix/db/types/identifier.py,sha256=Opr3_1di6e5ncrBDn30WfBSr-jN_VGBnkkA4BMuSoyc,244
56
57
  phoenix/db/types/model_provider.py,sha256=zKYGcEQqbAxtPwnq5dL0fYPgDC8nrh_ABLBMR94___4,237
58
+ phoenix/db/types/token_price_customization.py,sha256=LAb8IwyFJGDCje7CvcPcxNp4NOU8si5hSYaf1fyi624,857
57
59
  phoenix/db/types/trace_retention.py,sha256=fyqAQCvDiD7mpJ_WUqbPyQvuSdERof4DpKpHLJsdROk,9897
58
60
  phoenix/experiments/__init__.py,sha256=6JGwgUd7xCbGpuHqYZlsmErmYvVgv7N_j43bn3dUqsk,123
59
61
  phoenix/experiments/functions.py,sha256=QoNkMW_EamcFyDBwq4WzKkmHVXD5ZFW9MlUaGRssrTQ,38227
@@ -89,11 +91,11 @@ phoenix/pointcloud/pointcloud.py,sha256=SN_1wXZcwKrtSnHGZLDZGx71orqE1WyVF7E-D58d
89
91
  phoenix/pointcloud/projectors.py,sha256=TQgwc9cJDjJkin1WZyZzgl3HsYrLLiyWD7Czy4jNW3U,1088
90
92
  phoenix/pointcloud/umap_parameters.py,sha256=db_WEPoamuWtopZx7tQfAXPnoE0MS8FkAV0_ThjEx_Q,1735
91
93
  phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
- phoenix/server/app.py,sha256=PFXCs_lGUr_LxLktje4dYI3TZmw8VC3KgXzZexfVQ8Q,41497
94
+ phoenix/server/app.py,sha256=-K4Xs1vKwOt_lhNo5InMAp2nnVpEn76H87uQ_cCyY0Y,44905
93
95
  phoenix/server/authorization.py,sha256=fofeRwuoodCUB3DQYPCuAgIyeiwopXW0tkH_KZvU0Rg,1848
94
96
  phoenix/server/bearer_auth.py,sha256=b2iHV2nwvWlZJ2O_nWOzHctJ0aUrEIOygIDrO7VOCSw,6700
95
97
  phoenix/server/dml_event.py,sha256=MjJmVEKytq75chBOSyvYDusUnEbg1pHpIjR3pZkUaJA,2838
96
- phoenix/server/dml_event_handler.py,sha256=EZLXmCvx4pJrCkz29gxwKwmvmUkTtPCHw6klR-XM8qE,8258
98
+ phoenix/server/dml_event_handler.py,sha256=gkDIONyTz9sLbSA6qOZCigiO5val-fvVcLzDrWNcVcg,8306
97
99
  phoenix/server/grpc_server.py,sha256=dod29zE_Zlir7NyLcdVM8GH3P8sy-9ykzfaBfVifyE4,4656
98
100
  phoenix/server/jwt_store.py,sha256=B6uVildN_dQDTG_-aHHvuVSI7wIVK1yvED-_y6se2GU,16905
99
101
  phoenix/server/main.py,sha256=SvLh2gB1F1Rh2LMcEx-W5gtOoGTpBjGl1tT10fG62Ns,18792
@@ -107,14 +109,14 @@ phoenix/server/types.py,sha256=b17xahdt6uwDdUYul0xctu7TbBC65AjarlhUzOiXFNE,7443
107
109
  phoenix/server/api/README.md,sha256=Pyq1PLPgTzXAswrfIhGXrjI3Skq8it2jTVnanT6Ba4Q,1162
108
110
  phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
111
  phoenix/server/api/auth.py,sha256=cvKH2FQLL7PasiqZMHgu9P4qchhEG7a7P9Nxy35FoIQ,1551
110
- phoenix/server/api/context.py,sha256=oxNmVIIyycl22iQZjv59lU1inwlo-Povxe2Ok7t54mw,6954
112
+ phoenix/server/api/context.py,sha256=RzPfhs0jaHIRtwcSv5sQNDqeTjNgy1FEpN7-oC1CJYs,8882
111
113
  phoenix/server/api/exceptions.py,sha256=TA0JuY2YRnj35qGuMSQ8d0ToHum9gWm9W--3fSKHrX0,1171
112
114
  phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
113
- phoenix/server/api/queries.py,sha256=J2OU59r6Jq5zs4fFl_nawj56dcBXH8iz5Ze_02YjVog,41606
115
+ phoenix/server/api/queries.py,sha256=KCwG2GPdRV0r6hV69cAaP_hLhFih3K9wdMksyfo0PnI,43553
114
116
  phoenix/server/api/schema.py,sha256=fcs36xQwFF_Qe41_5cWR8wYpDvOrnbcyTeo5WNMbDsA,1702
115
- phoenix/server/api/subscriptions.py,sha256=73s6TzwI2M_bjIZDYwgohdI_13iv7pgpLCvZYNuExnw,23777
117
+ phoenix/server/api/subscriptions.py,sha256=ZOGNsLVr5TNjCWgbzO7Eq6Ls_NRdJH9AxC0cW_v0vhM,25332
116
118
  phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
117
- phoenix/server/api/dataloaders/__init__.py,sha256=jAdt8Tuoj8X2iszbjqJ-LVNo5PicmyxyCTQWL51NMxU,4659
119
+ phoenix/server/api/dataloaders/__init__.py,sha256=VHmZ_0H3WYOluc70_UE4VkXISSIXmv-PftbbgdawQM8,6710
118
120
  phoenix/server/api/dataloaders/annotation_summaries.py,sha256=U-mVB6pY65umyjtmF-cLGJAp5QCAaB7psgTie6_gLGI,12943
119
121
  phoenix/server/api/dataloaders/average_experiment_run_latency.py,sha256=GLFoFAbztOH-0FVzzZ77mATIO63UcjB50j3qXiNi-tE,1811
120
122
  phoenix/server/api/dataloaders/dataset_example_revisions.py,sha256=xF7M2dg3UmjhdCrscnztCIBBI0cg3RF48IIqvilpc18,4623
@@ -127,6 +129,7 @@ phoenix/server/api/dataloaders/experiment_error_rates.py,sha256=V4U_y16LwfBDksTZ
127
129
  phoenix/server/api/dataloaders/experiment_run_annotations.py,sha256=uJ--9Ue4tnmZYH9Zy-Cj2Y2t3xzs2xUqN8Y6EGe1MCo,1296
128
130
  phoenix/server/api/dataloaders/experiment_run_counts.py,sha256=j_7229IL705p_TycxIMYylhSgLHsAn91TiGPYXtOuQ8,1617
129
131
  phoenix/server/api/dataloaders/experiment_sequence_number.py,sha256=zM_f78fnqhppLtevrx9iISQSN7w_BNeXT9CoX8jYgAI,1534
132
+ phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py,sha256=4i3HqwP71bZ8vwyyj7v63IuKEJnUZI1GWpP1FW_xMZA,1330
130
133
  phoenix/server/api/dataloaders/latency_ms_quantile.py,sha256=CHWV9nvEEM3xqpXWubywtLtFLzbwyLU85EaP_kQajJU,7363
131
134
  phoenix/server/api/dataloaders/min_start_or_max_end_times.py,sha256=1jYglTXv4S8k7OWSGdgeJ2OxVCmZtX8a6sjJp9GPZ04,2783
132
135
  phoenix/server/api/dataloaders/num_child_spans.py,sha256=655g9SP_3gfT4qqukfgKzLy5uBLQmnVQBP-mZL3in0s,1200
@@ -142,6 +145,19 @@ phoenix/server/api/dataloaders/session_token_usages.py,sha256=9RXZUyzDmzp5WDp_Bp
142
145
  phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py,sha256=s_Ce_BSad1Wvabq9hajdq-i-9rLbZ0esU2gwg9h7Vwg,2157
143
146
  phoenix/server/api/dataloaders/span_annotations.py,sha256=y5TvxnljS2P3hm_NiQd24qy313AG76lyjcZFNWGls1A,1028
144
147
  phoenix/server/api/dataloaders/span_by_id.py,sha256=gaqsMqMjJfzgsAuC--lZoRvgHk_1o78_0HnpXejg9Bc,1001
148
+ phoenix/server/api/dataloaders/span_cost_by_span.py,sha256=exi-VFoVxTfzo-DzJGjH00D2KhoCB0sCOv3TcSu_dK0,833
149
+ phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py,sha256=AWyJ0lznO0d5I08VGNHC6WYfzpRh5GStNPXnf2Qw3AA,2088
150
+ phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py,sha256=x5YY_g6lTXdHJFX4bCztpA84C21FwDrZVk1kZoQdYMc,2181
151
+ phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py,sha256=6I0Fdu2RYRm2gN64PYO3-bCY_e8vQX-BdOgoFFDjLCE,1723
152
+ phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py,sha256=pxgMRFGLQHqf9swuJf7c-n5ONaE7k8NCJaqROa-QK3o,2067
153
+ phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py,sha256=f8ztQACGfKuf-nigyXiBUnGxXVzhNG9tOsPujxvOoX4,974
154
+ phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py,sha256=O3KVRgoAfuP32w2wmQdnXAa8GWnxm9wFJPqng9Ct2LQ,2577
155
+ phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py,sha256=IJFirEPeR1UGKTg6Gz3MJQGDigoPy6SaFnUdBibyVac,2539
156
+ phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py,sha256=Fhp0NPsoSbTBgnE38hregVVeVHEhPw_QANiOfNyaTf8,2295
157
+ phoenix/server/api/dataloaders/span_cost_summary_by_project.py,sha256=Rn74_gc1O6JqXYYgo4BNKWcEkjB9QPAtcHgqbBHyP1k,5294
158
+ phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py,sha256=kvsMK8GkFBubMiKZ0KwDk5O2D3LvXIg_zKT66MoKazE,2362
159
+ phoenix/server/api/dataloaders/span_cost_summary_by_trace.py,sha256=XCq1mRGwNN5xucf4ea-V1cHus_VQQJyjR40UKCOmWHg,2274
160
+ phoenix/server/api/dataloaders/span_costs.py,sha256=hlNrofQNNuGi4XFxOt7OV_ceBJ6mu_aKsDMz7SSoM3A,1161
145
161
  phoenix/server/api/dataloaders/span_dataset_examples.py,sha256=rpBStVP7ZMIH11Cpq4-zCJ4amNC5ZzX72NYv4vAQTdc,1255
146
162
  phoenix/server/api/dataloaders/span_descendants.py,sha256=xrAJ_pVMQ3G7o4WNn3HxGTpNLCBXJH3xPb1RKnMEd1k,3933
147
163
  phoenix/server/api/dataloaders/span_projects.py,sha256=JTfuKn2BBn72QdAP53ZGP2OUCgZJ7AzlzQAx8WivBog,1234
@@ -150,6 +166,7 @@ phoenix/server/api/dataloaders/token_counts.py,sha256=Sr_sBfLgsKYCIjgzTFV-fuat7s
150
166
  phoenix/server/api/dataloaders/trace_by_trace_ids.py,sha256=xqYJOjCgXlTzour4vY72kO-2gJFgWMjD3759o78cq44,874
151
167
  phoenix/server/api/dataloaders/trace_retention_policy_id_by_project_id.py,sha256=WYaq1iR43ekBljZLldZScjXrweY0D7S9FNzCeaYO9Y0,1213
152
168
  phoenix/server/api/dataloaders/trace_root_spans.py,sha256=0Y2ImTPmDHpz_quRMIjuxED2M0dAm2M0StZUmSTiTiw,1000
169
+ phoenix/server/api/dataloaders/types.py,sha256=7VAl-I5QvZKpO3QMn6wfPY4uNVKoKqsqNAoARfFJpP8,805
153
170
  phoenix/server/api/dataloaders/user_roles.py,sha256=TvPWve38TlGFvaFkMeFvnnHBn1OMHUJTErRLeYrXR8I,1029
154
171
  phoenix/server/api/dataloaders/users.py,sha256=Uh86Kny_xpqDdEvEklcTBUA_MELgu4Z0jgh45ZqTzXs,1075
155
172
  phoenix/server/api/dataloaders/cache/__init__.py,sha256=SYoOM9n8FJaMdQarma5d1blu-jIg2GB8Shqg5ezSzZ8,106
@@ -158,7 +175,7 @@ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY
158
175
  phoenix/server/api/helpers/annotations.py,sha256=9gMXKpMTfWEChoSCnvdWYuyB0hlSnNOp-qUdar9Vono,262
159
176
  phoenix/server/api/helpers/dataset_helpers.py,sha256=3bdGBoUzqrtg-sr5p2wpQLOU6dhg_3TKFHNeJj8p0TU,9155
160
177
  phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
161
- phoenix/server/api/helpers/playground_clients.py,sha256=7QdE8WsggSCOVm4pp94nqg2QmAWni9ygHl7aeL2EkeY,66648
178
+ phoenix/server/api/helpers/playground_clients.py,sha256=vcLc8Ps8ZaZCUJnsN7retFbUR0LjF8nKTtN_OjBfS3E,71172
162
179
  phoenix/server/api/helpers/playground_registry.py,sha256=CPLMziFB2wmr-dfbx7VbzO2f8YIG_k5RftzvGXYGQ1w,2570
163
180
  phoenix/server/api/helpers/playground_spans.py,sha256=QpXwPl_fFNwm_iA1A77XApUyXMl1aDmonw8aXuNZ_4k,17132
164
181
  phoenix/server/api/helpers/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -197,24 +214,25 @@ phoenix/server/api/input_types/PatchDatasetExamplesInput.py,sha256=_uMqkAInhLDvz
197
214
  phoenix/server/api/input_types/PatchDatasetInput.py,sha256=OURtTVY8Z_oFEDtKwT1LCMaOK5D4QYo5TVQ6mDrex-g,328
198
215
  phoenix/server/api/input_types/PerformanceMetricInput.py,sha256=4SG5AymxV2dMeCrK7eREThdt9SuC43irMYZtY-Oq-bg,658
199
216
  phoenix/server/api/input_types/ProjectFilter.py,sha256=w3IimMXcNmMkrQ6h89-Yx6uh21r2wj1jci1nPZEDEhQ,260
200
- phoenix/server/api/input_types/ProjectSessionSort.py,sha256=qFgLmKYeyFpx7An9ZNdDNkkt7tghrG6XXruQbFLiFt8,919
217
+ phoenix/server/api/input_types/ProjectSessionSort.py,sha256=KZzEtOMpcxtP11brL4fXUAY_RLAK-Ul4luAWwVKnQgY,1043
201
218
  phoenix/server/api/input_types/ProjectSort.py,sha256=ZTT-InFB6NvInDwLuivyHe9PxR5nsmQ8aXCHAPjZm9k,329
202
219
  phoenix/server/api/input_types/PromptTemplateOptions.py,sha256=8ZJdH1F9fExcdH9dF8SJ29WycCvtEpK-Z6dZwFO7KgQ,232
203
220
  phoenix/server/api/input_types/PromptVersionInput.py,sha256=n6zBeSkK8ZFRHTjtVx4BK--azZIxXeYETa6Cufcet2I,3743
204
221
  phoenix/server/api/input_types/SpanAnnotationFilter.py,sha256=-djfIXYCxV6sV3GPOZQUV0SPfiWDhRlTORfeQ7tCBgQ,2671
205
222
  phoenix/server/api/input_types/SpanAnnotationSort.py,sha256=T5pAGzmh4MiJp9JMAzNDByFVTczfw02FH4WFWwFezyI,361
206
- phoenix/server/api/input_types/SpanSort.py,sha256=oqvcWHYgp_nXvXYNi5l8Bhe7PHT3LbAhUn6ZXDSzdXo,5959
223
+ phoenix/server/api/input_types/SpanSort.py,sha256=hpJTgk3FYb4T5u2cuvce7XvVKTfk3qiutdH-WLm-_2Q,6567
207
224
  phoenix/server/api/input_types/TimeRange.py,sha256=pwhC2jx6dFIgT0qFfnO68qiJp9-m7Je5QkNscNsuVxA,700
208
225
  phoenix/server/api/input_types/TraceAnnotationSort.py,sha256=BzwiUnMh2VsgQYnhDlbJ6ljHugqIS4YDUlYzvq_tl3o,365
209
226
  phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1Ip_H6xDENdQqMMx-kKE,129
210
227
  phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
- phoenix/server/api/mutations/__init__.py,sha256=fGFokUtX4J1q9yYzRtPOwRyfJNyL_8z60gaWX9IPvtM,1872
228
+ phoenix/server/api/mutations/__init__.py,sha256=DlAwXDKQzOpY4vFiDUR9Cu2kmncFr4m-RPRyQABBPIE,1972
212
229
  phoenix/server/api/mutations/annotation_config_mutations.py,sha256=i7NsQhYICcQ-I-tnFjGtVAYc8WVmMBacmRaqHWJ25t4,15433
213
230
  phoenix/server/api/mutations/api_key_mutations.py,sha256=nfnRjALCaQMi_jIbEPW4G3Dn3tPnmZVU11tpBbBijGA,6242
214
- phoenix/server/api/mutations/chat_mutations.py,sha256=pwrScthRbMcgXsOucQvSEx6PPiMLw8pwtx08e37SXsg,23715
231
+ phoenix/server/api/mutations/chat_mutations.py,sha256=97g5OEpFklS2hI73ACCzpRBq5s_h9-nxzbUr82XmU-8,24373
215
232
  phoenix/server/api/mutations/dataset_mutations.py,sha256=KRlF-Ag3twqaBpLR_6WYxf57DffaGuFBm-soaBPStbI,27787
216
233
  phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
217
234
  phoenix/server/api/mutations/export_events_mutations.py,sha256=xoDnVWC7eA_8wNQP0-oyiHojyUZ0EhVVSrsAnztetC0,3993
235
+ phoenix/server/api/mutations/model_mutations.py,sha256=eh-QIKww3EDrDewS3NTWTqnE2bwLJJ5WgRFvSPRksZg,7199
218
236
  phoenix/server/api/mutations/project_mutations.py,sha256=mhXw1ChBtdHCF3GOls66hHJmr5ohkICugp82o09e-sc,2926
219
237
  phoenix/server/api/mutations/project_trace_retention_policy_mutations.py,sha256=AqBe8TBxlXdIL56Afs4FIBqkI0bEgf-v9bHlbc-O6VI,9839
220
238
  phoenix/server/api/mutations/prompt_label_mutations.py,sha256=uCiVcULtmgaNaav4M08ipPYM68sZv1MVLrCgvW-Xyn8,7317
@@ -244,7 +262,7 @@ phoenix/server/api/routers/v1/models.py,sha256=p3gJN-9SWiUYTUTft4bZMsZVCBNTb4nN1
244
262
  phoenix/server/api/routers/v1/projects.py,sha256=LFWxHYPRZy-1EvroNylL635vU1UuDbcuRo1oD26yBnw,12551
245
263
  phoenix/server/api/routers/v1/prompts.py,sha256=aBOUBwLDzZDIzJQkxJcR8ZKnakNJOLMwzsLKINSs1mA,26545
246
264
  phoenix/server/api/routers/v1/spans.py,sha256=HhZtXsNTdOmMXWtMkz3VUb3aqpGsVAU5XOYi2KfvGMc,44106
247
- phoenix/server/api/routers/v1/traces.py,sha256=DfzeszQvtlrVxvurJLaWJJAhkCZ4BodLwpFuBYPwN5Q,8206
265
+ phoenix/server/api/routers/v1/traces.py,sha256=6zlk7NZs2TSL2Yoq2Gni6oRO5T5p6bKV-nUz5Q6M3F8,8411
248
266
  phoenix/server/api/routers/v1/users.py,sha256=ZcW3if0L8-lUusTzET7fhlhvnmiCICDrGimzB7i3irc,11947
249
267
  phoenix/server/api/routers/v1/utils.py,sha256=oXIOGPzPTkE0ZWUTRCoRIQQ7wTzoSwtWFaUSjlGBqts,4960
250
268
  phoenix/server/api/types/Annotation.py,sha256=gsl8CwjIbDUbZRj4d9USwZ_w_Tkz4i7zuZh9ftV80jA,1132
@@ -257,6 +275,7 @@ phoenix/server/api/types/AuthMethod.py,sha256=M25usT6FCNKi-QFMdtMqRjJVGfq1ACnVoS
257
275
  phoenix/server/api/types/ChatCompletionMessageRole.py,sha256=kmQOilOlVntlmqbaHkqXZuimfljfYaHc3kbo53uK8_0,227
258
276
  phoenix/server/api/types/ChatCompletionSubscriptionPayload.py,sha256=G0YsirJzDMFDqEK7I_FCkPmIugAof-8D9fNfFlHdhjY,1031
259
277
  phoenix/server/api/types/Cluster.py,sha256=duX0pSC7P3YT1IztduuJtPsRj1x6oOOLfmWf2Y-FdEk,5699
278
+ phoenix/server/api/types/CostBreakdown.py,sha256=YeLfvHSK4Ik-ApEmBqtLR1ZjGGZcazFXdjXVudpP45A,328
260
279
  phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
261
280
  phoenix/server/api/types/CronExpression.py,sha256=R7oxuSSX_eTUHQWaoaSueQqWDmkkHr5dBKRN6q-6ROk,331
262
281
  phoenix/server/api/types/DataQualityMetric.py,sha256=Aieg3bHeBFaAf4mqeRcH1zT04sXAtQD8ATSHJt7FaBQ,1538
@@ -279,25 +298,27 @@ phoenix/server/api/types/EvaluationSummary.py,sha256=vILYejnfPvMwWEXOwhQZsANvYe3
279
298
  phoenix/server/api/types/Event.py,sha256=iYt_Jx1Roioo0vZ0iPeJTHcTu6NSm4ilVMJ-IMUHAKk,3970
280
299
  phoenix/server/api/types/EventMetadata.py,sha256=-J0tYF9eZTHwCjwxQHY7Gckr2_MNW5OoWT1mydweZNM,635
281
300
  phoenix/server/api/types/ExampleRevisionInterface.py,sha256=gV3Gt9-3Oi5wjaVtepC6nOt3FzTzZFD1KebNnqiw56E,294
282
- phoenix/server/api/types/Experiment.py,sha256=r_D7lDJ9nEthuyZdZ7HafxsODlcLNcXtCNaL70HRpjc,5349
301
+ phoenix/server/api/types/Experiment.py,sha256=8Hd-8-4Rcym95sPHIBLyTfMuRdyl50YxlKO_fMvdNAA,7830
283
302
  phoenix/server/api/types/ExperimentAnnotationSummary.py,sha256=Uk3JtxIrsMoZT5tqc4nJdUOM3XegVzjUyoV3pkjNotE,256
284
303
  phoenix/server/api/types/ExperimentComparison.py,sha256=PXFcB0e8aaJ391yRsuRJr9_dvTZI1RAzF93oC_-HtxU,461
285
- phoenix/server/api/types/ExperimentRun.py,sha256=DMqxXEDFP4evEzCCnJ7JZHdv9z-nrcDxl0uKQOL6_ps,4179
304
+ phoenix/server/api/types/ExperimentRun.py,sha256=_fcwDLuURV0yviOlkjWAgJJwcCPdz-xGR6VX3UKf73s,6541
286
305
  phoenix/server/api/types/ExperimentRunAnnotation.py,sha256=YGw5zIbjRXUK3zH475DnEeg4SDNGOmdxtuUVkzGw1E8,1734
287
306
  phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrBO4aCMS1lHsg,163
288
307
  phoenix/server/api/types/Functionality.py,sha256=zDDl2bANIqjwfooSOHg-VQk6-wQy05mREwjV_-VbSIg,262
289
- phoenix/server/api/types/GenerativeModel.py,sha256=P7eBUMXbeqaLwSSGBKdZy3a5gOLd9I0fuP8o1st6H08,193
308
+ phoenix/server/api/types/GenerativeModel.py,sha256=cAZdZ0dgOwrbJqIInP2Iirk3CYhQWK8dGwLvKfJeJlI,5814
290
309
  phoenix/server/api/types/GenerativeProvider.py,sha256=blXHIzZwe-xlu3-iF2dexvqnb4xxiD2XynS4Vw0iLx4,6750
291
310
  phoenix/server/api/types/Identifier.py,sha256=n3rxpoKNCwEvZu7QY8yr7g3AW2mU-U62BxFXYaiHLKk,306
311
+ phoenix/server/api/types/InferenceModel.py,sha256=VWX7eKehFxXp4i_QW_dJAGzeOvh418VUt15AaT_Cv68,8090
292
312
  phoenix/server/api/types/Inferences.py,sha256=wv88PjcK-KwnzmTdukiAX9EV2KX4GqsKXVAUm1JtnDA,3383
293
313
  phoenix/server/api/types/InferencesRole.py,sha256=mLfeHpyhGUVX1-tWzT9IwC_cD18BZrD3RA4YsHYuSpA,595
294
314
  phoenix/server/api/types/LabelFraction.py,sha256=zsDxdFALrNiGA1eNykeP8o65gbA0HOhRp54MPH_iRAM,93
295
315
  phoenix/server/api/types/MimeType.py,sha256=Zpi6zCalkSFgsvhzvOs-O1gYA04usAi9H__QZUmFlO0,365
296
- phoenix/server/api/types/Model.py,sha256=8UIFqMe1q-2ufBNg-gxHusV8wM1h-KbfLUeJjyVcMvQ,8081
316
+ phoenix/server/api/types/ModelInterface.py,sha256=Qe7H23wDb_Q2-HmeY2t0R5Jsn4aAfYkxCYwmC7V63Nk,236
297
317
  phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
298
318
  phoenix/server/api/types/PerformanceMetric.py,sha256=KFkmJDqP43eDUtARQOUqR7NYcxvL6Vh2uisHWU6H3ko,387
299
- phoenix/server/api/types/Project.py,sha256=FulRsgTWcvZEyiV3lzJ505HMa9Eq7aoQr3OkbPWH2Ws,29864
300
- phoenix/server/api/types/ProjectSession.py,sha256=fyfVtpUpFOTnBx8DFnH3dr7WXAssN0ooAgrQSSi7kEI,4677
319
+ phoenix/server/api/types/PlaygroundModel.py,sha256=IqJFxsAAJMRyaFI9ryI3GQrpFOJ5Llf6kIutEO-tFvM,321
320
+ phoenix/server/api/types/Project.py,sha256=VTz9QXFfnkz0XOm1bGz3FffhCodg_YmjKafiwZ_Qh1I,31580
321
+ phoenix/server/api/types/ProjectSession.py,sha256=h_cUqY7iWb_FfnFYE0EPh9cQ9zOHYDZaxGjmb9KjFyg,6271
301
322
  phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
302
323
  phoenix/server/api/types/Prompt.py,sha256=ccP4eq1e38xbF0afclGWLOuDpBVpNbJ3AOSRClF8yFQ,4955
303
324
  phoenix/server/api/types/PromptLabel.py,sha256=g3IDSPYRZwb0qpMAk93R6J96jgYULUYGOciTnpeh3sI,1321
@@ -310,15 +331,18 @@ phoenix/server/api/types/Retrieval.py,sha256=OhMK2ncjoyp5h1yjKhjlKpoTbQrMHuxmgSF
310
331
  phoenix/server/api/types/ScalarDriftMetricEnum.py,sha256=IUAcRPpgL41WdoIgK6cNk2Te38SspXGyEs-S1fY23_A,232
311
332
  phoenix/server/api/types/Segments.py,sha256=vT2v0efoa5cuBKxLtxTnsUP5YJJCZfTloM71Spu0tMI,2915
312
333
  phoenix/server/api/types/SortDir.py,sha256=OUpXhlCzCxPoXSDkJJygEs9Rw9pMymfaZUG5zPTrw4Y,152
313
- phoenix/server/api/types/Span.py,sha256=ZaDUBOPk4YE9nV0379Yc1NEZKnItWmIdCbJVgXaBgAU,30482
334
+ phoenix/server/api/types/Span.py,sha256=C0gTw9cx-6MKdMPCbrBjyyYRgXBpXB8wrR41lOhFPZE,36253
314
335
  phoenix/server/api/types/SpanAnnotation.py,sha256=uPWu7Z8rmpfKhaaxbged4_o00pPCR3nkn7Gji9vB8jY,1959
336
+ phoenix/server/api/types/SpanCostDetailSummaryEntry.py,sha256=RXAdOC6MFyR9mwaoj8lMMdI3_9r3z6mR2izJvlsj12U,252
337
+ phoenix/server/api/types/SpanCostSummary.py,sha256=wo03FCMcFzB5m4P5kvA5jzi9ACLbht38ozQbDJUh94g,357
315
338
  phoenix/server/api/types/SpanIOValue.py,sha256=c5TWdZZN3v0gHI5xWeY7gjD-sE9ugWlGGAio-gDS-Uo,1653
316
339
  phoenix/server/api/types/SystemApiKey.py,sha256=2ym8EgsTBIvxx1l9xZ-2YMovz58ZwYb_MaHBTJ9NH2E,166
317
340
  phoenix/server/api/types/TimeSeries.py,sha256=nuuZtfHmOhTjeB8_SvZ5PUQexAkTcPScwYeFC5RUlRU,5491
318
341
  phoenix/server/api/types/TokenCountPromptDetails.py,sha256=CWDWLrYoufrR1ePWfbq0-AgAkdjmGnJQt4_wNIt6bOQ,183
319
- phoenix/server/api/types/TokenUsage.py,sha256=g-PjAGVigpchQgkXAuC5sc53fn2YwAgfeXkGmFPi_TE,201
342
+ phoenix/server/api/types/TokenPrice.py,sha256=OyCZgXCKDIihmDalHvkUDvhvl2Vsxx1J2U9AiAsLUWU,256
343
+ phoenix/server/api/types/TokenUsage.py,sha256=aeMPwEDqu8MWT2Jc5sq6Sfb_7kcR_KTzZi6UB9OK7Yg,207
320
344
  phoenix/server/api/types/ToolDefinition.py,sha256=T6UH2vcbuPBDy7jKYOqMth2NdqxMPgDBf11Tpbt5Yb8,187
321
- phoenix/server/api/types/Trace.py,sha256=fx1ozxiFMu-9AUyJ9LyMr6QtMqxzGEkucu7eE_dDZBM,8195
345
+ phoenix/server/api/types/Trace.py,sha256=iaSAicxMHTrnUTYxNfMwFMglVeptqu7nF_AHS6k-QGw,9718
322
346
  phoenix/server/api/types/TraceAnnotation.py,sha256=qUO9DhTIAOKIYqNd5uHqLAsVTsJLSddkXo-gmyjnPBI,1964
323
347
  phoenix/server/api/types/UMAPPoints.py,sha256=49sWnxjcAJKRzqUY71Fa0tOPti5XjIIFT5cSg6oNu_U,1650
324
348
  phoenix/server/api/types/User.py,sha256=iTVUrI8U6-asOhBt1bOZNtoRAaRNC4WHgR1Uv2rHnWQ,1975
@@ -330,8 +354,15 @@ phoenix/server/api/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
330
354
  phoenix/server/api/types/node.py,sha256=BLl_IOFr0zrqUxaAtGLGui5aeM5VNVXFTzGeAKrztr0,822
331
355
  phoenix/server/api/types/pagination.py,sha256=BXm46gXZfrBS4hpiLvVSEdsbb29ctUMVJYjKXlOLxUA,9064
332
356
  phoenix/server/cost_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
- phoenix/server/cost_tracking/cost_lookup.py,sha256=c9COURDSW-LFAeuX1k2PX-kKpy8WZeIiwwjJr_YZOqY,9416
334
- phoenix/server/cost_tracking/model_cost_manifest.json,sha256=tlOYj69-K0ru53ql3UtX-ynRU_J3C_g5BUGZR6aSirM,19270
357
+ phoenix/server/cost_tracking/cost_details_calculator.py,sha256=ywWQO6foRZC0CmbNPGpa3DaPoWzuIp3ke9s4NqHLuUw,8736
358
+ phoenix/server/cost_tracking/cost_model_lookup.py,sha256=ys-jZY3cSE2_-f1glFhYgOd60kQdDL07MnChaxojTLo,6800
359
+ phoenix/server/cost_tracking/helpers.py,sha256=Pk6ECjnYreTxrldtRwxnwFcxIPVsvDq_yAwDA_spkOc,2122
360
+ phoenix/server/cost_tracking/model_cost_manifest.json,sha256=Og32xSX0vjKQur3p-JAfu5kqllGXoWue72azy3d33uY,12943
361
+ phoenix/server/cost_tracking/regex_specificity.py,sha256=9kqWuQ68C-hlwW25hr7BhFlRt5y2Nnpy0Ax3n9UN6Xk,11622
362
+ phoenix/server/cost_tracking/token_cost_calculator.py,sha256=2JEZnvusx2-xbhp8krp9EarjWuyGH2KO4e-ZwJX-K0s,1598
363
+ phoenix/server/daemons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
364
+ phoenix/server/daemons/generative_model_store.py,sha256=CkMG0jFWtxcUNP_7iFTgzHPyl5IgnXUwwJb7584pmkI,1566
365
+ phoenix/server/daemons/span_cost_calculator.py,sha256=0BXMe9sHN8k5RjIQjCBzZdwvFuBHu8zDqAJc8rXbQA0,3199
335
366
  phoenix/server/email/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
367
  phoenix/server/email/sender.py,sha256=kH94CtAQACyu9KgtVBLmJwMNICxY1XVtbfthibAOC-8,4067
337
368
  phoenix/server/email/types.py,sha256=IO2bTtCh-1cve-xiM4MWnunCCVNOQ3Z2cqTqF7vH-do,466
@@ -351,16 +382,16 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
351
382
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
352
383
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
353
384
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
354
- phoenix/server/static/.vite/manifest.json,sha256=Y-z3nmvX-iQaJQgQqKOx0pmLPxCcQKIXlOxEdf93p7U,2165
355
- phoenix/server/static/assets/components-SpUMF1qV.js,sha256=308uVnx0PRUHJivRbpcxWOICksl87Mqg6dOsCskOBJ4,571610
356
- phoenix/server/static/assets/index-DIlhmbjB.js,sha256=SNXaSGqR8bCnJoX09au6MNGKULaeRDWpFHKXxTB1dzI,61125
357
- phoenix/server/static/assets/pages-YX47cEoQ.js,sha256=1QQjMVGrxbdcLuKlDishQ-M4w4-BHeEAH19_mKr9ZUY,1065207
358
- phoenix/server/static/assets/vendor-DCZoBorz.js,sha256=frseZBHZYP76tArtLTfi4U93GacwBT5Q8uIoAJVuB5g,2736000
385
+ phoenix/server/static/.vite/manifest.json,sha256=3pPUzZKfFuBC-95olCn6LhIku5mY5z0o8rNsxQMvhqE,2165
386
+ phoenix/server/static/assets/components-BQWqzM6Z.js,sha256=kpDUgD-qTKVzszAGH4cD7acxFJNJWp0Vj_2Ce0DMfA8,613263
387
+ phoenix/server/static/assets/index-t6f0PRIo.js,sha256=iOXDzwHby0wYqme2rvYu2O5QX58GC8p0XHMAEZQpaBo,61267
388
+ phoenix/server/static/assets/pages-B8Uyb2qa.js,sha256=Yu3cE2aCTu22ZpesiComUgiUW5OvdDCuLQJHs1qSy5c,1126767
389
+ phoenix/server/static/assets/vendor-DqQvHbPa.js,sha256=iojYxZrTZAvg1A6a3dRVtSDg9SJ03oG_c0F9U3Qsjvg,2738792
359
390
  phoenix/server/static/assets/vendor-WIZid84E.css,sha256=spZD2r7XL5GfLO13ln-IuXfnjAref8l6g_n_AvxxOlI,5517
360
- phoenix/server/static/assets/vendor-arizeai-Ckci3irT.js,sha256=mvXNc2HVkfkRYdt7hKi645pZRZsw9y4rb5lB0mtTB9M,181763
361
- phoenix/server/static/assets/vendor-codemirror-BODM513D.js,sha256=KqaMvoGxjvY1zT5I1A3xBW7cm3s_q8UoGdebxO_ZXZI,781264
362
- phoenix/server/static/assets/vendor-recharts-C9O2a-N3.js,sha256=jfbV8EPYh47srUYI8Zw_-SM034D0SHaqKVnzldXgbos,282150
363
- phoenix/server/static/assets/vendor-shiki-Dq54rRC7.js,sha256=TmLQSXawTOMzS2o06MqwGLwhUOfr7VgeFscIE0dLFhk,8980312
391
+ phoenix/server/static/assets/vendor-arizeai-CLX44PFA.js,sha256=CbM509A_yUJj9uB02t8s2SzFa2boT74Usuzt9FpOZM8,181769
392
+ phoenix/server/static/assets/vendor-codemirror-Du3XyJnB.js,sha256=UFyGLTsD58kOr5AJIQqpXZNrF-r_Rk_EaxdvbKCtZLU,781264
393
+ phoenix/server/static/assets/vendor-recharts-B2PJDrnX.js,sha256=kepv82lpyuWOFs_RvIoVlRzExf8EVvkk_yTR1F3vudI,282150
394
+ phoenix/server/static/assets/vendor-shiki-CNbrFjf9.js,sha256=RNePvHL4S7oRtI_kOMiiQGabP3TD2thldyEdHdBoEnA,8980312
364
395
  phoenix/server/static/assets/vendor-three-C5WAXd5r.js,sha256=ELkg06u70N7h8oFmvqdoHyPuUf9VgGEWeT4LKFx4VWo,620975
365
396
  phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
366
397
  phoenix/server/templates/index.html,sha256=TxaZTZKUz7-xQ3XlPO3DAPMj6S1rMEr5v6g1UmgaW70,6761
@@ -401,9 +432,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
401
432
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
402
433
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
403
434
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
404
- arize_phoenix-10.15.0.dist-info/METADATA,sha256=eujKx3278NoP3MqiE1KFzAuRrmivH7_B3pMl6BCJmls,27370
405
- arize_phoenix-10.15.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
406
- arize_phoenix-10.15.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
407
- arize_phoenix-10.15.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
408
- arize_phoenix-10.15.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
409
- arize_phoenix-10.15.0.dist-info/RECORD,,
435
+ arize_phoenix-11.1.0.dist-info/METADATA,sha256=PbOPtzhxu6GgcKdNS7Fmgy1axn61ntI11qoDIbFP9_A,27369
436
+ arize_phoenix-11.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
437
+ arize_phoenix-11.1.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
438
+ arize_phoenix-11.1.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
439
+ arize_phoenix-11.1.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
440
+ arize_phoenix-11.1.0.dist-info/RECORD,,
phoenix/config.py CHANGED
@@ -135,8 +135,11 @@ ENV_PHOENIX_DANGEROUSLY_DISABLE_MIGRATIONS = "PHOENIX_DANGEROUSLY_DISABLE_MIGRAT
135
135
  """
136
136
  Whether or not to disable migrations. Defaults to None / False.
137
137
 
138
- This should only be used by developers working on the Phoenix server that need to be
139
- switching between branches without having to run migrations.
138
+ This should only be used by developers working on the Phoenix server that need
139
+ to be switching between branches without having to run migrations.
140
+
141
+ This can also be useful if a migration fails and you want to put the applicaiton
142
+ in a running state.
140
143
  """
141
144
 
142
145
  # Phoenix server OpenTelemetry instrumentation environment variables
phoenix/datetime_utils.py CHANGED
@@ -28,7 +28,7 @@ def normalize_datetime(
28
28
  """
29
29
  if not isinstance(dt, datetime):
30
30
  return None
31
- if dt.tzinfo is None or dt.tzinfo.utcoffset(dt) is None:
31
+ if not is_timezone_aware(dt):
32
32
  dt = dt.replace(tzinfo=tz if tz else _LOCAL_TIMEZONE)
33
33
  return dt.astimezone(timezone.utc)
34
34
 
@@ -106,3 +106,10 @@ def right_open_time_range(
106
106
  floor_to_minute(min_time) if min_time else None,
107
107
  floor_to_minute(max_time + timedelta(minutes=1)) if max_time else None,
108
108
  )
109
+
110
+
111
+ def is_timezone_aware(dt: datetime) -> bool:
112
+ """
113
+ Returns True if the datetime is timezone-aware, False otherwise.
114
+ """
115
+ return dt.tzinfo is not None and dt.tzinfo.utcoffset(dt) is not None
@@ -8,6 +8,7 @@ from itertools import islice
8
8
  from time import perf_counter
9
9
  from typing import Any, Optional, cast
10
10
 
11
+ from openinference.semconv.trace import SpanAttributes
11
12
  from typing_extensions import TypeAlias
12
13
 
13
14
  import phoenix.trace.v1 as pb
@@ -17,11 +18,19 @@ from phoenix.db.insertion.evaluation import (
17
18
  InsertEvaluationError,
18
19
  insert_evaluation,
19
20
  )
20
- from phoenix.db.insertion.helpers import DataManipulation, DataManipulationEvent
21
+ from phoenix.db.insertion.helpers import (
22
+ DataManipulation,
23
+ DataManipulationEvent,
24
+ should_calculate_span_cost,
25
+ )
21
26
  from phoenix.db.insertion.span import SpanInsertionEvent, insert_span
22
27
  from phoenix.db.insertion.span_annotation import SpanAnnotationQueueInserter
23
28
  from phoenix.db.insertion.trace_annotation import TraceAnnotationQueueInserter
24
29
  from phoenix.db.insertion.types import Insertables, Precursors
30
+ from phoenix.server.daemons.span_cost_calculator import (
31
+ SpanCostCalculator,
32
+ SpanCostCalculatorQueueItem,
33
+ )
25
34
  from phoenix.server.dml_event import DmlEvent, SpanInsertEvent
26
35
  from phoenix.server.types import CanPutItem, DbSessionFactory
27
36
  from phoenix.trace.schemas import Span
@@ -42,6 +51,7 @@ class BulkInserter:
42
51
  db: DbSessionFactory,
43
52
  *,
44
53
  event_queue: CanPutItem[DmlEvent],
54
+ span_cost_calculator: SpanCostCalculator,
45
55
  initial_batch_of_spans: Optional[Iterable[tuple[Span, str]]] = None,
46
56
  initial_batch_of_evaluations: Optional[Iterable[pb.Evaluation]] = None,
47
57
  sleep: float = 0.1,
@@ -78,6 +88,7 @@ class BulkInserter:
78
88
  self._retry_delay_sec = retry_delay_sec
79
89
  self._retry_allowance = retry_allowance
80
90
  self._queue_inserters = _QueueInserters(db, self._retry_delay_sec, self._retry_allowance)
91
+ self._span_cost_calculator = span_cost_calculator
81
92
 
82
93
  async def __aenter__(
83
94
  self,
@@ -175,6 +186,7 @@ class BulkInserter:
175
186
 
176
187
  async def _insert_spans(self, spans: list[tuple[Span, str]]) -> None:
177
188
  project_ids = set()
189
+ span_cost_calculator_queue: list[SpanCostCalculatorQueueItem] = []
178
190
  for i in range(0, len(spans), self._max_ops_per_transaction):
179
191
  try:
180
192
  start = perf_counter()
@@ -198,6 +210,16 @@ class BulkInserter:
198
210
  )
199
211
  if result is not None:
200
212
  project_ids.add(result.project_rowid)
213
+ if should_calculate_span_cost(span.attributes):
214
+ span_cost_calculator_queue.append(
215
+ SpanCostCalculatorQueueItem(
216
+ span_rowid=result.span_rowid,
217
+ trace_rowid=result.trace_rowid,
218
+ attributes=span.attributes,
219
+ span_start_time=span.start_time,
220
+ )
221
+ )
222
+
201
223
  if self._enable_prometheus:
202
224
  from phoenix.server.prometheus import BULK_LOADER_INSERTION_TIME
203
225
 
@@ -209,6 +231,8 @@ class BulkInserter:
209
231
  BULK_LOADER_EXCEPTIONS.inc()
210
232
  logger.exception("Failed to insert spans")
211
233
  self._event_queue.put(SpanInsertEvent(tuple(project_ids)))
234
+ for item in span_cost_calculator_queue:
235
+ self._span_cost_calculator.put_nowait(item)
212
236
 
213
237
  async def _insert_evaluations(self, evaluations: list[pb.Evaluation]) -> None:
214
238
  for i in range(0, len(evaluations), self._max_ops_per_transaction):
@@ -292,3 +316,18 @@ class _QueueInserters:
292
316
  @_enqueue.register(Insertables.DocumentAnnotation)
293
317
  async def _(self, item: Precursors.DocumentAnnotation) -> None:
294
318
  await self._document_annotations.enqueue(item)
319
+
320
+
321
+ LLM_MODEL_NAME = SpanAttributes.LLM_MODEL_NAME
322
+ LLM_PROVIDER = SpanAttributes.LLM_PROVIDER
323
+ LLM_TOKEN_COUNT_COMPLETION = SpanAttributes.LLM_TOKEN_COUNT_COMPLETION
324
+ LLM_TOKEN_COUNT_COMPLETION_DETAILS_AUDIO = SpanAttributes.LLM_TOKEN_COUNT_COMPLETION_DETAILS_AUDIO
325
+ LLM_TOKEN_COUNT_COMPLETION_DETAILS_REASONING = (
326
+ SpanAttributes.LLM_TOKEN_COUNT_COMPLETION_DETAILS_REASONING
327
+ )
328
+ LLM_TOKEN_COUNT_PROMPT = SpanAttributes.LLM_TOKEN_COUNT_PROMPT
329
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_AUDIO = SpanAttributes.LLM_TOKEN_COUNT_PROMPT_DETAILS_AUDIO
330
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_READ = SpanAttributes.LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_READ
331
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_WRITE = (
332
+ SpanAttributes.LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_WRITE
333
+ )