arize-phoenix 8.28.0__py3-none-any.whl → 8.29.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-8.28.0.dist-info → arize_phoenix-8.29.0.dist-info}/METADATA +1 -1
- {arize_phoenix-8.28.0.dist-info → arize_phoenix-8.29.0.dist-info}/RECORD +17 -17
- phoenix/config.py +269 -3
- phoenix/db/README.md +299 -0
- phoenix/server/api/queries.py +0 -3
- phoenix/server/api/types/Functionality.py +0 -3
- phoenix/server/grpc_server.py +19 -2
- phoenix/server/main.py +45 -7
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-BEtrHoeq.js → components-DepxScNF.js} +6 -1
- phoenix/server/static/assets/{index-Cdj4_6tq.js → index-DUj7q3Q4.js} +1 -1
- phoenix/server/static/assets/{pages-CZ0wMeOx.js → pages-CJUakDKi.js} +6 -7
- phoenix/version.py +1 -1
- {arize_phoenix-8.28.0.dist-info → arize_phoenix-8.29.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-8.28.0.dist-info → arize_phoenix-8.29.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-8.28.0.dist-info → arize_phoenix-8.29.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-8.28.0.dist-info → arize_phoenix-8.29.0.dist-info}/licenses/LICENSE +0 -0
phoenix/server/api/queries.py
CHANGED
|
@@ -427,11 +427,8 @@ class Query:
|
|
|
427
427
|
@strawberry.field
|
|
428
428
|
async def functionality(self, info: Info[Context, None]) -> "Functionality":
|
|
429
429
|
has_model_inferences = not info.context.model.is_empty
|
|
430
|
-
async with info.context.db() as session:
|
|
431
|
-
has_traces = (await session.scalar(select(models.Trace).limit(1))) is not None
|
|
432
430
|
return Functionality(
|
|
433
431
|
model_inferences=has_model_inferences,
|
|
434
|
-
tracing=has_traces,
|
|
435
432
|
)
|
|
436
433
|
|
|
437
434
|
@strawberry.field
|
phoenix/server/grpc_server.py
CHANGED
|
@@ -14,7 +14,11 @@ from opentelemetry.proto.collector.trace.v1.trace_service_pb2_grpc import (
|
|
|
14
14
|
from typing_extensions import TypeAlias
|
|
15
15
|
|
|
16
16
|
from phoenix.auth import CanReadToken
|
|
17
|
-
from phoenix.config import
|
|
17
|
+
from phoenix.config import (
|
|
18
|
+
TLSConfigVerifyClient,
|
|
19
|
+
get_env_grpc_port,
|
|
20
|
+
get_env_tls_config,
|
|
21
|
+
)
|
|
18
22
|
from phoenix.server.bearer_auth import ApiKeyInterceptor
|
|
19
23
|
from phoenix.trace.otel import decode_otlp_span
|
|
20
24
|
from phoenix.trace.schemas import Span
|
|
@@ -86,7 +90,20 @@ class GrpcServer:
|
|
|
86
90
|
options=(("grpc.so_reuseport", 0),),
|
|
87
91
|
interceptors=interceptors,
|
|
88
92
|
)
|
|
89
|
-
|
|
93
|
+
if tls_config := get_env_tls_config():
|
|
94
|
+
private_key_certificate_chain_pairs = [(tls_config.key_data, tls_config.cert_data)]
|
|
95
|
+
server_credentials = (
|
|
96
|
+
grpc.ssl_server_credentials(
|
|
97
|
+
private_key_certificate_chain_pairs,
|
|
98
|
+
root_certificates=tls_config.ca_data,
|
|
99
|
+
require_client_auth=True,
|
|
100
|
+
)
|
|
101
|
+
if isinstance(tls_config, TLSConfigVerifyClient)
|
|
102
|
+
else grpc.ssl_server_credentials(private_key_certificate_chain_pairs)
|
|
103
|
+
)
|
|
104
|
+
server.add_secure_port(f"[::]:{get_env_grpc_port()}", server_credentials)
|
|
105
|
+
else:
|
|
106
|
+
server.add_insecure_port(f"[::]:{get_env_grpc_port()}")
|
|
90
107
|
add_TraceServiceServicer_to_server(Servicer(self._callback), server) # type: ignore[no-untyped-call,unused-ignore]
|
|
91
108
|
await server.start()
|
|
92
109
|
self._server = server
|
phoenix/server/main.py
CHANGED
|
@@ -4,6 +4,7 @@ import os
|
|
|
4
4
|
import sys
|
|
5
5
|
from argparse import SUPPRESS, ArgumentParser
|
|
6
6
|
from pathlib import Path
|
|
7
|
+
from ssl import CERT_REQUIRED
|
|
7
8
|
from threading import Thread
|
|
8
9
|
from time import sleep, time
|
|
9
10
|
from typing import Optional
|
|
@@ -15,6 +16,7 @@ from uvicorn import Config, Server
|
|
|
15
16
|
import phoenix.trace.v1 as pb
|
|
16
17
|
from phoenix.config import (
|
|
17
18
|
EXPORT_DIR,
|
|
19
|
+
TLSConfigVerifyClient,
|
|
18
20
|
get_env_access_token_expiry,
|
|
19
21
|
get_env_allowed_origins,
|
|
20
22
|
get_env_auth_settings,
|
|
@@ -39,6 +41,7 @@ from phoenix.config import (
|
|
|
39
41
|
get_env_smtp_port,
|
|
40
42
|
get_env_smtp_username,
|
|
41
43
|
get_env_smtp_validate_certs,
|
|
44
|
+
get_env_tls_config,
|
|
42
45
|
get_pids_path,
|
|
43
46
|
)
|
|
44
47
|
from phoenix.core.model_schema_adapter import create_model_from_inferences
|
|
@@ -98,15 +101,22 @@ _WELCOME_MESSAGE = Environment(loader=BaseLoader()).from_string("""
|
|
|
98
101
|
| 🚀 Phoenix Server 🚀
|
|
99
102
|
| Phoenix UI: {{ ui_path }}
|
|
100
103
|
| Authentication: {{ auth_enabled }}
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
{%- if tls_enabled %}
|
|
105
|
+
| TLS: Enabled
|
|
106
|
+
{%- if tls_verify_client %}
|
|
107
|
+
| TLS Client Verification: Enabled
|
|
108
|
+
{%- endif %}
|
|
109
|
+
{%- endif %}
|
|
110
|
+
{%- if allowed_origins %}
|
|
111
|
+
| Allowed Origins: {{ allowed_origins }}
|
|
112
|
+
{%- endif %}
|
|
103
113
|
| Log traces:
|
|
104
114
|
| - gRPC: {{ grpc_path }}
|
|
105
115
|
| - HTTP: {{ http_path }}
|
|
106
116
|
| Storage: {{ storage }}
|
|
107
|
-
{
|
|
117
|
+
{%- if schema %}
|
|
108
118
|
| - Schema: {{ schema }}
|
|
109
|
-
{
|
|
119
|
+
{%- endif %}
|
|
110
120
|
""")
|
|
111
121
|
|
|
112
122
|
|
|
@@ -356,16 +366,24 @@ def main() -> None:
|
|
|
356
366
|
|
|
357
367
|
allowed_origins = get_env_allowed_origins()
|
|
358
368
|
|
|
369
|
+
# Get TLS configuration
|
|
370
|
+
tls_config = get_env_tls_config()
|
|
371
|
+
tls_enabled = tls_config is not None
|
|
372
|
+
tls_verify_client = tls_enabled and isinstance(tls_config, TLSConfigVerifyClient)
|
|
373
|
+
|
|
359
374
|
# Print information about the server
|
|
360
|
-
|
|
375
|
+
scheme = "https" if tls_enabled else "http"
|
|
376
|
+
root_path = urljoin(f"{scheme}://{host}:{port}", host_root_path)
|
|
361
377
|
msg = _WELCOME_MESSAGE.render(
|
|
362
378
|
version=phoenix_version,
|
|
363
379
|
ui_path=root_path,
|
|
364
|
-
grpc_path=f"
|
|
380
|
+
grpc_path=f"{scheme}://{host}:{get_env_grpc_port()}",
|
|
365
381
|
http_path=urljoin(root_path, "v1/traces"),
|
|
366
382
|
storage=get_printable_db_url(db_connection_str),
|
|
367
383
|
schema=get_env_database_schema(),
|
|
368
384
|
auth_enabled=authentication_enabled,
|
|
385
|
+
tls_enabled=tls_enabled,
|
|
386
|
+
tls_verify_client=tls_verify_client,
|
|
369
387
|
allowed_origins=allowed_origins,
|
|
370
388
|
)
|
|
371
389
|
if sys.platform.startswith("win"):
|
|
@@ -417,7 +435,27 @@ def main() -> None:
|
|
|
417
435
|
oauth2_client_configs=get_env_oauth2_settings(),
|
|
418
436
|
allowed_origins=allowed_origins,
|
|
419
437
|
)
|
|
420
|
-
|
|
438
|
+
|
|
439
|
+
# Configure server with TLS if enabled
|
|
440
|
+
server_config = Config(
|
|
441
|
+
app=app,
|
|
442
|
+
host=host, # type: ignore[arg-type]
|
|
443
|
+
port=port,
|
|
444
|
+
root_path=host_root_path,
|
|
445
|
+
)
|
|
446
|
+
|
|
447
|
+
if tls_config:
|
|
448
|
+
# Configure SSL context with certificate and key
|
|
449
|
+
server_config.ssl_keyfile = str(tls_config.key_file)
|
|
450
|
+
server_config.ssl_keyfile_password = tls_config.key_file_password
|
|
451
|
+
server_config.ssl_certfile = str(tls_config.cert_file)
|
|
452
|
+
|
|
453
|
+
# If CA file is provided and client verification is enabled
|
|
454
|
+
if isinstance(tls_config, TLSConfigVerifyClient):
|
|
455
|
+
server_config.ssl_ca_certs = str(tls_config.ca_file)
|
|
456
|
+
server_config.ssl_cert_reqs = CERT_REQUIRED
|
|
457
|
+
|
|
458
|
+
server = Server(config=server_config)
|
|
421
459
|
Thread(target=_write_pid_file_when_ready, args=(server,), daemon=True).start()
|
|
422
460
|
|
|
423
461
|
try:
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-DepxScNF.js": {
|
|
3
|
+
"file": "assets/components-DepxScNF.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
6
|
"_vendor-BfhM_F1u.js",
|
|
7
|
-
"_pages-
|
|
7
|
+
"_pages-CJUakDKi.js",
|
|
8
8
|
"_vendor-arizeai-CxXYQNUl.js",
|
|
9
9
|
"_vendor-codemirror-B0NIFPOL.js",
|
|
10
10
|
"_vendor-three-C5WAXd5r.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-CJUakDKi.js": {
|
|
14
|
+
"file": "assets/pages-CJUakDKi.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
17
|
"_vendor-BfhM_F1u.js",
|
|
18
18
|
"_vendor-arizeai-CxXYQNUl.js",
|
|
19
|
-
"_components-
|
|
19
|
+
"_components-DepxScNF.js",
|
|
20
20
|
"_vendor-codemirror-B0NIFPOL.js",
|
|
21
21
|
"_vendor-recharts-CrrDFWK1.js"
|
|
22
22
|
]
|
|
@@ -69,15 +69,15 @@
|
|
|
69
69
|
"name": "vendor-three"
|
|
70
70
|
},
|
|
71
71
|
"index.tsx": {
|
|
72
|
-
"file": "assets/index-
|
|
72
|
+
"file": "assets/index-DUj7q3Q4.js",
|
|
73
73
|
"name": "index",
|
|
74
74
|
"src": "index.tsx",
|
|
75
75
|
"isEntry": true,
|
|
76
76
|
"imports": [
|
|
77
77
|
"_vendor-BfhM_F1u.js",
|
|
78
78
|
"_vendor-arizeai-CxXYQNUl.js",
|
|
79
|
-
"_pages-
|
|
80
|
-
"_components-
|
|
79
|
+
"_pages-CJUakDKi.js",
|
|
80
|
+
"_components-DepxScNF.js",
|
|
81
81
|
"_vendor-three-C5WAXd5r.js",
|
|
82
82
|
"_vendor-codemirror-B0NIFPOL.js",
|
|
83
83
|
"_vendor-shiki-C5bJ-RPf.js",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as p,R as U,j as e,u as dn,a as ze,e as r1,s as P1,b as O1,c as Be,d as X1,f as wi,g as Le,h as xi,i as ki,k as Y1,l as s,m as _e,p as b1,n as Xe,o as Ze,q as Si,C as c1,t as Mi,v as Ti,w as N,L as wa,x as xa,y as ka,z as ge,A as C,B as v1,D as un,E as m,F as Sa,$ as zi,G as Ma,H as Ta,I as Ne,J as gn,K as X,M as Ii,N as Ai,O as Ei,P as K,Q as d1,S as O,T as H,U as R,V as za,W as Ia,X as Vi,Y as Aa,Z as Di,_ as Pi,a0 as Oi,a1 as Fi,a2 as _i,a3 as Ni,a4 as Ri,a5 as $i,a6 as Hi,a7 as C1,a8 as Ki,a9 as Bi,aa as Zi,ab as ji,ac as Me,ad as J1,ae as en,af as nn,ag as _,ah as Te,ai as $n,aj as Gi,ak as Ui,al as Ea,am as Wi,an as Qi,ao as qi,ap as Xi,aq as Yi,ar as Ji,as as er,at as nr,au as ar,av as tr,aw as ir,ax as F,ay as mn,az as rr,aA as or,aB as lr,aC as sr,aD as cr,aE as Hn,aF as Ee,aG as Va,aH as dr,aI as Da,aJ as ur,aK as gr,aL as pn,aM as mr,aN as pr,aO as hr,aP as fr,aQ as br,aR as vr,aS as Cr,aT as Kn,aU as yr,aV as Lr,aW as wr,aX as F1,aY as xr,aZ as kr,a_ as Sr,a$ as Mr,b0 as Tr,b1 as zr,b2 as Ir,b3 as Ar,b4 as Er}from"./vendor-BfhM_F1u.js";import{a as Bn,R as Vr,b as Dr,c as Pr,m as Or,T as Fr,u as _r}from"./pages-
|
|
1
|
+
import{r as p,R as U,j as e,u as dn,a as ze,e as r1,s as P1,b as O1,c as Be,d as X1,f as wi,g as Le,h as xi,i as ki,k as Y1,l as s,m as _e,p as b1,n as Xe,o as Ze,q as Si,C as c1,t as Mi,v as Ti,w as N,L as wa,x as xa,y as ka,z as ge,A as C,B as v1,D as un,E as m,F as Sa,$ as zi,G as Ma,H as Ta,I as Ne,J as gn,K as X,M as Ii,N as Ai,O as Ei,P as K,Q as d1,S as O,T as H,U as R,V as za,W as Ia,X as Vi,Y as Aa,Z as Di,_ as Pi,a0 as Oi,a1 as Fi,a2 as _i,a3 as Ni,a4 as Ri,a5 as $i,a6 as Hi,a7 as C1,a8 as Ki,a9 as Bi,aa as Zi,ab as ji,ac as Me,ad as J1,ae as en,af as nn,ag as _,ah as Te,ai as $n,aj as Gi,ak as Ui,al as Ea,am as Wi,an as Qi,ao as qi,ap as Xi,aq as Yi,ar as Ji,as as er,at as nr,au as ar,av as tr,aw as ir,ax as F,ay as mn,az as rr,aA as or,aB as lr,aC as sr,aD as cr,aE as Hn,aF as Ee,aG as Va,aH as dr,aI as Da,aJ as ur,aK as gr,aL as pn,aM as mr,aN as pr,aO as hr,aP as fr,aQ as br,aR as vr,aS as Cr,aT as Kn,aU as yr,aV as Lr,aW as wr,aX as F1,aY as xr,aZ as kr,a_ as Sr,a$ as Mr,b0 as Tr,b1 as zr,b2 as Ir,b3 as Ar,b4 as Er}from"./vendor-BfhM_F1u.js";import{a as Bn,R as Vr,b as Dr,c as Pr,m as Or,T as Fr,u as _r}from"./pages-CJUakDKi.js";import{u as Nr,_ as Pa,a as he,T as le,E as Oa,b as Re,c as fe,d as Rr,D as y1,e as $r,f as ue,g as Hr,C as Fa,P as hn,h as _a,i as Kr,F as Na,I as Br,j as Zr,k as jr,l as Gr,m as Ur,n as Wr,o as Qr,p as qr,q as Ra,r as $a,s as Xr,t as Yr}from"./vendor-arizeai-CxXYQNUl.js";import{L as Ha,a as Ka,d as Ue,E as fn,k as Ba,b as Za,l as an,h as Jr,j as eo,c as no,e as ao,f as to,s as io,g as Ye,i as Je,R as e1,p as ro,m as oo}from"./vendor-codemirror-B0NIFPOL.js";import{V as lo}from"./vendor-three-C5WAXd5r.js";const ja=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},a={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},t={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},i={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},r={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},o=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],l=[{alias:null,args:[{kind:"Variable",name:"clusters",variableName:"clusters"}],concreteType:"Cluster",kind:"LinkedField",name:"clusters",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"eventIds",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"driftRatio",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"primaryToCorpusRatio",storageKey:null},{condition:"fetchDataQualityMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"columnName",variableName:"dataQualityMetricColumnName"},{kind:"Literal",name:"metric",value:"mean"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"dataQualityMetric",plural:!1,selections:o,storageKey:null}]},{condition:"fetchPerformanceMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"metric",variableName:"performanceMetric"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"performanceMetric",plural:!1,selections:o,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,a,t,i,r],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:l,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,t,a,i,r],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:l},params:{cacheID:"86666967012812887ac0a0149d2d2535",id:null,metadata:{},name:"pointCloudStore_clusterMetricsQuery",operationKind:"query",text:`query pointCloudStore_clusterMetricsQuery(
|
|
2
2
|
$clusters: [ClusterInput!]!
|
|
3
3
|
$fetchDataQualityMetric: Boolean!
|
|
4
4
|
$dataQualityMetricColumnName: String
|
|
@@ -1755,6 +1755,9 @@ import{r as p,R as U,j as e,u as dn,a as ze,e as r1,s as P1,b as O1,c as Be,d as
|
|
|
1755
1755
|
}
|
|
1756
1756
|
}
|
|
1757
1757
|
`;function W2(n,a){const{size:t="M",...i}=n;return e(nt,{size:t,children:e(ir,{"data-size":t,className:"ac-select",ref:a,...i,css:m(be,U2)})})}p.forwardRef(W2);const Q2=p.forwardRef((n,a)=>{const{children:t,...i}=n;return e(d1,{...i,ref:a,children:({isSelected:r})=>s(k,{direction:"row",justifyContent:"space-between",alignItems:"center",children:[e("span",{children:t}),r&&e(M,{svg:e(xt,{})})]})})});Q2.displayName="SelectItem";const h1={OPENAI:["required","auto","none"],AZURE_OPENAI:["required","auto","none"],ANTHROPIC:["any","auto","none"]},q2=(n,a)=>{switch(n){case"AZURE_OPENAI":case"OPENAI":return J(a)&&"type"in a&&typeof a.type=="string"?a.type:a;case"ANTHROPIC":return J(a)&&"type"in a&&typeof a.type=="string"?a.type:a;case"GOOGLE":return"auto";default:I()}},H4=n=>n in h1,ca=(n,a)=>{var t;return((t=h1[n])==null?void 0:t.includes(a))??!1},f1="tool_",da=n=>`${f1}${n}`,ua=n=>n.startsWith(f1)?n.slice(f1.length):n,X2=({choiceType:n})=>{switch(n){case"any":case"required":return s(k,{gap:"size-100",width:"100%",children:["Use at least one tool"," ",e(ke,{color:"var(--ac-global-color-grey-900)",size:"S",children:n})]});case"none":return s(k,{gap:"size-100",width:"100%",children:["Don't use any tools"," ",e(ke,{color:"var(--ac-global-color-grey-900)",size:"S",children:n})]});case"auto":default:return s(k,{gap:"size-100",width:"100%",children:["Tools auto-selected by LLM"," ",e(ke,{color:"var(--ac-global-color-grey-900)",size:"S",children:n})]})}};function K4({choice:n,onChange:a,toolNames:t,provider:i}){const r=q2(i,n),l=ca(i,r)?r:da(xl(n)??"");return e(Re,{selectedKey:l,label:"Tool Choice","aria-label":"Tool Choice for an LLM",onSelectionChange:c=>{if(typeof c=="string"){if(c.startsWith(f1))switch(i){case"AZURE_OPENAI":case"OPENAI":a(Jn({type:"function",function:{name:ua(c)}}));break;case"ANTHROPIC":a(ea({type:"tool",name:ua(c)}));break;default:I()}else if(ca(i,c))switch(i){case"AZURE_OPENAI":case"OPENAI":a(Jn(c));break;case"ANTHROPIC":a(ea({type:c}));break;default:I()}}},children:[...h1[i]?h1[i].map(c=>e(F,{textValue:c,children:e(X2,{choiceType:c})},c)):[],...t.map(c=>e(F,{textValue:c,children:c},da(c)))]})}const Y2=({height:n})=>s("svg",{viewBox:"0 0 24 24",width:n,height:n,xmlns:"http://www.w3.org/2000/svg",children:[e("title",{children:"Azure"}),e("path",{d:"M11.49 2H2v9.492h9.492V2h-.002z",fill:"#F25022"}),e("path",{d:"M22 2h-9.492v9.492H22V2z",fill:"#7FBA00"}),e("path",{d:"M11.49 12.508H2V22h9.492v-9.492h-.002z",fill:"#00A4EF"}),e("path",{d:"M22 12.508h-9.492V22H22v-9.492z",fill:"#FFB900"})]}),J2=({height:n})=>s("svg",{viewBox:"0 0 24 24",width:n,height:n,xmlns:"http://www.w3.org/2000/svg",children:[e("title",{children:"Google"}),e("defs",{children:s("linearGradient",{id:"lobe-icons-google-fill",x1:"0%",x2:"68.73%",y1:"100%",y2:"30.395%",children:[e("stop",{offset:"0%",stopColor:"#1C7DFF"}),e("stop",{offset:"52.021%",stopColor:"#1C69FF"}),e("stop",{offset:"100%",stopColor:"#F0DCD6"})]})}),e("path",{d:"M12 24A14.304 14.304 0 000 12 14.304 14.304 0 0012 0a14.305 14.305 0 0012 12 14.305 14.305 0 00-12 12",fill:"url(#lobe-icons-google-fill)",fillRule:"nonzero"})]}),es=({height:n})=>s("svg",{fill:"var(--ac-global-text-color-900)",fillRule:"evenodd",viewBox:"0 0 24 24",width:n,height:n,xmlns:"http://www.w3.org/2000/svg",children:[e("title",{children:"OpenAI"}),e("path",{d:"M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z"})]}),ns=({height:n})=>s("svg",{fill:"var(--ac-global-text-color-900)",fillRule:"evenodd",viewBox:"0 0 24 24",width:n,height:n,xmlns:"http://www.w3.org/2000/svg",children:[e("title",{children:"Anthropic"}),e("path",{d:"M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z"})]}),as={AZURE_OPENAI:Y2,GOOGLE:J2,OPENAI:es,ANTHROPIC:ns};function B4({provider:n,height:a=18}){return as[n]({height:a})}const Dt=m`
|
|
1758
|
+
// fixes table row sizing issues with full height cell children
|
|
1759
|
+
// this enables features like hovering anywhere on a cell to display controls
|
|
1760
|
+
height: fit-content;
|
|
1758
1761
|
font-size: var(--ac-global-font-size-s);
|
|
1759
1762
|
width: 100%;
|
|
1760
1763
|
border-collapse: separate;
|
|
@@ -1814,6 +1817,8 @@ import{r as p,R as U,j as e,u as dn,a as ze,e as r1,s as P1,b as O1,c as Be,d as
|
|
|
1814
1817
|
}
|
|
1815
1818
|
tbody:not(.is-empty) {
|
|
1816
1819
|
tr {
|
|
1820
|
+
// when paired with table.height:fit-content, allows table cells and their children to fill entire row height
|
|
1821
|
+
height: 100%;
|
|
1817
1822
|
&:not(:last-of-type) {
|
|
1818
1823
|
& > td {
|
|
1819
1824
|
border-bottom: 1px solid var(--ac-global-border-color-default);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as t,j as o,bp as z,l as c,P as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,bF as C,el as l,w as E,em as R}from"./vendor-BfhM_F1u.js";import{c as I,x as j,D as A,K as T,M as _}from"./vendor-arizeai-CxXYQNUl.js";import{L as D,r as O,d as G,e as M,F as N,f as V,P as q,h as K,M as m,g as U,D as W,i as B,E as H,j as J,k as Y,p as $,l as X,n as p,o as Z,q as Q,s as oo,S as lo,t as ao,v as ro,w as co,x as go,y as eo,z as bo,A as u,B as f,C as y,G as no,H as io,I as so,J as to,K as mo,N as po,O as uo,Q as fo,U as yo,V as vo,W as ho,X as xo,Y as zo,Z as wo,_ as Po,$ as ko,a0 as So,a1 as Fo,a2 as Lo,a3 as Co,a4 as Eo,a5 as Ro,a6 as Io,a7 as jo,a8 as Ao,a9 as To,aa as _o,ab as Do,ac as Oo,ad as Go,ae as Mo,af as No,ag as Vo,ah as qo}from"./pages-
|
|
1
|
+
import{r as t,j as o,bp as z,l as c,P as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,bF as C,el as l,w as E,em as R}from"./vendor-BfhM_F1u.js";import{c as I,x as j,D as A,K as T,M as _}from"./vendor-arizeai-CxXYQNUl.js";import{L as D,r as O,d as G,e as M,F as N,f as V,P as q,h as K,M as m,g as U,D as W,i as B,E as H,j as J,k as Y,p as $,l as X,n as p,o as Z,q as Q,s as oo,S as lo,t as ao,v as ro,w as co,x as go,y as eo,z as bo,A as u,B as f,C as y,G as no,H as io,I as so,J as to,K as mo,N as po,O as uo,Q as fo,U as yo,V as vo,W as ho,X as xo,Y as zo,Z as wo,_ as Po,$ as ko,a0 as So,a1 as Fo,a2 as Lo,a3 as Co,a4 as Eo,a5 as Ro,a6 as Io,a7 as jo,a8 as Ao,a9 as To,aa as _o,ab as Do,ac as Oo,ad as Go,ae as Mo,af as No,ag as Vo,ah as qo}from"./pages-CJUakDKi.js";import{z as Ko,dX as Uo,bH as Wo,R as Bo,dY as Ho,dZ as Jo}from"./components-DepxScNF.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-B0NIFPOL.js";import"./vendor-shiki-C5bJ-RPf.js";import"./vendor-recharts-CrrDFWK1.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const g of r)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&s(n)}).observe(document,{childList:!0,subtree:!0});function i(r){const g={};return r.integrity&&(g.integrity=r.integrity),r.referrerPolicy&&(g.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?g.credentials="include":r.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function s(r){if(r.ep)return;r.ep=!0;const g=i(r);fetch(r.href,g)}})();const v="arize-phoenix-feature-flags",d={__RESET__:!1};function Yo(){const a=localStorage.getItem(v);if(!a)return d;try{const e=JSON.parse(a);return Object.assign({},d,e)}catch{return d}}const h=t.createContext(null);function $o(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Xo(a){const[e,i]=t.useState(Yo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Zo,{children:a.children})})}function Zo(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=$o(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(A,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(I,{title:"Feature Flags",children:o(Ko,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(j,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const Qo=b`
|
|
2
2
|
:root {
|
|
3
3
|
--ac-global-dimension-scale-factor: 1;
|
|
4
4
|
--ac-global-dimension-size-0: 0px;
|