arize-phoenix 11.13.1__py3-none-any.whl → 11.14.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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 11.13.1
3
+ Version: 11.14.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
@@ -6,7 +6,7 @@ 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=HKoqTS6ke2SNO84dHMOfk_eIZIOXWRjiBWgJ6914sZM,24
9
+ phoenix/version.py,sha256=gGg2eO2k7EvDDGm04_TDhi2iMqo5QC7vEO36A1qcspc,24
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
@@ -257,7 +257,7 @@ phoenix/server/api/routers/utils.py,sha256=M41BoH-fl37izhRuN2aX7lWm7jOC20A_3uClv
257
257
  phoenix/server/api/routers/v1/__init__.py,sha256=ngLMPjC7lgZxgKy_Is33KxTRnMzSqy25qTTChCVx_Mo,2696
258
258
  phoenix/server/api/routers/v1/annotation_configs.py,sha256=xp5lJmKYlRsINCUrRD9-lTAElw2v4hdFndS5BWrxICA,16048
259
259
  phoenix/server/api/routers/v1/annotations.py,sha256=fVl2qeh_ZbWXGvFBTZgeL7aGkkINIScdjuyxnOoSzNM,6817
260
- phoenix/server/api/routers/v1/datasets.py,sha256=CnmO2fe-hNPPpLx6L1jzeLdTNrpabkKuepIihIL6u_s,37734
260
+ phoenix/server/api/routers/v1/datasets.py,sha256=WntQxxOYbuWR4c3ikm5Hq7q1JYGgHRplSGDvjsgJnqc,38343
261
261
  phoenix/server/api/routers/v1/evaluations.py,sha256=ni_OJcroE93ZmKoU8I8LYqEgCngG6TyHXpFlcYzoabQ,12937
262
262
  phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=_xnVqFCwZoOUPravdPixZLSQiU1H3sB5EzMknB7E1CI,4837
263
263
  phoenix/server/api/routers/v1/experiment_runs.py,sha256=LZeCQWQIEOZ9jK5Gp_C4JbiYY6AmnnWe85cVcvdkCLE,7107
@@ -321,7 +321,7 @@ phoenix/server/api/types/ModelInterface.py,sha256=Qe7H23wDb_Q2-HmeY2t0R5Jsn4aAfY
321
321
  phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
322
322
  phoenix/server/api/types/PerformanceMetric.py,sha256=KFkmJDqP43eDUtARQOUqR7NYcxvL6Vh2uisHWU6H3ko,387
323
323
  phoenix/server/api/types/PlaygroundModel.py,sha256=IqJFxsAAJMRyaFI9ryI3GQrpFOJ5Llf6kIutEO-tFvM,321
324
- phoenix/server/api/types/Project.py,sha256=wL4jihXtyWjxAtSyRXBpz0DTH-vWZZBMhQFzBBFkl2A,69628
324
+ phoenix/server/api/types/Project.py,sha256=u_Rlk61xrv5ZoJdOl5ghG1Wo7TK1eqydDZ7GeNPDgLM,69630
325
325
  phoenix/server/api/types/ProjectSession.py,sha256=uwqTsDTfSGz13AvP-cwS_mJR5JZ1lHqu10ungbl7g5s,6245
326
326
  phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
327
327
  phoenix/server/api/types/Prompt.py,sha256=ccP4eq1e38xbF0afclGWLOuDpBVpNbJ3AOSRClF8yFQ,4955
@@ -362,7 +362,7 @@ phoenix/server/cost_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
362
362
  phoenix/server/cost_tracking/cost_details_calculator.py,sha256=Tt0YcuLhgPuXKWJemWVmYQfG0xQUvH4VziIj6KcDnoA,8945
363
363
  phoenix/server/cost_tracking/cost_model_lookup.py,sha256=jhtVdnQBzrTUHeOGPWgOebk-Io5hpJ1vAgWOu8ojeJ4,6801
364
364
  phoenix/server/cost_tracking/helpers.py,sha256=Pk6ECjnYreTxrldtRwxnwFcxIPVsvDq_yAwDA_spkOc,2122
365
- phoenix/server/cost_tracking/model_cost_manifest.json,sha256=aIprOWjHWUz0nrkDHII5dDybGi5prD-_xa3IGC-e838,55889
365
+ phoenix/server/cost_tracking/model_cost_manifest.json,sha256=XKOgaRE9bq109MnopfyC6jFY7F4ZZbLFPRB2juLqfBU,57556
366
366
  phoenix/server/cost_tracking/regex_specificity.py,sha256=9kqWuQ68C-hlwW25hr7BhFlRt5y2Nnpy0Ax3n9UN6Xk,11622
367
367
  phoenix/server/cost_tracking/token_cost_calculator.py,sha256=2JEZnvusx2-xbhp8krp9EarjWuyGH2KO4e-ZwJX-K0s,1598
