arize-phoenix 8.13.1__py3-none-any.whl → 8.13.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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 8.13.1
3
+ Version: 8.13.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
@@ -56,6 +56,7 @@ Requires-Dist: websockets
56
56
  Requires-Dist: wrapt>=1.17.2
57
57
  Provides-Extra: container
58
58
  Requires-Dist: anthropic>=0.49.0; extra == 'container'
59
+ Requires-Dist: azure-identity; extra == 'container'
59
60
  Requires-Dist: fast-hdbscan>=0.2.0; extra == 'container'
60
61
  Requires-Dist: google-generativeai; extra == 'container'
61
62
  Requires-Dist: numba>=0.60.0; extra == 'container'
@@ -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=kpW1WL0kiB8XJsO6XycvZVJ-lBkNoenhQ7atCvBoSe8,5365
8
8
  phoenix/settings.py,sha256=ht-0oN-sMV6SPXrk7Tu1EZlngpAYkGNLYPhO8DyrdQI,661
9
- phoenix/version.py,sha256=rP0O6vA3dmK6SwGstv0ac-Ud_hfxASYFUl5535Mzgyc,23
9
+ phoenix/version.py,sha256=UQM39htvDTXlfOubkm8PAIdfKpb4JR8WAVna9x3IAgA,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
@@ -144,7 +144,7 @@ phoenix/server/api/dataloaders/cache/two_tier_cache.py,sha256=cmo8FUT3E91R139IEz
144
144
  phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY-m_Vxw16U,272
145
145
  phoenix/server/api/helpers/dataset_helpers.py,sha256=DoMBTg-qXTnC_K4Evx1WKpCCYgRbITpVqyY-8efJRf0,8984
146
146
  phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
147
- phoenix/server/api/helpers/playground_clients.py,sha256=sHwz4Y-OynNmMWs1D2qfUPW15OsLyDYGwGMTrIK7s1c,40800
147
+ phoenix/server/api/helpers/playground_clients.py,sha256=T0LkpZJRj3r0Mz6rE7xDx4DP2gZzA6naQCszTTLnpqE,41527
148
148
  phoenix/server/api/helpers/playground_registry.py,sha256=CPLMziFB2wmr-dfbx7VbzO2f8YIG_k5RftzvGXYGQ1w,2570
149
149
  phoenix/server/api/helpers/playground_spans.py,sha256=PjGNDc7cpqn5lmRM6TO_J1eVRGlgsNdQ8IT--5JVz0o,16881
150
150
  phoenix/server/api/helpers/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -314,10 +314,10 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
314
314
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
315
315
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
316
316
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
317
- phoenix/server/static/.vite/manifest.json,sha256=htVFHivdNAnwhXlPwZ_-mWsz47pTcW0ZcvvuMbSHO1w,2165
318
- phoenix/server/static/assets/components-DvgP87AK.js,sha256=KCN5CPoGxxh7YcCLXMugGDxgb1dOCOkUyKq8nTNR19c,435889
319
- phoenix/server/static/assets/index-CLClYeDh.js,sha256=8qts76qvoQo-n2Nv9hOY1atWv5sCpAOMOlPCyO7AxZA,59755
320
- phoenix/server/static/assets/pages-BnuKGq5F.js,sha256=5E4cAa8uuLW0zoTTGViEguZMJ-Z3kHNDR9xnxpfDMI4,846468
317
+ phoenix/server/static/.vite/manifest.json,sha256=yUpSCy8Y-wW0K001Du_XY_4sRgHDZwwx86NlA4IzIjg,2165
318
+ phoenix/server/static/assets/components-BwK8mVUO.js,sha256=65KaXz_CWxv5mziYAwihL2hGC_DmoayqK8xohnsEwJQ,435893
319
+ phoenix/server/static/assets/index-Dp1bkaPS.js,sha256=znU2U5YvE11ilVFZYTh_gIQyQGK-9vPlQpIDVjEsxNo,59755
320
+ phoenix/server/static/assets/pages-CZ1DOKbD.js,sha256=i4ZUBSYqVmtu2qh_tYt8IbBm_IYT1UVWHEnWAdlijyg,846468
321
321
  phoenix/server/static/assets/vendor-Cg6lcjUC.css,sha256=nZrkr0u6NNElFGvpWHk9GTHeGoibCXCli1bE7mXZGZg,1816
322
322
  phoenix/server/static/assets/vendor-CwOvppSU.js,sha256=zorIsWgg0PkDjHxKCG-oYmme0wYQaIg_7qA54v4HOYM,2421407
323
323
  phoenix/server/static/assets/vendor-arizeai-bw-hz0cw.js,sha256=2HKtN3-Kx959BVQ4cv_wH9hGNZBHvRB7zET_fAWNMx0,194761
@@ -364,9 +364,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
364
364
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
365
365
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
366
366
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
367
- arize_phoenix-8.13.1.dist-info/METADATA,sha256=47K3jTpd3EK4Qlrs8HojmQErEKFe5cSUsZPtGy26sUw,23739
368
- arize_phoenix-8.13.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
369
- arize_phoenix-8.13.1.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
370
- arize_phoenix-8.13.1.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
371
- arize_phoenix-8.13.1.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
372
- arize_phoenix-8.13.1.dist-info/RECORD,,
367
+ arize_phoenix-8.13.2.dist-info/METADATA,sha256=206NWBKB5Uw7U2AFi3tZXkQsCJjUIYoWpWnPeM8TYCM,23791
368
+ arize_phoenix-8.13.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
369
+ arize_phoenix-8.13.2.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
370
+ arize_phoenix-8.13.2.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
371
+ arize_phoenix-8.13.2.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
372
+ arize_phoenix-8.13.2.dist-info/RECORD,,
@@ -659,17 +659,33 @@ class AzureOpenAIStreamingClient(OpenAIBaseStreamingClient):
659
659
  ):
660
660
  from openai import AsyncAzureOpenAI
661
661
 
662
- if not (api_key := api_key or getenv("AZURE_OPENAI_API_KEY")):
663
- raise BadRequest("An Azure API key is required for Azure OpenAI models")
664
662
  if not (endpoint := model.endpoint or getenv("AZURE_OPENAI_ENDPOINT")):
665
663
  raise BadRequest("An Azure endpoint is required for Azure OpenAI models")
666
664
  if not (api_version := model.api_version or getenv("OPENAI_API_VERSION")):
667
665
  raise BadRequest("An OpenAI API version is required for Azure OpenAI models")
668
- client = AsyncAzureOpenAI(
669
- api_key=api_key,
670
- azure_endpoint=endpoint,
671
- api_version=api_version,
672
- )
666
+ if api_key := api_key or getenv("AZURE_OPENAI_API_KEY"):
667
+ client = AsyncAzureOpenAI(
668
+ api_key=api_key,
669
+ azure_endpoint=endpoint,
670
+ api_version=api_version,
671
+ )
672
+ else:
673
+ try:
674
+ from azure.identity.aio import DefaultAzureCredential, get_bearer_token_provider
675
+ except ImportError:
676
+ raise BadRequest(
677
+ "Provide an API key for Azure OpenAI models or use azure-identity, see. e.g. "
678
+ "https://learn.microsoft.com/en-us/python/api/azure-identity/azure.identity.environmentcredential?view=azure-python" # noqa: E501
679
+ )
680
+
681
+ client = AsyncAzureOpenAI(
682
+ azure_ad_token_provider=get_bearer_token_provider(
683
+ DefaultAzureCredential(),
684
+ "https://cognitiveservices.azure.com/.default",
685
+ ),
686
+ azure_endpoint=endpoint,
687
+ api_version=api_version,
688
+ )
673
689
  super().__init__(client=client, model=model, api_key=api_key)
674
690
  self._attributes[LLM_PROVIDER] = OpenInferenceLLMProviderValues.AZURE.value
675
691
  self._attributes[LLM_SYSTEM] = OpenInferenceLLMSystemValues.OPENAI.value
