arize-phoenix 11.23.2__py3-none-any.whl → 11.24.1__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.23.2.dist-info → arize_phoenix-11.24.1.dist-info}/METADATA +1 -1
- {arize_phoenix-11.23.2.dist-info → arize_phoenix-11.24.1.dist-info}/RECORD +13 -13
- phoenix/server/api/queries.py +295 -371
- phoenix/server/api/routers/v1/experiment_evaluations.py +14 -3
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-PCtifE4_.js → components-CBjkyAZ_.js} +317 -311
- phoenix/server/static/assets/{index-B8qLHbUW.js → index-kl9TdGAc.js} +2 -2
- phoenix/server/static/assets/{pages-U3zpr_jU.js → pages-B8T9ap-6.js} +485 -417
- phoenix/version.py +1 -1
- {arize_phoenix-11.23.2.dist-info → arize_phoenix-11.24.1.dist-info}/WHEEL +0 -0
- {arize_phoenix-11.23.2.dist-info → arize_phoenix-11.24.1.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-11.23.2.dist-info → arize_phoenix-11.24.1.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-11.23.2.dist-info → arize_phoenix-11.24.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -3,10 +3,11 @@ from typing import Any, Literal, Optional
|
|
|
3
3
|
|
|
4
4
|
from dateutil.parser import isoparse
|
|
5
5
|
from fastapi import APIRouter, HTTPException
|
|
6
|
-
from pydantic import Field
|
|
6
|
+
from pydantic import Field, model_validator
|
|
7
7
|
from starlette.requests import Request
|
|
8
8
|
from starlette.status import HTTP_404_NOT_FOUND
|
|
9
9
|
from strawberry.relay import GlobalID
|
|
10
|
+
from typing_extensions import Self
|
|
10
11
|
|
|
11
12
|
from phoenix.db import models
|
|
12
13
|
from phoenix.db.helpers import SupportedSQLDialect
|
|
@@ -36,15 +37,25 @@ class UpsertExperimentEvaluationRequestBody(V1RoutesBaseModel):
|
|
|
36
37
|
)
|
|
37
38
|
start_time: datetime = Field(description="The start time of the evaluation in ISO format")
|
|
38
39
|
end_time: datetime = Field(description="The end time of the evaluation in ISO format")
|
|
39
|
-
result: ExperimentEvaluationResult = Field(
|
|
40
|
+
result: Optional[ExperimentEvaluationResult] = Field(
|
|
41
|
+
None, description="The result of the evaluation. Either result or error must be provided."
|
|
42
|
+
)
|
|
40
43
|
error: Optional[str] = Field(
|
|
41
|
-
None,
|
|
44
|
+
None,
|
|
45
|
+
description="Error message if the evaluation encountered an error. "
|
|
46
|
+
"Either result or error must be provided.",
|
|
42
47
|
)
|
|
43
48
|
metadata: Optional[dict[str, Any]] = Field(
|
|
44
49
|
default=None, description="Metadata for the evaluation"
|
|
45
50
|
)
|
|
46
51
|
trace_id: Optional[str] = Field(default=None, description="Optional trace ID for tracking")
|
|
47
52
|
|
|
53
|
+
@model_validator(mode="after")
|
|
54
|
+
def validate_result_or_error(self) -> Self:
|
|
55
|
+
if self.result is None and self.error is None:
|
|
56
|
+
raise ValueError("Either 'result' or 'error' must be provided")
|
|
57
|
+
return self
|
|
58
|
+
|
|
48
59
|
|
|
49
60
|
class UpsertExperimentEvaluationResponseBodyData(V1RoutesBaseModel):
|
|
50
61
|
id: str = Field(description="The ID of the upserted experiment evaluation")
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-CBjkyAZ_.js": {
|
|
3
|
+
"file": "assets/components-CBjkyAZ_.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
6
|
"_vendor-CU36oj8y.js",
|
|
7
|
-
"_pages-
|
|
7
|
+
"_pages-B8T9ap-6.js",
|
|
8
8
|
"_vendor-arizeai-Ctgw0e1G.js",
|
|
9
9
|
"_vendor-codemirror-Cojjzqb9.js",
|
|
10
10
|
"_vendor-three-BLWp5bic.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-B8T9ap-6.js": {
|
|
14
|
+
"file": "assets/pages-B8T9ap-6.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
17
|
"_vendor-CU36oj8y.js",
|
|
18
18
|
"_vendor-arizeai-Ctgw0e1G.js",
|
|
19
|
-
"_components-
|
|
19
|
+
"_components-CBjkyAZ_.js",
|
|
20
20
|
"_vendor-codemirror-Cojjzqb9.js",
|
|
21
21
|
"_vendor-recharts-Bw30oz1A.js"
|
|
22
22
|
]
|
|
@@ -75,15 +75,15 @@
|
|
|
75
75
|
"name": "vendor-three"
|
|
76
76
|
},
|
|
77
77
|
"index.tsx": {
|
|
78
|
-
"file": "assets/index-
|
|
78
|
+
"file": "assets/index-kl9TdGAc.js",
|
|
79
79
|
"name": "index",
|
|
80
80
|
"src": "index.tsx",
|
|
81
81
|
"isEntry": true,
|
|
82
82
|
"imports": [
|
|
83
83
|
"_vendor-CU36oj8y.js",
|
|
84
84
|
"_vendor-arizeai-Ctgw0e1G.js",
|
|
85
|
-
"_pages-
|
|
86
|
-
"_components-
|
|
85
|
+
"_pages-B8T9ap-6.js",
|
|
86
|
+
"_components-CBjkyAZ_.js",
|
|
87
87
|
"_vendor-three-BLWp5bic.js",
|
|
88
88
|
"_vendor-codemirror-Cojjzqb9.js",
|
|
89
89
|
"_vendor-shiki-DZajAPeq.js",
|