368
368
  phoenix/server/daemons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -389,10 +389,10 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
389
389
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
390
390
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
391
391
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
392
- phoenix/server/static/.vite/manifest.json,sha256=_zYHTAVWB2pHkq7IISqC17imwWa1JY6Rz92_YGt4Gno,2165
393
- phoenix/server/static/assets/components-Bns22evR.js,sha256=TFmBOcdaICZKOR5_EIxpgsAYEKYEROpjuP89N8_wOgY,642457
394
- phoenix/server/static/assets/index-so7zaroU.js,sha256=t_GVlQTfwv068ho8HeUw1zoXewHAwiWiA7r4Ib0swiY,62951
395
- phoenix/server/static/assets/pages-BCzKlOjS.js,sha256=dFl-n5FE6GFDDIahmle7Zci7hkPW5pzQt3PyVz18Du4,1203598
392
+ phoenix/server/static/.vite/manifest.json,sha256=kdJluW5SaIjnZ4iseFuA4LCG0bVknsw1pSXJT2h3XLo,2165
393
+ phoenix/server/static/assets/components-CK8hwrPx.js,sha256=g1vGnQRiqgG1yDDRMSbiUES-P4kkwsUbl4BPl9EH3Ek,650224
394
+ phoenix/server/static/assets/index-ByWTGseQ.js,sha256=S6_w9RczLWlZc2MxJ5_G_Z7O464nyUIQcns2SXhtAHU,63020
395
+ phoenix/server/static/assets/pages-D8Hgmz1V.js,sha256=zVZMTQw6vFjJPf9FjvfXpYwosimlWXCGtMnwxNBbMKs,1208677
396
396
  phoenix/server/static/assets/vendor-CqDb5u4o.css,sha256=zIyFiNJKxMaQk8AvtLgt1rR01oO10d1MFndSDKH9Clw,5517
397
397
  phoenix/server/static/assets/vendor-_6rG8OMg.js,sha256=stdw5w5Q5kJ0EkGpzu_f_IYaEEwKHkn3eNDZSxBRQUE,2682340
398
398
  phoenix/server/static/assets/vendor-arizeai-BznCmJFh.js,sha256=qFSHnyPDSh4mml_O0oiMaCmZv2e9E3VQXPxzySPABWA,151750
@@ -439,9 +439,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
439
439
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
440
440
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
441
441
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
442
- arize_phoenix-11.13.1.dist-info/METADATA,sha256=jXVdb_HnB93_ZuK-C4Y4c5XNhNsZEu-KYaL53WUalrc,30851
443
- arize_phoenix-11.13.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
444
- arize_phoenix-11.13.1.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
445
- arize_phoenix-11.13.1.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
446
- arize_phoenix-11.13.1.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
447
- arize_phoenix-11.13.1.dist-info/RECORD,,
442
+ arize_phoenix-11.14.0.dist-info/METADATA,sha256=fRHnS-i2U-gc5C6W0G3mM_DFJ-NuIjIAuSvrB714TRk,30851
443
+ arize_phoenix-11.14.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
444
+ arize_phoenix-11.14.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
445
+ arize_phoenix-11.14.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
446
+ arize_phoenix-11.14.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
447
+ arize_phoenix-11.14.0.dist-info/RECORD,,
@@ -17,7 +17,7 @@ import pandas as pd
17
17
  import pyarrow as pa
18
18
  from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, Path, Query
19
19
  from fastapi.responses import PlainTextResponse, StreamingResponse
20
- from sqlalchemy import and_, delete, func, select
20
+ from sqlalchemy import and_, case, delete, func, select
21
21
  from sqlalchemy.ext.asyncio import AsyncSession
22
22
  from starlette.concurrency import run_in_threadpool
23
23
  from starlette.datastructures import FormData, UploadFile
@@ -79,6 +79,7 @@ class Dataset(V1RoutesBaseModel):
79
79
  metadata: dict[str, Any]
80
80
  created_at: datetime
81
81
  updated_at: datetime
82
+ example_count: int
82
83
 
83
84
 
84
85
  class ListDatasetsResponseBody(PaginatedResponseBody[Dataset]):
@@ -103,7 +104,18 @@ async def list_datasets(
103
104
  ),
104
105
  ) -> ListDatasetsResponseBody:
105
106
  async with request.app.state.db() as session:
106
- query = select(models.Dataset).order_by(models.Dataset.id.desc())
107
+ value = case(
108
+ (models.DatasetExampleRevision.revision_kind == "CREATE", 1),
109
+ (models.DatasetExampleRevision.revision_kind == "DELETE", -1),
110
+ )
111
+ query = (
112
+ select(models.Dataset)
113
+ .add_columns(func.coalesce(func.sum(value), 0).label("example_count"))
114
+ .outerjoin_from(models.Dataset, models.DatasetExample)
115
+ .outerjoin_from(models.DatasetExample, models.DatasetExampleRevision)
116
+ .group_by(models.Dataset.id)
117
+ .order_by(models.Dataset.id.desc())
118
+ )
107
119
 
