arize-phoenix 10.2.0__py3-none-any.whl → 10.2.2__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-10.2.0.dist-info → arize_phoenix-10.2.2.dist-info}/METADATA +5 -1
- {arize_phoenix-10.2.0.dist-info → arize_phoenix-10.2.2.dist-info}/RECORD +9 -9
- phoenix/db/types/trace_retention.py +17 -10
- phoenix/server/api/helpers/playground_clients.py +1 -1
- phoenix/version.py +1 -1
- {arize_phoenix-10.2.0.dist-info → arize_phoenix-10.2.2.dist-info}/WHEEL +0 -0
- {arize_phoenix-10.2.0.dist-info → arize_phoenix-10.2.2.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-10.2.0.dist-info → arize_phoenix-10.2.2.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-10.2.0.dist-info → arize_phoenix-10.2.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 10.2.
|
|
3
|
+
Version: 10.2.2
|
|
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
|
|
@@ -226,6 +226,9 @@ Phoenix is built on top of OpenTelemetry and is vendor, language, and framework
|
|
|
226
226
|
| [Smolagents](https://huggingface.co/docs/smolagents/en/tutorials/inspect_runs) | `openinference-instrumentation-smolagents` | [](https://pypi.python.org/pypi/openinference-instrumentation-smolagents) |
|
|
227
227
|
| [Agno](https://docs.arize.com/phoenix/tracing/integrations-tracing/agno) | `openinference-instrumentation-agno` | [](https://pypi.python.org/pypi/openinference-instrumentation-agno) |
|
|
228
228
|
| [MCP](https://docs.arize.com/phoenix/tracing/integrations-tracing/model-context-protocol-mcp) | `openinference-instrumentation-mcp` | [](https://pypi.python.org/pypi/openinference-instrumentation-mcp) |
|
|
229
|
+
| [Pydantic AI](https://docs.arize.com/phoenix/integrations/pydantic) | `openinference-instrumentation-pydantic-ai` | [](https://pypi.python.org/pypi/openinference-instrumentation-pydantic-ai) |
|
|
230
|
+
| [Autogen AgentChat](https://docs.arize.com/phoenix/integrations/frameworks/autogen/autogen-tracing) | `openinference-instrumentation-autogen-agentchat` | [](https://pypi.python.org/pypi/openinference-instrumentation-autogen-agentchat) |
|
|
231
|
+
| [Portkey](https://docs.arize.com/phoenix/integrations/portkey) | `openinference-instrumentation-portkey` | [](https://pypi.python.org/pypi/openinference-instrumentation-portkey) |
|
|
229
232
|
|
|
230
233
|
### JavaScript Integrations
|
|
231
234
|
|
|
@@ -235,6 +238,7 @@ Phoenix is built on top of OpenTelemetry and is vendor, language, and framework
|
|
|
235
238
|
| [LangChain.js](https://docs.arize.com/phoenix/tracing/integrations-tracing/langchain.js) | `@arizeai/openinference-instrumentation-langchain` | [](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-langchain) |
|
|
236
239
|
| [Vercel AI SDK](https://docs.arize.com/phoenix/tracing/integrations-tracing/vercel-ai-sdk) | `@arizeai/openinference-vercel` | [](https://www.npmjs.com/package/@arizeai/openinference-vercel) |
|
|
237
240
|
| [BeeAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/beeai) | `@arizeai/openinference-instrumentation-beeai` | [](https://www.npmjs.com/package/@arizeai/openinference-instrumentation-beeai) |
|
|
241
|
+
| [Mastra](https://docs.arize.com/phoenix/integrations/mastra) | `@arizeai/openinference-instrumentation-mastra` | [](https://www.npmjs.com/package/@arizeai/openinference-mastra) |
|
|
238
242
|
|
|
239
243
|
### Platforms
|
|
240
244
|
|
|
@@ -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=x87BX7hWGQQZbrW_vrYqFR_izCGfO9gFc--JXUG4Tdk,754
|
|
9
|
-
phoenix/version.py,sha256=
|
|
9
|
+
phoenix/version.py,sha256=ABrnvMD1B1q5-JnF_zTnewrPlIqJicGO3er4zwRQWpU,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
|
|
@@ -54,7 +54,7 @@ phoenix/db/types/annotation_configs.py,sha256=keiQ9mzLZWE8Eqsu1xFxQBXvBiym0s-yPz
|
|
|
54
54
|
phoenix/db/types/db_models.py,sha256=nMSd9gWHwObnVO3_slztlHqoeh04czS-Jxu-omS6M6E,1135
|
|
55
55
|
phoenix/db/types/identifier.py,sha256=Opr3_1di6e5ncrBDn30WfBSr-jN_VGBnkkA4BMuSoyc,244
|
|
56
56
|
phoenix/db/types/model_provider.py,sha256=M5SKYtK176SxYhZ-c5gQSiTTuDk8VeAxqM8jrGyfGTo,183
|
|
57
|
-
phoenix/db/types/trace_retention.py,sha256=
|
|
57
|
+
phoenix/db/types/trace_retention.py,sha256=fyqAQCvDiD7mpJ_WUqbPyQvuSdERof4DpKpHLJsdROk,9897
|
|
58
58
|
phoenix/experiments/__init__.py,sha256=6JGwgUd7xCbGpuHqYZlsmErmYvVgv7N_j43bn3dUqsk,123
|
|
59
59
|
phoenix/experiments/functions.py,sha256=6cSS_5O5V1EZ_5CIQ6lGOUwFyNNsADP7Uu__GmuOz4A,37983
|
|
60
60
|
phoenix/experiments/tracing.py,sha256=seNh9rBH-rtQe8_FPI_VJj1rbo3ADcP6wDvERkMoxNc,2858
|
|
@@ -158,7 +158,7 @@ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY
|
|
|
158
158
|
phoenix/server/api/helpers/annotations.py,sha256=9gMXKpMTfWEChoSCnvdWYuyB0hlSnNOp-qUdar9Vono,262
|
|
159
159
|
phoenix/server/api/helpers/dataset_helpers.py,sha256=DoMBTg-qXTnC_K4Evx1WKpCCYgRbITpVqyY-8efJRf0,8984
|
|
160
160
|
phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
|
|
161
|
-
phoenix/server/api/helpers/playground_clients.py,sha256=
|
|
161
|
+
phoenix/server/api/helpers/playground_clients.py,sha256=6inOpdusWAJKvPyefEFCDdND7Lm-wa4gOMc7KRptIbs,43170
|
|
162
162
|
phoenix/server/api/helpers/playground_registry.py,sha256=CPLMziFB2wmr-dfbx7VbzO2f8YIG_k5RftzvGXYGQ1w,2570
|
|
163
163
|
phoenix/server/api/helpers/playground_spans.py,sha256=ObAhvV_yNwEQDkjzgU5G73wfIisc8q4cpB0OFH5cd24,16974
|
|
164
164
|
phoenix/server/api/helpers/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -397,9 +397,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
|
|
|
397
397
|
phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
|
|
398
398
|
phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
399
399
|
phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
|
|
400
|
-
arize_phoenix-10.2.
|
|
401
|
-
arize_phoenix-10.2.
|
|
402
|
-
arize_phoenix-10.2.
|
|
403
|
-
arize_phoenix-10.2.
|
|
404
|
-
arize_phoenix-10.2.
|
|
405
|
-
arize_phoenix-10.2.
|
|
400
|
+
arize_phoenix-10.2.2.dist-info/METADATA,sha256=IDFKRGlqJiS1SwJHhj310VMmYvG2H_GDCdOnSdYkUGg,26816
|
|
401
|
+
arize_phoenix-10.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
402
|
+
arize_phoenix-10.2.2.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
|
|
403
|
+
arize_phoenix-10.2.2.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
404
|
+
arize_phoenix-10.2.2.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
405
|
+
arize_phoenix-10.2.2.dist-info/RECORD,,
|
|
@@ -5,6 +5,7 @@ from typing import Annotated, Iterable, Literal, Optional, Union
|
|
|
5
5
|
|
|
6
6
|
import sqlalchemy as sa
|
|
7
7
|
from pydantic import AfterValidator, BaseModel, Field, RootModel
|
|
8
|
+
from sqlalchemy import func
|
|
8
9
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
9
10
|
|
|
10
11
|
from phoenix.utilities import hour_of_week
|
|
@@ -25,19 +26,25 @@ class _MaxDays(BaseModel):
|
|
|
25
26
|
class _MaxCount(BaseModel):
|
|
26
27
|
max_count: Annotated[int, Field(ge=0)]
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
def max_count_filter(
|
|
30
|
+
self,
|
|
31
|
+
project_rowids: Union[Iterable[int], sa.ScalarSelect[int]],
|
|
32
|
+
) -> sa.ColumnElement[bool]:
|
|
30
33
|
if self.max_count <= 0:
|
|
31
34
|
return sa.literal(False)
|
|
32
35
|
from phoenix.db.models import Trace
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
sa.select(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
ranked = (
|
|
38
|
+
sa.select(
|
|
39
|
+
Trace.id,
|
|
40
|
+
func.row_number()
|
|
41
|
+
.over(partition_by=Trace.project_rowid, order_by=Trace.start_time.desc())
|
|
42
|
+
.label("rn"),
|
|
43
|
+
)
|
|
44
|
+
.where(Trace.project_rowid.in_(project_rowids))
|
|
45
|
+
.cte("ranked")
|
|
40
46
|
)
|
|
47
|
+
return Trace.id.in_(sa.select(ranked.c.id).where(ranked.c.rn > self.max_count))
|
|
41
48
|
|
|
42
49
|
|
|
43
50
|
class MaxDaysRule(_MaxDays, BaseModel):
|
|
@@ -82,7 +89,7 @@ class MaxCountRule(_MaxCount, BaseModel):
|
|
|
82
89
|
stmt = (
|
|
83
90
|
sa.delete(Trace)
|
|
84
91
|
.where(Trace.project_rowid.in_(project_rowids))
|
|
85
|
-
.where(self.max_count_filter)
|
|
92
|
+
.where(self.max_count_filter(project_rowids))
|
|
86
93
|
.returning(Trace.project_rowid)
|
|
87
94
|
)
|
|
88
95
|
return set(await session.scalars(stmt))
|
|
@@ -106,7 +113,7 @@ class MaxDaysOrCountRule(_MaxDays, _MaxCount, BaseModel):
|
|
|
106
113
|
stmt = (
|
|
107
114
|
sa.delete(Trace)
|
|
108
115
|
.where(Trace.project_rowid.in_(project_rowids))
|
|
109
|
-
.where(sa.or_(self.max_days_filter, self.max_count_filter))
|
|
116
|
+
.where(sa.or_(self.max_days_filter, self.max_count_filter(project_rowids)))
|
|
110
117
|
.returning(Trace.project_rowid)
|
|
111
118
|
)
|
|
112
119
|
return set(await session.scalars(stmt))
|
|
@@ -472,7 +472,7 @@ class DeepSeekStreamingClient(OpenAIBaseStreamingClient):
|
|
|
472
472
|
base_url = model.base_url or getenv("DEEPSEEK_BASE_URL")
|
|
473
473
|
if not (api_key := api_key or getenv("DEEPSEEK_API_KEY")):
|
|
474
474
|
if not base_url:
|
|
475
|
-
raise BadRequest("An API key is required for
|
|
475
|
+
raise BadRequest("An API key is required for DeepSeek models")
|
|
476
476
|
api_key = "sk-fake-api-key"
|
|
477
477
|
client = AsyncOpenAI(api_key=api_key, base_url=base_url or "https://api.deepseek.com")
|
|
478
478
|
super().__init__(client=client, model=model, api_key=api_key)
|
phoenix/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "10.2.
|
|
1
|
+
__version__ = "10.2.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|