arize-phoenix 9.1.0__py3-none-any.whl → 9.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of arize-phoenix might be problematic. Click here for more details.

@@ -1,4 +1,4 @@
1
- import{r as t,j as o,aV as z,l as c,P as w,R as P,E as b,cN as k,ey as S,ez as F,eA as L,bV as C,eB as l,o as E,eC as R}from"./vendor-BvFaCsmL.js";import{e as I,w as j,D as A,K as T,M as _}from"./vendor-arizeai-DJ2Xx4kZ.js";import{L as D,r as O,g as G,h as N,F as M,i as V,P as q,j as B,M as m,k as K,D as U,l as W,E as J,n as Y,o as $,p as H,q as Q,s as p,t as X,v as Z,w as oo,x as lo,y as ao,z as ro,B as co,C as go,G as eo,H as bo,I as u,J as f,K as y,N as no,O as io,Q as so,U as to,V as mo,W as po,X as uo,Y as fo,Z as yo,_ as vo,$ as ho,a0 as xo,a1 as zo,a2 as wo,a3 as Po,a4 as ko,a5 as So,a6 as Fo,a7 as Lo,a8 as Co,a9 as Eo,aa as Ro,ab as Io,ac as jo,ad as Ao,ae as To,af as _o,ag as Do,ah as Oo,ai as Go,aj as No,ak as Mo,al as Vo,am as qo,an as Bo,ao as Ko,ap as Uo,aq as Wo}from"./pages-DiZbDjAl.js";import{z as Jo,em as Yo,bY as $o,R as Ho,en as Qo,eo as Xo}from"./components-fznwgFMD.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-CC0itEC8.js";import"./vendor-shiki-CnRwDBHX.js";import"./vendor-recharts-ZOUPDkCE.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 Zo(){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 ol(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function ll(a){const[e,i]=t.useState(Zo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(al,{children:a.children})})}function al(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=ol(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(A,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(I,{title:"Feature Flags",children:o(Jo,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(j,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const rl=b`
1
+ import{r as t,j as o,aV as z,l as c,P as w,R as P,E as b,cN as k,ey as S,ez as F,eA as L,bV as C,eB as l,o as E,eC as R}from"./vendor-BvFaCsmL.js";import{e as I,w as j,D as A,K as T,M as _}from"./vendor-arizeai-DJ2Xx4kZ.js";import{L as D,r as O,g as G,h as N,F as M,i as V,P as q,j as B,M as m,k as K,D as U,l as W,E as J,n as Y,o as $,p as H,q as Q,s as p,t as X,v as Z,w as oo,x as lo,y as ao,z as ro,B as co,C as go,G as eo,H as bo,I as u,J as f,K as y,N as no,O as io,Q as so,U as to,V as mo,W as po,X as uo,Y as fo,Z as yo,_ as vo,$ as ho,a0 as xo,a1 as zo,a2 as wo,a3 as Po,a4 as ko,a5 as So,a6 as Fo,a7 as Lo,a8 as Co,a9 as Eo,aa as Ro,ab as Io,ac as jo,ad as Ao,ae as To,af as _o,ag as Do,ah as Oo,ai as Go,aj as No,ak as Mo,al as Vo,am as qo,an as Bo,ao as Ko,ap as Uo,aq as Wo}from"./pages-Bm_Z5Ute.js";import{z as Jo,em as Yo,bY as $o,R as Ho,en as Qo,eo as Xo}from"./components-lafqiyl4.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-CC0itEC8.js";import"./vendor-shiki-CnRwDBHX.js";import"./vendor-recharts-ZOUPDkCE.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 Zo(){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 ol(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function ll(a){const[e,i]=t.useState(Zo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(al,{children:a.children})})}function al(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=ol(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(A,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(I,{title:"Feature Flags",children:o(Jo,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(j,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const rl=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 R,bk as Se,bl as Ne,bm as Be,bn as Dl,B as Nl,r as m,j as e,u as fl,o as x,l as o,aF as Pe,aG as cn,aI as xe,aJ as W,S as G,T as Z,bo as je,aX as Ze,ad as Ee,bp as Lg,ah as H,U as ke,aD as ca,E as K,P as J,ai as We,a9 as xa,aa as ra,bq as Ag,br as wg,bs as Rg,bt as Eg,aA as te,ae as Qt,bu as $i,bv as Fe,aL as ce,bw as Oe,bx as Mg,aY as Fn,by as Vg,aM as Ng,bz as zg,I as ji,b0 as qa,aT as Ae,aS as wn,bA as Kn,bB as un,R as sn,m as $r,$ as $g,F as Oi,aW as jg,aV as ja,H as Og,bC as Qg,bD as bt,bE as St,bF as al,b2 as Al,b1 as wl,q as hl,b7 as Bt,bG as Bg,bH as Qi,bI as qg,bJ as Ug,bK as Hg,bL as Gg,bM as Wg,bN as Jg,bO as Zg,bP as Xg,bQ as Yg,bR as ml,D as ep,bS as np,bT as Fl,g as jr,bU as ap,aC as qt,bV as Or,bW as Qr,bX as lp,aj as tp,bY as ip,af as rp,ag as op,bZ as sp,n as dp}from"./vendor-BvFaCsmL.js";import{e as ne,D as ie,C as B,c as Ve,a as ze,T as ve,h as Pn,s as Ut,b as zl,L as $l,t as jl,v as Br,n as Ht,P as Ua,d as Bn,E as Ol,p as ua,q as Ha,f as ma,w as Ia,r as Ql,x as cp,y as Bl,z as up,A as mp,B as gp,G as Gt,H as Wt,u as pp,J as yp}from"./vendor-arizeai-DJ2Xx4kZ.js";import{s as fp,l as hp,j as Jt,a as Qe,i as Zt,b as kp,c as bp,d as oa,e as Rn,f as qr,D as Ur,g as aa,h as ul,C as _l,k as Sp,m as Te,T as pn,n as vp,o as Xt,p as Bi,q as Cp,r as qi,t as Fp,u as Kp,v as Tp,G as ql,_ as b,w as v,x as E,I as A,E as Da,y as Ue,z as C,A as Y,R as Ce,B as he,F as me,H as Ui,J as Hi,N as la,K as He,P as ta,L as Oa,M as Xe,O as Ye,Q as mn,S as En,U as _a,V as dn,W as vn,X as De,Y as re,Z as be,$ as Je,a0 as kl,a1 as Hr,a2 as Me,a3 as Gr,a4 as Re,a5 as we,a6 as Yt,a7 as Nn,a8 as Wr,a9 as an,aa as ae,ab as ue,ac as ln,ad as Jr,ae as Rl,af as qe,ag as qn,ah as Pp,ai as Zr,aj as At,ak as Ul,al as Hl,am as xp,an as Ip,ao as wt,ap as Kl,aq as de,ar as Xr,as as Dp,at as _p,au as Cn,av as Lp,aw as $n,ax as Ap,ay as Yr,az as Gl,aA as La,aB as ei,aC as ni,aD as eo,aE as wp,aF as Rp,aG as Ep,aH as Mp,aI as Vp,aJ as Np,aK as zp,aL as Ke,aM as $p,aN as jp,aO as gl,aP as Op,aQ as pe,aR as Rt,aS as ye,aT as fe,aU as yn,aV as Qp,aW as Bp,aX as qp,aY as hn,aZ as Up,a_ as Hp,a$ as Gp,b0 as Wl,b1 as Jl,b2 as no,b3 as Wp,b4 as Jp,b5 as Zp,b6 as Zl,b7 as Xp,b8 as ao,b9 as Yp,ba as ai,bb as Tn,bc as ey,bd as ny,be as ay,bf as jn,bg as nn,bh as lo,bi as ga,bj as $e,bk as to,bl as On,bm as Xl,bn as Ga,bo as Aa,bp as io,bq as kn,br as ro,bs as ly,bt as li,bu as va,bv as ty,bw as Va,bx as iy,by as ry,bz as ti,bA as Yl,bB as Un,bC as pa,bD as Et,bE as oy,bF as sy,bG as oo,bH as Gi,bI as Wi,bJ as dy,bK as El,bL as Mt,bM as cy,bN as uy,bO as Wa,bP as my,bQ as gy,bR as pl,bS as py,bT as tn,bU as Ln,bV as so,bW as et,bX as nt,bY as Hn,bZ as yy,b_ as fy,b$ as bn,c0 as Mn,c1 as Fa,c2 as ii,c3 as co,c4 as ri,c5 as at,c6 as uo,c7 as lt,c8 as Gn,c9 as mo,ca as tt,cb as hy,cc as ky,cd as by,ce as Sy,cf as vy,cg as Cy,ch as Fy,ci as oi,cj as go,ck as po,cl as yo,cm as on,cn as fo,co as ho,cp as Vt,cq as si,cr as di,cs as Ky,ct as Ty,cu as Py,cv as ci,cw as xy,cx as Iy,cy as it,cz as Dy,cA as ko,cB as _y,cC as Ly,cD as Ay,cE as wy,cF as Ry,cG as Ey,cH as My,cI as Vy,cJ as Ny,cK as bo,cL as So,cM as Ji,cN as zy,cO as ui,cP as zn,cQ as Wn,cR as mi,cS as vo,cT as Co,cU as Zi,cV as Xi,cW as $y,cX as jy,cY as ee,cZ as Fo,c_ as rt,c$ as ot,d0 as Ja,d1 as Ko,d2 as Za,d3 as Xa,d4 as To,d5 as Oy,d6 as Qy,d7 as By,d8 as qy,d9 as Uy,da as Hy,db as Gy,dc as Ka,dd as Po,de as Wy,df as Jy,dg as Yi,dh as Zy,di as Xy,dj as Yy,dk as ef,dl as nf,dm as af,dn as xo,dp as lf,dq as tf,dr as rf,ds as of,dt as Ta,du as gi,dv as Io,dw as Na,dx as vt,dy as sf,dz as Do,dA as df,dB as pi,dC as st,dD as In,dE as cf,dF as _o,dG as uf,dH as mf,dI as Lo,dJ as Ao,dK as gf,dL as pf,dM as wo,dN as yf,dO as ff,dP as hf,dQ as er,dR as kf,dS as bf,dT as Sf,dU as vf,dV as Cf,dW as Ff,dX as Kf,dY as Ct,dZ as Ro,d_ as Tf,d$ as Pf,e0 as nr,e1 as xf,e2 as If,e3 as za,e4 as Df,e5 as _f,e6 as Lf,e7 as Af,e8 as wf,e9 as dt,ea as Eo,eb as ar,ec as Rf,ed as Ef,ee as Mf,ef as Vf,eg as Mo,eh as Nf,ei as zf,ej as $f,ek as lr,el as tr}from"./components-fznwgFMD.js";import{g as ya,i as fa,d as jf,E as Vo,R as ha,k as yi,b as Of,p as bl,n as No}from"./vendor-codemirror-CC0itEC8.js";import{P as zo,C as $o,T as Jn,a as jo,R as Zn,b as Sl,X as ka,Y as Vn,c as ba,B as Qa,A as yl,d as Oo,e as fi,L as Qo,f as Qf}from"./vendor-recharts-ZOUPDkCE.js";const Bf=4,qf="Unable to parse span input messages, expected messages which include a role and content.",Uf="Unable to parse span output messages, expected messages which include a role and content.",Hf="Unable to parse span output expected output.value to be present.",Gf="Unable to parse span attributes, attributes must be valid JSON.",Wf="Unable to parse model config, expected llm.model_name to be present.",Jf="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",Zf="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",Xf="Unable to parse tools, expected tools to be an array of valid tools.",Yf="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",ir={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},ia="TOOL_CHOICE",$a="tool_choice",An="RESPONSE_FORMAT",Dn="response_format",eh=[ia,An],nh=R.object({tool_call:R.object({id:R.string().optional(),function:R.object({name:R.string(),arguments:R.string()}).partial()}).partial()}).partial(),Bo=R.object({[Se.message]:R.object({[Ne.role]:R.string(),[Ne.content]:R.union([R.string(),R.array(R.record(R.string(),R.unknown()))]).default(""),[Ne.contents]:R.array(R.object({message_content:R.record(R.string())})).optional(),[Ne.tool_calls]:R.array(nh).optional(),[Ne.tool_call_id]:R.string().optional()})}),ah=R.object({[Se.llm]:R.object({[Be.input_messages]:R.array(Bo)})}),lh=R.object({[Se.llm]:R.object({[Be.output_messages]:R.array(Bo)})}),th=R.object({[Se.output]:R.object({value:R.string()})}),qo=fp()(R.enum(["user","ai","system","tool"])),ih=R.object({id:R.number(),role:qo,content:R.string().optional(),toolCallId:R.string().optional(),toolCalls:R.array(hp).optional()}),rh=R.array(ih),Uo=R.lazy(()=>R.record(Jt)),oh=Uo,Ho=R.string().transform((n,a)=>{const{json:l}=Qe(n);if(!Zt(l))return a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER;const{success:t,data:i}=oh.safeParse(l);return t?i:(a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER)}).default("{}"),sh=R.object({[Se.llm]:R.object({[Be.provider]:R.string().optional(),[Be.model_name]:R.string()})}),Go=R.object({[Se.llm]:R.object({[Be.invocation_parameters]:Ho})}),dh=R.object({[Se.llm]:R.object({[Be.invocation_parameters]:Ho.pipe(R.object({response_format:Uo.optional()}))})}),ch=R.object({url:R.object({full:R.string(),path:R.string().optional()})}),uh=R.string().transform((n,a)=>{const{json:l}=Qe(n);return l==null||!Zt(l)?(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),R.NEVER):l}).transform((n,a)=>{const{data:l,success:t}=kp.safeParse(n);return t?l:(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),R.NEVER)}),mh=R.object({[Se.llm]:R.object({[Be.tools]:R.array(R.object({[Se.tool]:R.object({[Dl.json_schema]:uh})}).optional()).optional()}).optional()}).optional(),gh=R.lazy(()=>R.object({type:R.literal("json_schema"),json_schema:R.object({name:R.string().describe("The name of the schema"),schema:bp.describe("The schema itself in JSON schema format"),strict:R.literal(!0).describe("The schema must be strict")})})),ph=Nl(gh,{removeAdditionalStrategy:"passthrough"}),yh=R.string().transform((n,a)=>{const{json:l}=Qe(n);return oa(l)?Object.entries(l).reduce((i,[r,s])=>{if(typeof s=="string")i[r]=s;else{const{json:d}=Rn(s);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:R.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),R.NEVER)}),fh=R.object({[Se.llm]:R.object({[Be.prompt_template]:R.object({variables:yh}).optional()}).optional()}).optional();function Wo(n){return qo.safeParse(n).success}function ea(n){const a=n.toLowerCase();if(Wo(a))return a;for(const[l,t]of Object.entries(_l))if(t.includes(a))return l;return Sp}function hh({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:l})=>{var i,r,s,d;if(l==null)return null;let t={};if(((i=l.function)==null?void 0:i.arguments)!=null){const{json:c}=Qe(l.function.arguments);oa(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:((s=l.function)==null?void 0:s.name)??"",input:t};case"GOOGLE":return{id:l.id??"",function:{name:((d=l.function)==null?void 0:d.name)??"",arguments:t}};default:Te()}}).filter(l=>l!=null)}function Jo({messages:n,provider:a}){return n.map(({message:l})=>{var t,i;return{id:aa(),role:l.tool_call_id!=null?ea("tool"):ea(l.role),content:Array.isArray(l.contents)?((i=(t=l.contents.find(r=>r.message_content.type==="text"))==null?void 0:t.message_content)==null?void 0:i.text)??void 0:typeof l.content=="string"?l.content:void 0,toolCalls:hh({provider:a,toolCalls:l.tool_calls}),toolCallId:l.tool_call_id}})}function kh({provider:n,parsedAttributes:a}){var t;const l=ah.safeParse(a);if(!l.success)return{messageParsingErrors:[qf],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=Go.safeParse(a);if(i){const s=l.data.llm.input_messages,d=(t=r.llm.invocation_parameters)==null?void 0:t.system;typeof d=="string"&&d&&(!s||s[0].message.role!=="system")&&l.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:Jo({provider:n,messages:l.data.llm.input_messages})}}function bh({provider:n,parsedAttributes:a}){const l=[],t=lh.safeParse(a);if(t.success)return{output:Jo({provider:n,messages:t.data.llm.output_messages}),outputParsingErrors:l};l.push(Uf);const i=th.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:l}:(l.push(Hf),{output:void 0,outputParsingErrors:l})}function Zo(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 Sh(n){for(const a of Object.keys(ir))if(ir[a].some(t=>n.includes(t)))return a;return Ur}function vh(n){const{success:a,data:l}=sh.safeParse(n);if(a){const t=Zo(l.llm.provider)||Sh(l.llm.model_name),i=Ch(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,s])=>s!==null)),modelName:l.llm.model_name,provider:t,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[Wf]}}function Ch(n){const{success:a,data:l}=ch.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 Fh(n,a=[]){const{success:l,data:t}=Go.safeParse(n),i=[];return l||i.push(Jf),{invocationParameters:Ah((t==null?void 0:t.llm.invocation_parameters)??{},a),parsingErrors:i}}function Kh(n){const{success:a,data:l}=dh.safeParse(n);return a?{responseFormat:l.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[Zf]}}function Th(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:ul(),definition:l.tool.json_schema}).filter(l=>l!=null)}function Ph(n){var t;const{data:a,success:l}=mh.safeParse(n);return l?((t=a==null?void 0:a.llm)==null?void 0:t.tools)==null?{tools:null,parsingErrors:[]}:{tools:Th(a),parsingErrors:[]}:{tools:null,parsingErrors:[Xf]}}function xh(n){var t;const{success:a,data:l}=fh.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:[Yf]}}function Ih(n){const{instance:a,instanceMessages:l}=qr(),t={...a,template:{__type:"chat",messages:Object.values(l)}},{json:i,parseError:r}=Qe(n.attributes);if(r)return{playgroundInstance:{...t,spanId:(n==null?void 0:n.id)??null},parsingErrors:[Gf]};const s=n.invocationParameters,d=vh(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:u}=kh({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=bh({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:h}=Fh(i,s),{variables:S,parsingErrors:F}=xh(i),{parsingErrors:P}=Kh(i);c=c!=null?{...c,invocationParameters:P.length>0?k.filter(D=>D.invocationName!==Dn&&D.canonicalName!==An):k}:null;const{tools:T,parsingErrors:_}=Ph(i),I=f==null?void 0:f.map(D=>({...D,content:D.role==="tool"?hi(D.content):D.content}));return{playgroundInstance:{...t,model:c??t.model,template:I!=null?{__type:"chat",messages:I}:t.template,output:g,spanId:n.id,tools:T??t.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...u,...y,...p,..._,...h,...P,...F]}}const Dh=n=>rh.safeParse(n).success,Xo=({instance:n,templateFormat:a})=>{if(a==pn.NONE)return[];const l=new Set,t=n.template.__type,i=vp(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(s=>{l.add(s)});break}default:Te()}return Array.from(l)},_h=({instances:n,templateFormat:a})=>a==pn.NONE?[]:Array.from(new Set(n.flatMap(l=>Xo({instance:l,templateFormat:a})))),Yo=({instances:n,templateFormat:a,input:l})=>{if(a==pn.NONE)return{variablesMap:{},variableKeys:[]};const t=_h({instances:n,templateFormat:a}),i=l.variablesValueCache??{};return{variablesMap:t.reduce((s,d)=>(s[d]=i[d]||"",s),{}),variableKeys:t}};function sa(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Lh=(n,a)=>n.filter(l=>a.some(t=>sa(t,l))).map(l=>{var t;return{...l,invocationName:((t=a.find(i=>sa(i,l)))==null?void 0:t.invocationName)??l.invocationName}}),Ya=n=>n.replace(/_([a-z])/g,(a,l)=>l.toUpperCase()),Ah=(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,[Ya(i.invocationInputField)]:t}}).filter(l=>l!=null),es=n=>{const{provider:a,validatedToolDefinition:l}=Kp(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return l.function.name;case"ANTHROPIC":return l.name;case"UNKNOWN":return null;default:Te()}},wh=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:ul(),definition:qi(a)};case"ANTHROPIC":return{id:ul(),definition:Fp(a)};case"GOOGLE":return{id:ul(),definition:qi(a)};default:Te()}},Rh=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return Bi();case"ANTHROPIC":return Cp();case"GOOGLE":return Bi();default:Te()}};function Eh(n){return{content:n.content,role:Mh(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function Mh(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Te()}}const ns=({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 s=r.template.messageIds.map(g=>i[g]).filter(g=>g!=null),d=r.model.supportedInvocationParameters;let c=[...r.model.invocationParameters];const p=Xt({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==$a&&g.canonicalName!==ia),c.push({canonicalName:ia,invocationName:$a,valueJson:p})):c=c.filter(g=>g.invocationName!==$a&&g.canonicalName!==ia),c=d.length?Lh(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:s.map(Eh),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:ls(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}},ct=(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},Vh=({playgroundStore:n,instanceId:a,credentials:l})=>{const t=ns({playgroundStore:n,instanceId:a,credentials:l}),{instances:i,templateFormat:r,input:s,allInstanceMessages:d}=n.getState(),c=i.map(f=>ct(f,d)),{variablesMap:p}=Yo({instances:c,input:s,templateFormat:r});return{...t,template:{variables:p,format:r}}},rr=({playgroundStore:n,instanceId:a,credentials:l,datasetId:t})=>({...ns({playgroundStore:n,instanceId:a,credentials:l}),templateFormat:n.getState().templateFormat,datasetId:t});function hi(n){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 as(n,a){return a.filter(l=>l.required).every(l=>n.some(t=>sa(t,l)))}const Nh=n=>{for(const[a,l]of Object.entries(n))if(a.endsWith("DefaultValue")&&l!=null)return n[a]};function Y2(n,a){const l=new Map(n.map(t=>[t.invocationName,t]));return a.forEach(t=>{var c;const i=t.invocationName,r=Nh(t),s=Ya(t.invocationInputField||"");if(!t.invocationName||!t.invocationInputField||!i||r==null||((c=l.get(i))==null?void 0:c[s])!=null)return;const d={canonicalName:t.canonicalName,invocationName:t.invocationName,[s]:r};l.set(i,d)}),Array.from(l.values())}const zh=R.object({type:R.literal("enabled")}).passthrough(),$h=R.object({type:R.enum(["any","tool"])}).passthrough(),jh=(n,a)=>{if(!a)return n;const l=n.some(t=>t.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&t.valueJson&&zh.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===ia)return!$h.safeParse(t.valueJson).success}return!0})},ls=(n,a,l)=>a==="ANTHROPIC"?jh(n,l):n,ts=m.createContext(null);function eK({children:n,...a}){const[l]=m.useState(()=>Tp(a));return e(ts.Provider,{value:l,children:n})}function Ba(n,a){const l=m.useContext(ts);if(!l)throw new Error("Missing CredentialsContext.Provider in the tree");return fl(l,n,a)}const is=m.createContext(null);function Oh(){const n=m.useContext(is);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function nK(n){return e(is.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const rs={argumentDefinitions:[],kind:"Fragment",metadata:null,name:"GenerativeProvidersCard_data",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}],type:"Query",abstractKey:null};rs.hash="0168d590171b96e7a2e41449a41754be";function Qh({query:n}){const[a,l]=m.useState(null),t=Ba(f=>f),i=Ba(f=>f.setCredential),r=x.useFragment(rs,n),s=m.useMemo(()=>[...r.modelProviders],[r]),d=m.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>o(b,{direction:"row",alignItems:"center",gap:"size-100",children:[e(ql,{provider:f.original.key,height:18}),f.original.name]})},{header:"Environment Variable",accessorKey:"apiKeyEnvVar",cell:({row:f})=>e(v,{children:f.original.apiKeyEnvVar})},{header:"configuration",accessorKey:"apiKeySet",cell:({row:f})=>f.original.dependenciesInstalled?t[f.original.key]?e(v,{color:"success",children:"local"}):f.original.apiKeySet?e(v,{color:"success",children:"configured on the server"}):e(v,{color:"text-700",children:"not configured"}):e(v,{color:"warning",children:"missing dependencies"})},{header:"",accessorKey:"id",cell:({row:f})=>e(b,{direction:"row",justifyContent:"end",gap:"size-100",width:"100%",children:e(E,{size:"S",leadingVisual:e(A,{svg:e(Da,{})}),onPress:()=>{l(f.original)}})})}],[t]),c=Pe({columns:d,data:s,getCoreRowModel:xe(),getSortedRowModel:cn()}),p=c.getRowModel().rows;return o(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[o("table",{css:Ue,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(u=>e("th",{colSpan:u.colSpan,children:u.isPlaceholder?null:e("div",{children:W(u.column.columnDef.header,u.getContext())})},u.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(u=>e("td",{children:W(u.column.columnDef.cell,u.getContext())},u.id))},f.id))})]}),e(ie,{type:"modal",isDismissable:!0,onDismiss:()=>l(null),children:a&&o(ne,{title:`Set ${a.name} API Key`,size:"S",children:[o(C,{padding:"size-200",children:[e(C,{paddingBottom:"size-100",children:o(v,{size:"XS",children:["Set the credentials for the ",a.name," API. These credentials will be stored entirely in your browser and will only be sent to the server during API requests."]})}),o(Y,{onChange:f=>{i({provider:a.key,value:f})},value:t[a.key],type:"password",children:[e(G,{children:`${a.name} API Key`}),e(Z,{placeholder:`e.g. ${a.apiKeyEnvVar}`}),e(v,{slot:"description",children:"The API key will be stored locally in your browser"})]})]}),e(C,{paddingX:"size-200",paddingY:"size-100",borderTopWidth:"thin",borderColor:"light",children:e(b,{direction:"row",justifyContent:"end",gap:"size-100",children:e(E,{variant:"primary",size:"S",onPress:()=>{l(null)},children:"Set API Key"})})})]})})]})}function aK(){const n=je();return Ze(n),e(Qh,{query:n})}const os={fragment:{argumentDefinitions:[],kind:"Fragment",metadata:null,name:"settingsAIProvidersPageLoaderQuery",selections:[{args:null,kind:"FragmentSpread",name:"GenerativeProvidersCard_data"}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[],kind:"Operation",name:"settingsAIProvidersPageLoaderQuery",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}]},params:{cacheID:"cc6e19e54ea894e905970362ee382e43",id:null,metadata:{},name:"settingsAIProvidersPageLoaderQuery",operationKind:"query",text:`query settingsAIProvidersPageLoaderQuery {
1
+ import{A as R,bk as Se,bl as Ne,bm as Be,bn as Dl,B as Nl,r as m,j as e,u as fl,o as x,l as o,aF as Pe,aG as cn,aI as xe,aJ as W,S as G,T as Z,bo as je,aX as Ze,ad as Ee,bp as Lg,ah as H,U as ke,aD as ca,E as K,P as J,ai as We,a9 as xa,aa as ra,bq as Ag,br as wg,bs as Rg,bt as Eg,aA as te,ae as Qt,bu as $i,bv as Fe,aL as ce,bw as Oe,bx as Mg,aY as Fn,by as Vg,aM as Ng,bz as zg,I as ji,b0 as qa,aT as Ae,aS as wn,bA as Kn,bB as un,R as sn,m as $r,$ as $g,F as Oi,aW as jg,aV as ja,H as Og,bC as Qg,bD as bt,bE as St,bF as al,b2 as Al,b1 as wl,q as hl,b7 as Bt,bG as Bg,bH as Qi,bI as qg,bJ as Ug,bK as Hg,bL as Gg,bM as Wg,bN as Jg,bO as Zg,bP as Xg,bQ as Yg,bR as ml,D as ep,bS as np,bT as Fl,g as jr,bU as ap,aC as qt,bV as Or,bW as Qr,bX as lp,aj as tp,bY as ip,af as rp,ag as op,bZ as sp,n as dp}from"./vendor-BvFaCsmL.js";import{e as ne,D as ie,C as B,c as Ve,a as ze,T as ve,h as Pn,s as Ut,b as zl,L as $l,t as jl,v as Br,n as Ht,P as Ua,d as Bn,E as Ol,p as ua,q as Ha,f as ma,w as Ia,r as Ql,x as cp,y as Bl,z as up,A as mp,B as gp,G as Gt,H as Wt,u as pp,J as yp}from"./vendor-arizeai-DJ2Xx4kZ.js";import{s as fp,l as hp,j as Jt,a as Qe,i as Zt,b as kp,c as bp,d as oa,e as Rn,f as qr,D as Ur,g as aa,h as ul,C as _l,k as Sp,m as Te,T as pn,n as vp,o as Xt,p as Bi,q as Cp,r as qi,t as Fp,u as Kp,v as Tp,G as ql,_ as b,w as v,x as E,I as A,E as Da,y as Ue,z as C,A as Y,R as Ce,B as he,F as me,H as Ui,J as Hi,N as la,K as He,P as ta,L as Oa,M as Xe,O as Ye,Q as mn,S as En,U as _a,V as dn,W as vn,X as De,Y as re,Z as be,$ as Je,a0 as kl,a1 as Hr,a2 as Me,a3 as Gr,a4 as Re,a5 as we,a6 as Yt,a7 as Nn,a8 as Wr,a9 as an,aa as ae,ab as ue,ac as ln,ad as Jr,ae as Rl,af as qe,ag as qn,ah as Pp,ai as Zr,aj as At,ak as Ul,al as Hl,am as xp,an as Ip,ao as wt,ap as Kl,aq as de,ar as Xr,as as Dp,at as _p,au as Cn,av as Lp,aw as $n,ax as Ap,ay as Yr,az as Gl,aA as La,aB as ei,aC as ni,aD as eo,aE as wp,aF as Rp,aG as Ep,aH as Mp,aI as Vp,aJ as Np,aK as zp,aL as Ke,aM as $p,aN as jp,aO as gl,aP as Op,aQ as pe,aR as Rt,aS as ye,aT as fe,aU as yn,aV as Qp,aW as Bp,aX as qp,aY as hn,aZ as Up,a_ as Hp,a$ as Gp,b0 as Wl,b1 as Jl,b2 as no,b3 as Wp,b4 as Jp,b5 as Zp,b6 as Zl,b7 as Xp,b8 as ao,b9 as Yp,ba as ai,bb as Tn,bc as ey,bd as ny,be as ay,bf as jn,bg as nn,bh as lo,bi as ga,bj as $e,bk as to,bl as On,bm as Xl,bn as Ga,bo as Aa,bp as io,bq as kn,br as ro,bs as ly,bt as li,bu as va,bv as ty,bw as Va,bx as iy,by as ry,bz as ti,bA as Yl,bB as Un,bC as pa,bD as Et,bE as oy,bF as sy,bG as oo,bH as Gi,bI as Wi,bJ as dy,bK as El,bL as Mt,bM as cy,bN as uy,bO as Wa,bP as my,bQ as gy,bR as pl,bS as py,bT as tn,bU as Ln,bV as so,bW as et,bX as nt,bY as Hn,bZ as yy,b_ as fy,b$ as bn,c0 as Mn,c1 as Fa,c2 as ii,c3 as co,c4 as ri,c5 as at,c6 as uo,c7 as lt,c8 as Gn,c9 as mo,ca as tt,cb as hy,cc as ky,cd as by,ce as Sy,cf as vy,cg as Cy,ch as Fy,ci as oi,cj as go,ck as po,cl as yo,cm as on,cn as fo,co as ho,cp as Vt,cq as si,cr as di,cs as Ky,ct as Ty,cu as Py,cv as ci,cw as xy,cx as Iy,cy as it,cz as Dy,cA as ko,cB as _y,cC as Ly,cD as Ay,cE as wy,cF as Ry,cG as Ey,cH as My,cI as Vy,cJ as Ny,cK as bo,cL as So,cM as Ji,cN as zy,cO as ui,cP as zn,cQ as Wn,cR as mi,cS as vo,cT as Co,cU as Zi,cV as Xi,cW as $y,cX as jy,cY as ee,cZ as Fo,c_ as rt,c$ as ot,d0 as Ja,d1 as Ko,d2 as Za,d3 as Xa,d4 as To,d5 as Oy,d6 as Qy,d7 as By,d8 as qy,d9 as Uy,da as Hy,db as Gy,dc as Ka,dd as Po,de as Wy,df as Jy,dg as Yi,dh as Zy,di as Xy,dj as Yy,dk as ef,dl as nf,dm as af,dn as xo,dp as lf,dq as tf,dr as rf,ds as of,dt as Ta,du as gi,dv as Io,dw as Na,dx as vt,dy as sf,dz as Do,dA as df,dB as pi,dC as st,dD as In,dE as cf,dF as _o,dG as uf,dH as mf,dI as Lo,dJ as Ao,dK as gf,dL as pf,dM as wo,dN as yf,dO as ff,dP as hf,dQ as er,dR as kf,dS as bf,dT as Sf,dU as vf,dV as Cf,dW as Ff,dX as Kf,dY as Ct,dZ as Ro,d_ as Tf,d$ as Pf,e0 as nr,e1 as xf,e2 as If,e3 as za,e4 as Df,e5 as _f,e6 as Lf,e7 as Af,e8 as wf,e9 as dt,ea as Eo,eb as ar,ec as Rf,ed as Ef,ee as Mf,ef as Vf,eg as Mo,eh as Nf,ei as zf,ej as $f,ek as lr,el as tr}from"./components-lafqiyl4.js";import{g as ya,i as fa,d as jf,E as Vo,R as ha,k as yi,b as Of,p as bl,n as No}from"./vendor-codemirror-CC0itEC8.js";import{P as zo,C as $o,T as Jn,a as jo,R as Zn,b as Sl,X as ka,Y as Vn,c as ba,B as Qa,A as yl,d as Oo,e as fi,L as Qo,f as Qf}from"./vendor-recharts-ZOUPDkCE.js";const Bf=4,qf="Unable to parse span input messages, expected messages which include a role and content.",Uf="Unable to parse span output messages, expected messages which include a role and content.",Hf="Unable to parse span output expected output.value to be present.",Gf="Unable to parse span attributes, attributes must be valid JSON.",Wf="Unable to parse model config, expected llm.model_name to be present.",Jf="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",Zf="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",Xf="Unable to parse tools, expected tools to be an array of valid tools.",Yf="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",ir={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},ia="TOOL_CHOICE",$a="tool_choice",An="RESPONSE_FORMAT",Dn="response_format",eh=[ia,An],nh=R.object({tool_call:R.object({id:R.string().optional(),function:R.object({name:R.string(),arguments:R.string()}).partial()}).partial()}).partial(),Bo=R.object({[Se.message]:R.object({[Ne.role]:R.string(),[Ne.content]:R.union([R.string(),R.array(R.record(R.string(),R.unknown()))]).default(""),[Ne.contents]:R.array(R.object({message_content:R.record(R.string())})).optional(),[Ne.tool_calls]:R.array(nh).optional(),[Ne.tool_call_id]:R.string().optional()})}),ah=R.object({[Se.llm]:R.object({[Be.input_messages]:R.array(Bo)})}),lh=R.object({[Se.llm]:R.object({[Be.output_messages]:R.array(Bo)})}),th=R.object({[Se.output]:R.object({value:R.string()})}),qo=fp()(R.enum(["user","ai","system","tool"])),ih=R.object({id:R.number(),role:qo,content:R.string().optional(),toolCallId:R.string().optional(),toolCalls:R.array(hp).optional()}),rh=R.array(ih),Uo=R.lazy(()=>R.record(Jt)),oh=Uo,Ho=R.string().transform((n,a)=>{const{json:l}=Qe(n);if(!Zt(l))return a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER;const{success:t,data:i}=oh.safeParse(l);return t?i:(a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER)}).default("{}"),sh=R.object({[Se.llm]:R.object({[Be.provider]:R.string().optional(),[Be.model_name]:R.string()})}),Go=R.object({[Se.llm]:R.object({[Be.invocation_parameters]:Ho})}),dh=R.object({[Se.llm]:R.object({[Be.invocation_parameters]:Ho.pipe(R.object({response_format:Uo.optional()}))})}),ch=R.object({url:R.object({full:R.string(),path:R.string().optional()})}),uh=R.string().transform((n,a)=>{const{json:l}=Qe(n);return l==null||!Zt(l)?(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),R.NEVER):l}).transform((n,a)=>{const{data:l,success:t}=kp.safeParse(n);return t?l:(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),R.NEVER)}),mh=R.object({[Se.llm]:R.object({[Be.tools]:R.array(R.object({[Se.tool]:R.object({[Dl.json_schema]:uh})}).optional()).optional()}).optional()}).optional(),gh=R.lazy(()=>R.object({type:R.literal("json_schema"),json_schema:R.object({name:R.string().describe("The name of the schema"),schema:bp.describe("The schema itself in JSON schema format"),strict:R.literal(!0).describe("The schema must be strict")})})),ph=Nl(gh,{removeAdditionalStrategy:"passthrough"}),yh=R.string().transform((n,a)=>{const{json:l}=Qe(n);return oa(l)?Object.entries(l).reduce((i,[r,s])=>{if(typeof s=="string")i[r]=s;else{const{json:d}=Rn(s);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:R.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),R.NEVER)}),fh=R.object({[Se.llm]:R.object({[Be.prompt_template]:R.object({variables:yh}).optional()}).optional()}).optional();function Wo(n){return qo.safeParse(n).success}function ea(n){const a=n.toLowerCase();if(Wo(a))return a;for(const[l,t]of Object.entries(_l))if(t.includes(a))return l;return Sp}function hh({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:l})=>{var i,r,s,d;if(l==null)return null;let t={};if(((i=l.function)==null?void 0:i.arguments)!=null){const{json:c}=Qe(l.function.arguments);oa(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:((s=l.function)==null?void 0:s.name)??"",input:t};case"GOOGLE":return{id:l.id??"",function:{name:((d=l.function)==null?void 0:d.name)??"",arguments:t}};default:Te()}}).filter(l=>l!=null)}function Jo({messages:n,provider:a}){return n.map(({message:l})=>{var t,i;return{id:aa(),role:l.tool_call_id!=null?ea("tool"):ea(l.role),content:Array.isArray(l.contents)?((i=(t=l.contents.find(r=>r.message_content.type==="text"))==null?void 0:t.message_content)==null?void 0:i.text)??void 0:typeof l.content=="string"?l.content:void 0,toolCalls:hh({provider:a,toolCalls:l.tool_calls}),toolCallId:l.tool_call_id}})}function kh({provider:n,parsedAttributes:a}){var t;const l=ah.safeParse(a);if(!l.success)return{messageParsingErrors:[qf],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=Go.safeParse(a);if(i){const s=l.data.llm.input_messages,d=(t=r.llm.invocation_parameters)==null?void 0:t.system;typeof d=="string"&&d&&(!s||s[0].message.role!=="system")&&l.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:Jo({provider:n,messages:l.data.llm.input_messages})}}function bh({provider:n,parsedAttributes:a}){const l=[],t=lh.safeParse(a);if(t.success)return{output:Jo({provider:n,messages:t.data.llm.output_messages}),outputParsingErrors:l};l.push(Uf);const i=th.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:l}:(l.push(Hf),{output:void 0,outputParsingErrors:l})}function Zo(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 Sh(n){for(const a of Object.keys(ir))if(ir[a].some(t=>n.includes(t)))return a;return Ur}function vh(n){const{success:a,data:l}=sh.safeParse(n);if(a){const t=Zo(l.llm.provider)||Sh(l.llm.model_name),i=Ch(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,s])=>s!==null)),modelName:l.llm.model_name,provider:t,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[Wf]}}function Ch(n){const{success:a,data:l}=ch.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 Fh(n,a=[]){const{success:l,data:t}=Go.safeParse(n),i=[];return l||i.push(Jf),{invocationParameters:Ah((t==null?void 0:t.llm.invocation_parameters)??{},a),parsingErrors:i}}function Kh(n){const{success:a,data:l}=dh.safeParse(n);return a?{responseFormat:l.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[Zf]}}function Th(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:ul(),definition:l.tool.json_schema}).filter(l=>l!=null)}function Ph(n){var t;const{data:a,success:l}=mh.safeParse(n);return l?((t=a==null?void 0:a.llm)==null?void 0:t.tools)==null?{tools:null,parsingErrors:[]}:{tools:Th(a),parsingErrors:[]}:{tools:null,parsingErrors:[Xf]}}function xh(n){var t;const{success:a,data:l}=fh.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:[Yf]}}function Ih(n){const{instance:a,instanceMessages:l}=qr(),t={...a,template:{__type:"chat",messages:Object.values(l)}},{json:i,parseError:r}=Qe(n.attributes);if(r)return{playgroundInstance:{...t,spanId:(n==null?void 0:n.id)??null},parsingErrors:[Gf]};const s=n.invocationParameters,d=vh(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:u}=kh({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=bh({provider:(c==null?void 0:c.provider)??t.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:h}=Fh(i,s),{variables:S,parsingErrors:F}=xh(i),{parsingErrors:P}=Kh(i);c=c!=null?{...c,invocationParameters:P.length>0?k.filter(D=>D.invocationName!==Dn&&D.canonicalName!==An):k}:null;const{tools:T,parsingErrors:_}=Ph(i),I=f==null?void 0:f.map(D=>({...D,content:D.role==="tool"?hi(D.content):D.content}));return{playgroundInstance:{...t,model:c??t.model,template:I!=null?{__type:"chat",messages:I}:t.template,output:g,spanId:n.id,tools:T??t.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...u,...y,...p,..._,...h,...P,...F]}}const Dh=n=>rh.safeParse(n).success,Xo=({instance:n,templateFormat:a})=>{if(a==pn.NONE)return[];const l=new Set,t=n.template.__type,i=vp(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(s=>{l.add(s)});break}default:Te()}return Array.from(l)},_h=({instances:n,templateFormat:a})=>a==pn.NONE?[]:Array.from(new Set(n.flatMap(l=>Xo({instance:l,templateFormat:a})))),Yo=({instances:n,templateFormat:a,input:l})=>{if(a==pn.NONE)return{variablesMap:{},variableKeys:[]};const t=_h({instances:n,templateFormat:a}),i=l.variablesValueCache??{};return{variablesMap:t.reduce((s,d)=>(s[d]=i[d]||"",s),{}),variableKeys:t}};function sa(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Lh=(n,a)=>n.filter(l=>a.some(t=>sa(t,l))).map(l=>{var t;return{...l,invocationName:((t=a.find(i=>sa(i,l)))==null?void 0:t.invocationName)??l.invocationName}}),Ya=n=>n.replace(/_([a-z])/g,(a,l)=>l.toUpperCase()),Ah=(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,[Ya(i.invocationInputField)]:t}}).filter(l=>l!=null),es=n=>{const{provider:a,validatedToolDefinition:l}=Kp(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return l.function.name;case"ANTHROPIC":return l.name;case"UNKNOWN":return null;default:Te()}},wh=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:ul(),definition:qi(a)};case"ANTHROPIC":return{id:ul(),definition:Fp(a)};case"GOOGLE":return{id:ul(),definition:qi(a)};default:Te()}},Rh=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return Bi();case"ANTHROPIC":return Cp();case"GOOGLE":return Bi();default:Te()}};function Eh(n){return{content:n.content,role:Mh(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function Mh(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Te()}}const ns=({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 s=r.template.messageIds.map(g=>i[g]).filter(g=>g!=null),d=r.model.supportedInvocationParameters;let c=[...r.model.invocationParameters];const p=Xt({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==$a&&g.canonicalName!==ia),c.push({canonicalName:ia,invocationName:$a,valueJson:p})):c=c.filter(g=>g.invocationName!==$a&&g.canonicalName!==ia),c=d.length?Lh(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:s.map(Eh),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:ls(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}},ct=(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},Vh=({playgroundStore:n,instanceId:a,credentials:l})=>{const t=ns({playgroundStore:n,instanceId:a,credentials:l}),{instances:i,templateFormat:r,input:s,allInstanceMessages:d}=n.getState(),c=i.map(f=>ct(f,d)),{variablesMap:p}=Yo({instances:c,input:s,templateFormat:r});return{...t,template:{variables:p,format:r}}},rr=({playgroundStore:n,instanceId:a,credentials:l,datasetId:t})=>({...ns({playgroundStore:n,instanceId:a,credentials:l}),templateFormat:n.getState().templateFormat,datasetId:t});function hi(n){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 as(n,a){return a.filter(l=>l.required).every(l=>n.some(t=>sa(t,l)))}const Nh=n=>{for(const[a,l]of Object.entries(n))if(a.endsWith("DefaultValue")&&l!=null)return n[a]};function Y2(n,a){const l=new Map(n.map(t=>[t.invocationName,t]));return a.forEach(t=>{var c;const i=t.invocationName,r=Nh(t),s=Ya(t.invocationInputField||"");if(!t.invocationName||!t.invocationInputField||!i||r==null||((c=l.get(i))==null?void 0:c[s])!=null)return;const d={canonicalName:t.canonicalName,invocationName:t.invocationName,[s]:r};l.set(i,d)}),Array.from(l.values())}const zh=R.object({type:R.literal("enabled")}).passthrough(),$h=R.object({type:R.enum(["any","tool"])}).passthrough(),jh=(n,a)=>{if(!a)return n;const l=n.some(t=>t.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&t.valueJson&&zh.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===ia)return!$h.safeParse(t.valueJson).success}return!0})},ls=(n,a,l)=>a==="ANTHROPIC"?jh(n,l):n,ts=m.createContext(null);function eK({children:n,...a}){const[l]=m.useState(()=>Tp(a));return e(ts.Provider,{value:l,children:n})}function Ba(n,a){const l=m.useContext(ts);if(!l)throw new Error("Missing CredentialsContext.Provider in the tree");return fl(l,n,a)}const is=m.createContext(null);function Oh(){const n=m.useContext(is);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function nK(n){return e(is.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const rs={argumentDefinitions:[],kind:"Fragment",metadata:null,name:"GenerativeProvidersCard_data",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}],type:"Query",abstractKey:null};rs.hash="0168d590171b96e7a2e41449a41754be";function Qh({query:n}){const[a,l]=m.useState(null),t=Ba(f=>f),i=Ba(f=>f.setCredential),r=x.useFragment(rs,n),s=m.useMemo(()=>[...r.modelProviders],[r]),d=m.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>o(b,{direction:"row",alignItems:"center",gap:"size-100",children:[e(ql,{provider:f.original.key,height:18}),f.original.name]})},{header:"Environment Variable",accessorKey:"apiKeyEnvVar",cell:({row:f})=>e(v,{children:f.original.apiKeyEnvVar})},{header:"configuration",accessorKey:"apiKeySet",cell:({row:f})=>f.original.dependenciesInstalled?t[f.original.key]?e(v,{color:"success",children:"local"}):f.original.apiKeySet?e(v,{color:"success",children:"configured on the server"}):e(v,{color:"text-700",children:"not configured"}):e(v,{color:"warning",children:"missing dependencies"})},{header:"",accessorKey:"id",cell:({row:f})=>e(b,{direction:"row",justifyContent:"end",gap:"size-100",width:"100%",children:e(E,{size:"S",leadingVisual:e(A,{svg:e(Da,{})}),onPress:()=>{l(f.original)}})})}],[t]),c=Pe({columns:d,data:s,getCoreRowModel:xe(),getSortedRowModel:cn()}),p=c.getRowModel().rows;return o(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[o("table",{css:Ue,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(u=>e("th",{colSpan:u.colSpan,children:u.isPlaceholder?null:e("div",{children:W(u.column.columnDef.header,u.getContext())})},u.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(u=>e("td",{children:W(u.column.columnDef.cell,u.getContext())},u.id))},f.id))})]}),e(ie,{type:"modal",isDismissable:!0,onDismiss:()=>l(null),children:a&&o(ne,{title:`Set ${a.name} API Key`,size:"S",children:[o(C,{padding:"size-200",children:[e(C,{paddingBottom:"size-100",children:o(v,{size:"XS",children:["Set the credentials for the ",a.name," API. These credentials will be stored entirely in your browser and will only be sent to the server during API requests."]})}),o(Y,{onChange:f=>{i({provider:a.key,value:f})},value:t[a.key],type:"password",children:[e(G,{children:`${a.name} API Key`}),e(Z,{placeholder:`e.g. ${a.apiKeyEnvVar}`}),e(v,{slot:"description",children:"The API key will be stored locally in your browser"})]})]}),e(C,{paddingX:"size-200",paddingY:"size-100",borderTopWidth:"thin",borderColor:"light",children:e(b,{direction:"row",justifyContent:"end",gap:"size-100",children:e(E,{variant:"primary",size:"S",onPress:()=>{l(null)},children:"Set API Key"})})})]})})]})}function aK(){const n=je();return Ze(n),e(Qh,{query:n})}const os={fragment:{argumentDefinitions:[],kind:"Fragment",metadata:null,name:"settingsAIProvidersPageLoaderQuery",selections:[{args:null,kind:"FragmentSpread",name:"GenerativeProvidersCard_data"}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[],kind:"Operation",name:"settingsAIProvidersPageLoaderQuery",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}]},params:{cacheID:"cc6e19e54ea894e905970362ee382e43",id:null,metadata:{},name:"settingsAIProvidersPageLoaderQuery",operationKind:"query",text:`query settingsAIProvidersPageLoaderQuery {
2
2
  ...GenerativeProvidersCard_data
3
3
  }
4
4
 
phoenix/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "9.1.0"
1
+ __version__ = "9.3.0"