108
120
  if cursor:
109
121
  try:
@@ -119,18 +131,19 @@ async def list_datasets(
119
131
 
120
132
  query = query.limit(limit + 1)
121
133
  result = await session.execute(query)
122
- datasets = result.scalars().all()
123
-
134
+ datasets = result.all()
124
135
  if not datasets:
125
136
  return ListDatasetsResponseBody(next_cursor=None, data=[])
126
137
 
127
138
  next_cursor = None
128
139
  if len(datasets) == limit + 1:
129
- next_cursor = str(GlobalID(DATASET_NODE_NAME, str(datasets[-1].id)))
140
+ dataset = datasets[-1][0]
141
+ next_cursor = str(GlobalID(DATASET_NODE_NAME, str(dataset.id)))
130
142
  datasets = datasets[:-1]
131
143
 
132
144
  data = []
133
- for dataset in datasets:
145
+ for row in datasets:
146
+ dataset = row[0]
134
147
  data.append(
135
148
  Dataset(
136
149
  id=str(GlobalID(DATASET_NODE_NAME, str(dataset.id))),
@@ -139,6 +152,7 @@ async def list_datasets(
139
152
  metadata=dataset.metadata_,
140
153
  created_at=dataset.created_at,
141
154
  updated_at=dataset.updated_at,
155
+ example_count=row[1],
142
156
  )
143
157
  )
144
158
 
@@ -1358,7 +1358,7 @@ class Project(Node):
1358
1358
  .where(models.Trace.project_rowid == self.project_rowid)
1359
1359
  .where(models.SpanCost.model_id.isnot(None))
1360
1360
  .where(models.SpanCost.span_start_time >= time_range.start)
1361
- .group_by(models.SpanCost.model_id)
1361
+ .group_by(models.GenerativeModel.id)
1362
1362
  .order_by(func.sum(models.SpanCost.total_cost).desc())
1363
1363
  )
1364
1364
  if time_range.end:
@@ -1420,7 +1420,7 @@ class Project(Node):
1420
1420
  .where(models.Trace.project_rowid == self.project_rowid)
1421
1421
  .where(models.SpanCost.model_id.isnot(None))
1422
1422
  .where(models.SpanCost.span_start_time >= time_range.start)
1423
- .group_by(models.SpanCost.model_id)
1423
+ .group_by(models.GenerativeModel.id)
1424
1424
  .order_by(func.sum(models.SpanCost.total_tokens).desc())
1425
1425
  )
1426
1426
  if time_range.end:
@@ -287,23 +287,6 @@
287
287
  }
288
288
  ]
289
289
  },
290
- {
291
- "name": "claude-3-sonnet-20240229",
292
- "name_pattern": "claude-3-sonnet-20240229|anthropic\\.claude-3-sonnet-20240229-v1:0|claude-3-sonnet@20240229",
293
- "source": "litellm",
294
- "token_prices": [
295
- {
296
- "base_rate": 3e-6,
297
- "is_prompt": true,
298
- "token_type": "input"
299
- },
300
- {
301
- "base_rate": 0.000015,
302
- "is_prompt": false,
303
- "token_type": "output"
304
- }
305
- ]
306
- },
307
290
  {
308
291
  "name": "claude-4-opus-20250514",
309
292
  "name_pattern": "claude-4-opus-20250514",
@@ -542,6 +525,38 @@
542
525
  }
543
526
  ]
544
527
  },
528
+ {
529
+ "name": "gemini-2.0-flash-live-preview-04-09",
530
+ "name_pattern": "gemini-2\\.0-flash-live-preview-04-09",
531
+ "source": "litellm",
532
+ "token_prices": [
533
+ {
534
+ "base_rate": 5e-7,
535
+ "is_prompt": true,
536
+ "token_type": "input"
537
+ },
538
+ {
539
+ "base_rate": 2e-6,
540
+ "is_prompt": false,
541
+ "token_type": "output"
542
+ },
543
+ {
544
+ "base_rate": 7.5e-8,
545
+ "is_prompt": true,
546
+ "token_type": "cache_read"
547
+ },
548
+ {
549
+ "base_rate": 3e-6,
550
+ "is_prompt": true,
551
+ "token_type": "audio"
552
+ },
553
+ {
554
+ "base_rate": 0.000012,
555
+ "is_prompt": false,
556
+ "token_type": "audio"
557
+ }
558
+ ]
559
+ },
545
560
  {
546
561
  "name": "gemini-2.0-flash-preview-image-generation",
547
562
  "name_pattern": "gemini-2\\.0-flash-preview-image-generation",
@@ -618,6 +633,33 @@
618
633
  }
