arize-phoenix 3.19.4__py3-none-any.whl → 3.21.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-3.19.4.dist-info → arize_phoenix-3.21.0.dist-info}/METADATA +7 -7
- {arize_phoenix-3.19.4.dist-info → arize_phoenix-3.21.0.dist-info}/RECORD +23 -18
- phoenix/__init__.py +7 -3
- phoenix/core/model.py +8 -6
- phoenix/core/model_schema_adapter.py +6 -6
- phoenix/datasets/dataset.py +9 -521
- phoenix/datasets/fixtures.py +16 -552
- phoenix/datasets/schema.py +24 -145
- phoenix/inferences/__init__.py +0 -0
- phoenix/inferences/fixtures.py +560 -0
- phoenix/inferences/inferences.py +730 -0
- phoenix/inferences/schema.py +151 -0
- phoenix/server/app.py +5 -0
- phoenix/server/main.py +8 -8
- phoenix/session/evaluation.py +1 -2
- phoenix/session/session.py +23 -23
- phoenix/utilities/deprecation.py +30 -0
- phoenix/version.py +1 -1
- {arize_phoenix-3.19.4.dist-info → arize_phoenix-3.21.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-3.19.4.dist-info → arize_phoenix-3.21.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-3.19.4.dist-info → arize_phoenix-3.21.0.dist-info}/licenses/LICENSE +0 -0
- /phoenix/{datasets → inferences}/errors.py +0 -0
- /phoenix/{datasets → inferences}/validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.21.0
|
|
4
4
|
Summary: AI Observability and Evaluation
|
|
5
5
|
Project-URL: Documentation, https://docs.arize.com/phoenix/
|
|
6
6
|
Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
|
|
@@ -371,11 +371,11 @@ train_schema = px.Schema(
|
|
|
371
371
|
prod_schema = replace(train_schema, actual_label_column_name=None)
|
|
372
372
|
|
|
373
373
|
# Define your production and training datasets.
|
|
374
|
-
|
|
375
|
-
|
|
374
|
+
prod_inf = px.Inferences(prod_df, prod_schema)
|
|
375
|
+
train_inf = px.Inferences(train_df, train_schema)
|
|
376
376
|
|
|
377
377
|
# Launch Phoenix.
|
|
378
|
-
session = px.launch_app(
|
|
378
|
+
session = px.launch_app(prod_inf, train_inf)
|
|
379
379
|
|
|
380
380
|
# View the Phoenix UI in the browser
|
|
381
381
|
session.url
|
|
@@ -439,11 +439,11 @@ schema = px.Schema(
|
|
|
439
439
|
)
|
|
440
440
|
|
|
441
441
|
# Define your production and training datasets.
|
|
442
|
-
|
|
443
|
-
|
|
442
|
+
prod_inf = px.Inferences(dataframe=prod_df, schema=schema, name="production")
|
|
443
|
+
train_inf = px.Inferences(dataframe=train_df, schema=schema, name="training")
|
|
444
444
|
|
|
445
445
|
# Launch Phoenix for analysis
|
|
446
|
-
session = px.launch_app(primary=
|
|
446
|
+
session = px.launch_app(primary=prod_inf, reference=train_inf)
|
|
447
447
|
```
|
|
448
448
|
|
|
449
449
|
## Deploying Phoenix
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
phoenix/__init__.py,sha256=
|
|
1
|
+
phoenix/__init__.py,sha256=xFnfyTc75889OPnKh25CghdBH5_5UpLDet2BAyJulLc,2453
|
|
2
2
|
phoenix/config.py,sha256=iGZeRwpvQG-JOzlfv642f98rCAHQ1SpGiEvgJsxg-1g,4682
|
|
3
3
|
phoenix/datetime_utils.py,sha256=D955QLrkgrrSdUM6NyqbCeAu2SMsjhR5rHVQEsVUdng,2773
|
|
4
4
|
phoenix/exceptions.py,sha256=X5k9ipUDfwSCwZB-H5zFJLas86Gf9tAx0W4l5TZxp5k,108
|
|
5
5
|
phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
6
6
|
phoenix/services.py,sha256=f6AeyKTuOpy9RCcTCjVH3gx5nYZhbTMFOuv1WSUOB5o,4992
|
|
7
|
-
phoenix/version.py,sha256=
|
|
7
|
+
phoenix/version.py,sha256=AUUiMjCSSBMGjCFeufwNF9vNsTbcjSVTtsybgrAO03g,23
|
|
8
8
|
phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
|
|
10
|
-
phoenix/core/model.py,sha256=
|
|
10
|
+
phoenix/core/model.py,sha256=SBO8BZg_CeQuH5LrSgzlQfqMModzirkQePdhnbLw7dE,4756
|
|
11
11
|
phoenix/core/model_schema.py,sha256=lQaTvKS34yurHOJ53YD020uURLfgG3dqKC1NLQftOjA,50222
|
|
12
|
-
phoenix/core/model_schema_adapter.py,sha256=
|
|
12
|
+
phoenix/core/model_schema_adapter.py,sha256=aFvNtpI01sdaLoKvEvcsx51vP5_6anP0_g9idcJNaCI,8287
|
|
13
13
|
phoenix/core/project.py,sha256=_amEd22IW-tErTt_dY-TCs94vv5Sg2oVPsIzbAIe37s,31346
|
|
14
14
|
phoenix/core/traces.py,sha256=qAlsDmQJhS9Pkl1IFm-jne-8xS7MEqtw5Q1Ohv9TT2w,3432
|
|
15
15
|
phoenix/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
phoenix/datasets/dataset.py,sha256=
|
|
17
|
-
phoenix/datasets/
|
|
18
|
-
phoenix/datasets/
|
|
19
|
-
phoenix/datasets/schema.py,sha256=bF1d2Md6NyqQZuC4Ym5A52f2_IcazkyxGFZ11HPqSg0,6668
|
|
20
|
-
phoenix/datasets/validation.py,sha256=dZ9lCFUV0EY7HCkQkQBrs-GLAEIZdpOqUxwD5l4dp88,8294
|
|
16
|
+
phoenix/datasets/dataset.py,sha256=zEmSM9qOKUczn5qZjUY7JidCPudl-Eo7InJ115Igi24,9590
|
|
17
|
+
phoenix/datasets/fixtures.py,sha256=aDcmKFSNKMg-KLegZlec8y7rma3nVlwrTwMnEMdt0d4,652
|
|
18
|
+
phoenix/datasets/schema.py,sha256=GfqolST11gDdkH2mBZS0KpTAdgMRbArJyEGXavjg46g,864
|
|
21
19
|
phoenix/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
20
|
phoenix/experimental/evals/__init__.py,sha256=RMoMyl5E_LiWuZtZhCe2V7nJO-SNXvB9sPmkjAXA5Bg,2112
|
|
23
21
|
phoenix/experimental/evals/evaluators.py,sha256=r7fXrS-l4gn58SUhLAZSfY3P8lxysouSVJwHddrZJ_Q,15956
|
|
@@ -41,6 +39,12 @@ phoenix/experimental/evals/templates/default_templates.py,sha256=dVKmoLwqgAyGcRu
|
|
|
41
39
|
phoenix/experimental/evals/templates/template.py,sha256=ImFSaTPo9oalPNwq7cNdOCndrvuwLuIyIFKsgDVcoJE,6715
|
|
42
40
|
phoenix/experimental/evals/utils/__init__.py,sha256=FE1tbb022t3pwn0CrprR7QXcIsgpsdsotV7-iB3khsI,5601
|
|
43
41
|
phoenix/experimental/evals/utils/threads.py,sha256=ksI-egarPnlxit0qKKjtjZ2L82qGLxqxZ6s92O0eBA4,1005
|
|
42
|
+
phoenix/inferences/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
+
phoenix/inferences/errors.py,sha256=cGp9vxnw4SewFoWBV3ZGMkhE0Kh73lPIv3Ppz_H_RoA,8261
|
|
44
|
+
phoenix/inferences/fixtures.py,sha256=bEfvBixW56jje2Mrt4TH88V3N6K84XJX1HNFBZTh8PQ,20711
|
|
45
|
+
phoenix/inferences/inferences.py,sha256=6vtHq0exSQqy3IVGqvbgOPKfYMbgFgwmNG5YyZDsNuI,30694
|
|
46
|
+
phoenix/inferences/schema.py,sha256=UYej9IJ6pFeNW3fq721kJy16ONso_xVDm78Q68G4hl4,6643
|
|
47
|
+
phoenix/inferences/validation.py,sha256=dZ9lCFUV0EY7HCkQkQBrs-GLAEIZdpOqUxwD5l4dp88,8294
|
|
44
48
|
phoenix/metrics/README.md,sha256=5gekqTU-5gGdMwvcfNp2Wlu8p1ul9kGY_jq0XXQusoI,1964
|
|
45
49
|
phoenix/metrics/__init__.py,sha256=W8lVORvjBo66pFgUmU9P8Fi8i4yI75wOPkhU42sfeQU,2417
|
|
46
50
|
phoenix/metrics/binning.py,sha256=e20P5W5ineqDtfyVO0KDmwI2KY9As31pDhJdjAofNIo,12739
|
|
@@ -55,8 +59,8 @@ phoenix/pointcloud/pointcloud.py,sha256=4zAIkKs2xOUbchpj4XDAV-iPMXrfAJ15TG6rlIYG
|
|
|
55
59
|
phoenix/pointcloud/projectors.py,sha256=zO_RrtDYSv2rqVOfIP2_9Cv11Dc8EmcZR94xhFcBYPU,1057
|
|
56
60
|
phoenix/pointcloud/umap_parameters.py,sha256=lJsEOrbSuSiqI7g4Yt6xj7kgYxEqoep4ZHWLr6VWBqw,1760
|
|
57
61
|
phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
phoenix/server/app.py,sha256=
|
|
59
|
-
phoenix/server/main.py,sha256=
|
|
62
|
+
phoenix/server/app.py,sha256=eUw5tygCYmsQ5TAJTM_ZwRKkxDD3-bMJSH-H9YpF0eA,7246
|
|
63
|
+
phoenix/server/main.py,sha256=Su68-BSyN3wQm8od2TvT6iMOL84IvZdwtDCzsbMBmTk,9752
|
|
60
64
|
phoenix/server/prometheus.py,sha256=YQXwXZt3kxXN5JqGKDMH_jI9r4IL23xn6c8Bdrvg15A,2368
|
|
61
65
|
phoenix/server/thread_server.py,sha256=dP6cm6Cf08jNhDA1TRlVZpziu1YgtPDmaeIJMm725eI,2154
|
|
62
66
|
phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -136,8 +140,8 @@ phoenix/server/templates/index.html,sha256=lO2wGA5XsftPg03rw_VcyaYf_4vegtlWbIT5m
|
|
|
136
140
|
phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
141
|
phoenix/session/client.py,sha256=EMhzmsqquZbuuH0NX137npYLVJWEKI5OieeCBsVGh3A,7933
|
|
138
142
|
phoenix/session/data_extractor.py,sha256=0Kf-2mKY_YbYoD2fZkAYpKdFgsXrC3OKQ5d2iZsGgAI,1947
|
|
139
|
-
phoenix/session/evaluation.py,sha256=
|
|
140
|
-
phoenix/session/session.py,sha256=
|
|
143
|
+
phoenix/session/evaluation.py,sha256=mR5HeBDmoS9oCb-X-2lpLCyMRoOgBufofbsjyEqCpMg,5390
|
|
144
|
+
phoenix/session/session.py,sha256=P75qklh2HMgCCNiBghN3gjwRJiLIWzg1OshGt-fnzdM,24983
|
|
141
145
|
phoenix/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
146
|
phoenix/storage/span_store/__init__.py,sha256=ib-1BWPX4zMfIxS_qC-intyZciGMBJkAOcpb06d3jgQ,586
|
|
143
147
|
phoenix/storage/span_store/text_file.py,sha256=Fzpl_UDVN6_Qa8kpjhDkjdO7xb_I3g-UuTseenkV42c,2853
|
|
@@ -169,12 +173,13 @@ phoenix/trace/v1/__init__.py,sha256=-IbAD0ruESMjvQLvGAg9CTfjBUATFDx1OXseDPis6-0,
|
|
|
169
173
|
phoenix/trace/v1/evaluation_pb2.py,sha256=8sXvv2BW_vqD30MOMbmkeE2zpmm7ncik21kl3e-HzeQ,2254
|
|
170
174
|
phoenix/trace/v1/evaluation_pb2.pyi,sha256=cCbbx06gwQmaH14s3J1X25TtaARh-k1abbxQdQCXGm8,4500
|
|
171
175
|
phoenix/utilities/__init__.py,sha256=8w1Ivw0KO9YKWrhcdnO73cSVqP9VHAp0pSfsi_oDiuQ,672
|
|
176
|
+
phoenix/utilities/deprecation.py,sha256=cFuTVvjSYyRlrdxdJewjJVieIEHPk30BukSRGRydQ3k,1046
|
|
172
177
|
phoenix/utilities/error_handling.py,sha256=7b5rpGFj9EWZ8yrZK1IHvxB89suWk3lggDayUQcvZds,1946
|
|
173
178
|
phoenix/utilities/logging.py,sha256=lDXd6EGaamBNcQxL4vP1au9-i_SXe0OraUDiJOcszSw,222
|
|
174
179
|
phoenix/utilities/project.py,sha256=qWsvKnG1oKhOFUowXf9qiOL2ia7jaFe_ijFFHEt8GJo,431
|
|
175
180
|
phoenix/utilities/span_store.py,sha256=13UK0rE4wQd70yl___WsDRnH0ru-xErng9_Ml7zfEwE,978
|
|
176
|
-
arize_phoenix-3.
|
|
177
|
-
arize_phoenix-3.
|
|
178
|
-
arize_phoenix-3.
|
|
179
|
-
arize_phoenix-3.
|
|
180
|
-
arize_phoenix-3.
|
|
181
|
+
arize_phoenix-3.21.0.dist-info/METADATA,sha256=AedmOUdXolE0e2QFx8xHTHZmAH-HEnGxkNErc3zZXVM,29322
|
|
182
|
+
arize_phoenix-3.21.0.dist-info/WHEEL,sha256=as-1oFTWSeWBgyzh0O_qF439xqBe6AbBgt4MfYe5zwY,87
|
|
183
|
+
arize_phoenix-3.21.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
184
|
+
arize_phoenix-3.21.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
185
|
+
arize_phoenix-3.21.0.dist-info/RECORD,,
|
phoenix/__init__.py
CHANGED
|
@@ -5,8 +5,10 @@ from types import ModuleType
|
|
|
5
5
|
from typing import Any, Optional
|
|
6
6
|
|
|
7
7
|
from .datasets.dataset import Dataset
|
|
8
|
-
from .datasets.fixtures import ExampleDatasets
|
|
9
|
-
from .
|
|
8
|
+
from .datasets.fixtures import ExampleDatasets
|
|
9
|
+
from .inferences.fixtures import ExampleInferences, load_example
|
|
10
|
+
from .inferences.inferences import Inferences
|
|
11
|
+
from .inferences.schema import EmbeddingColumnNames, RetrievalEmbeddingColumnNames, Schema
|
|
10
12
|
from .session.client import Client
|
|
11
13
|
from .session.evaluation import log_evaluations
|
|
12
14
|
from .session.session import NotebookEnvironment, Session, active_session, close_app, launch_app
|
|
@@ -33,11 +35,13 @@ Here are just a few of the things that phoenix does well:
|
|
|
33
35
|
__all__ = [
|
|
34
36
|
"__version__",
|
|
35
37
|
"Dataset",
|
|
38
|
+
"ExampleDatasets",
|
|
39
|
+
"Inferences",
|
|
36
40
|
"EmbeddingColumnNames",
|
|
37
41
|
"RetrievalEmbeddingColumnNames",
|
|
38
42
|
"Schema",
|
|
39
43
|
"load_example",
|
|
40
|
-
"
|
|
44
|
+
"ExampleInferences",
|
|
41
45
|
"active_session",
|
|
42
46
|
"close_app",
|
|
43
47
|
"launch_app",
|
phoenix/core/model.py
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from typing import List, Optional, Union
|
|
2
2
|
|
|
3
|
-
from phoenix.
|
|
4
|
-
from phoenix.
|
|
3
|
+
from phoenix.inferences.inferences import Inferences
|
|
4
|
+
from phoenix.inferences.schema import EmbeddingColumnNames, EmbeddingFeatures
|
|
5
5
|
|
|
6
6
|
from .embedding_dimension import EmbeddingDimension
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def _get_embedding_dimensions(
|
|
10
|
-
primary_dataset:
|
|
10
|
+
primary_dataset: Inferences, reference_dataset: Optional[Inferences]
|
|
11
11
|
) -> List[EmbeddingDimension]:
|
|
12
12
|
embedding_dimensions: List[EmbeddingDimension] = []
|
|
13
13
|
embedding_features: EmbeddingFeatures = {}
|
|
@@ -58,8 +58,8 @@ def _get_embedding_dimensions(
|
|
|
58
58
|
def _check_embedding_vector_lengths_match_across_datasets(
|
|
59
59
|
embedding_feature_name: str,
|
|
60
60
|
embedding_column_names: EmbeddingColumnNames,
|
|
61
|
-
primary_dataset:
|
|
62
|
-
reference_dataset:
|
|
61
|
+
primary_dataset: Inferences,
|
|
62
|
+
reference_dataset: Inferences,
|
|
63
63
|
) -> None:
|
|
64
64
|
"""
|
|
65
65
|
Ensure that for each embedding feature, the vector lengths match across the primary
|
|
@@ -86,7 +86,9 @@ def _check_embedding_vector_lengths_match_across_datasets(
|
|
|
86
86
|
)
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
def _get_column_vector_length(
|
|
89
|
+
def _get_column_vector_length(
|
|
90
|
+
dataset: Inferences, embedding_vector_column_name: str
|
|
91
|
+
) -> Optional[int]:
|
|
90
92
|
"""
|
|
91
93
|
Because a dataset has already been constructed, we can assume that the lengths
|
|
92
94
|
of the vectors for any given embedding feature in the dataset are the same.
|
|
@@ -6,18 +6,18 @@ import pandas as pd
|
|
|
6
6
|
from pandas.api.types import is_object_dtype
|
|
7
7
|
from typing_extensions import TypeAlias, TypeGuard
|
|
8
8
|
|
|
9
|
-
from phoenix import
|
|
9
|
+
from phoenix import EmbeddingColumnNames, Inferences
|
|
10
10
|
from phoenix.core.model import _get_embedding_dimensions
|
|
11
11
|
from phoenix.core.model_schema import Embedding, Model, RetrievalEmbedding, Schema
|
|
12
|
-
from phoenix.
|
|
13
|
-
from phoenix.
|
|
12
|
+
from phoenix.inferences.schema import RetrievalEmbeddingColumnNames
|
|
13
|
+
from phoenix.inferences.schema import Schema as DatasetSchema
|
|
14
14
|
|
|
15
15
|
DatasetName: TypeAlias = str
|
|
16
16
|
ColumnName: TypeAlias = str
|
|
17
17
|
DisplayName: TypeAlias = str
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
def create_model_from_datasets(*datasets: Optional[
|
|
20
|
+
def create_model_from_datasets(*datasets: Optional[Inferences]) -> Model:
|
|
21
21
|
# TODO: move this validation into model_schema.Model.
|
|
22
22
|
if len(datasets) > 1 and datasets[0] is not None:
|
|
23
23
|
# Check that for each embedding dimension all vectors
|
|
@@ -132,8 +132,8 @@ def create_model_from_datasets(*datasets: Optional[Dataset]) -> Model:
|
|
|
132
132
|
)
|
|
133
133
|
|
|
134
134
|
|
|
135
|
-
def _is_dataset(obj: Optional[
|
|
136
|
-
return type(obj) is
|
|
135
|
+
def _is_dataset(obj: Optional[Inferences]) -> TypeGuard[Inferences]:
|
|
136
|
+
return type(obj) is Inferences
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
def _take_first_str(iterator: Iterable[str]) -> str:
|