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.
- {arize_phoenix-8.13.1.dist-info → arize_phoenix-8.13.2.dist-info}/METADATA +2 -1
- {arize_phoenix-8.13.1.dist-info → arize_phoenix-8.13.2.dist-info}/RECORD +12 -12
- phoenix/server/api/helpers/playground_clients.py +23 -7
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-DvgP87AK.js → components-BwK8mVUO.js} +2 -2
- phoenix/server/static/assets/{index-CLClYeDh.js → index-Dp1bkaPS.js} +1 -1
- phoenix/server/static/assets/{pages-BnuKGq5F.js → pages-CZ1DOKbD.js} +1 -1
- phoenix/version.py +1 -1
- {arize_phoenix-8.13.1.dist-info → arize_phoenix-8.13.2.dist-info}/WHEEL +0 -0
- {arize_phoenix-8.13.1.dist-info → arize_phoenix-8.13.2.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-8.13.1.dist-info → arize_phoenix-8.13.2.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-8.13.1.dist-info → arize_phoenix-8.13.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 8.13.
|
|
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=
|
|
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=
|
|
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=
|
|
318
|
-
phoenix/server/static/assets/components-
|
|
319
|
-
phoenix/server/static/assets/index-
|
|
320
|
-
phoenix/server/static/assets/pages-
|
|
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.
|
|
368
|
-
arize_phoenix-8.13.
|
|
369
|
-
arize_phoenix-8.13.
|
|
370
|
-
arize_phoenix-8.13.
|
|
371
|
-
arize_phoenix-8.13.
|
|
372
|
-
arize_phoenix-8.13.
|
|
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
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
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-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-BwK8mVUO.js": {
|
|
3
|
+
"file": "assets/components-BwK8mVUO.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
6
|
"_vendor-CwOvppSU.js",
|
|
7
|
-
"_pages-
|
|
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-
|
|
14
|
-
"file": "assets/pages-
|
|
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-
|
|
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-
|
|
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-
|
|
80
|
-
"_components-
|
|
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-
|
|
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-
|
|
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
|
+
__version__ = "8.13.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|