arize-phoenix 3.21.0__py3-none-any.whl → 3.22.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.3
2
2
  Name: arize-phoenix
3
- Version: 3.21.0
3
+ Version: 3.22.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
@@ -4,7 +4,7 @@ phoenix/datetime_utils.py,sha256=D955QLrkgrrSdUM6NyqbCeAu2SMsjhR5rHVQEsVUdng,277
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=AUUiMjCSSBMGjCFeufwNF9vNsTbcjSVTtsybgrAO03g,23
7
+ phoenix/version.py,sha256=x3T39dw3H8eGDej-Y0jaguyUerrE7bTqWl_cTqwt5aM,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
10
  phoenix/core/model.py,sha256=SBO8BZg_CeQuH5LrSgzlQfqMModzirkQePdhnbLw7dE,4756
@@ -138,7 +138,7 @@ phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_
138
138
  phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  phoenix/server/templates/index.html,sha256=lO2wGA5XsftPg03rw_VcyaYf_4vegtlWbIT5ms4fA_c,1982
140
140
  phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- phoenix/session/client.py,sha256=EMhzmsqquZbuuH0NX137npYLVJWEKI5OieeCBsVGh3A,7933
141
+ phoenix/session/client.py,sha256=cYLRxV6YfCcWgZdJaStACVIhaN9j5p8S72tCKrT0RZ4,9612
142
142
  phoenix/session/data_extractor.py,sha256=0Kf-2mKY_YbYoD2fZkAYpKdFgsXrC3OKQ5d2iZsGgAI,1947
143
143
  phoenix/session/evaluation.py,sha256=mR5HeBDmoS9oCb-X-2lpLCyMRoOgBufofbsjyEqCpMg,5390
144
144
  phoenix/session/session.py,sha256=P75qklh2HMgCCNiBghN3gjwRJiLIWzg1OshGt-fnzdM,24983
@@ -178,8 +178,8 @@ phoenix/utilities/error_handling.py,sha256=7b5rpGFj9EWZ8yrZK1IHvxB89suWk3lggDayU
178
178
  phoenix/utilities/logging.py,sha256=lDXd6EGaamBNcQxL4vP1au9-i_SXe0OraUDiJOcszSw,222
179
179
  phoenix/utilities/project.py,sha256=qWsvKnG1oKhOFUowXf9qiOL2ia7jaFe_ijFFHEt8GJo,431
180
180
  phoenix/utilities/span_store.py,sha256=13UK0rE4wQd70yl___WsDRnH0ru-xErng9_Ml7zfEwE,978
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,,
181
+ arize_phoenix-3.22.0.dist-info/METADATA,sha256=6Oog16HhrzCNfA5cS3JhS1OceuPvqiHL76Vzgz6hblE,29322
182
+ arize_phoenix-3.22.0.dist-info/WHEEL,sha256=K0BPUNF1N3kQ9olb8aVEtkObePEjdr2JOLT1N83EVws,87
183
+ arize_phoenix-3.22.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
184
+ arize_phoenix-3.22.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
185
+ arize_phoenix-3.22.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.22.5
2
+ Generator: hatchling 1.24.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
phoenix/session/client.py CHANGED
@@ -1,3 +1,4 @@
1
+ import gzip
1
2
  import logging
2
3
  import weakref
3
4
  from datetime import datetime
@@ -7,6 +8,10 @@ from urllib.parse import urljoin
7
8
 
8
9
  import pandas as pd
9
10
  import pyarrow as pa
11
+ from opentelemetry.proto.collector.trace.v1.trace_service_pb2 import ExportTraceServiceRequest
12
+ from opentelemetry.proto.common.v1.common_pb2 import AnyValue, KeyValue
13
+ from opentelemetry.proto.resource.v1.resource_pb2 import Resource
14
+ from opentelemetry.proto.trace.v1.trace_pb2 import ResourceSpans, ScopeSpans
10
15
  from pyarrow import ArrowInvalid
11
16
  from requests import Session
12
17
 
@@ -18,8 +23,9 @@ from phoenix.config import (
18
23
  get_env_project_name,
19
24
  )
20
25
  from phoenix.session.data_extractor import TraceDataExtractor
21
- from phoenix.trace import Evaluations
26
+ from phoenix.trace import Evaluations, TraceDataset
22
27
  from phoenix.trace.dsl import SpanQuery
28
+ from phoenix.trace.otel import encode
23
29
 
24
30
  logger = logging.getLogger(__name__)
25
31
 
@@ -193,6 +199,39 @@ class Client(TraceDataExtractor):
193
199
  headers=headers,
194
200
  ).raise_for_status()
195
201
 
202
+ def log_traces(self, trace_dataset: TraceDataset, project_name: Optional[str] = None) -> None:
203
+ project_name = project_name or get_env_project_name()
204
+ spans = trace_dataset.to_spans()
205
+ otlp_spans = [
206
+ ExportTraceServiceRequest(
207
+ resource_spans=[
208
+ ResourceSpans(
209
+ resource=Resource(
210
+ attributes=[
211
+ KeyValue(
212
+ key="openinference.project.name",
213
+ value=AnyValue(string_value=project_name),
214
+ )
215
+ ]
216
+ ),
217
+ scope_spans=[ScopeSpans(spans=[encode(span)])],
218
+ )
219
+ ],
220
+ )
221
+ for span in spans
222
+ ]
223
+ for otlp_span in otlp_spans:
224
+ serialized = otlp_span.SerializeToString()
225
+ data = gzip.compress(serialized)
226
+ self._session.post(
227
+ urljoin(self._base_url, "/v1/traces"),
228
+ data=data,
229
+ headers={
230
+ "content-type": "application/x-protobuf",
231
+ "content-encoding": "gzip",
232
+ },
233
+ ).raise_for_status()
234
+
196
235
 
197
236
  def _to_iso_format(value: Optional[datetime]) -> Optional[str]:
198
237
  return value.isoformat() if value else None
phoenix/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "3.21.0"
1
+ __version__ = "3.22.0"