arize-phoenix 2.0.0__py3-none-any.whl → 2.2.0rc0__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.

Files changed (34) hide show
  1. {arize_phoenix-2.0.0.dist-info → arize_phoenix-2.2.0rc0.dist-info}/METADATA +5 -1
  2. {arize_phoenix-2.0.0.dist-info → arize_phoenix-2.2.0rc0.dist-info}/RECORD +31 -29
  3. phoenix/__init__.py +2 -2
  4. phoenix/core/evals.py +29 -8
  5. phoenix/core/traces.py +45 -34
  6. phoenix/experimental/evals/__init__.py +4 -1
  7. phoenix/experimental/evals/evaluators.py +85 -8
  8. phoenix/experimental/evals/functions/classify.py +16 -41
  9. phoenix/experimental/evals/functions/executor.py +1 -0
  10. phoenix/experimental/evals/models/anthropic.py +171 -0
  11. phoenix/experimental/evals/models/vertex.py +155 -0
  12. phoenix/experimental/evals/templates/__init__.py +2 -0
  13. phoenix/experimental/evals/templates/default_templates.py +12 -0
  14. phoenix/experimental/evals/utils/__init__.py +64 -2
  15. phoenix/server/api/schema.py +24 -0
  16. phoenix/server/app.py +6 -5
  17. phoenix/server/main.py +6 -7
  18. phoenix/server/span_handler.py +7 -7
  19. phoenix/server/static/index.js +586 -499
  20. phoenix/server/templates/index.html +5 -1
  21. phoenix/server/trace_handler.py +56 -0
  22. phoenix/session/session.py +2 -1
  23. phoenix/trace/exporter.py +4 -3
  24. phoenix/trace/langchain/tracer.py +14 -4
  25. phoenix/trace/otel.py +409 -0
  26. phoenix/trace/semantic_conventions.py +2 -0
  27. phoenix/trace/v1/__init__.py +0 -4
  28. phoenix/version.py +1 -0
  29. phoenix/trace/v1/trace_pb2.py +0 -54
  30. phoenix/trace/v1/trace_pb2.pyi +0 -361
  31. phoenix/trace/v1/utils.py +0 -538
  32. {arize_phoenix-2.0.0.dist-info → arize_phoenix-2.2.0rc0.dist-info}/WHEEL +0 -0
  33. {arize_phoenix-2.0.0.dist-info → arize_phoenix-2.2.0rc0.dist-info}/licenses/IP_NOTICE +0 -0
  34. {arize_phoenix-2.0.0.dist-info → arize_phoenix-2.2.0rc0.dist-info}/licenses/LICENSE +0 -0