@@ -1,22 +1,22 @@
1
1
  {
2
- "_components-DvgP87AK.js": {
3
- "file": "assets/components-DvgP87AK.js",
2
+ "_components-BwK8mVUO.js": {
3
+ "file": "assets/components-BwK8mVUO.js",
4
4
  "name": "components",
5
5
  "imports": [
6
6
  "_vendor-CwOvppSU.js",
7
- "_pages-BnuKGq5F.js",
7
+ "_pages-CZ1DOKbD.js",
8
8
  "_vendor-arizeai-bw-hz0cw.js",
9
9
  "_vendor-codemirror-Du5cjwoZ.js",
10
10
  "_vendor-three-C-AGeJYv.js"
11
11
  ]
12
12
  },
13
- "_pages-BnuKGq5F.js": {
14
- "file": "assets/pages-BnuKGq5F.js",
13
+ "_pages-CZ1DOKbD.js": {
14
+ "file": "assets/pages-CZ1DOKbD.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
17
  "_vendor-CwOvppSU.js",
18
18
  "_vendor-arizeai-bw-hz0cw.js",
19
- "_components-DvgP87AK.js",
19
+ "_components-BwK8mVUO.js",
20
20
  "_vendor-codemirror-Du5cjwoZ.js",
21
21
  "_vendor-recharts-BMT-13Pz.js"
22
22
  ]
@@ -69,15 +69,15 @@
69
69
  "name": "vendor-three"
70
70
  },
71
71
  "index.tsx": {
72
- "file": "assets/index-CLClYeDh.js",
72
+ "file": "assets/index-Dp1bkaPS.js",
73
73
  "name": "index",
74
74
  "src": "index.tsx",
75
75
  "isEntry": true,
76
76
  "imports": [
77
77
  "_vendor-CwOvppSU.js",
78
78
  "_vendor-arizeai-bw-hz0cw.js",
79
- "_pages-BnuKGq5F.js",
80
- "_components-DvgP87AK.js",
79
+ "_pages-CZ1DOKbD.js",
80
+ "_components-BwK8mVUO.js",
81
81
  "_vendor-three-C-AGeJYv.js",
82
82
  "_vendor-codemirror-Du5cjwoZ.js",
83
83
  "_vendor-shiki-CevgDqNV.js",
@@ -1,4 +1,4 @@
1
- import{r as p,R as U,j as e,u as Ca,a as Te,e as t1,s as E1,b as V1,c as Ke,d as W1,f as fi,g as Ce,h as bi,i as Ci,k as Q1,l as s,m as vi,n as ze,C as l1,o as We,p as Qe,q as yi,t as Li,v as N,w as ln,L as va,x as ya,y as La,z as ce,A as v,B as p1,D as sn,E as m,F as wa,$ as wi,G as xa,H as ka,I as q,J as xi,K as cn,M as ki,N as Si,O as B,P as q1,Q as P,S as H,T as R,U as Sa,V as Ma,W as Mi,X as h1,Y as Ta,Z as Ti,_ as zi,a0 as Ii,a1 as Ai,a2 as Ei,a3 as Vi,a4 as Di,a5 as Pi,a6 as Oi,a7 as f1,a8 as _i,a9 as Fi,aa as Ni,ab as Ri,ac as ke,ad as X1,ae as Y1,af as J1,ag as F,ah as _e,ai as _n,aj as $i,ak as Hi,al as za,am as Ki,an as Bi,ao as Zi,ap as Gi,aq as ji,ar as Ui,as as Wi,at as Qi,au as qi,av as Xi,aw as Yi,ax as Ia,ay as Ji,az as _,aA as Aa,aB as er,aC as Ee,aD as dn,aE as nr,aF as un,aG as ar,aH as tr,aI as ir,aJ as rr,aK as or,aL as lr,aM as Fn,aN as sr,aO as cr,aP as dr,aQ as Nn,aR as ur,aS as gr,aT as mr,aU as D1,aV as pr,aW as hr,aX as fr,aY as br,aZ as Cr,a_ as vr,a$ as yr,b0 as Lr,b1 as wr,b2 as xr}from"./vendor-CwOvppSU.js";import{a as Rn,R as kr,b as Sr,c as Mr,m as Tr,T as zr,u as Ir}from"./pages-BnuKGq5F.js";import{u as Ar,_ as Ea,a as ge,T as re,E as Va,b as Er,c as Vr,d as Se,D as b1,e as me,f as Dr,g as Fe,A as qe,C as C1,P as gn,h as Da,i as Pr,F as Pa,I as Or,j as _r,k as Fr,l as Nr,m as Rr,n as $r,o as Hr,p as Kr,q as Oa,r as _a,s as Br,t as Zr}from"./vendor-arizeai-bw-hz0cw.js";import{L as Fa,a as Na,j as Ra,E as mn,k as $a,d as Ha,l as en,b as Ka,h as Gr,c as jr,e as Ur,f as Wr,g as Qr,i as qr,s as Xr,m as Xe,n as Ye,R as Je,p as Yr,o as Jr}from"./vendor-codemirror-Du5cjwoZ.js";import{V as eo}from"./vendor-three-C-AGeJYv.js";const Ba=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(
1
+ import{r as p,R as U,j as e,u as Ca,a as Te,e as t1,s as E1,b as V1,c as Ke,d as W1,f as fi,g as Ce,h as bi,i as Ci,k as Q1,l as s,m as vi,n as ze,C as l1,o as We,p as Qe,q as yi,t as Li,v as N,w as ln,L as va,x as ya,y as La,z as ce,A as v,B as p1,D as sn,E as m,F as wa,$ as wi,G as xa,H as ka,I as q,J as xi,K as cn,M as ki,N as Si,O as B,P as q1,Q as P,S as H,T as R,U as Sa,V as Ma,W as Mi,X as h1,Y as Ta,Z as Ti,_ as zi,a0 as Ii,a1 as Ai,a2 as Ei,a3 as Vi,a4 as Di,a5 as Pi,a6 as Oi,a7 as f1,a8 as _i,a9 as Fi,aa as Ni,ab as Ri,ac as ke,ad as X1,ae as Y1,af as J1,ag as F,ah as _e,ai as _n,aj as $i,ak as Hi,al as za,am as Ki,an as Bi,ao as Zi,ap as Gi,aq as ji,ar as Ui,as as Wi,at as Qi,au as qi,av as Xi,aw as Yi,ax as Ia,ay as Ji,az as _,aA as Aa,aB as er,aC as Ee,aD as dn,aE as nr,aF as un,aG as ar,aH as tr,aI as ir,aJ as rr,aK as or,aL as lr,aM as Fn,aN as sr,aO as cr,aP as dr,aQ as Nn,aR as ur,aS as gr,aT as mr,aU as D1,aV as pr,aW as hr,aX as fr,aY as br,aZ as Cr,a_ as vr,a$ as yr,b0 as Lr,b1 as wr,b2 as xr}from"./vendor-CwOvppSU.js";import{a as Rn,R as kr,b as Sr,c as Mr,m as Tr,T as zr,u as Ir}from"./pages-CZ1DOKbD.js";import{u as Ar,_ as Ea,a as ge,T as re,E as Va,b as Er,c as Vr,d as Se,D as b1,e as me,f as Dr,g as Fe,A as qe,C as C1,P as gn,h as Da,i as Pr,F as Pa,I as Or,j as _r,k as Fr,l as Nr,m as Rr,n as $r,o as Hr,p as Kr,q as Oa,r as _a,s as Br,t as Zr}from"./vendor-arizeai-bw-hz0cw.js";import{L as Fa,a as Na,j as Ra,E as mn,k as $a,d as Ha,l as en,b as Ka,h as Gr,c as jr,e as Ur,f as Wr,g as Qr,i as qr,s as Xr,m as Xe,n as Ye,R as Je,p as Yr,o as Jr}from"./vendor-codemirror-Du5cjwoZ.js";import{V as eo}from"./vendor-three-C-AGeJYv.js";const Ba=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
@@ -3063,7 +3063,7 @@ chat_completion = client.chat.completions.create(
3063
3063
  tracer_provider = register(
3064
3064
  project_name="${a}",
3065
3065
  endpoint="${(n?Dn:e1)+"/v1/traces"}"
3066
- )`;function E9(n){const a=ui,t=window.Config.authenticationEnabled,i=i3({isAuthEnabled:t,isHosted:a}),r=n.projectName||"your-next-llm-project";return s("div",{children:[e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Install Dependencies"})}),e(w,{paddingBottom:"size-100",children:s(y,{children:["Use the Phoenix OTEL or"," ",e(j,{href:e3,children:"OpenTelemetry"})," to configure your application to send traces to Phoenix."]})}),e(Y,{children:e(ae,{value:a3})}),e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Setup your Environment"})}),e(w,{paddingBottom:"size-100",children:s(y,{children:[e("b",{children:"arize-phoenix-otel"})," automatically picks up your configuration from",e(j,{href:n3,children:"environment variables"})]})}),e(Y,{children:e(ae,{value:i})}),t?e(w,{paddingBottom:"size-100",paddingTop:"size-100",children:e(di,{fallback:s(y,{children:["Personal API keys can be created and managed on your"," ",e(j,{href:"/profile",children:"Profile"})]}),children:s(y,{children:["System API keys can be created and managed in"," ",e(j,{href:"/settings",children:"Settings"})]})})}):null,e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Setup OpenTelemetry"})}),e(w,{paddingBottom:"size-100",children:s(y,{children:["Register your application to send traces to this project. The code below should be added ",e("b",{children:"BEFORE"})," any code execution."]})}),e(w,{paddingBottom:"size-100",children:e(Y,{children:e(ae,{value:l3({projectName:r,isHosted:a})})})}),a?null:e(w,{paddingBottom:"size-100",children:s(y,{children:["To configure gRPC and batching, see our"," ",e(j,{href:Jd,children:"setup guide"}),"."]})}),e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Setup Instrumentation"})}),e(w,{paddingBottom:"size-100",children:e(y,{children:"Add instrumentation to your application so that your application code is traces."})}),e(Zr,{variant:"compact",children:s(v2,{children:[s(L2,{children:[e(ia,{id:"instrumentation",children:"Instrumentation"}),e(ia,{id:"openai-example",children:"OpenAI Example"})]}),e(rn,{id:"instrumentation",children:s(w,{padding:"size-200",children:[s(y,{children:["Trace your application using"," ",e(j,{href:"https://github.com/Arize-ai/openinference",children:"OpenInference"})," ","instrumentation and OpenTelemetry"]}),e(w,{paddingTop:"size-200",paddingBottom:"size-200",children:e(Ud,{})}),s(y,{children:["For more integrations, checkout our"," ",e(j,{href:"https://docs.arize.com/phoenix/tracing/integrations-tracing",children:"comprehensive guide"})]})]})}),e(rn,{id:"openai-example",children:s(w,{padding:"size-200",children:[s("p",{children:["Install"," ",e(j,{href:"https://github.com/Arize-ai/openinference",children:"OpenInference"})," ","instrumentation as well as ",e("b",{children:"openai"})]}),e(Y,{children:e(ae,{value:t3})}),s("p",{children:["Instrument ",e("b",{children:"openai"})," at the beginning of your code"]}),e(w,{paddingBottom:"size-50",children:e(Y,{children:e(ae,{value:r3})})}),s("p",{children:["Use ",e("b",{children:"openai"})," as you normally and traces will be sent to Phoenix"]}),e(w,{paddingBottom:"size-50",children:e(Y,{children:e(ae,{value:o3})})})]})})]})})]})}const s3="https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-tracing",c3=n=>`import { Resource } from '@opentelemetry/resources';
3066
+ )`;function E9(n){const a=ui,t=window.Config.authenticationEnabled,i=i3({isAuthEnabled:t,isHosted:a}),r=n.projectName||"your-next-llm-project";return s("div",{children:[e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Install Dependencies"})}),e(w,{paddingBottom:"size-100",children:s(y,{children:["Use the Phoenix OTEL or"," ",e(j,{href:e3,children:"OpenTelemetry"})," to configure your application to send traces to Phoenix."]})}),e(Y,{children:e(ae,{value:a3})}),e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Setup your Environment"})}),e(w,{paddingBottom:"size-100",children:s(y,{children:[e("b",{children:"arize-phoenix-otel"})," automatically picks up your configuration from"," ",e(j,{href:n3,children:"environment variables"})]})}),e(Y,{children:e(ae,{value:i})}),t?e(w,{paddingBottom:"size-100",paddingTop:"size-100",children:e(di,{fallback:s(y,{children:["Personal API keys can be created and managed on your"," ",e(j,{href:"/profile",children:"Profile"})]}),children:s(y,{children:["System API keys can be created and managed in"," ",e(j,{href:"/settings",children:"Settings"})]})})}):null,e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Setup OpenTelemetry"})}),e(w,{paddingBottom:"size-100",children:s(y,{children:["Register your application to send traces to this project. The code below should be added ",e("b",{children:"BEFORE"})," any code execution."]})}),e(w,{paddingBottom:"size-100",children:e(Y,{children:e(ae,{value:l3({projectName:r,isHosted:a})})})}),a?null:e(w,{paddingBottom:"size-100",children:s(y,{children:["To configure gRPC and batching, see our"," ",e(j,{href:Jd,children:"setup guide"}),"."]})}),e(w,{paddingTop:"size-200",paddingBottom:"size-100",children:e(K,{level:2,weight:"heavy",children:"Setup Instrumentation"})}),e(w,{paddingBottom:"size-100",children:e(y,{children:"Add instrumentation to your application so that your application code is traces."})}),e(Zr,{variant:"compact",children:s(v2,{children:[s(L2,{children:[e(ia,{id:"instrumentation",children:"Instrumentation"}),e(ia,{id:"openai-example",children:"OpenAI Example"})]}),e(rn,{id:"instrumentation",children:s(w,{padding:"size-200",children:[s(y,{children:["Trace your application using"," ",e(j,{href:"https://github.com/Arize-ai/openinference",children:"OpenInference"})," ","instrumentation and OpenTelemetry"]}),e(w,{paddingTop:"size-200",paddingBottom:"size-200",children:e(Ud,{})}),s(y,{children:["For more integrations, checkout our"," ",e(j,{href:"https://docs.arize.com/phoenix/tracing/integrations-tracing",children:"comprehensive guide"})]})]})}),e(rn,{id:"openai-example",children:s(w,{padding:"size-200",children:[s("p",{children:["Install"," ",e(j,{href:"https://github.com/Arize-ai/openinference",children:"OpenInference"})," ","instrumentation as well as ",e("b",{children:"openai"})]}),e(Y,{children:e(ae,{value:t3})}),s("p",{children:["Instrument ",e("b",{children:"openai"})," at the beginning of your code"]}),e(w,{paddingBottom:"size-50",children:e(Y,{children:e(ae,{value:r3})})}),s("p",{children:["Use ",e("b",{children:"openai"})," as you normally and traces will be sent to Phoenix"]}),e(w,{paddingBottom:"size-50",children:e(Y,{children:e(ae,{value:o3})})})]})})]})})]})}const s3="https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-tracing",c3=n=>`import { Resource } from '@opentelemetry/resources';
3067
3067
  import { SEMRESATTRS_PROJECT_NAME } from '@arizeai/openinference-semantic-conventions';
3068
3068
 
3069
3069
  resource: new Resource({
@@ -1,4 +1,4 @@
1
- import{r as t,j as o,bm as z,l as c,O as w,R as P,E as b,cx as k,ed as S,ee as F,ef as L,eg as l,v as C,eh as E}from"./vendor-CwOvppSU.js";import{d as R,x as I,D as j,M as T,N as _}from"./vendor-arizeai-bw-hz0cw.js";import{L as A,r as O,d as D,e as G,F as M,f as N,P as V,h as U,M as m,g as W,D as q,i as B,E as J,j as K,k as $,p as H,l as Q,n as p,o as Y,q as X,s as Z,S as oo,t as lo,v as ao,w as ro,x as co,y as u,z as f,A as y,B as go,C as eo,G as bo,H as no,I as io,J as so,K as to,N as mo,O as po,Q as uo,U as fo,V as yo,W as vo,X as ho,Y as xo,Z as zo,_ as wo,$ as Po,a0 as ko,a1 as So,a2 as Fo,a3 as Lo,a4 as Co,a5 as Eo,a6 as Ro,a7 as Io,a8 as jo,a9 as To,aa as _o,ab as Ao,ac as Oo}from"./pages-BnuKGq5F.js";import{W as Do,dO as Go,bf as Mo,U as No,dP as Vo,dQ as Uo}from"./components-DvgP87AK.js";import"./vendor-three-C-AGeJYv.js";import"./vendor-codemirror-Du5cjwoZ.js";import"./vendor-shiki-CevgDqNV.js";import"./vendor-recharts-BMT-13Pz.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 Wo(){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 qo(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Bo(a){const[e,i]=t.useState(Wo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Jo,{children:a.children})})}function Jo(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=qo(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(j,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(R,{title:"Feature Flags",children:o(Do,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(I,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const Ko=b`
1
+ import{r as t,j as o,bm as z,l as c,O as w,R as P,E as b,cx as k,ed as S,ee as F,ef as L,eg as l,v as C,eh as E}from"./vendor-CwOvppSU.js";import{d as R,x as I,D as j,M as T,N as _}from"./vendor-arizeai-bw-hz0cw.js";import{L as A,r as O,d as D,e as G,F as M,f as N,P as V,h as U,M as m,g as W,D as q,i as B,E as J,j as K,k as $,p as H,l as Q,n as p,o as Y,q as X,s as Z,S as oo,t as lo,v as ao,w as ro,x as co,y as u,z as f,A as y,B as go,C as eo,G as bo,H as no,I as io,J as so,K as to,N as mo,O as po,Q as uo,U as fo,V as yo,W as vo,X as ho,Y as xo,Z as zo,_ as wo,$ as Po,a0 as ko,a1 as So,a2 as Fo,a3 as Lo,a4 as Co,a5 as Eo,a6 as Ro,a7 as Io,a8 as jo,a9 as To,aa as _o,ab as Ao,ac as Oo}from"./pages-CZ1DOKbD.js";import{W as Do,dO as Go,bf as Mo,U as No,dP as Vo,dQ as Uo}from"./components-BwK8mVUO.js";import"./vendor-three-C-AGeJYv.js";import"./vendor-codemirror-Du5cjwoZ.js";import"./vendor-shiki-CevgDqNV.js";import"./vendor-recharts-BMT-13Pz.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 Wo(){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 qo(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Bo(a){const[e,i]=t.useState(Wo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Jo,{children:a.children})})}function Jo(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=qo(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(j,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(R,{title:"Feature Flags",children:o(Do,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(I,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const Ko=b`
2
2
  :root {
3
3
  --ac-global-dimension-scale-factor: 1;
4
4
  --ac-global-dimension-size-0: 0px;
@@ -1,4 +1,4 @@
1
- import{A as E,b3 as me,b4 as $e,b5 as Ae,b6 as gl,B as kl,r as m,j as e,R as Pe,u as al,E as K,l as s,b7 as _e,ax as ie,O as U,v as I,b8 as nm,ac as ze,a8 as ht,ah as nn,ag as H,Q as W,aD as fa,a9 as kt,b9 as un,ba as am,ay as lm,bb as tm,H as fi,S as ae,T as Fe,bc as bt,aI as Ie,aL as xe,aM as G,bd as we,be as In,bf as xn,bg as hn,o as sr,az as te,F as hi,I as im,bh as rm,bi as Yl,bj as et,bk as $a,bl as qe,n as ll,bm as sm,aR as or,bn as om,bo as ki,bp as dm,bq as cm,br as um,bs as mm,bt as pm,bu as gm,bv as ym,bw as fm,bx as hm,by as Be,bz as Za,D as km,bA as bm,bB as cl,aJ as kn,g as dr,bC as Sm,aC as St,bD as vm,bE as cr,bF as ur,bG as Cm,ai as Fm,ad as vt,bH as Km,ae as Tm,af as Pm,bI as Im,p as xm,bJ as bi}from"./vendor-CwOvppSU.js";import{L as bl,v as Sl,C as j,d as J,D as Y,A as ge,w as mr,o as Ct,P as _a,e as Oe,f as Yn,T as pe,h as bn,E as vl,a as Me,q as ea,r as La,t as Ft,c as na,x as ha,g as Kt,s as Cl,y as Dm,i as Fl,z as _m,B as Lm,G as wm,H as Tt,J as Pt,u as Em,K as Mm}from"./vendor-arizeai-bw-hz0cw.js";import{s as Vm,l as Rm,j as It,a as Ee,i as xt,b as pr,c as Am,d as Wn,e as Dn,f as gr,D as yr,g as Hn,h as Wa,k as Nm,m as ye,T as Xe,n as zm,o as Dt,p as Si,q as $m,r as vi,t as Om,u as Qm,v as jm,N as qm,w as Bm,L as fe,x as Te,y as cn,B as Um,_ as h,z as Fn,I as L,C as Hm,G as fr,A as Kl,P as ka,M as _t,E as Lt,S as hr,F as Gm,H as Wm,J as Jm,K as Zm,O as Xm,Q as Ym,R as ep,U as be,V as v,W as C,X as de,Y as mt,Z as ce,$ as ue,a0 as Ye,a1 as np,a2 as ap,a3 as lp,a4 as an,a5 as he,a6 as Ke,a7 as R,a8 as le,a9 as X,aa as kr,ab as tp,ac as ip,ad as rp,ae as Tl,af as Pl,ag as br,ah as sp,ai as op,aj as dp,ak as re,al as Il,am as cp,an as Sr,ao as Ta,ap as Xa,aq as wt,ar as Ue,as as up,at as Et,au as Ge,av as We,aw as ne,ax as mn,ay as oe,az as mp,aA as pp,aB as gp,aC as Tn,aD as Qe,aE as je,aF as vr,aG as xl,aH as Ve,aI as aa,aJ as Le,aK as Re,aL as wa,aM as Mn,aN as _n,aO as Dl,aP as Ea,aQ as Ma,aR as Cr,aS as ln,aT as Fr,aU as yp,aV as Mt,aW as ca,aX as qn,aY as fp,aZ as hp,a_ as Vt,a$ as _l,b0 as Vn,b1 as la,b2 as Kr,b3 as Ci,b4 as rn,b5 as sn,b6 as kp,b7 as bp,b8 as Ya,b9 as Sp,ba as Ja,bb as Je,bc as vp,bd as Cp,be as Ll,bf as Rn,bg as Fp,bh as Kp,bi as tn,bj as yn,bk as Va,bl as Rt,bm as Tr,bn as At,bo as wl,bp as Tp,bq as Nt,br as Pp,bs as Ip,bt as zt,bu as tl,bv as Pr,bw as Ir,bx as xr,by as He,bz as Dr,bA as Sn,bB as pt,bC as xp,bD as $t,bE as Ot,bF as _r,bG as Dp,bH as _p,bI as Lp,bJ as wp,bK as Ep,bL as Mp,bM as ua,bN as Qt,bO as Vp,bP as Lr,bQ as Ze,bR as Rp,bS as Ap,bT as Np,bU as zp,bV as $p,bW as Op,bX as Qp,bY as El,bZ as jp,b_ as qp,b$ as Bp,c0 as Up,c1 as Fi,c2 as Hp,c3 as vn,c4 as An,c5 as jt,c6 as wr,c7 as Er,c8 as Ki,c9 as Ti,ca as Gp,cb as Wp,cc as B,cd as Mr,ce as Ml,cf as Vl,cg as Ra,ch as Vr,ci as Aa,cj as Na,ck as Rr,cl as Nn,cm as Ne,cn as Rl,co as zn,cp as Jp,cq as Zp,cr as Xp,cs as Yp,ct as eg,cu as on,cv as dn,cw as ng,cx as ag,cy as pa,cz as Ar,cA as lg,cB as tg,cC as Pi,cD as ig,cE as rg,cF as sg,cG as og,cH as dg,cI as cg,cJ as Nr,cK as ug,cL as mg,cM as pg,cN as gg,cO as ga,cP as qt,cQ as zr,cR as Ka,cS as fl,cT as Al,cU as $r,cV as Or,cW as nt,cX as yg,cY as Qr,cZ as fg,c_ as Bt,c$ as Nl,d0 as pn,d1 as hg,d2 as jr,d3 as kg,d4 as qr,d5 as Br,d6 as bg,d7 as Sg,d8 as Ur,d9 as Jn,da as vg,db as Cg,dc as Ii,dd as Fg,de as Kg,df as Tg,dg as Pg,dh as Ig,di as Hr,dj as xg,dk as Pa,dl as gt,dm as Dg,dn as Gr,dp as _g,dq as Lg,dr as wg,ds as zl,dt as Wr,du as xi,dv as Eg,dw as Mg,dx as Ut,dy as Jr,dz as Zr,dA as Vg,dB as yt,dC as Rg,dD as Ag,dE as ul,dF as Ng,dG as zg,dH as Xr,dI as Yr,dJ as $g,dK as Og,dL as Qg,dM as Di,dN as _i}from"./components-DvgP87AK.js";import{m as ta,n as ia,j as jg,E as es,R as ra,k as Ht,d as qg,p as il,q as ns}from"./vendor-codemirror-Du5cjwoZ.js";import{R as $n,C as rl,X as sa,Y as fn,a as oa,T as On,B as xa,A as el,b as as,c as Gt,L as ls,d as Bg,P as ts,e as is,f as rs}from"./vendor-recharts-BMT-13Pz.js";const Ug=4,Hg={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},Gg="Unable to parse span input messages, expected messages which include a role and content.",Wg="Unable to parse span output messages, expected messages which include a role and content.",Jg="Unable to parse span output expected output.value to be present.",Zg="Unable to parse span attributes, attributes must be valid JSON.",Xg="Unable to parse model config, expected llm.model_name to be present.",Yg="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",ey="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",ny="Unable to parse tools, expected tools to be an array of valid tools.",ay="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",Li={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},Gn="TOOL_CHOICE",Ia="tool_choice",Ln="RESPONSE_FORMAT",Pn="response_format",ly=[Gn,Ln],ty=E.object({tool_call:E.object({id:E.string().optional(),function:E.object({name:E.string(),arguments:E.string()}).partial()}).partial()}).partial(),ss=E.object({[me.message]:E.object({[$e.role]:E.string(),[$e.content]:E.union([E.string(),E.array(E.record(E.string(),E.unknown()))]).default(""),[$e.tool_calls]:E.array(ty).optional(),[$e.tool_call_id]:E.string().optional()})}),iy=E.object({[me.llm]:E.object({[Ae.input_messages]:E.array(ss)})}),ry=E.object({[me.llm]:E.object({[Ae.output_messages]:E.array(ss)})}),sy=E.object({[me.output]:E.object({value:E.string()})}),os=Vm()(E.enum(["user","ai","system","tool"])),oy=E.object({id:E.number(),role:os,content:E.string().optional(),toolCallId:E.string().optional(),toolCalls:E.array(Rm).optional()}),dy=E.array(oy),Wt=E.lazy(()=>E.record(It)),cy=Wt,ds=E.string().transform((n,a)=>{const{json:l}=Ee(n);if(!xt(l))return a.addIssue({code:E.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),E.NEVER;const{success:t,data:i}=cy.safeParse(l);return t?i:(a.addIssue({code:E.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),E.NEVER)}).default("{}"),uy=E.object({[me.llm]:E.object({[Ae.provider]:E.string().optional(),[Ae.model_name]:E.string()})}),cs=E.object({[me.llm]:E.object({[Ae.invocation_parameters]:ds})}),my=E.object({[me.llm]:E.object({[Ae.invocation_parameters]:ds.pipe(E.object({response_format:Wt.optional()}))})}),py=E.object({url:E.object({full:E.string(),path:E.string().optional()})}),gy=E.string().transform((n,a)=>{const{json:l}=Ee(n);return l==null||!xt(l)?(a.addIssue({code:E.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),E.NEVER):l}).transform((n,a)=>{const{data:l,success:t}=pr.safeParse(n);return t?l:(a.addIssue({code:E.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),E.NEVER)}),yy=E.object({[me.llm]:E.object({[Ae.tools]:E.array(E.object({[me.tool]:E.object({[gl.json_schema]:gy})}).optional()).optional()}).optional()}).optional(),fy=E.lazy(()=>E.object({type:E.literal("json_schema"),json_schema:E.object({name:E.string().describe("The name of the schema"),schema:Am.describe("The schema itself in JSON schema format"),strict:E.literal(!0).describe("The schema must be strict")})})),hy=kl(fy,{removeAdditionalStrategy:"passthrough"}),ky=E.string().transform((n,a)=>{const{json:l}=Ee(n);return Wn(l)?Object.entries(l).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=Dn(o);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:E.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),E.NEVER)}),by=E.object({[me.llm]:E.object({[Ae.prompt_template]:E.object({variables:ky}).optional()}).optional()}).optional();function us(n){return os.safeParse(n).success}function Bn(n){const a=n.toLowerCase();if(us(a))return a;for(const[l,t]of Object.entries(Hg))if(t.includes(a))return l;return Nm}function Sy({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:l})=>{var i,r,o,d;if(l==null)return null;let t={};if(((i=l.function)==null?void 0:i.arguments)!=null){const{json:c}=Ee(l.function.arguments);Wn(c)&&(t=c)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:l.id??"",type:"function",function:{name:((r=l.function)==null?void 0:r.name)??"",arguments:t}};case"ANTHROPIC":return{id:l.id??"",type:"tool_use",name:((o=l.function)==null?void 0:o.name)??"",input:t};case"GOOGLE":return{id:l.id??"",function:{name:((d=l.function)==null?void 0:d.name)??"",arguments:t}};default:ye()}}).filter(l=>l!=null)}function ms({messages:n,provider:a}){return n.map(({message:l})=>({id:Hn(),role:l.tool_call_id!=null?Bn("tool"):Bn(l.role),content:typeof l.content=="string"?l.content:void 0,toolCalls:Sy({provider:a,toolCalls:l.tool_calls}),toolCallId:l.tool_call_id}))}function vy({provider:n,parsedAttributes:a}){var t;const l=iy.safeParse(a);if(!l.success)return{messageParsingErrors:[Gg],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=cs.safeParse(a);if(i){const o=l.data.llm.input_messages,d=(t=r.llm.invocation_parameters)==null?void 0:t.system;typeof d=="string"&&d&&(!o||o[0].message.role!=="system")&&l.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:ms({provider:n,messages:l.data.llm.input_messages})}}function Cy({provider:n,parsedAttributes:a}){const l=[],t=ry.safeParse(a);if(t.success)return{output:ms({provider:n,messages:t.data.llm.output_messages}),outputParsingErrors:l};l.push(Wg);const i=sy.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:l}:(l.push(Jg),{output:void 0,outputParsingErrors:l})}function ps(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GOOGLE";case"azure":return"AZURE_OPENAI";default:return null}}function Fy(n){for(const a of Object.keys(Li))if(Li[a].some(t=>n.includes(t)))return a;return yr}function Ky(n){const{success:a,data:l}=uy.safeParse(n);if(a){const t=ps(l.llm.provider)||Fy(l.llm.model_name),i=Ty(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:l.llm.model_name,provider:t,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[Xg]}}function Ty(n){const{success:a,data:l}=py.safeParse(n);if(a)try{const t=new URL(l.url.full);let i=t;if(l.url.path)try{i=new URL(l.url.full.split(l.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:t.origin,apiVersion:t.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function Py(n,a=[]){const{success:l,data:t}=cs.safeParse(n),i=[];return l||i.push(Yg),{invocationParameters:Vy((t==null?void 0:t.llm.invocation_parameters)??{},a),parsingErrors:i}}function Iy(n){const{success:a,data:l}=my.safeParse(n);return a?{responseFormat:l.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[ey]}}function xy(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(l=>(l==null?void 0:l.tool)==null?null:{id:Wa(),definition:l.tool.json_schema}).filter(l=>l!=null)}function Dy(n){var t;const{data:a,success:l}=yy.safeParse(n);return l?((t=a==null?void 0:a.llm)==null?void 0:t.tools)==null?{tools:null,parsingErrors:[]}:{tools:xy(a),parsingErrors:[]}:{tools:null,parsingErrors:[ny]}}function _y(n){var t;const{success:a,data:l}=by.safeParse(n);return a?((t=l==null?void 0:l.llm)==null?void 0:t.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:l.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[ay]}}function Ly(n){const{instance:a,instanceMessages:l}=gr(),t={...a,template:{__type:"chat",messages:Object.values(l)}},{json:i,parseError:r}=Ee(n.attributes);if(r)return{playgroundInstance:{...t,spanId:(n==null?void 0:n.id)??null},parsingErrors:[Zg]};const o=n.invocationParameters,d=Ky(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:y,messageParsingErrors:u}=vy({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:f}=Cy({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=Py(i,o),{variables:S,parsingErrors:F}=_y(i),{parsingErrors:P}=Iy(i);c=c!=null?{...c,invocationParameters:P.length>0?k.filter(T=>T.invocationName!==Pn&&T.canonicalName!==Ln):k}:null;const{tools:D,parsingErrors:w}=Dy(i);return{playgroundInstance:{...t,model:c??t.model,template:y!=null?{__type:"chat",messages:y}:t.template,output:g,spanId:n.id,tools:D??t.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...u,...f,...p,...w,...b,...P,...F]}}const wy=n=>dy.safeParse(n).success,gs=({instance:n,templateFormat:a})=>{if(a==Xe.NONE)return[];const l=new Set,t=n.template.__type,i=zm(a);switch(t){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(d=>{l.add(d)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{l.add(o)});break}default:ye()}return Array.from(l)},Ey=({instances:n,templateFormat:a})=>a==Xe.NONE?[]:Array.from(new Set(n.flatMap(l=>gs({instance:l,templateFormat:a})))),ys=({instances:n,templateFormat:a,input:l})=>{if(a==Xe.NONE)return{variablesMap:{},variableKeys:[]};const t=Ey({instances:n,templateFormat:a}),i=l.variablesValueCache??{};return{variablesMap:t.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:t}};function Zn(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const My=(n,a)=>n.filter(l=>a.some(t=>Zn(t,l))).map(l=>{var t;return{...l,invocationName:((t=a.find(i=>Zn(i,l)))==null?void 0:t.invocationName)??l.invocationName}}),za=n=>n.replace(/_([a-z])/g,(a,l)=>l.toUpperCase()),Vy=(n,a)=>Object.entries(n).map(([l,t])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===l.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===l.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[za(i.invocationInputField)]:t}}).filter(l=>l!=null),fs=n=>{const{provider:a,validatedToolDefinition:l}=Qm(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return l.function.name;case"ANTHROPIC":return l.name;case"UNKNOWN":return null;default:ye()}},Ry=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:Wa(),definition:vi(a)};case"ANTHROPIC":return{id:Wa(),definition:Om(a)};case"GOOGLE":return{id:Wa(),definition:vi(a)};default:ye()}},Ay=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return Si();case"ANTHROPIC":return $m();case"GOOGLE":return Si();default:ye()}};function Ny(n){return{content:n.content,role:zy(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function zy(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:ye()}}const hs=({playgroundStore:n,instanceId:a,credentials:l})=>{var u;const{instances:t,allInstanceMessages:i}=n.getState(),r=t.find(g=>g.id===a);if(!r)throw new Error(`No instance found for id ${a}`);if(r.template.__type!=="chat")throw new Error("We only support chat templates for now");const o=r.template.messageIds.map(g=>i[g]).filter(g=>g!=null),d=r.model.supportedInvocationParameters;let c=[...r.model.invocationParameters];const p=Dt({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==Ia&&g.canonicalName!==Gn),c.push({canonicalName:Gn,invocationName:Ia,valueJson:p})):c=c.filter(g=>g.invocationName!==Ia&&g.canonicalName!==Gn),c=d.length?My(c,d):c;const y=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(Ny),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...y},invocationParameters:bs(c,r.model.provider,r.model.modelName),tools:r.tools.length?r.tools.map(g=>g.definition):void 0,apiKey:l[r.model.provider]||null,promptName:(u=r.prompt)==null?void 0:u.name}},$l=(n,a)=>{if(n.template.__type==="chat"){const{messageIds:l,...t}=n.template;return{...n,template:{...t,messages:n.template.messageIds.map(i=>a[i])}}}return n},$y=({playgroundStore:n,instanceId:a,credentials:l})=>{const t=hs({playgroundStore:n,instanceId:a,credentials:l}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(y=>$l(y,d)),{variablesMap:p}=ys({instances:c,input:o,templateFormat:r});return{...t,template:{variables:p,format:r}}},wi=({playgroundStore:n,instanceId:a,credentials:l,datasetId:t})=>({...hs({playgroundStore:n,instanceId:a,credentials:l}),templateFormat:n.getState().templateFormat,datasetId:t});function Ol(n){if(n===""||typeof n>"u")return"{}";if(typeof n=="string"){const a=n.startsWith('"{')||n.startsWith('"[')||n.startsWith('"\\"');try{if(a){const t=JSON.parse(n),i=typeof t=="string"?JSON.parse(t):t;return JSON.stringify(i,null,2)}}catch{}if(/^\s*[0-9{[]|true|false|null/.test(n))return n}return JSON.stringify(n,null,2)}function ks(n,a){return a.filter(l=>l.required).every(l=>n.some(t=>Zn(t,l)))}const Oy=n=>{for(const[a,l]of Object.entries(n))if(a.endsWith("DefaultValue")&&l!=null)return n[a]};function p2(n,a){const l=new Map(n.map(t=>[t.invocationName,t]));return a.forEach(t=>{var c;const i=t.invocationName,r=Oy(t),o=za(t.invocationInputField||"");if(!t.invocationName||!t.invocationInputField||!i||r==null||((c=l.get(i))==null?void 0:c[o])!=null)return;const d={canonicalName:t.canonicalName,invocationName:t.invocationName,[o]:r};l.set(i,d)}),Array.from(l.values())}const Qy=E.object({type:E.literal("enabled")}).passthrough(),jy=E.object({type:E.enum(["any","tool"])}).passthrough(),qy=(n,a)=>{if(!a)return n;const l=n.some(t=>t.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&t.valueJson&&Qy.safeParse(t.valueJson).success);return n.filter(t=>{if(t.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&!t.valueJson)return!1;if(l){if(t.canonicalName==="TEMPERATURE"||t.canonicalName==="TOP_P")return!1;if(t.canonicalName===Gn)return!jy.safeParse(t.valueJson).success}return!0})},bs=(n,a,l)=>a==="ANTHROPIC"?qy(n,l):n,Ss=m.createContext(null);function g2({children:n,...a}){const[l]=m.useState(()=>jm(a));return e(Ss.Provider,{value:l,children:n})}function Da(n,a){const l=Pe.useContext(Ss);if(!l)throw new Error("Missing CredentialsContext.Provider in the tree");return al(l,n,a)}const vs=m.createContext(null);function By(){const n=m.useContext(vs);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function y2(n){return e(vs.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Uy=K`
1
+ import{A as E,b3 as me,b4 as $e,b5 as Ae,b6 as gl,B as kl,r as m,j as e,R as Pe,u as al,E as K,l as s,b7 as _e,ax as ie,O as U,v as I,b8 as nm,ac as ze,a8 as ht,ah as nn,ag as H,Q as W,aD as fa,a9 as kt,b9 as un,ba as am,ay as lm,bb as tm,H as fi,S as ae,T as Fe,bc as bt,aI as Ie,aL as xe,aM as G,bd as we,be as In,bf as xn,bg as hn,o as sr,az as te,F as hi,I as im,bh as rm,bi as Yl,bj as et,bk as $a,bl as qe,n as ll,bm as sm,aR as or,bn as om,bo as ki,bp as dm,bq as cm,br as um,bs as mm,bt as pm,bu as gm,bv as ym,bw as fm,bx as hm,by as Be,bz as Za,D as km,bA as bm,bB as cl,aJ as kn,g as dr,bC as Sm,aC as St,bD as vm,bE as cr,bF as ur,bG as Cm,ai as Fm,ad as vt,bH as Km,ae as Tm,af as Pm,bI as Im,p as xm,bJ as bi}from"./vendor-CwOvppSU.js";import{L as bl,v as Sl,C as j,d as J,D as Y,A as ge,w as mr,o as Ct,P as _a,e as Oe,f as Yn,T as pe,h as bn,E as vl,a as Me,q as ea,r as La,t as Ft,c as na,x as ha,g as Kt,s as Cl,y as Dm,i as Fl,z as _m,B as Lm,G as wm,H as Tt,J as Pt,u as Em,K as Mm}from"./vendor-arizeai-bw-hz0cw.js";import{s as Vm,l as Rm,j as It,a as Ee,i as xt,b as pr,c as Am,d as Wn,e as Dn,f as gr,D as yr,g as Hn,h as Wa,k as Nm,m as ye,T as Xe,n as zm,o as Dt,p as Si,q as $m,r as vi,t as Om,u as Qm,v as jm,N as qm,w as Bm,L as fe,x as Te,y as cn,B as Um,_ as h,z as Fn,I as L,C as Hm,G as fr,A as Kl,P as ka,M as _t,E as Lt,S as hr,F as Gm,H as Wm,J as Jm,K as Zm,O as Xm,Q as Ym,R as ep,U as be,V as v,W as C,X as de,Y as mt,Z as ce,$ as ue,a0 as Ye,a1 as np,a2 as ap,a3 as lp,a4 as an,a5 as he,a6 as Ke,a7 as R,a8 as le,a9 as X,aa as kr,ab as tp,ac as ip,ad as rp,ae as Tl,af as Pl,ag as br,ah as sp,ai as op,aj as dp,ak as re,al as Il,am as cp,an as Sr,ao as Ta,ap as Xa,aq as wt,ar as Ue,as as up,at as Et,au as Ge,av as We,aw as ne,ax as mn,ay as oe,az as mp,aA as pp,aB as gp,aC as Tn,aD as Qe,aE as je,aF as vr,aG as xl,aH as Ve,aI as aa,aJ as Le,aK as Re,aL as wa,aM as Mn,aN as _n,aO as Dl,aP as Ea,aQ as Ma,aR as Cr,aS as ln,aT as Fr,aU as yp,aV as Mt,aW as ca,aX as qn,aY as fp,aZ as hp,a_ as Vt,a$ as _l,b0 as Vn,b1 as la,b2 as Kr,b3 as Ci,b4 as rn,b5 as sn,b6 as kp,b7 as bp,b8 as Ya,b9 as Sp,ba as Ja,bb as Je,bc as vp,bd as Cp,be as Ll,bf as Rn,bg as Fp,bh as Kp,bi as tn,bj as yn,bk as Va,bl as Rt,bm as Tr,bn as At,bo as wl,bp as Tp,bq as Nt,br as Pp,bs as Ip,bt as zt,bu as tl,bv as Pr,bw as Ir,bx as xr,by as He,bz as Dr,bA as Sn,bB as pt,bC as xp,bD as $t,bE as Ot,bF as _r,bG as Dp,bH as _p,bI as Lp,bJ as wp,bK as Ep,bL as Mp,bM as ua,bN as Qt,bO as Vp,bP as Lr,bQ as Ze,bR as Rp,bS as Ap,bT as Np,bU as zp,bV as $p,bW as Op,bX as Qp,bY as El,bZ as jp,b_ as qp,b$ as Bp,c0 as Up,c1 as Fi,c2 as Hp,c3 as vn,c4 as An,c5 as jt,c6 as wr,c7 as Er,c8 as Ki,c9 as Ti,ca as Gp,cb as Wp,cc as B,cd as Mr,ce as Ml,cf as Vl,cg as Ra,ch as Vr,ci as Aa,cj as Na,ck as Rr,cl as Nn,cm as Ne,cn as Rl,co as zn,cp as Jp,cq as Zp,cr as Xp,cs as Yp,ct as eg,cu as on,cv as dn,cw as ng,cx as ag,cy as pa,cz as Ar,cA as lg,cB as tg,cC as Pi,cD as ig,cE as rg,cF as sg,cG as og,cH as dg,cI as cg,cJ as Nr,cK as ug,cL as mg,cM as pg,cN as gg,cO as ga,cP as qt,cQ as zr,cR as Ka,cS as fl,cT as Al,cU as $r,cV as Or,cW as nt,cX as yg,cY as Qr,cZ as fg,c_ as Bt,c$ as Nl,d0 as pn,d1 as hg,d2 as jr,d3 as kg,d4 as qr,d5 as Br,d6 as bg,d7 as Sg,d8 as Ur,d9 as Jn,da as vg,db as Cg,dc as Ii,dd as Fg,de as Kg,df as Tg,dg as Pg,dh as Ig,di as Hr,dj as xg,dk as Pa,dl as gt,dm as Dg,dn as Gr,dp as _g,dq as Lg,dr as wg,ds as zl,dt as Wr,du as xi,dv as Eg,dw as Mg,dx as Ut,dy as Jr,dz as Zr,dA as Vg,dB as yt,dC as Rg,dD as Ag,dE as ul,dF as Ng,dG as zg,dH as Xr,dI as Yr,dJ as $g,dK as Og,dL as Qg,dM as Di,dN as _i}from"./components-BwK8mVUO.js";import{m as ta,n as ia,j as jg,E as es,R as ra,k as Ht,d as qg,p as il,q as ns}from"./vendor-codemirror-Du5cjwoZ.js";import{R as $n,C as rl,X as sa,Y as fn,a as oa,T as On,B as xa,A as el,b as as,c as Gt,L as ls,d as Bg,P as ts,e as is,f as rs}from"./vendor-recharts-BMT-13Pz.js";const Ug=4,Hg={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},Gg="Unable to parse span input messages, expected messages which include a role and content.",Wg="Unable to parse span output messages, expected messages which include a role and content.",Jg="Unable to parse span output expected output.value to be present.",Zg="Unable to parse span attributes, attributes must be valid JSON.",Xg="Unable to parse model config, expected llm.model_name to be present.",Yg="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",ey="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",ny="Unable to parse tools, expected tools to be an array of valid tools.",ay="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",Li={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},Gn="TOOL_CHOICE",Ia="tool_choice",Ln="RESPONSE_FORMAT",Pn="response_format",ly=[Gn,Ln],ty=E.object({tool_call:E.object({id:E.string().optional(),function:E.object({name:E.string(),arguments:E.string()}).partial()}).partial()}).partial(),ss=E.object({[me.message]:E.object({[$e.role]:E.string(),[$e.content]:E.union([E.string(),E.array(E.record(E.string(),E.unknown()))]).default(""),[$e.tool_calls]:E.array(ty).optional(),[$e.tool_call_id]:E.string().optional()})}),iy=E.object({[me.llm]:E.object({[Ae.input_messages]:E.array(ss)})}),ry=E.object({[me.llm]:E.object({[Ae.output_messages]:E.array(ss)})}),sy=E.object({[me.output]:E.object({value:E.string()})}),os=Vm()(E.enum(["user","ai","system","tool"])),oy=E.object({id:E.number(),role:os,content:E.string().optional(),toolCallId:E.string().optional(),toolCalls:E.array(Rm).optional()}),dy=E.array(oy),Wt=E.lazy(()=>E.record(It)),cy=Wt,ds=E.string().transform((n,a)=>{const{json:l}=Ee(n);if(!xt(l))return a.addIssue({code:E.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),E.NEVER;const{success:t,data:i}=cy.safeParse(l);return t?i:(a.addIssue({code:E.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),E.NEVER)}).default("{}"),uy=E.object({[me.llm]:E.object({[Ae.provider]:E.string().optional(),[Ae.model_name]:E.string()})}),cs=E.object({[me.llm]:E.object({[Ae.invocation_parameters]:ds})}),my=E.object({[me.llm]:E.object({[Ae.invocation_parameters]:ds.pipe(E.object({response_format:Wt.optional()}))})}),py=E.object({url:E.object({full:E.string(),path:E.string().optional()})}),gy=E.string().transform((n,a)=>{const{json:l}=Ee(n);return l==null||!xt(l)?(a.addIssue({code:E.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),E.NEVER):l}).transform((n,a)=>{const{data:l,success:t}=pr.safeParse(n);return t?l:(a.addIssue({code:E.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),E.NEVER)}),yy=E.object({[me.llm]:E.object({[Ae.tools]:E.array(E.object({[me.tool]:E.object({[gl.json_schema]:gy})}).optional()).optional()}).optional()}).optional(),fy=E.lazy(()=>E.object({type:E.literal("json_schema"),json_schema:E.object({name:E.string().describe("The name of the schema"),schema:Am.describe("The schema itself in JSON schema format"),strict:E.literal(!0).describe("The schema must be strict")})})),hy=kl(fy,{removeAdditionalStrategy:"passthrough"}),ky=E.string().transform((n,a)=>{const{json:l}=Ee(n);return Wn(l)?Object.entries(l).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=Dn(o);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:E.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),E.NEVER)}),by=E.object({[me.llm]:E.object({[Ae.prompt_template]:E.object({variables:ky}).optional()}).optional()}).optional();function us(n){return os.safeParse(n).success}function Bn(n){const a=n.toLowerCase();if(us(a))return a;for(const[l,t]of Object.entries(Hg))if(t.includes(a))return l;return Nm}function Sy({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:l})=>{var i,r,o,d;if(l==null)return null;let t={};if(((i=l.function)==null?void 0:i.arguments)!=null){const{json:c}=Ee(l.function.arguments);Wn(c)&&(t=c)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:l.id??"",type:"function",function:{name:((r=l.function)==null?void 0:r.name)??"",arguments:t}};case"ANTHROPIC":return{id:l.id??"",type:"tool_use",name:((o=l.function)==null?void 0:o.name)??"",input:t};case"GOOGLE":return{id:l.id??"",function:{name:((d=l.function)==null?void 0:d.name)??"",arguments:t}};default:ye()}}).filter(l=>l!=null)}function ms({messages:n,provider:a}){return n.map(({message:l})=>({id:Hn(),role:l.tool_call_id!=null?Bn("tool"):Bn(l.role),content:typeof l.content=="string"?l.content:void 0,toolCalls:Sy({provider:a,toolCalls:l.tool_calls}),toolCallId:l.tool_call_id}))}function vy({provider:n,parsedAttributes:a}){var t;const l=iy.safeParse(a);if(!l.success)return{messageParsingErrors:[Gg],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=cs.safeParse(a);if(i){const o=l.data.llm.input_messages,d=(t=r.llm.invocation_parameters)==null?void 0:t.system;typeof d=="string"&&d&&(!o||o[0].message.role!=="system")&&l.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:ms({provider:n,messages:l.data.llm.input_messages})}}function Cy({provider:n,parsedAttributes:a}){const l=[],t=ry.safeParse(a);if(t.success)return{output:ms({provider:n,messages:t.data.llm.output_messages}),outputParsingErrors:l};l.push(Wg);const i=sy.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:l}:(l.push(Jg),{output:void 0,outputParsingErrors:l})}function ps(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GOOGLE";case"azure":return"AZURE_OPENAI";default:return null}}function Fy(n){for(const a of Object.keys(Li))if(Li[a].some(t=>n.includes(t)))return a;return yr}function Ky(n){const{success:a,data:l}=uy.safeParse(n);if(a){const t=ps(l.llm.provider)||Fy(l.llm.model_name),i=Ty(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:l.llm.model_name,provider:t,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[Xg]}}function Ty(n){const{success:a,data:l}=py.safeParse(n);if(a)try{const t=new URL(l.url.full);let i=t;if(l.url.path)try{i=new URL(l.url.full.split(l.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:t.origin,apiVersion:t.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function Py(n,a=[]){const{success:l,data:t}=cs.safeParse(n),i=[];return l||i.push(Yg),{invocationParameters:Vy((t==null?void 0:t.llm.invocation_parameters)??{},a),parsingErrors:i}}function Iy(n){const{success:a,data:l}=my.safeParse(n);return a?{responseFormat:l.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[ey]}}function xy(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(l=>(l==null?void 0:l.tool)==null?null:{id:Wa(),definition:l.tool.json_schema}).filter(l=>l!=null)}function Dy(n){var t;const{data:a,success:l}=yy.safeParse(n);return l?((t=a==null?void 0:a.llm)==null?void 0:t.tools)==null?{tools:null,parsingErrors:[]}:{tools:xy(a),parsingErrors:[]}:{tools:null,parsingErrors:[ny]}}function _y(n){var t;const{success:a,data:l}=by.safeParse(n);return a?((t=l==null?void 0:l.llm)==null?void 0:t.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:l.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[ay]}}function Ly(n){const{instance:a,instanceMessages:l}=gr(),t={...a,template:{__type:"chat",messages:Object.values(l)}},{json:i,parseError:r}=Ee(n.attributes);if(r)return{playgroundInstance:{...t,spanId:(n==null?void 0:n.id)??null},parsingErrors:[Zg]};const o=n.invocationParameters,d=Ky(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:y,messageParsingErrors:u}=vy({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:f}=Cy({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=Py(i,o),{variables:S,parsingErrors:F}=_y(i),{parsingErrors:P}=Iy(i);c=c!=null?{...c,invocationParameters:P.length>0?k.filter(T=>T.invocationName!==Pn&&T.canonicalName!==Ln):k}:null;const{tools:D,parsingErrors:w}=Dy(i);return{playgroundInstance:{...t,model:c??t.model,template:y!=null?{__type:"chat",messages:y}:t.template,output:g,spanId:n.id,tools:D??t.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...u,...f,...p,...w,...b,...P,...F]}}const wy=n=>dy.safeParse(n).success,gs=({instance:n,templateFormat:a})=>{if(a==Xe.NONE)return[];const l=new Set,t=n.template.__type,i=zm(a);switch(t){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(d=>{l.add(d)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{l.add(o)});break}default:ye()}return Array.from(l)},Ey=({instances:n,templateFormat:a})=>a==Xe.NONE?[]:Array.from(new Set(n.flatMap(l=>gs({instance:l,templateFormat:a})))),ys=({instances:n,templateFormat:a,input:l})=>{if(a==Xe.NONE)return{variablesMap:{},variableKeys:[]};const t=Ey({instances:n,templateFormat:a}),i=l.variablesValueCache??{};return{variablesMap:t.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:t}};function Zn(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const My=(n,a)=>n.filter(l=>a.some(t=>Zn(t,l))).map(l=>{var t;return{...l,invocationName:((t=a.find(i=>Zn(i,l)))==null?void 0:t.invocationName)??l.invocationName}}),za=n=>n.replace(/_([a-z])/g,(a,l)=>l.toUpperCase()),Vy=(n,a)=>Object.entries(n).map(([l,t])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===l.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===l.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[za(i.invocationInputField)]:t}}).filter(l=>l!=null),fs=n=>{const{provider:a,validatedToolDefinition:l}=Qm(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return l.function.name;case"ANTHROPIC":return l.name;case"UNKNOWN":return null;default:ye()}},Ry=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:Wa(),definition:vi(a)};case"ANTHROPIC":return{id:Wa(),definition:Om(a)};case"GOOGLE":return{id:Wa(),definition:vi(a)};default:ye()}},Ay=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return Si();case"ANTHROPIC":return $m();case"GOOGLE":return Si();default:ye()}};function Ny(n){return{content:n.content,role:zy(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function zy(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:ye()}}const hs=({playgroundStore:n,instanceId:a,credentials:l})=>{var u;const{instances:t,allInstanceMessages:i}=n.getState(),r=t.find(g=>g.id===a);if(!r)throw new Error(`No instance found for id ${a}`);if(r.template.__type!=="chat")throw new Error("We only support chat templates for now");const o=r.template.messageIds.map(g=>i[g]).filter(g=>g!=null),d=r.model.supportedInvocationParameters;let c=[...r.model.invocationParameters];const p=Dt({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==Ia&&g.canonicalName!==Gn),c.push({canonicalName:Gn,invocationName:Ia,valueJson:p})):c=c.filter(g=>g.invocationName!==Ia&&g.canonicalName!==Gn),c=d.length?My(c,d):c;const y=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(Ny),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...y},invocationParameters:bs(c,r.model.provider,r.model.modelName),tools:r.tools.length?r.tools.map(g=>g.definition):void 0,apiKey:l[r.model.provider]||null,promptName:(u=r.prompt)==null?void 0:u.name}},$l=(n,a)=>{if(n.template.__type==="chat"){const{messageIds:l,...t}=n.template;return{...n,template:{...t,messages:n.template.messageIds.map(i=>a[i])}}}return n},$y=({playgroundStore:n,instanceId:a,credentials:l})=>{const t=hs({playgroundStore:n,instanceId:a,credentials:l}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(y=>$l(y,d)),{variablesMap:p}=ys({instances:c,input:o,templateFormat:r});return{...t,template:{variables:p,format:r}}},wi=({playgroundStore:n,instanceId:a,credentials:l,datasetId:t})=>({...hs({playgroundStore:n,instanceId:a,credentials:l}),templateFormat:n.getState().templateFormat,datasetId:t});function Ol(n){if(n===""||typeof n>"u")return"{}";if(typeof n=="string"){const a=n.startsWith('"{')||n.startsWith('"[')||n.startsWith('"\\"');try{if(a){const t=JSON.parse(n),i=typeof t=="string"?JSON.parse(t):t;return JSON.stringify(i,null,2)}}catch{}if(/^\s*[0-9{[]|true|false|null/.test(n))return n}return JSON.stringify(n,null,2)}function ks(n,a){return a.filter(l=>l.required).every(l=>n.some(t=>Zn(t,l)))}const Oy=n=>{for(const[a,l]of Object.entries(n))if(a.endsWith("DefaultValue")&&l!=null)return n[a]};function p2(n,a){const l=new Map(n.map(t=>[t.invocationName,t]));return a.forEach(t=>{var c;const i=t.invocationName,r=Oy(t),o=za(t.invocationInputField||"");if(!t.invocationName||!t.invocationInputField||!i||r==null||((c=l.get(i))==null?void 0:c[o])!=null)return;const d={canonicalName:t.canonicalName,invocationName:t.invocationName,[o]:r};l.set(i,d)}),Array.from(l.values())}const Qy=E.object({type:E.literal("enabled")}).passthrough(),jy=E.object({type:E.enum(["any","tool"])}).passthrough(),qy=(n,a)=>{if(!a)return n;const l=n.some(t=>t.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&t.valueJson&&Qy.safeParse(t.valueJson).success);return n.filter(t=>{if(t.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&!t.valueJson)return!1;if(l){if(t.canonicalName==="TEMPERATURE"||t.canonicalName==="TOP_P")return!1;if(t.canonicalName===Gn)return!jy.safeParse(t.valueJson).success}return!0})},bs=(n,a,l)=>a==="ANTHROPIC"?qy(n,l):n,Ss=m.createContext(null);function g2({children:n,...a}){const[l]=m.useState(()=>jm(a));return e(Ss.Provider,{value:l,children:n})}function Da(n,a){const l=Pe.useContext(Ss);if(!l)throw new Error("Missing CredentialsContext.Provider in the tree");return al(l,n,a)}const vs=m.createContext(null);function By(){const n=m.useContext(vs);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function y2(n){return e(vs.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Uy=K`
2
2
  display: flex;
3
3
  direction: row;
4
4
  height: 100vh;
phoenix/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "8.13.1"
1
+ __version__ = "8.13.2"