619
634
  ]
620
635
  },
636
+ {
637
+ "name": "gemini-2.5-flash-lite",
638
+ "name_pattern": "gemini-2\\.5-flash-lite",
639
+ "source": "litellm",
640
+ "token_prices": [
641
+ {
642
+ "base_rate": 1e-7,
643
+ "is_prompt": true,
644
+ "token_type": "input"
645
+ },
646
+ {
647
+ "base_rate": 4e-7,
648
+ "is_prompt": false,
649
+ "token_type": "output"
650
+ },
651
+ {
652
+ "base_rate": 2.5e-8,
653
+ "is_prompt": true,
654
+ "token_type": "cache_read"
655
+ },
656
+ {
657
+ "base_rate": 5e-7,
658
+ "is_prompt": true,
659
+ "token_type": "audio"
660
+ }
661
+ ]
662
+ },
621
663
  {
622
664
  "name": "gemini-2.5-flash-lite-preview-06-17",
623
665
  "name_pattern": "gemini-2\\.5-flash-lite-preview-06-17",
@@ -1938,6 +1980,38 @@
1938
1980
  }
1939
1981
  ]
1940
1982
  },
1983
+ {
1984
+ "name": "gpt-4o-realtime-preview-2025-06-03",
1985
+ "name_pattern": "gpt-4o-realtime-preview-2025-06-03",
1986
+ "source": "litellm",
1987
+ "token_prices": [
1988
+ {
1989
+ "base_rate": 5e-6,
1990
+ "is_prompt": true,
1991
+ "token_type": "input"
1992
+ },
1993
+ {
1994
+ "base_rate": 0.00002,
1995
+ "is_prompt": false,
1996
+ "token_type": "output"
1997
+ },
1998
+ {
1999
+ "base_rate": 2.5e-6,
2000
+ "is_prompt": true,
2001
+ "token_type": "cache_read"
2002
+ },
2003
+ {
2004
+ "base_rate": 0.00004,
2005
+ "is_prompt": true,
2006
+ "token_type": "audio"
2007
+ },
2008
+ {
2009
+ "base_rate": 0.00008,
2010
+ "is_prompt": false,
2011
+ "token_type": "audio"
2012
+ }
2013
+ ]
2014
+ },
1941
2015
  {
1942
2016
  "name": "gpt-4o-search-preview",
1943
2017
  "name_pattern": "gpt-4o-search-preview",
@@ -1,22 +1,22 @@
1
1
  {
2
- "_components-Bns22evR.js": {
3
- "file": "assets/components-Bns22evR.js",
2
+ "_components-CK8hwrPx.js": {
3
+ "file": "assets/components-CK8hwrPx.js",
4
4
  "name": "components",
5
5
  "imports": [
6
6
  "_vendor-_6rG8OMg.js",
7
- "_pages-BCzKlOjS.js",
7
+ "_pages-D8Hgmz1V.js",
8
8
  "_vendor-arizeai-BznCmJFh.js",
9
9
  "_vendor-codemirror-29fWLPAy.js",
10
10
  "_vendor-three-C5WAXd5r.js"
11
11
  ]
12
12
  },
13
- "_pages-BCzKlOjS.js": {
14
- "file": "assets/pages-BCzKlOjS.js",
13
+ "_pages-D8Hgmz1V.js": {
14
+ "file": "assets/pages-D8Hgmz1V.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
17
  "_vendor-_6rG8OMg.js",
18
18
  "_vendor-arizeai-BznCmJFh.js",
19
- "_components-Bns22evR.js",
19
+ "_components-CK8hwrPx.js",
20
20
  "_vendor-codemirror-29fWLPAy.js",
21
21
  "_vendor-recharts-Cu431IpB.js"
22
22
  ]
@@ -69,15 +69,15 @@
69
69
  "name": "vendor-three"
70
70
  },
71
71
  "index.tsx": {
72
- "file": "assets/index-so7zaroU.js",
72
+ "file": "assets/index-ByWTGseQ.js",
73
73
  "name": "index",
74
74
  "src": "index.tsx",
75
75
  "isEntry": true,
76
76
  "imports": [
77
77
  "_vendor-_6rG8OMg.js",
78
78
  "_vendor-arizeai-BznCmJFh.js",
79
- "_pages-BCzKlOjS.js",
80
- "_components-Bns22evR.js",
79
+ "_pages-D8Hgmz1V.js",
80
+ "_components-CK8hwrPx.js",
81
81
  "_vendor-three-C5WAXd5r.js",
82
82
  "_vendor-codemirror-29fWLPAy.js",
83
83
  "_vendor-shiki-Ce9e01lU.js",