arize-phoenix 8.26.3__py3-none-any.whl → 8.27.1__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.26.3.dist-info → arize_phoenix-8.27.1.dist-info}/METADATA +2 -2
- {arize_phoenix-8.26.3.dist-info → arize_phoenix-8.27.1.dist-info}/RECORD +17 -17
- phoenix/server/app.py +12 -1
- phoenix/server/static/.vite/manifest.json +36 -36
- phoenix/server/static/assets/{components-BpgLJxZt.js → components-BEtrHoeq.js} +92 -92
- phoenix/server/static/assets/{index-DHuvzpC2.js → index-Cdj4_6tq.js} +1 -1
- phoenix/server/static/assets/{pages-CNkfmPS4.js → pages-CZ0wMeOx.js} +1 -2
- phoenix/server/static/assets/{vendor-C77BEnnR.js → vendor-BfhM_F1u.js} +178 -178
- phoenix/server/static/assets/{vendor-arizeai-CMLBpPBs.js → vendor-arizeai-CxXYQNUl.js} +1 -1
- phoenix/server/static/assets/{vendor-codemirror-DT1ReytN.js → vendor-codemirror-B0NIFPOL.js} +1 -1
- phoenix/server/static/assets/{vendor-recharts-ByEcbiML.js → vendor-recharts-CrrDFWK1.js} +1 -1
- phoenix/server/static/assets/{vendor-shiki-DEgpVt4G.js → vendor-shiki-C5bJ-RPf.js} +1 -1
- phoenix/version.py +1 -1
- {arize_phoenix-8.26.3.dist-info → arize_phoenix-8.27.1.dist-info}/WHEEL +0 -0
- {arize_phoenix-8.26.3.dist-info → arize_phoenix-8.27.1.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-8.26.3.dist-info → arize_phoenix-8.27.1.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-8.26.3.dist-info → arize_phoenix-8.27.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as t,j as o,bp as z,l as c,P as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,bF as C,el as l,w as E,em as R}from"./vendor-
|
|
1
|
+
import{r as t,j as o,bp as z,l as c,P as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,bF as C,el as l,w as E,em as R}from"./vendor-BfhM_F1u.js";import{c as I,x as j,D as A,K as T,M as _}from"./vendor-arizeai-CxXYQNUl.js";import{L as D,r as O,d as G,e as M,F as N,f as V,P as q,h as K,M as m,g as U,D as W,i as B,E as H,j as J,k as Y,p as $,l as X,n as p,o as Z,q as Q,s as oo,S as lo,t as ao,v as ro,w as co,x as go,y as eo,z as bo,A as u,B as f,C as y,G as no,H as io,I as so,J as to,K as mo,N as po,O as uo,Q as fo,U as yo,V as vo,W as ho,X as xo,Y as zo,Z as wo,_ as Po,$ as ko,a0 as So,a1 as Fo,a2 as Lo,a3 as Co,a4 as Eo,a5 as Ro,a6 as Io,a7 as jo,a8 as Ao,a9 as To,aa as _o,ab as Do,ac as Oo,ad as Go,ae as Mo,af as No,ag as Vo,ah as qo}from"./pages-CZ0wMeOx.js";import{z as Ko,dX as Uo,bH as Wo,R as Bo,dY as Ho,dZ as Jo}from"./components-BEtrHoeq.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-B0NIFPOL.js";import"./vendor-shiki-C5bJ-RPf.js";import"./vendor-recharts-CrrDFWK1.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const g of r)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&s(n)}).observe(document,{childList:!0,subtree:!0});function i(r){const g={};return r.integrity&&(g.integrity=r.integrity),r.referrerPolicy&&(g.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?g.credentials="include":r.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function s(r){if(r.ep)return;r.ep=!0;const g=i(r);fetch(r.href,g)}})();const v="arize-phoenix-feature-flags",d={__RESET__:!1};function Yo(){const a=localStorage.getItem(v);if(!a)return d;try{const e=JSON.parse(a);return Object.assign({},d,e)}catch{return d}}const h=t.createContext(null);function $o(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Xo(a){const[e,i]=t.useState(Yo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Zo,{children:a.children})})}function Zo(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=$o(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(A,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(I,{title:"Feature Flags",children:o(Ko,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(j,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const Qo=b`
|
|
2
2
|
:root {
|
|
3
3
|
--ac-global-dimension-scale-factor: 1;
|
|
4
4
|
--ac-global-dimension-size-0: 0px;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as w,b5 as fe,b6 as Ae,b7 as ze,b8 as Tt,B as Dt,r as u,j as e,R as he,u as ut,w as I,l as s,aA as Le,aB as In,aD as we,aE as J,S as W,T as re,b9 as qe,ba as Je,ad as Dl,bb as Ki,ac as Qe,ah as ln,ag as G,U as xe,P as U,ax as ie,E as F,bc as Te,aI as ue,bd as Be,be as hm,a8 as _t,ay as Ca,a9 as Lt,bf as gn,bg as km,aJ as bm,bh as Sm,H as Ti,bi as mt,aP as _e,aO as Cn,bj as yn,bk as xn,m as yr,$ as vm,F as Pi,K as Cm,bl as Fm,bm as dl,bn as cl,bo as Ga,o as pt,bp as Km,aU as fr,bq as Tm,br as Ii,bs as Pm,bt as Im,bu as xm,bv as Dm,bw as _m,bx as Lm,by as wm,bz as Em,bA as Rm,bB as it,D as Mm,bC as Vm,bD as bt,g as hr,bE as Am,aF as _l,bF as kr,bG as br,bH as zm,ai as Nm,bI as $m,ae as Om,af as Qm,bJ as jm,n as qm}from"./vendor-C77BEnnR.js";import{c as Z,D as ae,C as B,t as Ll,h as Dn,b as wt,L as Et,v as Rt,w as Sr,o as wl,P as Va,f as Oe,g as la,T as ve,E as Mt,q as ia,r as Aa,a as $e,d as ra,x as Fa,s as Vt,y as Bm,i as At,z as Um,A as Hm,B as Gm,G as El,H as Rl,u as Wm,J as Jm}from"./vendor-arizeai-CMLBpPBs.js";import{s as Zm,l as Xm,j as Ml,a as Ve,i as Vl,b as Ym,c as ep,d as ea,e as Fn,f as vr,D as Cr,g as Zn,h as tt,k as np,m as Ce,T as nn,n as ap,o as Al,p as xi,q as tp,r as Di,t as lp,u as ip,v as rp,G as zt,_ as h,w as v,x as V,I as _,E as gt,y as dn,z as C,A as X,R as Ke,B as Ie,C as ke,F as De,H as Ee,J as Re,K as cn,L as un,M as mn,N as zl,O as Fe,P as _n,Q as Fr,S as He,U as ne,V as ce,W as Ge,X as Kr,Y as It,Z as Ne,$ as zn,a0 as sp,a1 as Ye,a2 as Tr,a3 as Fl,a4 as Nl,a5 as $l,a6 as op,a7 as dp,a8 as Kl,a9 as St,aa as oe,ab as Pr,ac as cp,ad as up,ae as pn,af as mp,ag as En,ah as pp,ai as Ir,aj as Nt,ak as Ka,al as Ol,am as Ql,an as xr,ao as gp,ap as yp,aq as fp,ar as hp,as as kp,at as bp,au as Sp,av as rt,aw as vp,ax as me,ay as Tl,az as pe,aA as ge,aB as an,aC as Cp,aD as Fp,aE as Kp,aF as rn,aG as se,aH as Dr,aI as Tp,aJ as Pp,aK as Ip,aL as $t,aM as Ot,aN as _r,aO as xp,aP as Dp,aQ as _p,aR as Qt,aS as Lp,aT as Lr,aU as La,aV as st,aW as Ze,aX as wp,aY as jl,aZ as fn,a_ as Ep,a$ as Rp,b0 as Mp,b1 as Mn,b2 as Se,b3 as Ue,b4 as We,b5 as wr,b6 as sa,b7 as Me,b8 as za,b9 as Nn,ba as Vn,bb as jt,bc as Na,bd as Ta,be as Er,bf as sn,bg as Rr,bh as Vp,bi as ql,bj as fa,bk as Ap,bl as Gn,bm as zp,bn as Np,bo as Bl,bp as qt,bq as $n,br as oa,bs as _i,bt as Li,bu as $p,bv as Op,bw as Qp,bx as $a,by as jp,bz as qp,bA as ot,bB as Bp,bC as lt,bD as Kn,bE as Xn,bF as Bt,bG as Ut,bH as On,bI as Up,bJ as Hp,bK as on,bL as Tn,bM as ka,bN as Ul,bO as Mr,bP as Hl,bQ as Gp,bR as Wp,bS as Jp,bT as Gl,bU as Vr,bV as Ar,bW as zr,bX as Xe,bY as Nr,bZ as $r,b_ as Pl,b$ as Zp,c0 as Wl,c1 as Jl,c2 as Or,c3 as Xp,c4 as Yp,c5 as eg,c6 as Zl,c7 as ng,c8 as ag,c9 as Xl,ca as tg,cb as Qr,cc as lg,cd as ig,ce as rg,cf as sg,cg as og,ch as dg,ci as cg,cj as Ht,ck as ug,cl as mg,cm as jr,cn as qr,co as wi,cp as pg,cq as Ln,cr as Qn,cs as Yl,ct as Br,cu as Ur,cv as Ei,cw as Ri,cx as gg,cy as yg,cz as H,cA as Hr,cB as Gt,cC as Wt,cD as Oa,cE as Gr,cF as Qa,cG as ja,cH as Wr,cI as jn,cJ as Jt,cK as fg,cL as hg,cM as kg,cN as bg,cO as Sg,cP as vg,cQ as Cg,cR as ba,cS as Jr,cT as Fg,cU as Kg,cV as Mi,cW as Tg,cX as Pg,cY as Ig,cZ as xg,c_ as Dg,c$ as _g,d0 as Zr,d1 as Lg,d2 as wg,d3 as Eg,d4 as Rg,d5 as Sa,d6 as ei,d7 as Xr,d8 as _a,d9 as Zt,da as Yr,db as es,dc as ul,dd as Mg,de as ns,df as Vg,dg as ni,dh as Xt,di as kn,dj as Ag,dk as as,dl as zg,dm as Ng,dn as ts,dp as ls,dq as $g,dr as Og,ds as is,dt as Qg,du as na,dv as jg,dw as qg,dx as Vi,dy as Bg,dz as Ug,dA as Hg,dB as Gg,dC as Wg,dD as ml,dE as Jg,dF as wa,dG as Zg,dH as Xg,dI as Yg,dJ as ey,dK as Yt,dL as rs,dM as Ai,dN as ny,dO as ay,dP as ty,dQ as ly,dR as ss,dS as iy,dT as ry,dU as sy,dV as zi,dW as Ni}from"./components-BpgLJxZt.js";import{g as da,i as ca,d as oy,E as os,R as ua,k as ai,b as dy,p as yt,n as ds}from"./vendor-codemirror-DT1ReytN.js";import{P as cs,C as us,T as qn,a as ms,R as Bn,b as ft,X as ma,Y as Pn,c as pa,B as Ra,A as dt,d as ps,e as ti,L as gs,f as cy}from"./vendor-recharts-ByEcbiML.js";const uy=4,my={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},py="Unable to parse span input messages, expected messages which include a role and content.",gy="Unable to parse span output messages, expected messages which include a role and content.",yy="Unable to parse span output expected output.value to be present.",fy="Unable to parse span attributes, attributes must be valid JSON.",hy="Unable to parse model config, expected llm.model_name to be present.",ky="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",by="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",Sy="Unable to parse tools, expected tools to be an array of valid tools.",vy="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",$i={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},Yn="TOOL_CHOICE",Ea="tool_choice",vn="RESPONSE_FORMAT",bn="response_format",Cy=[Yn,vn],Fy=w.object({tool_call:w.object({id:w.string().optional(),function:w.object({name:w.string(),arguments:w.string()}).partial()}).partial()}).partial(),ys=w.object({[fe.message]:w.object({[Ae.role]:w.string(),[Ae.content]:w.union([w.string(),w.array(w.record(w.string(),w.unknown()))]).default(""),[Ae.tool_calls]:w.array(Fy).optional(),[Ae.tool_call_id]:w.string().optional()})}),Ky=w.object({[fe.llm]:w.object({[ze.input_messages]:w.array(ys)})}),Ty=w.object({[fe.llm]:w.object({[ze.output_messages]:w.array(ys)})}),Py=w.object({[fe.output]:w.object({value:w.string()})}),fs=Zm()(w.enum(["user","ai","system","tool"])),Iy=w.object({id:w.number(),role:fs,content:w.string().optional(),toolCallId:w.string().optional(),toolCalls:w.array(Xm).optional()}),xy=w.array(Iy),hs=w.lazy(()=>w.record(Ml)),Dy=hs,ks=w.string().transform((n,a)=>{const{json:t}=Ve(n);if(!Vl(t))return a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER;const{success:l,data:i}=Dy.safeParse(t);return l?i:(a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER)}).default("{}"),_y=w.object({[fe.llm]:w.object({[ze.provider]:w.string().optional(),[ze.model_name]:w.string()})}),bs=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks})}),Ly=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks.pipe(w.object({response_format:hs.optional()}))})}),wy=w.object({url:w.object({full:w.string(),path:w.string().optional()})}),Ey=w.string().transform((n,a)=>{const{json:t}=Ve(n);return t==null||!Vl(t)?(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),w.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=Ym.safeParse(n);return l?t:(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),w.NEVER)}),Ry=w.object({[fe.llm]:w.object({[ze.tools]:w.array(w.object({[fe.tool]:w.object({[Tt.json_schema]:Ey})}).optional()).optional()}).optional()}).optional(),My=w.lazy(()=>w.object({type:w.literal("json_schema"),json_schema:w.object({name:w.string().describe("The name of the schema"),schema:ep.describe("The schema itself in JSON schema format"),strict:w.literal(!0).describe("The schema must be strict")})})),Vy=Dt(My,{removeAdditionalStrategy:"passthrough"}),Ay=w.string().transform((n,a)=>{const{json:t}=Ve(n);return ea(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=Fn(o);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:w.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),w.NEVER)}),zy=w.object({[fe.llm]:w.object({[ze.prompt_template]:w.object({variables:Ay}).optional()}).optional()}).optional();function Ss(n){return fs.safeParse(n).success}function Wn(n){const a=n.toLowerCase();if(Ss(a))return a;for(const[t,l]of Object.entries(my))if(l.includes(a))return t;return np}function Ny({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,o,d;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:c}=Ve(t.function.arguments);ea(c)&&(l=c)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",type:"function",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((o=t.function)==null?void 0:o.name)??"",input:l};case"GOOGLE":return{id:t.id??"",function:{name:((d=t.function)==null?void 0:d.name)??"",arguments:l}};default:Ce()}}).filter(t=>t!=null)}function vs({messages:n,provider:a}){return n.map(({message:t})=>({id:Zn(),role:t.tool_call_id!=null?Wn("tool"):Wn(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Ny({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function $y({provider:n,parsedAttributes:a}){var l;const t=Ky.safeParse(a);if(!t.success)return{messageParsingErrors:[py],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=bs.safeParse(a);if(i){const o=t.data.llm.input_messages,d=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof d=="string"&&d&&(!o||o[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:vs({provider:n,messages:t.data.llm.input_messages})}}function Oy({provider:n,parsedAttributes:a}){const t=[],l=Ty.safeParse(a);if(l.success)return{output:vs({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(gy);const i=Py.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(yy),{output:void 0,outputParsingErrors:t})}function Cs(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 Qy(n){for(const a of Object.keys($i))if($i[a].some(l=>n.includes(l)))return a;return Cr}function jy(n){const{success:a,data:t}=_y.safeParse(n);if(a){const l=Cs(t.llm.provider)||Qy(t.llm.model_name),i=qy(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[hy]}}function qy(n){const{success:a,data:t}=wy.safeParse(n);if(a)try{const l=new URL(t.url.full);let i=l;if(t.url.path)try{i=new URL(t.url.full.split(t.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:l.origin,apiVersion:l.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function By(n,a=[]){const{success:t,data:l}=bs.safeParse(n),i=[];return t||i.push(ky),{invocationParameters:ef((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function Uy(n){const{success:a,data:t}=Ly.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[by]}}function Hy(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(t=>(t==null?void 0:t.tool)==null?null:{id:tt(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Gy(n){var l;const{data:a,success:t}=Ry.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:Hy(a),parsingErrors:[]}:{tools:null,parsingErrors:[Sy]}}function Wy(n){var l;const{success:a,data:t}=zy.safeParse(n);return a?((l=t==null?void 0:t.llm)==null?void 0:l.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:t.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[vy]}}function Jy(n){const{instance:a,instanceMessages:t}=vr(),l={...a,template:{__type:"chat",messages:Object.values(t)}},{json:i,parseError:r}=Ve(n.attributes);if(r)return{playgroundInstance:{...l,spanId:(n==null?void 0:n.id)??null},parsingErrors:[fy]};const o=n.invocationParameters,d=jy(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:m}=$y({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=Oy({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=By(i,o),{variables:S,parsingErrors:K}=Wy(i),{parsingErrors:T}=Uy(i);c=c!=null?{...c,invocationParameters:T.length>0?k.filter(D=>D.invocationName!==bn&&D.canonicalName!==vn):k}:null;const{tools:x,parsingErrors:L}=Gy(i),P=f==null?void 0:f.map(D=>({...D,content:D.role==="tool"?li(D.content):D.content}));return{playgroundInstance:{...l,model:c??l.model,template:P!=null?{__type:"chat",messages:P}:l.template,output:g,spanId:n.id,tools:x??l.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...m,...y,...p,...L,...b,...T,...K]}}const Zy=n=>xy.safeParse(n).success,Fs=({instance:n,templateFormat:a})=>{if(a==nn.NONE)return[];const t=new Set,l=n.template.__type,i=ap(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(d=>{t.add(d)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{t.add(o)});break}default:Ce()}return Array.from(t)},Xy=({instances:n,templateFormat:a})=>a==nn.NONE?[]:Array.from(new Set(n.flatMap(t=>Fs({instance:t,templateFormat:a})))),Ks=({instances:n,templateFormat:a,input:t})=>{if(a==nn.NONE)return{variablesMap:{},variableKeys:[]};const l=Xy({instances:n,templateFormat:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:l}};function aa(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Yy=(n,a)=>n.filter(t=>a.some(l=>aa(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>aa(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),qa=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),ef=(n,a)=>Object.entries(n).map(([t,l])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===t.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===t.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[qa(i.invocationInputField)]:l}}).filter(t=>t!=null),Ts=n=>{const{provider:a,validatedToolDefinition:t}=ip(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:Ce()}},nf=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:tt(),definition:Di(a)};case"ANTHROPIC":return{id:tt(),definition:lp(a)};case"GOOGLE":return{id:tt(),definition:Di(a)};default:Ce()}},af=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return xi();case"ANTHROPIC":return tp();case"GOOGLE":return xi();default:Ce()}};function tf(n){return{content:n.content,role:lf(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function lf(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Ce()}}const Ps=({playgroundStore:n,instanceId:a,credentials:t})=>{var m;const{instances:l,allInstanceMessages:i}=n.getState(),r=l.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=Al({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c.push({canonicalName:Yn,invocationName:Ea,valueJson:p})):c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c=d.length?Yy(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(tf),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:xs(c,r.model.provider,r.model.modelName),tools:r.tools.length?r.tools.map(g=>g.definition):void 0,apiKey:t[r.model.provider]||null,promptName:(m=r.prompt)==null?void 0:m.name}},el=(n,a)=>{if(n.template.__type==="chat"){const{messageIds:t,...l}=n.template;return{...n,template:{...l,messages:n.template.messageIds.map(i=>a[i])}}}return n},rf=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=Ps({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(f=>el(f,d)),{variablesMap:p}=Ks({instances:c,input:o,templateFormat:r});return{...l,template:{variables:p,format:r}}},Oi=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...Ps({playgroundStore:n,instanceId:a,credentials:t}),templateFormat:n.getState().templateFormat,datasetId:l});function li(n){if(typeof n=="string"){const a=n.startsWith('"{')||n.startsWith('"[')||n.startsWith('"\\"');try{if(a){const l=JSON.parse(n),i=typeof l=="string"?JSON.parse(l):l;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 Is(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>aa(l,t)))}const sf=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function WC(n,a){const t=new Map(n.map(l=>[l.invocationName,l]));return a.forEach(l=>{var c;const i=l.invocationName,r=sf(l),o=qa(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((c=t.get(i))==null?void 0:c[o])!=null)return;const d={canonicalName:l.canonicalName,invocationName:l.invocationName,[o]:r};t.set(i,d)}),Array.from(t.values())}const of=w.object({type:w.literal("enabled")}).passthrough(),df=w.object({type:w.enum(["any","tool"])}).passthrough(),cf=(n,a)=>{if(!a)return n;const t=n.some(l=>l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&l.valueJson&&of.safeParse(l.valueJson).success);return n.filter(l=>{if(l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&!l.valueJson)return!1;if(t){if(l.canonicalName==="TEMPERATURE"||l.canonicalName==="TOP_P")return!1;if(l.canonicalName===Yn)return!df.safeParse(l.valueJson).success}return!0})},xs=(n,a,t)=>a==="ANTHROPIC"?cf(n,t):n,Ds=u.createContext(null);function JC({children:n,...a}){const[t]=u.useState(()=>rp(a));return e(Ds.Provider,{value:t,children:n})}function Ma(n,a){const t=he.useContext(Ds);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return ut(t,n,a)}const _s=u.createContext(null);function uf(){const n=u.useContext(_s);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function ZC(n){return e(_s.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Ls={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};Ls.hash="0168d590171b96e7a2e41449a41754be";function mf({query:n}){const[a,t]=u.useState(null),l=Ma(f=>f),i=Ma(f=>f.setCredential),r=I.useFragment(Ls,n),o=u.useMemo(()=>[...r.modelProviders],[r]),d=u.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>s(h,{direction:"row",alignItems:"center",gap:"size-100",children:[e(zt,{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?l[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(h,{direction:"row",justifyContent:"end",gap:"size-100",width:"100%",children:e(V,{size:"S",leadingVisual:e(_,{svg:e(gt,{})}),onPress:()=>{t(f.original)}})})}],[l]),c=Le({columns:d,data:o,getCoreRowModel:we(),getSortedRowModel:In()}),p=c.getRowModel().rows;return s(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[s("table",{css:dn,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(m=>e("th",{colSpan:m.colSpan,children:m.isPlaceholder?null:e("div",{children:J(m.column.columnDef.header,m.getContext())})},m.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(m=>e("td",{children:J(m.column.columnDef.cell,m.getContext())},m.id))},f.id))})]}),e(ae,{type:"modal",isDismissable:!0,onDismiss:()=>t(null),children:a&&s(Z,{title:`Set ${a.name} API Key`,size:"S",children:[s(C,{padding:"size-200",children:[e(C,{paddingBottom:"size-100",children:s(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."]})}),s(X,{onChange:f=>{i({provider:a.key,value:f})},value:l[a.key],type:"password",children:[e(W,{children:`${a.name} API Key`}),e(re,{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(h,{direction:"row",justifyContent:"end",gap:"size-100",children:e(V,{variant:"primary",size:"S",onPress:()=>{t(null)},children:"Set API Key"})})})]})})]})}function XC(){const n=qe();return Je(n),e(mf,{query:n})}const ws={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 w,b5 as fe,b6 as Ae,b7 as ze,b8 as Tt,B as Dt,r as u,j as e,R as he,u as ut,w as I,l as s,aA as Le,aB as In,aD as we,aE as J,S as W,T as re,b9 as qe,ba as Je,ad as Dl,bb as Ki,ac as Qe,ah as ln,ag as G,U as xe,P as U,ax as ie,E as F,bc as Te,aI as ue,bd as Be,be as hm,a8 as _t,ay as Ca,a9 as Lt,bf as gn,bg as km,aJ as bm,bh as Sm,H as Ti,bi as mt,aP as _e,aO as Cn,bj as yn,bk as xn,m as yr,$ as vm,F as Pi,K as Cm,bl as Fm,bm as dl,bn as cl,bo as Ga,o as pt,bp as Km,aU as fr,bq as Tm,br as Ii,bs as Pm,bt as Im,bu as xm,bv as Dm,bw as _m,bx as Lm,by as wm,bz as Em,bA as Rm,bB as it,D as Mm,bC as Vm,bD as bt,g as hr,bE as Am,aF as _l,bF as kr,bG as br,bH as zm,ai as Nm,bI as $m,ae as Om,af as Qm,bJ as jm,n as qm}from"./vendor-BfhM_F1u.js";import{c as Z,D as ae,C as B,t as Ll,h as Dn,b as wt,L as Et,v as Rt,w as Sr,o as wl,P as Va,f as Oe,g as la,T as ve,E as Mt,q as ia,r as Aa,a as $e,d as ra,x as Fa,s as Vt,y as Bm,i as At,z as Um,A as Hm,B as Gm,G as El,H as Rl,u as Wm,J as Jm}from"./vendor-arizeai-CxXYQNUl.js";import{s as Zm,l as Xm,j as Ml,a as Ve,i as Vl,b as Ym,c as ep,d as ea,e as Fn,f as vr,D as Cr,g as Zn,h as tt,k as np,m as Ce,T as nn,n as ap,o as Al,p as xi,q as tp,r as Di,t as lp,u as ip,v as rp,G as zt,_ as h,w as v,x as V,I as _,E as gt,y as dn,z as C,A as X,R as Ke,B as Ie,C as ke,F as De,H as Ee,J as Re,K as cn,L as un,M as mn,N as zl,O as Fe,P as _n,Q as Fr,S as He,U as ne,V as ce,W as Ge,X as Kr,Y as It,Z as Ne,$ as zn,a0 as sp,a1 as Ye,a2 as Tr,a3 as Fl,a4 as Nl,a5 as $l,a6 as op,a7 as dp,a8 as Kl,a9 as St,aa as oe,ab as Pr,ac as cp,ad as up,ae as pn,af as mp,ag as En,ah as pp,ai as Ir,aj as Nt,ak as Ka,al as Ol,am as Ql,an as xr,ao as gp,ap as yp,aq as fp,ar as hp,as as kp,at as bp,au as Sp,av as rt,aw as vp,ax as me,ay as Tl,az as pe,aA as ge,aB as an,aC as Cp,aD as Fp,aE as Kp,aF as rn,aG as se,aH as Dr,aI as Tp,aJ as Pp,aK as Ip,aL as $t,aM as Ot,aN as _r,aO as xp,aP as Dp,aQ as _p,aR as Qt,aS as Lp,aT as Lr,aU as La,aV as st,aW as Ze,aX as wp,aY as jl,aZ as fn,a_ as Ep,a$ as Rp,b0 as Mp,b1 as Mn,b2 as Se,b3 as Ue,b4 as We,b5 as wr,b6 as sa,b7 as Me,b8 as za,b9 as Nn,ba as Vn,bb as jt,bc as Na,bd as Ta,be as Er,bf as sn,bg as Rr,bh as Vp,bi as ql,bj as fa,bk as Ap,bl as Gn,bm as zp,bn as Np,bo as Bl,bp as qt,bq as $n,br as oa,bs as _i,bt as Li,bu as $p,bv as Op,bw as Qp,bx as $a,by as jp,bz as qp,bA as ot,bB as Bp,bC as lt,bD as Kn,bE as Xn,bF as Bt,bG as Ut,bH as On,bI as Up,bJ as Hp,bK as on,bL as Tn,bM as ka,bN as Ul,bO as Mr,bP as Hl,bQ as Gp,bR as Wp,bS as Jp,bT as Gl,bU as Vr,bV as Ar,bW as zr,bX as Xe,bY as Nr,bZ as $r,b_ as Pl,b$ as Zp,c0 as Wl,c1 as Jl,c2 as Or,c3 as Xp,c4 as Yp,c5 as eg,c6 as Zl,c7 as ng,c8 as ag,c9 as Xl,ca as tg,cb as Qr,cc as lg,cd as ig,ce as rg,cf as sg,cg as og,ch as dg,ci as cg,cj as Ht,ck as ug,cl as mg,cm as jr,cn as qr,co as wi,cp as pg,cq as Ln,cr as Qn,cs as Yl,ct as Br,cu as Ur,cv as Ei,cw as Ri,cx as gg,cy as yg,cz as H,cA as Hr,cB as Gt,cC as Wt,cD as Oa,cE as Gr,cF as Qa,cG as ja,cH as Wr,cI as jn,cJ as Jt,cK as fg,cL as hg,cM as kg,cN as bg,cO as Sg,cP as vg,cQ as Cg,cR as ba,cS as Jr,cT as Fg,cU as Kg,cV as Mi,cW as Tg,cX as Pg,cY as Ig,cZ as xg,c_ as Dg,c$ as _g,d0 as Zr,d1 as Lg,d2 as wg,d3 as Eg,d4 as Rg,d5 as Sa,d6 as ei,d7 as Xr,d8 as _a,d9 as Zt,da as Yr,db as es,dc as ul,dd as Mg,de as ns,df as Vg,dg as ni,dh as Xt,di as kn,dj as Ag,dk as as,dl as zg,dm as Ng,dn as ts,dp as ls,dq as $g,dr as Og,ds as is,dt as Qg,du as na,dv as jg,dw as qg,dx as Vi,dy as Bg,dz as Ug,dA as Hg,dB as Gg,dC as Wg,dD as ml,dE as Jg,dF as wa,dG as Zg,dH as Xg,dI as Yg,dJ as ey,dK as Yt,dL as rs,dM as Ai,dN as ny,dO as ay,dP as ty,dQ as ly,dR as ss,dS as iy,dT as ry,dU as sy,dV as zi,dW as Ni}from"./components-BEtrHoeq.js";import{g as da,i as ca,d as oy,E as os,R as ua,k as ai,b as dy,p as yt,n as ds}from"./vendor-codemirror-B0NIFPOL.js";import{P as cs,C as us,T as qn,a as ms,R as Bn,b as ft,X as ma,Y as Pn,c as pa,B as Ra,A as dt,d as ps,e as ti,L as gs,f as cy}from"./vendor-recharts-CrrDFWK1.js";const uy=4,my={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},py="Unable to parse span input messages, expected messages which include a role and content.",gy="Unable to parse span output messages, expected messages which include a role and content.",yy="Unable to parse span output expected output.value to be present.",fy="Unable to parse span attributes, attributes must be valid JSON.",hy="Unable to parse model config, expected llm.model_name to be present.",ky="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",by="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",Sy="Unable to parse tools, expected tools to be an array of valid tools.",vy="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",$i={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},Yn="TOOL_CHOICE",Ea="tool_choice",vn="RESPONSE_FORMAT",bn="response_format",Cy=[Yn,vn],Fy=w.object({tool_call:w.object({id:w.string().optional(),function:w.object({name:w.string(),arguments:w.string()}).partial()}).partial()}).partial(),ys=w.object({[fe.message]:w.object({[Ae.role]:w.string(),[Ae.content]:w.union([w.string(),w.array(w.record(w.string(),w.unknown()))]).default(""),[Ae.tool_calls]:w.array(Fy).optional(),[Ae.tool_call_id]:w.string().optional()})}),Ky=w.object({[fe.llm]:w.object({[ze.input_messages]:w.array(ys)})}),Ty=w.object({[fe.llm]:w.object({[ze.output_messages]:w.array(ys)})}),Py=w.object({[fe.output]:w.object({value:w.string()})}),fs=Zm()(w.enum(["user","ai","system","tool"])),Iy=w.object({id:w.number(),role:fs,content:w.string().optional(),toolCallId:w.string().optional(),toolCalls:w.array(Xm).optional()}),xy=w.array(Iy),hs=w.lazy(()=>w.record(Ml)),Dy=hs,ks=w.string().transform((n,a)=>{const{json:t}=Ve(n);if(!Vl(t))return a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER;const{success:l,data:i}=Dy.safeParse(t);return l?i:(a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER)}).default("{}"),_y=w.object({[fe.llm]:w.object({[ze.provider]:w.string().optional(),[ze.model_name]:w.string()})}),bs=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks})}),Ly=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks.pipe(w.object({response_format:hs.optional()}))})}),wy=w.object({url:w.object({full:w.string(),path:w.string().optional()})}),Ey=w.string().transform((n,a)=>{const{json:t}=Ve(n);return t==null||!Vl(t)?(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),w.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=Ym.safeParse(n);return l?t:(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),w.NEVER)}),Ry=w.object({[fe.llm]:w.object({[ze.tools]:w.array(w.object({[fe.tool]:w.object({[Tt.json_schema]:Ey})}).optional()).optional()}).optional()}).optional(),My=w.lazy(()=>w.object({type:w.literal("json_schema"),json_schema:w.object({name:w.string().describe("The name of the schema"),schema:ep.describe("The schema itself in JSON schema format"),strict:w.literal(!0).describe("The schema must be strict")})})),Vy=Dt(My,{removeAdditionalStrategy:"passthrough"}),Ay=w.string().transform((n,a)=>{const{json:t}=Ve(n);return ea(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=Fn(o);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:w.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),w.NEVER)}),zy=w.object({[fe.llm]:w.object({[ze.prompt_template]:w.object({variables:Ay}).optional()}).optional()}).optional();function Ss(n){return fs.safeParse(n).success}function Wn(n){const a=n.toLowerCase();if(Ss(a))return a;for(const[t,l]of Object.entries(my))if(l.includes(a))return t;return np}function Ny({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,o,d;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:c}=Ve(t.function.arguments);ea(c)&&(l=c)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",type:"function",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((o=t.function)==null?void 0:o.name)??"",input:l};case"GOOGLE":return{id:t.id??"",function:{name:((d=t.function)==null?void 0:d.name)??"",arguments:l}};default:Ce()}}).filter(t=>t!=null)}function vs({messages:n,provider:a}){return n.map(({message:t})=>({id:Zn(),role:t.tool_call_id!=null?Wn("tool"):Wn(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Ny({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function $y({provider:n,parsedAttributes:a}){var l;const t=Ky.safeParse(a);if(!t.success)return{messageParsingErrors:[py],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=bs.safeParse(a);if(i){const o=t.data.llm.input_messages,d=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof d=="string"&&d&&(!o||o[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:vs({provider:n,messages:t.data.llm.input_messages})}}function Oy({provider:n,parsedAttributes:a}){const t=[],l=Ty.safeParse(a);if(l.success)return{output:vs({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(gy);const i=Py.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(yy),{output:void 0,outputParsingErrors:t})}function Cs(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 Qy(n){for(const a of Object.keys($i))if($i[a].some(l=>n.includes(l)))return a;return Cr}function jy(n){const{success:a,data:t}=_y.safeParse(n);if(a){const l=Cs(t.llm.provider)||Qy(t.llm.model_name),i=qy(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[hy]}}function qy(n){const{success:a,data:t}=wy.safeParse(n);if(a)try{const l=new URL(t.url.full);let i=l;if(t.url.path)try{i=new URL(t.url.full.split(t.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:l.origin,apiVersion:l.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function By(n,a=[]){const{success:t,data:l}=bs.safeParse(n),i=[];return t||i.push(ky),{invocationParameters:ef((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function Uy(n){const{success:a,data:t}=Ly.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[by]}}function Hy(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(t=>(t==null?void 0:t.tool)==null?null:{id:tt(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Gy(n){var l;const{data:a,success:t}=Ry.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:Hy(a),parsingErrors:[]}:{tools:null,parsingErrors:[Sy]}}function Wy(n){var l;const{success:a,data:t}=zy.safeParse(n);return a?((l=t==null?void 0:t.llm)==null?void 0:l.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:t.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[vy]}}function Jy(n){const{instance:a,instanceMessages:t}=vr(),l={...a,template:{__type:"chat",messages:Object.values(t)}},{json:i,parseError:r}=Ve(n.attributes);if(r)return{playgroundInstance:{...l,spanId:(n==null?void 0:n.id)??null},parsingErrors:[fy]};const o=n.invocationParameters,d=jy(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:m}=$y({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=Oy({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=By(i,o),{variables:S,parsingErrors:K}=Wy(i),{parsingErrors:T}=Uy(i);c=c!=null?{...c,invocationParameters:T.length>0?k.filter(D=>D.invocationName!==bn&&D.canonicalName!==vn):k}:null;const{tools:x,parsingErrors:L}=Gy(i),P=f==null?void 0:f.map(D=>({...D,content:D.role==="tool"?li(D.content):D.content}));return{playgroundInstance:{...l,model:c??l.model,template:P!=null?{__type:"chat",messages:P}:l.template,output:g,spanId:n.id,tools:x??l.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...m,...y,...p,...L,...b,...T,...K]}}const Zy=n=>xy.safeParse(n).success,Fs=({instance:n,templateFormat:a})=>{if(a==nn.NONE)return[];const t=new Set,l=n.template.__type,i=ap(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(d=>{t.add(d)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{t.add(o)});break}default:Ce()}return Array.from(t)},Xy=({instances:n,templateFormat:a})=>a==nn.NONE?[]:Array.from(new Set(n.flatMap(t=>Fs({instance:t,templateFormat:a})))),Ks=({instances:n,templateFormat:a,input:t})=>{if(a==nn.NONE)return{variablesMap:{},variableKeys:[]};const l=Xy({instances:n,templateFormat:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:l}};function aa(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Yy=(n,a)=>n.filter(t=>a.some(l=>aa(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>aa(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),qa=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),ef=(n,a)=>Object.entries(n).map(([t,l])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===t.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===t.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[qa(i.invocationInputField)]:l}}).filter(t=>t!=null),Ts=n=>{const{provider:a,validatedToolDefinition:t}=ip(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:Ce()}},nf=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:tt(),definition:Di(a)};case"ANTHROPIC":return{id:tt(),definition:lp(a)};case"GOOGLE":return{id:tt(),definition:Di(a)};default:Ce()}},af=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return xi();case"ANTHROPIC":return tp();case"GOOGLE":return xi();default:Ce()}};function tf(n){return{content:n.content,role:lf(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function lf(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Ce()}}const Ps=({playgroundStore:n,instanceId:a,credentials:t})=>{var m;const{instances:l,allInstanceMessages:i}=n.getState(),r=l.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=Al({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c.push({canonicalName:Yn,invocationName:Ea,valueJson:p})):c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c=d.length?Yy(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(tf),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:xs(c,r.model.provider,r.model.modelName),tools:r.tools.length?r.tools.map(g=>g.definition):void 0,apiKey:t[r.model.provider]||null,promptName:(m=r.prompt)==null?void 0:m.name}},el=(n,a)=>{if(n.template.__type==="chat"){const{messageIds:t,...l}=n.template;return{...n,template:{...l,messages:n.template.messageIds.map(i=>a[i])}}}return n},rf=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=Ps({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(f=>el(f,d)),{variablesMap:p}=Ks({instances:c,input:o,templateFormat:r});return{...l,template:{variables:p,format:r}}},Oi=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...Ps({playgroundStore:n,instanceId:a,credentials:t}),templateFormat:n.getState().templateFormat,datasetId:l});function li(n){if(typeof n=="string"){const a=n.startsWith('"{')||n.startsWith('"[')||n.startsWith('"\\"');try{if(a){const l=JSON.parse(n),i=typeof l=="string"?JSON.parse(l):l;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 Is(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>aa(l,t)))}const sf=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function WC(n,a){const t=new Map(n.map(l=>[l.invocationName,l]));return a.forEach(l=>{var c;const i=l.invocationName,r=sf(l),o=qa(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((c=t.get(i))==null?void 0:c[o])!=null)return;const d={canonicalName:l.canonicalName,invocationName:l.invocationName,[o]:r};t.set(i,d)}),Array.from(t.values())}const of=w.object({type:w.literal("enabled")}).passthrough(),df=w.object({type:w.enum(["any","tool"])}).passthrough(),cf=(n,a)=>{if(!a)return n;const t=n.some(l=>l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&l.valueJson&&of.safeParse(l.valueJson).success);return n.filter(l=>{if(l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&!l.valueJson)return!1;if(t){if(l.canonicalName==="TEMPERATURE"||l.canonicalName==="TOP_P")return!1;if(l.canonicalName===Yn)return!df.safeParse(l.valueJson).success}return!0})},xs=(n,a,t)=>a==="ANTHROPIC"?cf(n,t):n,Ds=u.createContext(null);function JC({children:n,...a}){const[t]=u.useState(()=>rp(a));return e(Ds.Provider,{value:t,children:n})}function Ma(n,a){const t=he.useContext(Ds);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return ut(t,n,a)}const _s=u.createContext(null);function uf(){const n=u.useContext(_s);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function ZC(n){return e(_s.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Ls={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};Ls.hash="0168d590171b96e7a2e41449a41754be";function mf({query:n}){const[a,t]=u.useState(null),l=Ma(f=>f),i=Ma(f=>f.setCredential),r=I.useFragment(Ls,n),o=u.useMemo(()=>[...r.modelProviders],[r]),d=u.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>s(h,{direction:"row",alignItems:"center",gap:"size-100",children:[e(zt,{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?l[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(h,{direction:"row",justifyContent:"end",gap:"size-100",width:"100%",children:e(V,{size:"S",leadingVisual:e(_,{svg:e(gt,{})}),onPress:()=>{t(f.original)}})})}],[l]),c=Le({columns:d,data:o,getCoreRowModel:we(),getSortedRowModel:In()}),p=c.getRowModel().rows;return s(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[s("table",{css:dn,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(m=>e("th",{colSpan:m.colSpan,children:m.isPlaceholder?null:e("div",{children:J(m.column.columnDef.header,m.getContext())})},m.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(m=>e("td",{children:J(m.column.columnDef.cell,m.getContext())},m.id))},f.id))})]}),e(ae,{type:"modal",isDismissable:!0,onDismiss:()=>t(null),children:a&&s(Z,{title:`Set ${a.name} API Key`,size:"S",children:[s(C,{padding:"size-200",children:[e(C,{paddingBottom:"size-100",children:s(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."]})}),s(X,{onChange:f=>{i({provider:a.key,value:f})},value:l[a.key],type:"password",children:[e(W,{children:`${a.name} API Key`}),e(re,{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(h,{direction:"row",justifyContent:"end",gap:"size-100",children:e(V,{variant:"primary",size:"S",onPress:()=>{t(null)},children:"Set API Key"})})})]})})]})}function XC(){const n=qe();return Je(n),e(mf,{query:n})}const ws={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
|
|
|
@@ -5168,7 +5168,6 @@ fragment ExperimentMultiSelector__experiments on Dataset {
|
|
|
5168
5168
|
width: 100%;
|
|
5169
5169
|
margin-left: auto;
|
|
5170
5170
|
margin-right: auto;
|
|
5171
|
-
height: 100%;
|
|
5172
5171
|
`;function Q2(){const{pathname:n}=mt(),a=ue(),t=n.split("/settings")[1].replace("/",""),l=u.useCallback(i=>{typeof i=="string"&&a(`/settings/${i}`,{replace:!0})},[a]);return t?e("main",{css:kC,children:e("div",{css:bC,children:s(Ge,{selectedKey:t,onSelectionChange:l,children:[s(He,{children:[e(ne,{id:"general",children:"General"}),e(ne,{id:"providers",children:"AI Providers"})]}),e(ce,{id:"general",padded:!0,children:e(Te,{})}),e(ce,{id:"providers",padded:!0,children:e(Te,{})}),e(ce,{id:"annotations",padded:!0,children:e(B,{title:"Annotations Settings",variant:"compact",children:s(h,{direction:"column",gap:"size-200",children:[e(v,{children:"Annotation settings and configurations will be available here."}),e(v,{children:"Configure annotation types, labels, and workflows for your projects."})]})})})]})})}):e(kr,{to:"/settings/general",replace:!0})}const Yu={fragment:{argumentDefinitions:[],kind:"Fragment",metadata:null,name:"settingsGeneralPageLoaderQuery",selections:[{args:null,kind:"FragmentSpread",name:"DBUsagePieChart_data"}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[],kind:"Operation",name:"settingsGeneralPageLoaderQuery",selections:[{alias:null,args:null,concreteType:"DbTableStats",kind:"LinkedField",name:"dbTableStats",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"tableName",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"numBytes",storageKey:null}],storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dbStorageCapacityBytes",storageKey:null}]},params:{cacheID:"b23054c72be2f3ddc335774d54407667",id:null,metadata:{},name:"settingsGeneralPageLoaderQuery",operationKind:"query",text:`query settingsGeneralPageLoaderQuery {
|
|
5173
5172
|
...DBUsagePieChart_data
|
|
5174
5173
|
}
|