arize-phoenix 11.10.0__py3-none-any.whl → 11.11.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-11.10.0.dist-info → arize_phoenix-11.11.0.dist-info}/METADATA +1 -1
- {arize_phoenix-11.10.0.dist-info → arize_phoenix-11.11.0.dist-info}/RECORD +22 -21
- phoenix/server/api/helpers/playground_clients.py +146 -63
- phoenix/server/api/helpers/playground_registry.py +2 -2
- phoenix/server/api/input_types/PromptFilter.py +14 -0
- phoenix/server/api/queries.py +14 -3
- phoenix/server/api/types/GenerativeModel.py +48 -3
- phoenix/server/api/types/Project.py +125 -0
- phoenix/server/static/.vite/manifest.json +44 -44
- phoenix/server/static/assets/{components-XAeml0-1.js → components-B7lK-RgC.js} +396 -314
- phoenix/server/static/assets/{index-D7EtHUpz.js → index-CpePoyTU.js} +11 -2
- phoenix/server/static/assets/{pages-CPfaxiKa.js → pages-CnVg_GUi.js} +518 -482
- phoenix/server/static/assets/{vendor-arizeai-4fVwwnrI.js → vendor-arizeai-CXCKGfvH.js} +3 -3
- phoenix/server/static/assets/vendor-codemirror-DWr46-WB.js +27 -0
- phoenix/server/static/assets/{vendor-recharts-w6bSawXG.js → vendor-recharts-0Yf6lanX.js} +1 -1
- phoenix/server/static/assets/{vendor-shiki-CplrhwOk.js → vendor-shiki-Caei6iKO.js} +1 -1
- phoenix/server/static/assets/vendor-uWG2jYEi.js +936 -0
- phoenix/version.py +1 -1
- phoenix/server/static/assets/vendor-DhvamIr8.js +0 -939
- phoenix/server/static/assets/vendor-codemirror-DRfFHb57.js +0 -33
- {arize_phoenix-11.10.0.dist-info → arize_phoenix-11.11.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-11.10.0.dist-info → arize_phoenix-11.11.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-11.10.0.dist-info → arize_phoenix-11.11.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-11.10.0.dist-info → arize_phoenix-11.11.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -33,6 +33,7 @@ from phoenix.server.api.types.AnnotationConfig import AnnotationConfig, to_gql_a
|
|
|
33
33
|
from phoenix.server.api.types.AnnotationSummary import AnnotationSummary
|
|
34
34
|
from phoenix.server.api.types.CostBreakdown import CostBreakdown
|
|
35
35
|
from phoenix.server.api.types.DocumentEvaluationSummary import DocumentEvaluationSummary
|
|
36
|
+
from phoenix.server.api.types.GenerativeModel import GenerativeModel, to_gql_generative_model
|
|
36
37
|
from phoenix.server.api.types.pagination import (
|
|
37
38
|
ConnectionArgs,
|
|
38
39
|
Cursor,
|
|
@@ -1326,6 +1327,130 @@ class Project(Node):
|
|
|
1326
1327
|
names=sorted(list(unique_names)),
|
|
1327
1328
|
)
|
|
1328
1329
|
|
|
1330
|
+
@strawberry.field
|
|
1331
|
+
async def top_models_by_cost(
|
|
1332
|
+
self,
|
|
1333
|
+
info: Info[Context, None],
|
|
1334
|
+
time_range: TimeRange,
|
|
1335
|
+
) -> list[GenerativeModel]:
|
|
1336
|
+
if time_range.start is None:
|
|
1337
|
+
raise BadRequest("Start time is required")
|
|
1338
|
+
|
|
1339
|
+
async with info.context.db() as session:
|
|
1340
|
+
stmt = (
|
|
1341
|
+
select(
|
|
1342
|
+
models.GenerativeModel,
|
|
1343
|
+
func.sum(models.SpanCost.total_tokens).label("total_tokens"),
|
|
1344
|
+
func.sum(models.SpanCost.prompt_tokens).label("prompt_tokens"),
|
|
1345
|
+
func.sum(models.SpanCost.completion_tokens).label("completion_tokens"),
|
|
1346
|
+
func.sum(models.SpanCost.total_cost).label("total_cost"),
|
|
1347
|
+
func.sum(models.SpanCost.prompt_cost).label("prompt_cost"),
|
|
1348
|
+
func.sum(models.SpanCost.completion_cost).label("completion_cost"),
|
|
1349
|
+
)
|
|
1350
|
+
.join(
|
|
1351
|
+
models.SpanCost,
|
|
1352
|
+
models.SpanCost.model_id == models.GenerativeModel.id,
|
|
1353
|
+
)
|
|
1354
|
+
.join(
|
|
1355
|
+
models.Trace,
|
|
1356
|
+
models.SpanCost.trace_rowid == models.Trace.id,
|
|
1357
|
+
)
|
|
1358
|
+
.where(models.Trace.project_rowid == self.project_rowid)
|
|
1359
|
+
.where(models.SpanCost.model_id.isnot(None))
|
|
1360
|
+
.where(models.SpanCost.span_start_time >= time_range.start)
|
|
1361
|
+
.group_by(models.SpanCost.model_id)
|
|
1362
|
+
.order_by(func.sum(models.SpanCost.total_cost).desc())
|
|
1363
|
+
)
|
|
1364
|
+
if time_range.end:
|
|
1365
|
+
stmt = stmt.where(models.SpanCost.span_start_time < time_range.end)
|
|
1366
|
+
results: list[GenerativeModel] = []
|
|
1367
|
+
async for (
|
|
1368
|
+
model,
|
|
1369
|
+
total_tokens,
|
|
1370
|
+
prompt_tokens,
|
|
1371
|
+
completion_tokens,
|
|
1372
|
+
total_cost,
|
|
1373
|
+
prompt_cost,
|
|
1374
|
+
completion_cost,
|
|
1375
|
+
) in await session.stream(stmt):
|
|
1376
|
+
cost_summary = SpanCostSummary(
|
|
1377
|
+
prompt=CostBreakdown(tokens=prompt_tokens, cost=prompt_cost),
|
|
1378
|
+
completion=CostBreakdown(tokens=completion_tokens, cost=completion_cost),
|
|
1379
|
+
total=CostBreakdown(tokens=total_tokens, cost=total_cost),
|
|
1380
|
+
)
|
|
1381
|
+
cache_time_range = TimeRange(
|
|
1382
|
+
start=time_range.start,
|
|
1383
|
+
end=time_range.end,
|
|
1384
|
+
)
|
|
1385
|
+
gql_model = to_gql_generative_model(model)
|
|
1386
|
+
gql_model.add_cached_cost_summary(
|
|
1387
|
+
self.project_rowid, cache_time_range, cost_summary
|
|
1388
|
+
)
|
|
1389
|
+
results.append(gql_model)
|
|
1390
|
+
return results
|
|
1391
|
+
|
|
1392
|
+
@strawberry.field
|
|
1393
|
+
async def top_models_by_token_count(
|
|
1394
|
+
self,
|
|
1395
|
+
info: Info[Context, None],
|
|
1396
|
+
time_range: TimeRange,
|
|
1397
|
+
) -> list[GenerativeModel]:
|
|
1398
|
+
if time_range.start is None:
|
|
1399
|
+
raise BadRequest("Start time is required")
|
|
1400
|
+
|
|
1401
|
+
async with info.context.db() as session:
|
|
1402
|
+
stmt = (
|
|
1403
|
+
select(
|
|
1404
|
+
models.GenerativeModel,
|
|
1405
|
+
func.sum(models.SpanCost.total_tokens).label("total_tokens"),
|
|
1406
|
+
func.sum(models.SpanCost.prompt_tokens).label("prompt_tokens"),
|
|
1407
|
+
func.sum(models.SpanCost.completion_tokens).label("completion_tokens"),
|
|
1408
|
+
func.sum(models.SpanCost.total_cost).label("total_cost"),
|
|
1409
|
+
func.sum(models.SpanCost.prompt_cost).label("prompt_cost"),
|
|
1410
|
+
func.sum(models.SpanCost.completion_cost).label("completion_cost"),
|
|
1411
|
+
)
|
|
1412
|
+
.join(
|
|
1413
|
+
models.SpanCost,
|
|
1414
|
+
models.SpanCost.model_id == models.GenerativeModel.id,
|
|
1415
|
+
)
|
|
1416
|
+
.join(
|
|
1417
|
+
models.Trace,
|
|
1418
|
+
models.SpanCost.trace_rowid == models.Trace.id,
|
|
1419
|
+
)
|
|
1420
|
+
.where(models.Trace.project_rowid == self.project_rowid)
|
|
1421
|
+
.where(models.SpanCost.model_id.isnot(None))
|
|
1422
|
+
.where(models.SpanCost.span_start_time >= time_range.start)
|
|
1423
|
+
.group_by(models.SpanCost.model_id)
|
|
1424
|
+
.order_by(func.sum(models.SpanCost.total_tokens).desc())
|
|
1425
|
+
)
|
|
1426
|
+
if time_range.end:
|
|
1427
|
+
stmt = stmt.where(models.SpanCost.span_start_time < time_range.end)
|
|
1428
|
+
results: list[GenerativeModel] = []
|
|
1429
|
+
async for (
|
|
1430
|
+
model,
|
|
1431
|
+
total_tokens,
|
|
1432
|
+
prompt_tokens,
|
|
1433
|
+
completion_tokens,
|
|
1434
|
+
total_cost,
|
|
1435
|
+
prompt_cost,
|
|
1436
|
+
completion_cost,
|
|
1437
|
+
) in await session.stream(stmt):
|
|
1438
|
+
cost_summary = SpanCostSummary(
|
|
1439
|
+
prompt=CostBreakdown(tokens=prompt_tokens, cost=prompt_cost),
|
|
1440
|
+
completion=CostBreakdown(tokens=completion_tokens, cost=completion_cost),
|
|
1441
|
+
total=CostBreakdown(tokens=total_tokens, cost=total_cost),
|
|
1442
|
+
)
|
|
1443
|
+
cache_time_range = TimeRange(
|
|
1444
|
+
start=time_range.start,
|
|
1445
|
+
end=time_range.end,
|
|
1446
|
+
)
|
|
1447
|
+
gql_model = to_gql_generative_model(model)
|
|
1448
|
+
gql_model.add_cached_cost_summary(
|
|
1449
|
+
self.project_rowid, cache_time_range, cost_summary
|
|
1450
|
+
)
|
|
1451
|
+
results.append(gql_model)
|
|
1452
|
+
return results
|
|
1453
|
+
|
|
1329
1454
|
|
|
1330
1455
|
@strawberry.type
|
|
1331
1456
|
class SpanCountTimeSeriesDataPoint:
|
|
@@ -1,87 +1,87 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-B7lK-RgC.js": {
|
|
3
|
+
"file": "assets/components-B7lK-RgC.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
|
-
"_vendor-
|
|
7
|
-
"_pages-
|
|
8
|
-
"_vendor-arizeai-
|
|
9
|
-
"_vendor-codemirror-
|
|
6
|
+
"_vendor-uWG2jYEi.js",
|
|
7
|
+
"_pages-CnVg_GUi.js",
|
|
8
|
+
"_vendor-arizeai-CXCKGfvH.js",
|
|
9
|
+
"_vendor-codemirror-DWr46-WB.js",
|
|
10
10
|
"_vendor-three-C5WAXd5r.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-CnVg_GUi.js": {
|
|
14
|
+
"file": "assets/pages-CnVg_GUi.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
|
-
"_vendor-
|
|
18
|
-
"_vendor-arizeai-
|
|
19
|
-
"_components-
|
|
20
|
-
"_vendor-codemirror-
|
|
21
|
-
"_vendor-recharts-
|
|
17
|
+
"_vendor-uWG2jYEi.js",
|
|
18
|
+
"_vendor-arizeai-CXCKGfvH.js",
|
|
19
|
+
"_components-B7lK-RgC.js",
|
|
20
|
+
"_vendor-codemirror-DWr46-WB.js",
|
|
21
|
+
"_vendor-recharts-0Yf6lanX.js"
|
|
22
22
|
]
|
|
23
23
|
},
|
|
24
24
|
"_vendor-CqDb5u4o.css": {
|
|
25
25
|
"file": "assets/vendor-CqDb5u4o.css",
|
|
26
26
|
"src": "_vendor-CqDb5u4o.css"
|
|
27
27
|
},
|
|
28
|
-
"_vendor-
|
|
29
|
-
"file": "assets/vendor-
|
|
30
|
-
"name": "vendor",
|
|
31
|
-
"imports": [
|
|
32
|
-
"_vendor-three-C5WAXd5r.js"
|
|
33
|
-
],
|
|
34
|
-
"css": [
|
|
35
|
-
"assets/vendor-CqDb5u4o.css"
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
"_vendor-arizeai-4fVwwnrI.js": {
|
|
39
|
-
"file": "assets/vendor-arizeai-4fVwwnrI.js",
|
|
28
|
+
"_vendor-arizeai-CXCKGfvH.js": {
|
|
29
|
+
"file": "assets/vendor-arizeai-CXCKGfvH.js",
|
|
40
30
|
"name": "vendor-arizeai",
|
|
41
31
|
"imports": [
|
|
42
|
-
"_vendor-
|
|
32
|
+
"_vendor-uWG2jYEi.js"
|
|
43
33
|
]
|
|
44
34
|
},
|
|
45
|
-
"_vendor-codemirror-
|
|
46
|
-
"file": "assets/vendor-codemirror-
|
|
35
|
+
"_vendor-codemirror-DWr46-WB.js": {
|
|
36
|
+
"file": "assets/vendor-codemirror-DWr46-WB.js",
|
|
47
37
|
"name": "vendor-codemirror",
|
|
48
38
|
"imports": [
|
|
49
|
-
"_vendor-
|
|
50
|
-
"_vendor-shiki-
|
|
39
|
+
"_vendor-uWG2jYEi.js",
|
|
40
|
+
"_vendor-shiki-Caei6iKO.js"
|
|
51
41
|
]
|
|
52
42
|
},
|
|
53
|
-
"_vendor-recharts-
|
|
54
|
-
"file": "assets/vendor-recharts-
|
|
43
|
+
"_vendor-recharts-0Yf6lanX.js": {
|
|
44
|
+
"file": "assets/vendor-recharts-0Yf6lanX.js",
|
|
55
45
|
"name": "vendor-recharts",
|
|
56
46
|
"imports": [
|
|
57
|
-
"_vendor-
|
|
47
|
+
"_vendor-uWG2jYEi.js"
|
|
58
48
|
]
|
|
59
49
|
},
|
|
60
|
-
"_vendor-shiki-
|
|
61
|
-
"file": "assets/vendor-shiki-
|
|
50
|
+
"_vendor-shiki-Caei6iKO.js": {
|
|
51
|
+
"file": "assets/vendor-shiki-Caei6iKO.js",
|
|
62
52
|
"name": "vendor-shiki",
|
|
63
53
|
"imports": [
|
|
64
|
-
"_vendor-
|
|
54
|
+
"_vendor-uWG2jYEi.js"
|
|
65
55
|
]
|
|
66
56
|
},
|
|
67
57
|
"_vendor-three-C5WAXd5r.js": {
|
|
68
58
|
"file": "assets/vendor-three-C5WAXd5r.js",
|
|
69
59
|
"name": "vendor-three"
|
|
70
60
|
},
|
|
61
|
+
"_vendor-uWG2jYEi.js": {
|
|
62
|
+
"file": "assets/vendor-uWG2jYEi.js",
|
|
63
|
+
"name": "vendor",
|
|
64
|
+
"imports": [
|
|
65
|
+
"_vendor-three-C5WAXd5r.js"
|
|
66
|
+
],
|
|
67
|
+
"css": [
|
|
68
|
+
"assets/vendor-CqDb5u4o.css"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
71
|
"index.tsx": {
|
|
72
|
-
"file": "assets/index-
|
|
72
|
+
"file": "assets/index-CpePoyTU.js",
|
|
73
73
|
"name": "index",
|
|
74
74
|
"src": "index.tsx",
|
|
75
75
|
"isEntry": true,
|
|
76
76
|
"imports": [
|
|
77
|
-
"_vendor-
|
|
78
|
-
"_vendor-arizeai-
|
|
79
|
-
"_pages-
|
|
80
|
-
"_components-
|
|
77
|
+
"_vendor-uWG2jYEi.js",
|
|
78
|
+
"_vendor-arizeai-CXCKGfvH.js",
|
|
79
|
+
"_pages-CnVg_GUi.js",
|
|
80
|
+
"_components-B7lK-RgC.js",
|
|
81
81
|
"_vendor-three-C5WAXd5r.js",
|
|
82
|
-
"_vendor-codemirror-
|
|
83
|
-
"_vendor-shiki-
|
|
84
|
-
"_vendor-recharts-
|
|
82
|
+
"_vendor-codemirror-DWr46-WB.js",
|
|
83
|
+
"_vendor-shiki-Caei6iKO.js",
|
|
84
|
+
"_vendor-recharts-0Yf6lanX.js"
|
|
85
85
|
]
|
|
86
86
|
}
|
|
87
87
|
}
|