@@ -1,361 +0,0 @@
1
- """
2
- @generated by mypy-protobuf. Do not edit manually!
3
- isort:skip_file
4
- """
5
- import builtins
6
- import collections.abc
7
- import google.protobuf.descriptor
8
- import google.protobuf.internal.containers
9
- import google.protobuf.internal.enum_type_wrapper
10
- import google.protobuf.message
11
- import google.protobuf.struct_pb2
12
- import google.protobuf.timestamp_pb2
13
- import google.protobuf.wrappers_pb2
14
- import sys
15
- import typing
16
-
17
- if sys.version_info >= (3, 10):
18
- import typing as typing_extensions
19
- else:
20
- import typing_extensions
21
-
22
- DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
23
-
24
- @typing_extensions.final
25
- class Span(google.protobuf.message.Message):
26
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
27
-
28
- @typing_extensions.final
29
- class Context(google.protobuf.message.Message):
30
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
31
-
32
- TRACE_ID_FIELD_NUMBER: builtins.int
33
- SPAN_ID_FIELD_NUMBER: builtins.int
34
- trace_id: builtins.str
35
- span_id: builtins.str
36
- def __init__(
37
- self,
38
- *,
39
- trace_id: builtins.str = ...,
40
- span_id: builtins.str = ...,
41
- ) -> None: ...
42
- def ClearField(self, field_name: typing_extensions.Literal["span_id", b"span_id", "trace_id", b"trace_id"]) -> None: ...
43
-
44
- @typing_extensions.final
45
- class Status(google.protobuf.message.Message):
46
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
47
-
48
- class _Code:
49
- ValueType = typing.NewType("ValueType", builtins.int)
50
- V: typing_extensions.TypeAlias = ValueType
51
-
52
- class _CodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Span.Status._Code.ValueType], builtins.type):
53
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
54
- UNSET: Span.Status._Code.ValueType # 0
55
- OK: Span.Status._Code.ValueType # 1
56
- ERROR: Span.Status._Code.ValueType # 2
57
-
58
- class Code(_Code, metaclass=_CodeEnumTypeWrapper): ...
59
- UNSET: Span.Status.Code.ValueType # 0
60
- OK: Span.Status.Code.ValueType # 1
61
- ERROR: Span.Status.Code.ValueType # 2
62
-
63
- CODE_FIELD_NUMBER: builtins.int
64
- MESSAGE_FIELD_NUMBER: builtins.int
65
- code: global___Span.Status.Code.ValueType
66
- @property
67
- def message(self) -> google.protobuf.wrappers_pb2.StringValue: ...
68
- def __init__(
69
- self,
70
- *,
71
- code: global___Span.Status.Code.ValueType = ...,
72
- message: google.protobuf.wrappers_pb2.StringValue | None = ...,
73
- ) -> None: ...
74
- def HasField(self, field_name: typing_extensions.Literal["message", b"message"]) -> builtins.bool: ...
75
- def ClearField(self, field_name: typing_extensions.Literal["code", b"code", "message", b"message"]) -> None: ...
76
-
77
- @typing_extensions.final
78
- class Event(google.protobuf.message.Message):
79
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
80
-
81
- ATTRIBUTES_FIELD_NUMBER: builtins.int
82
- NAME_FIELD_NUMBER: builtins.int
83
- TIMESTAMP_FIELD_NUMBER: builtins.int
84
- @property
85
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
86
- name: builtins.str
87
- @property
88
- def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
89
- def __init__(
90
- self,
91
- *,
92
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
93
- name: builtins.str = ...,
94
- timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
95
- ) -> None: ...
96
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "timestamp", b"timestamp"]) -> builtins.bool: ...
97
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "name", b"name", "timestamp", b"timestamp"]) -> None: ...
98
-
99
- @typing_extensions.final
100
- class Exception(google.protobuf.message.Message):
101
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
102
-
103
- ATTRIBUTES_FIELD_NUMBER: builtins.int
104
- MESSAGE_FIELD_NUMBER: builtins.int
105
- TYPE_FIELD_NUMBER: builtins.int
106
- ESCAPED_FIELD_NUMBER: builtins.int
107
- STACKTRACE_FIELD_NUMBER: builtins.int
108
- TIMESTAMP_FIELD_NUMBER: builtins.int
109
- @property
110
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
111
- @property
112
- def message(self) -> google.protobuf.wrappers_pb2.StringValue: ...
113
- @property
114
- def type(self) -> google.protobuf.wrappers_pb2.StringValue: ...
115
- @property
116
- def escaped(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
117
- @property
118
- def stacktrace(self) -> google.protobuf.wrappers_pb2.StringValue: ...
119
- @property
120
- def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
121
- def __init__(
122
- self,
123
- *,
124
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
125
- message: google.protobuf.wrappers_pb2.StringValue | None = ...,
126
- type: google.protobuf.wrappers_pb2.StringValue | None = ...,
127
- escaped: google.protobuf.wrappers_pb2.BoolValue | None = ...,
128
- stacktrace: google.protobuf.wrappers_pb2.StringValue | None = ...,
129
- timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
130
- ) -> None: ...
131
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "escaped", b"escaped", "message", b"message", "stacktrace", b"stacktrace", "timestamp", b"timestamp", "type", b"type"]) -> builtins.bool: ...
132
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "escaped", b"escaped", "message", b"message", "stacktrace", b"stacktrace", "timestamp", b"timestamp", "type", b"type"]) -> None: ...
133
-
134
- @typing_extensions.final
135
- class IOValue(google.protobuf.message.Message):
136
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
137
-
138
- class _MimeType:
139
- ValueType = typing.NewType("ValueType", builtins.int)
140
- V: typing_extensions.TypeAlias = ValueType
141
-
142
- class _MimeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Span.IOValue._MimeType.ValueType], builtins.type):
143
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
144
- TEXT: Span.IOValue._MimeType.ValueType # 0
145
- JSON: Span.IOValue._MimeType.ValueType # 1
146
-
147
- class MimeType(_MimeType, metaclass=_MimeTypeEnumTypeWrapper): ...
148
- TEXT: Span.IOValue.MimeType.ValueType # 0
149
- JSON: Span.IOValue.MimeType.ValueType # 1
150
-
151
- VALUE_FIELD_NUMBER: builtins.int
152
- MIME_TYPE_FIELD_NUMBER: builtins.int
153
- value: builtins.str
154
- mime_type: global___Span.IOValue.MimeType.ValueType
155
- def __init__(
156
- self,
157
- *,
158
- value: builtins.str = ...,
159
- mime_type: global___Span.IOValue.MimeType.ValueType = ...,
160
- ) -> None: ...
161
- def ClearField(self, field_name: typing_extensions.Literal["mime_type", b"mime_type", "value", b"value"]) -> None: ...
162
-
163
- ATTRIBUTES_FIELD_NUMBER: builtins.int
164
- CONTEXT_FIELD_NUMBER: builtins.int
165
- PARENT_SPAN_ID_FIELD_NUMBER: builtins.int
166
- NAME_FIELD_NUMBER: builtins.int
167
- START_TIME_FIELD_NUMBER: builtins.int
168
- END_TIME_FIELD_NUMBER: builtins.int
169
- STATUS_FIELD_NUMBER: builtins.int
170
- EVENTS_FIELD_NUMBER: builtins.int
171
- EXCEPTIONS_FIELD_NUMBER: builtins.int
172
- INPUT_FIELD_NUMBER: builtins.int
173
- OUTPUT_FIELD_NUMBER: builtins.int
174
- KIND_FIELD_NUMBER: builtins.int
175
- RETRIEVAL_FIELD_NUMBER: builtins.int
176
- EMBEDDING_FIELD_NUMBER: builtins.int
177
- LLM_FIELD_NUMBER: builtins.int
178
- TOOL_FIELD_NUMBER: builtins.int
179
- @property
180
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
181
- @property
182
- def context(self) -> global___Span.Context: ...
183
- @property
184
- def parent_span_id(self) -> google.protobuf.wrappers_pb2.StringValue: ...
185
- name: builtins.str
186
- @property
187
- def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
188
- @property
189
- def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
190
- @property
191
- def status(self) -> global___Span.Status: ...
192
- @property
193
- def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span.Event]: ...
194
- @property
195
- def exceptions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span.Exception]: ...
196
- @property
197
- def input(self) -> global___Span.IOValue: ...
198
- @property
199
- def output(self) -> global___Span.IOValue: ...
200
- kind: builtins.str
201
- @property
202
- def retrieval(self) -> global___Retrieval: ...
203
- @property
204
- def embedding(self) -> global___Embedding: ...
205
- @property
206
- def llm(self) -> global___LLM: ...
207
- @property
208
- def tool(self) -> global___Tool: ...
209
- def __init__(
210
- self,
211
- *,
212
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
213
- context: global___Span.Context | None = ...,
214
- parent_span_id: google.protobuf.wrappers_pb2.StringValue | None = ...,
215
- name: builtins.str = ...,
216
- start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
217
- end_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
218
- status: global___Span.Status | None = ...,
219
- events: collections.abc.Iterable[global___Span.Event] | None = ...,
220
- exceptions: collections.abc.Iterable[global___Span.Exception] | None = ...,
221
- input: global___Span.IOValue | None = ...,
222
- output: global___Span.IOValue | None = ...,
223
- kind: builtins.str = ...,
224
- retrieval: global___Retrieval | None = ...,
225
- embedding: global___Embedding | None = ...,
226
- llm: global___LLM | None = ...,
227
- tool: global___Tool | None = ...,
228
- ) -> None: ...
229
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "context", b"context", "embedding", b"embedding", "end_time", b"end_time", "input", b"input", "llm", b"llm", "output", b"output", "parent_span_id", b"parent_span_id", "retrieval", b"retrieval", "start_time", b"start_time", "status", b"status", "tool", b"tool"]) -> builtins.bool: ...
230
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "context", b"context", "embedding", b"embedding", "end_time", b"end_time", "events", b"events", "exceptions", b"exceptions", "input", b"input", "kind", b"kind", "llm", b"llm", "name", b"name", "output", b"output", "parent_span_id", b"parent_span_id", "retrieval", b"retrieval", "start_time", b"start_time", "status", b"status", "tool", b"tool"]) -> None: ...
231
-
232
- global___Span = Span
233
-
234
- @typing_extensions.final
235
- class Retrieval(google.protobuf.message.Message):
236
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
237
-
238
- @typing_extensions.final
239
- class Document(google.protobuf.message.Message):
240
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
241
-
242
- ATTRIBUTES_FIELD_NUMBER: builtins.int
243
- ID_FIELD_NUMBER: builtins.int
244
- SCORE_FIELD_NUMBER: builtins.int
245
- CONTENT_FIELD_NUMBER: builtins.int
246
- METADATA_FIELD_NUMBER: builtins.int
247
- HASH_FIELD_NUMBER: builtins.int
248
- @property
249
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
250
- @property
251
- def id(self) -> google.protobuf.wrappers_pb2.StringValue: ...
252
- @property
253
- def score(self) -> google.protobuf.wrappers_pb2.FloatValue: ...
254
- @property
255
- def content(self) -> google.protobuf.wrappers_pb2.StringValue: ...
256
- @property
257
- def metadata(self) -> google.protobuf.struct_pb2.Struct: ...
258
- @property
259
- def hash(self) -> google.protobuf.wrappers_pb2.BytesValue: ...
260
- def __init__(
261
- self,
262
- *,
263
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
264
- id: google.protobuf.wrappers_pb2.StringValue | None = ...,
265
- score: google.protobuf.wrappers_pb2.FloatValue | None = ...,
266
- content: google.protobuf.wrappers_pb2.StringValue | None = ...,
267
- metadata: google.protobuf.struct_pb2.Struct | None = ...,
268
- hash: google.protobuf.wrappers_pb2.BytesValue | None = ...,
269
- ) -> None: ...
270
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "content", b"content", "hash", b"hash", "id", b"id", "metadata", b"metadata", "score", b"score"]) -> builtins.bool: ...
271
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "content", b"content", "hash", b"hash", "id", b"id", "metadata", b"metadata", "score", b"score"]) -> None: ...
272
-
273
- DOCUMENTS_FIELD_NUMBER: builtins.int
274
- @property
275
- def documents(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Retrieval.Document]: ...
276
- def __init__(
277
- self,
278
- *,
279
- documents: collections.abc.Iterable[global___Retrieval.Document] | None = ...,
280
- ) -> None: ...
281
- def ClearField(self, field_name: typing_extensions.Literal["documents", b"documents"]) -> None: ...
282
-
283
- global___Retrieval = Retrieval
284
-
285
- @typing_extensions.final
286
- class Embedding(google.protobuf.message.Message):
287
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
288
-
289
- @typing_extensions.final
290
- class Embedding(google.protobuf.message.Message):
291
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
292
-
293
- ATTRIBUTES_FIELD_NUMBER: builtins.int
294
- VECTOR_FIELD_NUMBER: builtins.int
295
- TEXT_FIELD_NUMBER: builtins.int
296
- @property
297
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
298
- @property
299
- def vector(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
300
- @property
301
- def text(self) -> google.protobuf.wrappers_pb2.StringValue: ...
302
- def __init__(
303
- self,
304
- *,
305
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
306
- vector: collections.abc.Iterable[builtins.float] | None = ...,
307
- text: google.protobuf.wrappers_pb2.StringValue | None = ...,
308
- ) -> None: ...
309
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "text", b"text"]) -> builtins.bool: ...
310
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "text", b"text", "vector", b"vector"]) -> None: ...
311
-
312
- EMBEDDINGS_FIELD_NUMBER: builtins.int
313
- MODEL_NAME_FIELD_NUMBER: builtins.int
314
- @property
315
- def embeddings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Embedding.Embedding]: ...
316
- @property
317
- def model_name(self) -> google.protobuf.wrappers_pb2.StringValue: ...
318
- def __init__(
319
- self,
320
- *,
321
- embeddings: collections.abc.Iterable[global___Embedding.Embedding] | None = ...,
322
- model_name: google.protobuf.wrappers_pb2.StringValue | None = ...,
323
- ) -> None: ...
324
- def HasField(self, field_name: typing_extensions.Literal["model_name", b"model_name"]) -> builtins.bool: ...
325
- def ClearField(self, field_name: typing_extensions.Literal["embeddings", b"embeddings", "model_name", b"model_name"]) -> None: ...
326
-
327
- global___Embedding = Embedding
328
-
329
- @typing_extensions.final
330
- class LLM(google.protobuf.message.Message):
331
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
332
-
333
- ATTRIBUTES_FIELD_NUMBER: builtins.int
334
- @property
335
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
336
- def __init__(
337
- self,
338
- *,
339
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
340
- ) -> None: ...
341
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes"]) -> builtins.bool: ...
342
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes"]) -> None: ...
343
-
344
- global___LLM = LLM
345
-
346
- @typing_extensions.final
347
- class Tool(google.protobuf.message.Message):
348
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
349
-
350
- ATTRIBUTES_FIELD_NUMBER: builtins.int
351
- @property
352
- def attributes(self) -> google.protobuf.struct_pb2.Struct: ...
353
- def __init__(
354
- self,
355
- *,
356
- attributes: google.protobuf.struct_pb2.Struct | None = ...,
357
- ) -> None: ...
358
- def HasField(self, field_name: typing_extensions.Literal["attributes", b"attributes"]) -> builtins.bool: ...
359
- def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes"]) -> None: ...
360
-
361
- global___Tool = Tool