arize-phoenix 10.14.0__py3-none-any.whl → 11.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 (84) hide show
  1. {arize_phoenix-10.14.0.dist-info → arize_phoenix-11.0.0.dist-info}/METADATA +3 -2
  2. {arize_phoenix-10.14.0.dist-info → arize_phoenix-11.0.0.dist-info}/RECORD +82 -50
  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/model_provider.py +1 -0
  12. phoenix/db/types/token_price_customization.py +29 -0
  13. phoenix/server/api/context.py +38 -4
  14. phoenix/server/api/dataloaders/__init__.py +41 -5
  15. phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py +35 -0
  16. phoenix/server/api/dataloaders/span_cost_by_span.py +24 -0
  17. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py +56 -0
  18. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py +57 -0
  19. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py +43 -0
  20. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py +56 -0
  21. phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +27 -0
  22. phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +58 -0
  23. phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +58 -0
  24. phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +55 -0
  25. phoenix/server/api/dataloaders/span_cost_summary_by_project.py +140 -0
  26. phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +56 -0
  27. phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +55 -0
  28. phoenix/server/api/dataloaders/span_costs.py +35 -0
  29. phoenix/server/api/dataloaders/types.py +29 -0
  30. phoenix/server/api/helpers/playground_clients.py +562 -12
  31. phoenix/server/api/helpers/prompts/conversions/aws.py +83 -0
  32. phoenix/server/api/helpers/prompts/models.py +67 -0
  33. phoenix/server/api/input_types/GenerativeModelInput.py +2 -0
  34. phoenix/server/api/input_types/ProjectSessionSort.py +3 -0
  35. phoenix/server/api/input_types/SpanSort.py +17 -0
  36. phoenix/server/api/mutations/__init__.py +2 -0
  37. phoenix/server/api/mutations/chat_mutations.py +17 -0
  38. phoenix/server/api/mutations/model_mutations.py +208 -0
  39. phoenix/server/api/queries.py +82 -41
  40. phoenix/server/api/routers/v1/traces.py +11 -4
  41. phoenix/server/api/subscriptions.py +36 -2
  42. phoenix/server/api/types/CostBreakdown.py +15 -0
  43. phoenix/server/api/types/Experiment.py +59 -1
  44. phoenix/server/api/types/ExperimentRun.py +58 -4
  45. phoenix/server/api/types/GenerativeModel.py +143 -2
  46. phoenix/server/api/types/GenerativeProvider.py +33 -20
  47. phoenix/server/api/types/{Model.py → InferenceModel.py} +1 -1
  48. phoenix/server/api/types/ModelInterface.py +11 -0
  49. phoenix/server/api/types/PlaygroundModel.py +10 -0
  50. phoenix/server/api/types/Project.py +42 -0
  51. phoenix/server/api/types/ProjectSession.py +44 -0
  52. phoenix/server/api/types/Span.py +137 -0
  53. phoenix/server/api/types/SpanCostDetailSummaryEntry.py +10 -0
  54. phoenix/server/api/types/SpanCostSummary.py +10 -0
  55. phoenix/server/api/types/TokenPrice.py +16 -0
  56. phoenix/server/api/types/TokenUsage.py +3 -3
  57. phoenix/server/api/types/Trace.py +41 -0
  58. phoenix/server/app.py +59 -0
  59. phoenix/server/cost_tracking/cost_details_calculator.py +190 -0
  60. phoenix/server/cost_tracking/cost_model_lookup.py +151 -0
  61. phoenix/server/cost_tracking/helpers.py +68 -0
  62. phoenix/server/cost_tracking/model_cost_manifest.json +59 -329
  63. phoenix/server/cost_tracking/regex_specificity.py +397 -0
  64. phoenix/server/cost_tracking/token_cost_calculator.py +57 -0
  65. phoenix/server/daemons/__init__.py +0 -0
  66. phoenix/server/daemons/generative_model_store.py +51 -0
  67. phoenix/server/daemons/span_cost_calculator.py +103 -0
  68. phoenix/server/dml_event_handler.py +1 -0
  69. phoenix/server/static/.vite/manifest.json +36 -36
  70. phoenix/server/static/assets/components-BnK9kodr.js +5055 -0
  71. phoenix/server/static/assets/{index-qiubV_74.js → index-S3YKLmbo.js} +13 -13
  72. phoenix/server/static/assets/{pages-C4V07ozl.js → pages-BW6PBHZb.js} +809 -417
  73. phoenix/server/static/assets/{vendor-Bfsiga8H.js → vendor-DqQvHbPa.js} +147 -147
  74. phoenix/server/static/assets/{vendor-arizeai-CQOWsrzm.js → vendor-arizeai-CLX44PFA.js} +1 -1
  75. phoenix/server/static/assets/{vendor-codemirror-CrcGVhB2.js → vendor-codemirror-Du3XyJnB.js} +1 -1
  76. phoenix/server/static/assets/{vendor-recharts-Yyg3G-Rq.js → vendor-recharts-B2PJDrnX.js} +25 -25
  77. phoenix/server/static/assets/{vendor-shiki-OPjag7Hm.js → vendor-shiki-CNbrFjf9.js} +1 -1
  78. phoenix/version.py +1 -1
  79. phoenix/server/cost_tracking/cost_lookup.py +0 -255
  80. phoenix/server/static/assets/components-CUUWyAMo.js +0 -4509
  81. {arize_phoenix-10.14.0.dist-info → arize_phoenix-11.0.0.dist-info}/WHEEL +0 -0
  82. {arize_phoenix-10.14.0.dist-info → arize_phoenix-11.0.0.dist-info}/entry_points.txt +0 -0
  83. {arize_phoenix-10.14.0.dist-info → arize_phoenix-11.0.0.dist-info}/licenses/IP_NOTICE +0 -0
  84. {arize_phoenix-10.14.0.dist-info → arize_phoenix-11.0.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.14.0
3
+ Version: 11.0.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
@@ -58,6 +58,7 @@ Provides-Extra: container
58
58
  Requires-Dist: aiohttp; extra == 'container'
59
59
  Requires-Dist: anthropic>=0.49.0; extra == 'container'
60
60
  Requires-Dist: azure-identity; extra == 'container'
61
+ Requires-Dist: boto3; extra == 'container'
61
62
  Requires-Dist: fast-hdbscan>=0.2.0; extra == 'container'
62
63
  Requires-Dist: google-generativeai; extra == 'container'
63
64
  Requires-Dist: numba>=0.60.0; extra == 'container'
@@ -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=oWz87euPqefw5-W3qPPzTytqoqWc4GE4W2tD5ua5SR8,24
9
+ phoenix/version.py,sha256=kddY_tek1AxisIg2ZL8YswPu4Sub-3LvRxixXkX8sSQ,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
@@ -53,7 +54,8 @@ phoenix/db/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
53
54
  phoenix/db/types/annotation_configs.py,sha256=keiQ9mzLZWE8Eqsu1xFxQBXvBiym0s-yPzoL8qIR4PY,2904
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
- phoenix/db/types/model_provider.py,sha256=vrG0yIQqy-SwvRJ1aGJqpCjPZ29vRAi6550CnvSyj2E,221
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,13 +175,14 @@ 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=laFDXVnj-n5-nze5OeJSLT5nwdz2IWFTVccKNcLqK7U,47932
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
165
- phoenix/server/api/helpers/prompts/models.py,sha256=NXdPfs2ktl-btP33qVUXVbzv6GEgadFLurO6QLUw97w,21208
182
+ phoenix/server/api/helpers/prompts/models.py,sha256=nlPtLZaGcHfWNRR0iNRaBUv8eoKOnoGqRm6zadrTt0I,23547
166
183
  phoenix/server/api/helpers/prompts/conversions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
184
  phoenix/server/api/helpers/prompts/conversions/anthropic.py,sha256=ZT--UqBwoGf7QMusajB6aeB7zyWGttaZigb113kgiY8,3571
185
+ phoenix/server/api/helpers/prompts/conversions/aws.py,sha256=6vaT8K13r0bMXB9XHA8qY1MCjVsmR9TO0VIwyBMjQoY,2941
168
186
  phoenix/server/api/helpers/prompts/conversions/openai.py,sha256=a43WAftFn_me6ePHDufqvlg-4Z2C31owUSsqYC0YUP8,2589
169
187
  phoenix/server/api/input_types/AddExamplesToDatasetInput.py,sha256=mIQz0S_z8YdrktKIY6RCvtNJ2yZF9pYvTGgasUsI-54,430
170
188
  phoenix/server/api/input_types/AddSpansToDatasetInput.py,sha256=-StSstyMAVrba3tG1U30b-srkKCtu_svflQuSM19iJA,362
@@ -188,7 +206,7 @@ phoenix/server/api/input_types/DeleteExperimentsInput.py,sha256=4d9N0vSLYbuysAam
188
206
  phoenix/server/api/input_types/DimensionFilter.py,sha256=eBYcn7ECSJQlEePvbStqkHBRicbIL4vEAzFJwX7bacQ,3137
189
207
  phoenix/server/api/input_types/DimensionInput.py,sha256=Vfx5FmiMKey4-EHDQsQRPzSAMRJMN5oVMLDUl4NKAa8,164
190
208
  phoenix/server/api/input_types/GenerativeCredentialInput.py,sha256=sEM9UtgDMMuhImLwGXctD8BWDs2V3hNQ1mosoklRZvc,219
191
- phoenix/server/api/input_types/GenerativeModelInput.py,sha256=n6OCkX44I1AIovMAHCxy8SvqPKDb_BYDPA-fn_JnckQ,634
209
+ phoenix/server/api/input_types/GenerativeModelInput.py,sha256=ceJ65f7Mf1JmOuH9TV3KJYbNnQ-_Z85Dl4_vPMB1K_o,713
192
210
  phoenix/server/api/input_types/Granularity.py,sha256=dbBlD_GsIBa8_xrx4JlLuR59bQ0NRB5H-cv1zvcb-cw,2299
193
211
  phoenix/server/api/input_types/InvocationParameters.py,sha256=62xL0iIKvuQherkuJaJ6Lha4TTEoYLpvH-pEP9awK6k,5260
194
212
  phoenix/server/api/input_types/PatchAnnotationInput.py,sha256=2wxC-ibQU59I28amTxLMYMo9SSvJwAIor0w0YvS0e48,676
@@ -196,24 +214,25 @@ phoenix/server/api/input_types/PatchDatasetExamplesInput.py,sha256=_uMqkAInhLDvz
196
214
  phoenix/server/api/input_types/PatchDatasetInput.py,sha256=OURtTVY8Z_oFEDtKwT1LCMaOK5D4QYo5TVQ6mDrex-g,328
197
215
  phoenix/server/api/input_types/PerformanceMetricInput.py,sha256=4SG5AymxV2dMeCrK7eREThdt9SuC43irMYZtY-Oq-bg,658
198
216
  phoenix/server/api/input_types/ProjectFilter.py,sha256=w3IimMXcNmMkrQ6h89-Yx6uh21r2wj1jci1nPZEDEhQ,260
199
- phoenix/server/api/input_types/ProjectSessionSort.py,sha256=qFgLmKYeyFpx7An9ZNdDNkkt7tghrG6XXruQbFLiFt8,919
217
+ phoenix/server/api/input_types/ProjectSessionSort.py,sha256=KZzEtOMpcxtP11brL4fXUAY_RLAK-Ul4luAWwVKnQgY,1043
200
218
  phoenix/server/api/input_types/ProjectSort.py,sha256=ZTT-InFB6NvInDwLuivyHe9PxR5nsmQ8aXCHAPjZm9k,329
201
219
  phoenix/server/api/input_types/PromptTemplateOptions.py,sha256=8ZJdH1F9fExcdH9dF8SJ29WycCvtEpK-Z6dZwFO7KgQ,232
202
220
  phoenix/server/api/input_types/PromptVersionInput.py,sha256=n6zBeSkK8ZFRHTjtVx4BK--azZIxXeYETa6Cufcet2I,3743
203
221
  phoenix/server/api/input_types/SpanAnnotationFilter.py,sha256=-djfIXYCxV6sV3GPOZQUV0SPfiWDhRlTORfeQ7tCBgQ,2671
204
222
  phoenix/server/api/input_types/SpanAnnotationSort.py,sha256=T5pAGzmh4MiJp9JMAzNDByFVTczfw02FH4WFWwFezyI,361
205
- phoenix/server/api/input_types/SpanSort.py,sha256=oqvcWHYgp_nXvXYNi5l8Bhe7PHT3LbAhUn6ZXDSzdXo,5959
223
+ phoenix/server/api/input_types/SpanSort.py,sha256=hpJTgk3FYb4T5u2cuvce7XvVKTfk3qiutdH-WLm-_2Q,6567
206
224
  phoenix/server/api/input_types/TimeRange.py,sha256=pwhC2jx6dFIgT0qFfnO68qiJp9-m7Je5QkNscNsuVxA,700
207
225
  phoenix/server/api/input_types/TraceAnnotationSort.py,sha256=BzwiUnMh2VsgQYnhDlbJ6ljHugqIS4YDUlYzvq_tl3o,365
208
226
  phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1Ip_H6xDENdQqMMx-kKE,129
209
227
  phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
- phoenix/server/api/mutations/__init__.py,sha256=fGFokUtX4J1q9yYzRtPOwRyfJNyL_8z60gaWX9IPvtM,1872
228
+ phoenix/server/api/mutations/__init__.py,sha256=DlAwXDKQzOpY4vFiDUR9Cu2kmncFr4m-RPRyQABBPIE,1972
211
229
  phoenix/server/api/mutations/annotation_config_mutations.py,sha256=i7NsQhYICcQ-I-tnFjGtVAYc8WVmMBacmRaqHWJ25t4,15433
212
230
  phoenix/server/api/mutations/api_key_mutations.py,sha256=nfnRjALCaQMi_jIbEPW4G3Dn3tPnmZVU11tpBbBijGA,6242
213
- phoenix/server/api/mutations/chat_mutations.py,sha256=pwrScthRbMcgXsOucQvSEx6PPiMLw8pwtx08e37SXsg,23715
231
+ phoenix/server/api/mutations/chat_mutations.py,sha256=97g5OEpFklS2hI73ACCzpRBq5s_h9-nxzbUr82XmU-8,24373
214
232
  phoenix/server/api/mutations/dataset_mutations.py,sha256=KRlF-Ag3twqaBpLR_6WYxf57DffaGuFBm-soaBPStbI,27787
215
233
  phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
216
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
217
236
  phoenix/server/api/mutations/project_mutations.py,sha256=mhXw1ChBtdHCF3GOls66hHJmr5ohkICugp82o09e-sc,2926
218
237
  phoenix/server/api/mutations/project_trace_retention_policy_mutations.py,sha256=AqBe8TBxlXdIL56Afs4FIBqkI0bEgf-v9bHlbc-O6VI,9839
219
238
  phoenix/server/api/mutations/prompt_label_mutations.py,sha256=uCiVcULtmgaNaav4M08ipPYM68sZv1MVLrCgvW-Xyn8,7317
@@ -243,7 +262,7 @@ phoenix/server/api/routers/v1/models.py,sha256=p3gJN-9SWiUYTUTft4bZMsZVCBNTb4nN1
243
262
  phoenix/server/api/routers/v1/projects.py,sha256=LFWxHYPRZy-1EvroNylL635vU1UuDbcuRo1oD26yBnw,12551
244
263
  phoenix/server/api/routers/v1/prompts.py,sha256=aBOUBwLDzZDIzJQkxJcR8ZKnakNJOLMwzsLKINSs1mA,26545
245
264
  phoenix/server/api/routers/v1/spans.py,sha256=HhZtXsNTdOmMXWtMkz3VUb3aqpGsVAU5XOYi2KfvGMc,44106
246
- phoenix/server/api/routers/v1/traces.py,sha256=DfzeszQvtlrVxvurJLaWJJAhkCZ4BodLwpFuBYPwN5Q,8206
265
+ phoenix/server/api/routers/v1/traces.py,sha256=6zlk7NZs2TSL2Yoq2Gni6oRO5T5p6bKV-nUz5Q6M3F8,8411
247
266
  phoenix/server/api/routers/v1/users.py,sha256=ZcW3if0L8-lUusTzET7fhlhvnmiCICDrGimzB7i3irc,11947
248
267
  phoenix/server/api/routers/v1/utils.py,sha256=oXIOGPzPTkE0ZWUTRCoRIQQ7wTzoSwtWFaUSjlGBqts,4960
249
268
  phoenix/server/api/types/Annotation.py,sha256=gsl8CwjIbDUbZRj4d9USwZ_w_Tkz4i7zuZh9ftV80jA,1132
@@ -256,6 +275,7 @@ phoenix/server/api/types/AuthMethod.py,sha256=M25usT6FCNKi-QFMdtMqRjJVGfq1ACnVoS
256
275
  phoenix/server/api/types/ChatCompletionMessageRole.py,sha256=kmQOilOlVntlmqbaHkqXZuimfljfYaHc3kbo53uK8_0,227
257
276
  phoenix/server/api/types/ChatCompletionSubscriptionPayload.py,sha256=G0YsirJzDMFDqEK7I_FCkPmIugAof-8D9fNfFlHdhjY,1031
258
277
  phoenix/server/api/types/Cluster.py,sha256=duX0pSC7P3YT1IztduuJtPsRj1x6oOOLfmWf2Y-FdEk,5699
278
+ phoenix/server/api/types/CostBreakdown.py,sha256=YeLfvHSK4Ik-ApEmBqtLR1ZjGGZcazFXdjXVudpP45A,328
259
279
  phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
260
280
  phoenix/server/api/types/CronExpression.py,sha256=R7oxuSSX_eTUHQWaoaSueQqWDmkkHr5dBKRN6q-6ROk,331
261
281
  phoenix/server/api/types/DataQualityMetric.py,sha256=Aieg3bHeBFaAf4mqeRcH1zT04sXAtQD8ATSHJt7FaBQ,1538
@@ -278,25 +298,27 @@ phoenix/server/api/types/EvaluationSummary.py,sha256=vILYejnfPvMwWEXOwhQZsANvYe3
278
298
  phoenix/server/api/types/Event.py,sha256=iYt_Jx1Roioo0vZ0iPeJTHcTu6NSm4ilVMJ-IMUHAKk,3970
279
299
  phoenix/server/api/types/EventMetadata.py,sha256=-J0tYF9eZTHwCjwxQHY7Gckr2_MNW5OoWT1mydweZNM,635
280
300
  phoenix/server/api/types/ExampleRevisionInterface.py,sha256=gV3Gt9-3Oi5wjaVtepC6nOt3FzTzZFD1KebNnqiw56E,294
281
- phoenix/server/api/types/Experiment.py,sha256=r_D7lDJ9nEthuyZdZ7HafxsODlcLNcXtCNaL70HRpjc,5349
301
+ phoenix/server/api/types/Experiment.py,sha256=8Hd-8-4Rcym95sPHIBLyTfMuRdyl50YxlKO_fMvdNAA,7830
282
302
  phoenix/server/api/types/ExperimentAnnotationSummary.py,sha256=Uk3JtxIrsMoZT5tqc4nJdUOM3XegVzjUyoV3pkjNotE,256
283
303
  phoenix/server/api/types/ExperimentComparison.py,sha256=PXFcB0e8aaJ391yRsuRJr9_dvTZI1RAzF93oC_-HtxU,461
284
- phoenix/server/api/types/ExperimentRun.py,sha256=DMqxXEDFP4evEzCCnJ7JZHdv9z-nrcDxl0uKQOL6_ps,4179
304
+ phoenix/server/api/types/ExperimentRun.py,sha256=_fcwDLuURV0yviOlkjWAgJJwcCPdz-xGR6VX3UKf73s,6541
285
305
  phoenix/server/api/types/ExperimentRunAnnotation.py,sha256=YGw5zIbjRXUK3zH475DnEeg4SDNGOmdxtuUVkzGw1E8,1734
286
306
  phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrBO4aCMS1lHsg,163
287
307
  phoenix/server/api/types/Functionality.py,sha256=zDDl2bANIqjwfooSOHg-VQk6-wQy05mREwjV_-VbSIg,262
288
- phoenix/server/api/types/GenerativeModel.py,sha256=P7eBUMXbeqaLwSSGBKdZy3a5gOLd9I0fuP8o1st6H08,193
289
- phoenix/server/api/types/GenerativeProvider.py,sha256=rWMJYJfm8wAIl6pxP3ARKLHf2zaAhJ7_yv0ulXv7Wn4,6087
308
+ phoenix/server/api/types/GenerativeModel.py,sha256=cAZdZ0dgOwrbJqIInP2Iirk3CYhQWK8dGwLvKfJeJlI,5814
309
+ phoenix/server/api/types/GenerativeProvider.py,sha256=blXHIzZwe-xlu3-iF2dexvqnb4xxiD2XynS4Vw0iLx4,6750
290
310
  phoenix/server/api/types/Identifier.py,sha256=n3rxpoKNCwEvZu7QY8yr7g3AW2mU-U62BxFXYaiHLKk,306
311
+ phoenix/server/api/types/InferenceModel.py,sha256=VWX7eKehFxXp4i_QW_dJAGzeOvh418VUt15AaT_Cv68,8090
291
312
  phoenix/server/api/types/Inferences.py,sha256=wv88PjcK-KwnzmTdukiAX9EV2KX4GqsKXVAUm1JtnDA,3383
292
313
  phoenix/server/api/types/InferencesRole.py,sha256=mLfeHpyhGUVX1-tWzT9IwC_cD18BZrD3RA4YsHYuSpA,595
293
314
  phoenix/server/api/types/LabelFraction.py,sha256=zsDxdFALrNiGA1eNykeP8o65gbA0HOhRp54MPH_iRAM,93
294
315
  phoenix/server/api/types/MimeType.py,sha256=Zpi6zCalkSFgsvhzvOs-O1gYA04usAi9H__QZUmFlO0,365
295
- phoenix/server/api/types/Model.py,sha256=8UIFqMe1q-2ufBNg-gxHusV8wM1h-KbfLUeJjyVcMvQ,8081
316
+ phoenix/server/api/types/ModelInterface.py,sha256=Qe7H23wDb_Q2-HmeY2t0R5Jsn4aAfYkxCYwmC7V63Nk,236
296
317
  phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
297
318
  phoenix/server/api/types/PerformanceMetric.py,sha256=KFkmJDqP43eDUtARQOUqR7NYcxvL6Vh2uisHWU6H3ko,387
298
- phoenix/server/api/types/Project.py,sha256=FulRsgTWcvZEyiV3lzJ505HMa9Eq7aoQr3OkbPWH2Ws,29864
299
- 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
300
322
  phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
301
323
  phoenix/server/api/types/Prompt.py,sha256=ccP4eq1e38xbF0afclGWLOuDpBVpNbJ3AOSRClF8yFQ,4955
302
324
  phoenix/server/api/types/PromptLabel.py,sha256=g3IDSPYRZwb0qpMAk93R6J96jgYULUYGOciTnpeh3sI,1321
@@ -309,15 +331,18 @@ phoenix/server/api/types/Retrieval.py,sha256=OhMK2ncjoyp5h1yjKhjlKpoTbQrMHuxmgSF
309
331
  phoenix/server/api/types/ScalarDriftMetricEnum.py,sha256=IUAcRPpgL41WdoIgK6cNk2Te38SspXGyEs-S1fY23_A,232
310
332
  phoenix/server/api/types/Segments.py,sha256=vT2v0efoa5cuBKxLtxTnsUP5YJJCZfTloM71Spu0tMI,2915
311
333
  phoenix/server/api/types/SortDir.py,sha256=OUpXhlCzCxPoXSDkJJygEs9Rw9pMymfaZUG5zPTrw4Y,152
312
- phoenix/server/api/types/Span.py,sha256=ZaDUBOPk4YE9nV0379Yc1NEZKnItWmIdCbJVgXaBgAU,30482
334
+ phoenix/server/api/types/Span.py,sha256=C0gTw9cx-6MKdMPCbrBjyyYRgXBpXB8wrR41lOhFPZE,36253
313
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
314
338
  phoenix/server/api/types/SpanIOValue.py,sha256=c5TWdZZN3v0gHI5xWeY7gjD-sE9ugWlGGAio-gDS-Uo,1653
315
339
  phoenix/server/api/types/SystemApiKey.py,sha256=2ym8EgsTBIvxx1l9xZ-2YMovz58ZwYb_MaHBTJ9NH2E,166
316
340
  phoenix/server/api/types/TimeSeries.py,sha256=nuuZtfHmOhTjeB8_SvZ5PUQexAkTcPScwYeFC5RUlRU,5491
317
341
  phoenix/server/api/types/TokenCountPromptDetails.py,sha256=CWDWLrYoufrR1ePWfbq0-AgAkdjmGnJQt4_wNIt6bOQ,183
318
- 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
319
344
  phoenix/server/api/types/ToolDefinition.py,sha256=T6UH2vcbuPBDy7jKYOqMth2NdqxMPgDBf11Tpbt5Yb8,187
320
- phoenix/server/api/types/Trace.py,sha256=fx1ozxiFMu-9AUyJ9LyMr6QtMqxzGEkucu7eE_dDZBM,8195
345
+ phoenix/server/api/types/Trace.py,sha256=iaSAicxMHTrnUTYxNfMwFMglVeptqu7nF_AHS6k-QGw,9718
321
346
  phoenix/server/api/types/TraceAnnotation.py,sha256=qUO9DhTIAOKIYqNd5uHqLAsVTsJLSddkXo-gmyjnPBI,1964
322
347
  phoenix/server/api/types/UMAPPoints.py,sha256=49sWnxjcAJKRzqUY71Fa0tOPti5XjIIFT5cSg6oNu_U,1650
323
348
  phoenix/server/api/types/User.py,sha256=iTVUrI8U6-asOhBt1bOZNtoRAaRNC4WHgR1Uv2rHnWQ,1975
@@ -329,8 +354,15 @@ phoenix/server/api/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
329
354
  phoenix/server/api/types/node.py,sha256=BLl_IOFr0zrqUxaAtGLGui5aeM5VNVXFTzGeAKrztr0,822
330
355
  phoenix/server/api/types/pagination.py,sha256=BXm46gXZfrBS4hpiLvVSEdsbb29ctUMVJYjKXlOLxUA,9064
331
356
  phoenix/server/cost_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
- phoenix/server/cost_tracking/cost_lookup.py,sha256=c9COURDSW-LFAeuX1k2PX-kKpy8WZeIiwwjJr_YZOqY,9416
333
- 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
334
366
  phoenix/server/email/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
367
  phoenix/server/email/sender.py,sha256=kH94CtAQACyu9KgtVBLmJwMNICxY1XVtbfthibAOC-8,4067
336
368
  phoenix/server/email/types.py,sha256=IO2bTtCh-1cve-xiM4MWnunCCVNOQ3Z2cqTqF7vH-do,466
@@ -350,16 +382,16 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
350
382
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
351
383
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
352
384
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
353
- phoenix/server/static/.vite/manifest.json,sha256=R45z3iK1XONjFUwE5Lf0nFXPMqq3W8U1_X5Owq78Dcc,2165
354
- phoenix/server/static/assets/components-CUUWyAMo.js,sha256=eSjXl6g0c9eMrF8q7HX6y5X9hN1T6s49jnLt8Rv4eSc,566773
355
- phoenix/server/static/assets/index-qiubV_74.js,sha256=l7k1xzIMLQXIeHFrZSFkxRUFtgOvi1_nGcIZ0LbGJv8,61125
356
- phoenix/server/static/assets/pages-C4V07ozl.js,sha256=TPhwjSApNs2bY9sN3pjNv51Ff7x_RV7X-XmMWhL515Y,1060729
357
- phoenix/server/static/assets/vendor-Bfsiga8H.js,sha256=W5n2uoDFb0RygwdzutQ_0Zr_Y-gmRhXGbTsngYNl3jw,2735976
385
+ phoenix/server/static/.vite/manifest.json,sha256=l4wc7A9vdO-H8cPus3SF82awZ0ob7RPygGMIWu4AILk,2165
386
+ phoenix/server/static/assets/components-BnK9kodr.js,sha256=a3byKs3odAzG9_Xns475rBPVf0EATtvr9pXMNIdbqDc,613263
387
+ phoenix/server/static/assets/index-S3YKLmbo.js,sha256=iSayAaDtFAmdbFYg1N07JcDI_TS4cq2cLXdNq0AWoyw,61267
388
+ phoenix/server/static/assets/pages-BW6PBHZb.js,sha256=nZ65-hW6weeZwCyfBUTOC94d-MjtrUIizTu-b5oHgWg,1125993
389
+ phoenix/server/static/assets/vendor-DqQvHbPa.js,sha256=iojYxZrTZAvg1A6a3dRVtSDg9SJ03oG_c0F9U3Qsjvg,2738792
358
390
  phoenix/server/static/assets/vendor-WIZid84E.css,sha256=spZD2r7XL5GfLO13ln-IuXfnjAref8l6g_n_AvxxOlI,5517
359
- phoenix/server/static/assets/vendor-arizeai-CQOWsrzm.js,sha256=K1fNIw3F4RlZtoliQ_AIs6nkwxgDA4qin9tr5ymdVTg,181763
360
- phoenix/server/static/assets/vendor-codemirror-CrcGVhB2.js,sha256=kE6QttmZqtv6uYnSClYARKG5lSzojHiwDOG3vlY1UmE,781264
361
- phoenix/server/static/assets/vendor-recharts-Yyg3G-Rq.js,sha256=a6uFUiVKVzQDYz4ysUvGoCxSwkzBakFy6eWvOv0Oc7M,282150
362
- phoenix/server/static/assets/vendor-shiki-OPjag7Hm.js,sha256=xNlX8VcIu-AW1BkHHWNQgcF5ez92Urr1K7lpWxQvunc,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
363
395
  phoenix/server/static/assets/vendor-three-C5WAXd5r.js,sha256=ELkg06u70N7h8oFmvqdoHyPuUf9VgGEWeT4LKFx4VWo,620975
364
396
  phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
365
397
  phoenix/server/templates/index.html,sha256=TxaZTZKUz7-xQ3XlPO3DAPMj6S1rMEr5v6g1UmgaW70,6761
@@ -400,9 +432,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
400
432
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
401
433
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
402
434
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
403
- arize_phoenix-10.14.0.dist-info/METADATA,sha256=QtJf6vQMIYEsp6SA3cftpHaq0fvKyYCUXo_GN2GmYA8,27327
404
- arize_phoenix-10.14.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
405
- arize_phoenix-10.14.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
406
- arize_phoenix-10.14.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
407
- arize_phoenix-10.14.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
408
- arize_phoenix-10.14.0.dist-info/RECORD,,
435
+ arize_phoenix-11.0.0.dist-info/METADATA,sha256=ZAvjVm6nrwi7dzP49Qa_fpvAk0QCmRc3m801Tv4WLJM,27369
436
+ arize_phoenix-11.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
437
+ arize_phoenix-11.0.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
438
+ arize_phoenix-11.0.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
439
+ arize_phoenix-11.0.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
440
+ arize_phoenix-11.0.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
+ )