arize-phoenix 7.1.0__py3-none-any.whl → 7.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-7.1.0.dist-info → arize_phoenix-7.2.0.dist-info}/METADATA +16 -14
- {arize_phoenix-7.1.0.dist-info → arize_phoenix-7.2.0.dist-info}/RECORD +19 -19
- {arize_phoenix-7.1.0.dist-info → arize_phoenix-7.2.0.dist-info}/WHEEL +1 -1
- phoenix/server/api/dataloaders/session_io.py +9 -5
- phoenix/server/api/input_types/DataQualityMetricInput.py +5 -2
- phoenix/server/api/input_types/PerformanceMetricInput.py +5 -2
- phoenix/server/api/types/DataQualityMetric.py +31 -13
- phoenix/server/api/types/PerformanceMetric.py +8 -5
- phoenix/server/api/types/TimeSeries.py +5 -2
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-DaxEPah8.js → components-Fbz1fA9N.js} +59 -59
- phoenix/server/static/assets/{index-DxfKd3lv.js → index-BmwKNkwH.js} +1 -1
- phoenix/server/static/assets/{pages-CY7Swxhi.js → pages-mOmTzhTQ.js} +8 -4
- phoenix/server/templates/index.html +0 -4
- phoenix/server/types.py +5 -5
- phoenix/version.py +1 -1
- {arize_phoenix-7.1.0.dist-info → arize_phoenix-7.2.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-7.1.0.dist-info → arize_phoenix-7.2.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-7.1.0.dist-info → arize_phoenix-7.2.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as c,j as e,dG as v,l as n,O as F,R as w,D as E,bl as L,dH as R,dI as S,dJ as r,dK as I,dL as k,t as A,dM as C}from"./vendor-DwOx_a-2.js";import{p as _,d as j,$ as O,D as T,t as D,a4 as z}from"./vendor-arizeai-BWSsCZNG.js";import{E as $,L as G,R as N,r as M,b as U,F as B,A as J,c as K,d as H,P as W,h as q,M as Q,e as m,D as V,f as Y,g as X,i as Z,j as ee,k as re,l as ae,p as te,n as u,o as oe,S as ne,s as se,q as le,t as h,v as ie,w as g,x as b,y as de,z as ce,B as pe,C as me,G as ue,H as f,I as he,J as ge,K as be,N as fe,O as xe,Q as ye,U as Pe}from"./pages-
|
|
1
|
+
import{r as c,j as e,dG as v,l as n,O as F,R as w,D as E,bl as L,dH as R,dI as S,dJ as r,dK as I,dL as k,t as A,dM as C}from"./vendor-DwOx_a-2.js";import{p as _,d as j,$ as O,D as T,t as D,a4 as z}from"./vendor-arizeai-BWSsCZNG.js";import{E as $,L as G,R as N,r as M,b as U,F as B,A as J,c as K,d as H,P as W,h as q,M as Q,e as m,D as V,f as Y,g as X,i as Z,j as ee,k as re,l as ae,p as te,n as u,o as oe,S as ne,s as se,q as le,t as h,v as ie,w as g,x as b,y as de,z as ce,B as pe,C as me,G as ue,H as f,I as he,J as ge,K as be,N as fe,O as xe,Q as ye,U as Pe}from"./pages-mOmTzhTQ.js";import{c9 as ve,a5 as Fe,U as we,ca as Ee,cb as Le}from"./components-Fbz1fA9N.js";import"./vendor-three-DwGkEfCM.js";import"./vendor-codemirror-WrxmCiOZ.js";import"./vendor-shiki-RnWcZtzE.js";import"./vendor-recharts-Bj7q9ORc.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))d(t);new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&d(l)}).observe(document,{childList:!0,subtree:!0});function i(t){const o={};return t.integrity&&(o.integrity=t.integrity),t.referrerPolicy&&(o.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?o.credentials="include":t.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function d(t){if(t.ep)return;t.ep=!0;const o=i(t);fetch(t.href,o)}})();const x="arize-phoenix-feature-flags",p={__RESET__:!1};function Re(){const a=localStorage.getItem(x);if(!a)return p;try{const s=JSON.parse(a);return Object.assign({},p,s)}catch{return p}}const y=c.createContext(null);function Se(){const a=w.useContext(y);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Ie(a){const[s,i]=c.useState(Re()),d=t=>{localStorage.setItem(x,JSON.stringify(t)),i(t)};return e(y.Provider,{value:{featureFlags:s,setFeatureFlags:d},children:e(ke,{children:a.children})})}function ke(a){const{children:s}=a,{featureFlags:i,setFeatureFlags:d}=Se(),[t,o]=c.useState(!1);return v("ctrl+shift+f",()=>o(!0)),n(F,{children:[s,e(T,{type:"modal",isDismissable:!0,onDismiss:()=>o(!1),children:t&&e(_,{title:"Feature Flags",children:e(j,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(l=>e(O,{isSelected:i[l],onChange:P=>d({...i,[l]:P}),children:l},l))})})})]})}function Ae(){return e(L,{styles:a=>E`
|
|
2
2
|
body {
|
|
3
3
|
background-color: var(--ac-global-color-grey-75);
|
|
4
4
|
color: var(--ac-global-text-color-900);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{z as A,av as de,aw as Pe,ax as Le,ay as Pa,A as Jo,r as u,j as e,R as Se,n as ba,D as C,l as o,az as Oe,S as X,O as G,t as D,Z as Ue,_ as W,a0 as Fe,a1 as Ke,a4 as J,aA as ke,aB as sn,aC as on,aD as Ve,aE as Zo,aF as pt,aG as kn,aH as Aa,U as re,aI as Ia,a3 as Mn,g as Tl,aJ as Yo,X as bt,V as Xo,aK as ed,aL as at,aM as tt,aN as sa,aO as Sa,aP as Il,o as St,aQ as nd,aq as ad,ar as td,aR as ld,p as Dl,q as id,aS as rd,a9 as sd,aT as od,aU as Gt,aV as dd,aW as cd,aX as ud,aY as md,aZ as gd,a_ as pd,a$ as yd,b0 as fd,b1 as hd}from"./vendor-DwOx_a-2.js";import{c as h,I as L,a as I,e as z,d as K,q as ue,C as q,m as vt,p as Z,D as ee,b as x,v as ce,N as Ct,K as Qe,M as ne,O as Be,Q as be,S as kd,x as $a,r as Oa,P as Zn,o as Nn,s as Qa,B as zn,G as Yn,t as De,y as Pl,U as Ze,L as La,V as Ll,W as wl,X as El,Y as bd,Z as Sd,$ as Xn,j as je,k as va,T as pe,a0 as Ft,n as Ae,l as ae,E as ja,f as Ie,a1 as _l,a2 as Kt,h as Vn,u as vd,a3 as Cd,w as Fd,R as pa,i as Rl}from"./vendor-arizeai-BWSsCZNG.js";import{s as xt,a as me,l as Kd,j as Al,b as _e,i as Ml,c as Nl,d as yn,e as zl,f as xd,g as fa,D as Td,h as wa,k as Id,T as Pn,m as Dd,n as Wt,o as Pd,p as Ld,q as Jt,r as wd,t as Ed,N as _d,u as Rd,L as ye,v as ve,w as Ca,B as Ad,x as Tn,y as Md,G as Nd,z as zd,A as Vd,S as $d,C as rn,J as Re,E as $n,F as Ee,H as fe,I as Ce,K as ea,M as un,O as xe,P as se,Q as Je,R as bn,U as Me,V as Vl,W as Ge,X as Ye,Y as Sn,Z as Tt,_ as nn,$ as mn,a0 as It,a1 as $l,a2 as Ol,a3 as Zt,a4 as Yt,a5 as On,a6 as Od,a7 as Qd,a8 as B,a9 as Ql,aa as qa,ab as na,ac as jl,ad as aa,ae as ta,af as ql,ag as gn,ah as we,ai as Ua,aj as vn,ak as Dt,al as an,am as Ul,an as jd,ao as qd,ap as Ud,aq as Bd,ar as Hd,as as Gd,at as He,au as Wd,av as Jd,aw as Bl,ax as Zd,ay as Yd,az as Xt,aA as Xd,aB as ec,aC as nc,aD as ac,aE as tc,aF as lc,aG as Hl,aH as ic,aI as rc,aJ as sc,aK as oc,aL as dc,aM as En,aN as Pt,aO as Gl,aP as Gn,aQ as yt,aR as Dn,aS as pn,aT as cc,aU as uc,aV as Wl,aW as Ba,aX as tn,aY as mc,aZ as Jl,a_ as gc,a$ as ze,b0 as Lt,b1 as pc,b2 as wt,b3 as qe,b4 as Xe,b5 as la,b6 as yc,b7 as Ha,b8 as Zl,b9 as Yl,ba as fc,bb as We,bc as Ne,bd as hc,be as Et,bf as Xl,bg as ei,bh as ni,bi as ai,bj as fn,bk as kc,bl as el,bm as ti,bn as bc,bo as Sc,bp as vc,bq as Cc,br as Fc,bs as Wn,bt as ft,bu as li,bv as Kc,bw as xc,bx as Ga,by as ii,bz as Fa,bA as nl,bB as ri,bC as _t,bD as si,bE as oi,bF as Tc,bG as ht,bH as di,bI as Ic,bJ as Dc,bK as Da,bL as Pc,bM as ci,bN as ui,bO as Lc,bP as wc,bQ as Ec,bR as Rt,bS as mi,bT as _c,bU as Rc,bV as Ac,bW as Ma,bX as Mc,bY as Nc,bZ as zc,b_ as Vc,b$ as $c,c0 as gi,c1 as Oc,c2 as Qc,c3 as jc,c4 as qc,c5 as Uc,c6 as Bc,c7 as Hc,c8 as Gc}from"./components-DaxEPah8.js";import{p as At,R as ia,n as ra,i as Wc,E as pi,m as Jc,o as Zc,g as Yc}from"./vendor-codemirror-WrxmCiOZ.js";import{R as Cn,C as Ka,X as Fn,Y as en,a as Kn,T as xn,B as Jn,A as ha,b as yi,c as Mt,L as fi,d as Xc,P as eu,e as nu,f as au}from"./vendor-recharts-Bj7q9ORc.js";const tu=4,lu={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},iu="Unable to parse span input messages, expected messages which include a role and content.",ru="Unable to parse span output messages, expected messages which include a role and content.",su="Unable to parse span output expected output.value to be present.",ou="Unable to parse span attributes, attributes must be valid JSON.",du="Unable to parse model config, expected llm.model_name to be present.",cu="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",uu="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",mu="Unable to parse tools, expected tools to be an array of valid tools.",gu="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",al={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GEMINI:["gemini"]},ya="TOOL_CHOICE",Ea="tool_choice",_n="RESPONSE_FORMAT",Ln="response_format",pu=[ya,_n],Nt=xt()(A.union([A.literal("auto"),A.literal("none"),A.literal("required"),A.object({type:A.literal("function"),function:A.object({name:A.string()})})])),zt=A.object({type:A.union([A.literal("auto"),A.literal("any"),A.literal("tool")]),disable_parallel_tool_use:A.boolean().optional(),name:A.string().optional()}),yu=zt.transform(n=>{switch(n.type){case"any":case"auto":return"auto";case"tool":return n.name?{type:"function",function:{name:n.name}}:"auto";default:return"auto"}}),fu=Nt.transform(n=>typeof n=="string"?{type:"auto"}:{type:"tool",name:n.function.name});A.union([Nt,zt]);const hu=n=>{const{success:a,data:t}=Nt.safeParse(n);if(a)return{provider:"OPENAI",toolChoice:t};const{success:l,data:i}=zt.safeParse(n);return l?{provider:"ANTHROPIC",toolChoice:i}:{provider:null,toolChoice:null}},ku=n=>{const{provider:a,toolChoice:t}=hu(n);if(a==null||t==null)throw new Error("Could not detect provider of tool choice");switch(a){case"AZURE_OPENAI":case"OPENAI":return t;case"ANTHROPIC":return yu.parse(t);default:me()}},bu=({toolChoice:n,targetProvider:a})=>{switch(a){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return fu.parse(n);case"GEMINI":return n;default:me()}},Su=({toolChoice:n,targetProvider:a})=>{try{const t=ku(n);return bu({toolChoice:t,targetProvider:a})}catch{return null}},vu=A.object({tool_call:A.object({id:A.string().optional(),function:A.object({name:A.string(),arguments:A.string()}).partial()}).partial()}).partial(),hi=A.object({[de.message]:A.object({[Pe.role]:A.string(),[Pe.content]:A.union([A.string(),A.array(A.record(A.string(),A.unknown()))]).default(""),[Pe.tool_calls]:A.array(vu).optional(),[Pe.tool_call_id]:A.string().optional()})}),Cu=A.object({[de.llm]:A.object({[Le.input_messages]:A.array(hi)})}),Fu=A.object({[de.llm]:A.object({[Le.output_messages]:A.array(hi)})}),Ku=A.object({[de.output]:A.object({value:A.string()})}),ki=xt()(A.enum(["user","ai","system","tool"])),xu=xt()(A.object({id:A.number(),role:ki,content:A.string().optional(),toolCallId:A.string().optional(),toolCalls:A.array(Kd).optional()})),Tu=A.array(xu),Vt=A.lazy(()=>A.record(Al)),Iu=Vt,bi=A.string().transform((n,a)=>{const{json:t}=_e(n);if(!Ml(t))return a.addIssue({code:A.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),A.NEVER;const{success:l,data:i}=Iu.safeParse(t);return l?i:(a.addIssue({code:A.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),A.NEVER)}).default("{}"),Du=A.object({[de.llm]:A.object({[Le.provider]:A.string().optional(),[Le.model_name]:A.string()})}),Si=A.object({[de.llm]:A.object({[Le.invocation_parameters]:bi})}),Pu=A.object({[de.llm]:A.object({[Le.invocation_parameters]:bi.pipe(A.object({response_format:Vt.optional()}))})}),Lu=A.string().transform((n,a)=>{const{json:t}=_e(n);return t==null||!Ml(t)?(a.addIssue({code:A.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),A.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=Nl.safeParse(n);return l?t:(a.addIssue({code:A.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),A.NEVER)}),wu=A.object({[de.llm]:A.object({[Le.tools]:A.array(A.object({[de.tool]:A.object({[Pa.json_schema]:Lu})}).optional()).optional()}).optional()}).optional(),Eu=A.lazy(()=>A.object({type:A.literal("json_schema"),json_schema:A.object({name:A.string().describe("The name of the schema"),schema:Al.describe("The schema itself in JSON format"),strict:A.literal(!0).describe("The schema must be strict")})})),_u=Jo(Eu,{removeAdditionalStrategy:"passthrough"}),Ru=A.string().transform((n,a)=>{const{json:t}=_e(n);return yn(t)?Object.entries(t).reduce((i,[r,s])=>{if(typeof s=="string")i[r]=s;else{const{json:c}=zl(s);c!=null&&(i[r]=c)}return i},{}):(a.addIssue({code:A.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),A.NEVER)}),Au=A.object({[de.llm]:A.object({[Le.prompt_template]:A.object({variables:Ru}).optional()}).optional()}).optional();function vi(n){return ki.safeParse(n).success}function Na(n){if(vi(n))return n;for(const[a,t]of Object.entries(lu))if(t.includes(n))return a;return Id}function Mu({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,s,c;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:d}=_e(t.function.arguments);yn(d)&&(l=d)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((s=t.function)==null?void 0:s.name)??"",input:l};case"GEMINI":return{id:t.id??"",function:{name:((c=t.function)==null?void 0:c.name)??"",arguments:l}};default:me()}}).filter(t=>t!=null)}function Ci({messages:n,provider:a}){return n.map(({message:t})=>({id:fa(),role:t.tool_call_id!=null?Na("tool"):Na(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Mu({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function Nu({provider:n,parsedAttributes:a}){var l;const t=Cu.safeParse(a);if(!t.success)return{messageParsingErrors:[iu],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=Si.safeParse(a);if(i){const s=t.data.llm.input_messages,c=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof c=="string"&&c&&(!s||s[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:c}})}}return{messageParsingErrors:[],messages:Ci({provider:n,messages:t.data.llm.input_messages})}}function zu({provider:n,parsedAttributes:a}){const t=[],l=Fu.safeParse(a);if(l.success)return{output:Ci({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(ru);const i=Ku.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(su),{output:void 0,outputParsingErrors:t})}function Vu(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GEMINI";case"azure":return"AZURE_OPENAI";default:return null}}function $u(n){for(const a of Object.keys(al))if(al[a].some(l=>n.includes(l)))return a;return Td}function Ou(n){const{success:a,data:t}=Du.safeParse(n);if(a){const l=Vu(t.llm.provider)||$u(t.llm.model_name);return{modelConfig:{modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[du]}}function Qu(n,a=[]){const{success:t,data:l}=Si.safeParse(n),i=[];return t||i.push(cu),{invocationParameters:Zu((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function ju(n){const{success:a,data:t}=Pu.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[uu]}}function qu(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:wa(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Uu(n){var l;const{data:a,success:t}=wu.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:qu(a),parsingErrors:[]}:{tools:null,parsingErrors:[mu]}}function Bu(n){var l;const{success:a,data:t}=Au.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:[gu]}}function Hu(n){const a=xd(),{json:t,parseError:l}=_e(n.attributes);if(l)return{playgroundInstance:{...a,spanId:(n==null?void 0:n.id)??null},parsingErrors:[ou]};const i=n.invocationParameters,r=Ou(t);let{modelConfig:s}=r;const{parsingErrors:c}=r,{messages:d,messageParsingErrors:m}=Nu({provider:(s==null?void 0:s.provider)??a.model.provider,parsedAttributes:t}),{output:f,outputParsingErrors:g}=zu({provider:(s==null?void 0:s.provider)??a.model.provider,parsedAttributes:t}),{invocationParameters:y,parsingErrors:p}=Qu(t,i),{variables:k,parsingErrors:b}=Bu(t),{parsingErrors:S}=ju(t);s=s!=null?{...s,invocationParameters:S.length>0?y.filter(E=>E.invocationName!==Ln&&E.canonicalName!==_n):y}:null;const{tools:v,parsingErrors:P}=Uu(t);return{playgroundInstance:{...a,model:s??a.model,template:d!=null?{__type:"chat",messages:d}:a.template,output:f,spanId:n.id,tools:v??a.tools},playgroundInput:k!=null?{variablesValueCache:k}:void 0,parsingErrors:[...m,...g,...c,...P,...p,...S,...b]}}const Gu=n=>Tu.safeParse(n).success,Fi=({instance:n,templateLanguage:a})=>{if(a==Pn.NONE)return[];const t=new Set,l=n.template.__type,i=Dd(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(c=>{t.add(c)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(s=>{t.add(s)});break}default:me()}return Array.from(t)},Wu=({instances:n,templateLanguage:a})=>a==Pn.NONE?[]:Array.from(new Set(n.flatMap(t=>Fi({instance:t,templateLanguage:a})))),Ki=({instances:n,templateLanguage:a,input:t})=>{if(a==Pn.NONE)return{variablesMap:{},variableKeys:[]};const l=Wu({instances:n,templateLanguage:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((s,c)=>(s[c]=i[c]||"",s),{}),variableKeys:l}};function Rn(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Ju=(n,a)=>n.filter(t=>a.some(l=>Rn(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>Rn(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),Wa=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),Zu=(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,[Wa(i.invocationInputField)]:l}}).filter(t=>t!=null),_a=n=>{const{provider:a,validatedToolDefinition:t}=Ld(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:me()}},tl=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:wa(),definition:Jt(a)};case"ANTHROPIC":return{id:wa(),definition:wd(a)};case"GEMINI":return{id:wa(),definition:Jt(a)};default:me()}},Yu=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return Wt();case"ANTHROPIC":return Pd();case"GEMINI":return Wt();default:me()}};function Xu(n){return{content:n.content,role:em(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function em(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:me()}}const xi=({playgroundStore:n,instanceId:a,credentials:t})=>{const{instances:l}=n.getState(),i=l.find(m=>m.id===a);if(!i)throw new Error(`No instance found for id ${a}`);if(i.template.__type!=="chat")throw new Error("We only support chat templates for now");const r=i.model.supportedInvocationParameters;let s=[...i.model.invocationParameters];const c=Su({toolChoice:i.toolChoice,targetProvider:i.model.provider});i.tools.length>0?(s=s.filter(m=>m.invocationName!==Ea&&m.canonicalName!==ya),s.push({canonicalName:ya,invocationName:Ea,valueJson:c})):s=s.filter(m=>m.invocationName!==Ea&&m.canonicalName!==ya),s=r.length?Ju(s,r):s;const d=i.model.provider==="AZURE_OPENAI"?{endpoint:i.model.endpoint,apiVersion:i.model.apiVersion}:{};return{messages:i.template.messages.map(Xu),model:{providerKey:i.model.provider,name:i.model.modelName||"",...d},invocationParameters:s,tools:i.tools.length?i.tools.map(m=>m.definition):void 0,apiKey:t[i.model.provider]||null}},nm=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=xi({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateLanguage:r,input:s}=n.getState(),{variablesMap:c}=Ki({instances:i,input:s,templateLanguage:r});return{...l,template:{variables:c,language:r}}},ll=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...xi({playgroundStore:n,instanceId:a,credentials:t}),templateLanguage:n.getState().templateLanguage,datasetId:l});function Ti(n){return n==null||n===""?"{}":typeof n=="string"?n:JSON.stringify(n,null,2)}function Ii(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>Rn(l,t)))}const am=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function L0(n,a){const t=new Map(n.map(l=>[l.canonicalName||l.invocationName,l]));return a.forEach(l=>{var d;const i=l.canonicalName||l.invocationName,r=am(l),s=Wa(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((d=t.get(i))==null?void 0:d[s])!=null)return;const c={canonicalName:l.canonicalName,invocationName:l.invocationName,[s]:r};t.set(i,c)}),Array.from(t.values())}const Di=u.createContext(null);function w0({children:n,...a}){const[t]=u.useState(()=>Ed(a));return e(Di.Provider,{value:t,children:n})}function za(n,a){const t=Se.useContext(Di);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return ba(t,n,a)}const Pi=u.createContext(null);function tm(){const n=u.useContext(Pi);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function E0(n){return e(Pi.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const lm=C`
|
|
1
|
+
import{z as A,av as de,aw as Pe,ax as Le,ay as Pa,A as Jo,r as u,j as e,R as Se,n as ba,D as C,l as o,az as Oe,S as X,O as G,t as D,Z as Ue,_ as W,a0 as Fe,a1 as Ke,a4 as J,aA as ke,aB as sn,aC as on,aD as Ve,aE as Zo,aF as pt,aG as kn,aH as Aa,U as re,aI as Ia,a3 as Mn,g as Tl,aJ as Yo,X as bt,V as Xo,aK as ed,aL as at,aM as tt,aN as sa,aO as Sa,aP as Il,o as St,aQ as nd,aq as ad,ar as td,aR as ld,p as Dl,q as id,aS as rd,a9 as sd,aT as od,aU as Gt,aV as dd,aW as cd,aX as ud,aY as md,aZ as gd,a_ as pd,a$ as yd,b0 as fd,b1 as hd}from"./vendor-DwOx_a-2.js";import{c as h,I as L,a as I,e as z,d as K,q as ue,C as q,m as vt,p as Z,D as ee,b as x,v as ce,N as Ct,K as Qe,M as ne,O as Be,Q as be,S as kd,x as $a,r as Oa,P as Zn,o as Nn,s as Qa,B as zn,G as Yn,t as De,y as Pl,U as Ze,L as La,V as Ll,W as wl,X as El,Y as bd,Z as Sd,$ as Xn,j as je,k as va,T as pe,a0 as Ft,n as Ae,l as ae,E as ja,f as Ie,a1 as _l,a2 as Kt,h as Vn,u as vd,a3 as Cd,w as Fd,R as pa,i as Rl}from"./vendor-arizeai-BWSsCZNG.js";import{s as xt,a as me,l as Kd,j as Al,b as _e,i as Ml,c as Nl,d as yn,e as zl,f as xd,g as fa,D as Td,h as wa,k as Id,T as Pn,m as Dd,n as Wt,o as Pd,p as Ld,q as Jt,r as wd,t as Ed,N as _d,u as Rd,L as ye,v as ve,w as Ca,B as Ad,x as Tn,y as Md,G as Nd,z as zd,A as Vd,S as $d,C as rn,J as Re,E as $n,F as Ee,H as fe,I as Ce,K as ea,M as un,O as xe,P as se,Q as Je,R as bn,U as Me,V as Vl,W as Ge,X as Ye,Y as Sn,Z as Tt,_ as nn,$ as mn,a0 as It,a1 as $l,a2 as Ol,a3 as Zt,a4 as Yt,a5 as On,a6 as Od,a7 as Qd,a8 as B,a9 as Ql,aa as qa,ab as na,ac as jl,ad as aa,ae as ta,af as ql,ag as gn,ah as we,ai as Ua,aj as vn,ak as Dt,al as an,am as Ul,an as jd,ao as qd,ap as Ud,aq as Bd,ar as Hd,as as Gd,at as He,au as Wd,av as Jd,aw as Bl,ax as Zd,ay as Yd,az as Xt,aA as Xd,aB as ec,aC as nc,aD as ac,aE as tc,aF as lc,aG as Hl,aH as ic,aI as rc,aJ as sc,aK as oc,aL as dc,aM as En,aN as Pt,aO as Gl,aP as Gn,aQ as yt,aR as Dn,aS as pn,aT as cc,aU as uc,aV as Wl,aW as Ba,aX as tn,aY as mc,aZ as Jl,a_ as gc,a$ as ze,b0 as Lt,b1 as pc,b2 as wt,b3 as qe,b4 as Xe,b5 as la,b6 as yc,b7 as Ha,b8 as Zl,b9 as Yl,ba as fc,bb as We,bc as Ne,bd as hc,be as Et,bf as Xl,bg as ei,bh as ni,bi as ai,bj as fn,bk as kc,bl as el,bm as ti,bn as bc,bo as Sc,bp as vc,bq as Cc,br as Fc,bs as Wn,bt as ft,bu as li,bv as Kc,bw as xc,bx as Ga,by as ii,bz as Fa,bA as nl,bB as ri,bC as _t,bD as si,bE as oi,bF as Tc,bG as ht,bH as di,bI as Ic,bJ as Dc,bK as Da,bL as Pc,bM as ci,bN as ui,bO as Lc,bP as wc,bQ as Ec,bR as Rt,bS as mi,bT as _c,bU as Rc,bV as Ac,bW as Ma,bX as Mc,bY as Nc,bZ as zc,b_ as Vc,b$ as $c,c0 as gi,c1 as Oc,c2 as Qc,c3 as jc,c4 as qc,c5 as Uc,c6 as Bc,c7 as Hc,c8 as Gc}from"./components-Fbz1fA9N.js";import{p as At,R as ia,n as ra,i as Wc,E as pi,m as Jc,o as Zc,g as Yc}from"./vendor-codemirror-WrxmCiOZ.js";import{R as Cn,C as Ka,X as Fn,Y as en,a as Kn,T as xn,B as Jn,A as ha,b as yi,c as Mt,L as fi,d as Xc,P as eu,e as nu,f as au}from"./vendor-recharts-Bj7q9ORc.js";const tu=4,lu={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},iu="Unable to parse span input messages, expected messages which include a role and content.",ru="Unable to parse span output messages, expected messages which include a role and content.",su="Unable to parse span output expected output.value to be present.",ou="Unable to parse span attributes, attributes must be valid JSON.",du="Unable to parse model config, expected llm.model_name to be present.",cu="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",uu="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",mu="Unable to parse tools, expected tools to be an array of valid tools.",gu="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",al={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GEMINI:["gemini"]},ya="TOOL_CHOICE",Ea="tool_choice",_n="RESPONSE_FORMAT",Ln="response_format",pu=[ya,_n],Nt=xt()(A.union([A.literal("auto"),A.literal("none"),A.literal("required"),A.object({type:A.literal("function"),function:A.object({name:A.string()})})])),zt=A.object({type:A.union([A.literal("auto"),A.literal("any"),A.literal("tool")]),disable_parallel_tool_use:A.boolean().optional(),name:A.string().optional()}),yu=zt.transform(n=>{switch(n.type){case"any":case"auto":return"auto";case"tool":return n.name?{type:"function",function:{name:n.name}}:"auto";default:return"auto"}}),fu=Nt.transform(n=>typeof n=="string"?{type:"auto"}:{type:"tool",name:n.function.name});A.union([Nt,zt]);const hu=n=>{const{success:a,data:t}=Nt.safeParse(n);if(a)return{provider:"OPENAI",toolChoice:t};const{success:l,data:i}=zt.safeParse(n);return l?{provider:"ANTHROPIC",toolChoice:i}:{provider:null,toolChoice:null}},ku=n=>{const{provider:a,toolChoice:t}=hu(n);if(a==null||t==null)throw new Error("Could not detect provider of tool choice");switch(a){case"AZURE_OPENAI":case"OPENAI":return t;case"ANTHROPIC":return yu.parse(t);default:me()}},bu=({toolChoice:n,targetProvider:a})=>{switch(a){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return fu.parse(n);case"GEMINI":return n;default:me()}},Su=({toolChoice:n,targetProvider:a})=>{try{const t=ku(n);return bu({toolChoice:t,targetProvider:a})}catch{return null}},vu=A.object({tool_call:A.object({id:A.string().optional(),function:A.object({name:A.string(),arguments:A.string()}).partial()}).partial()}).partial(),hi=A.object({[de.message]:A.object({[Pe.role]:A.string(),[Pe.content]:A.union([A.string(),A.array(A.record(A.string(),A.unknown()))]).default(""),[Pe.tool_calls]:A.array(vu).optional(),[Pe.tool_call_id]:A.string().optional()})}),Cu=A.object({[de.llm]:A.object({[Le.input_messages]:A.array(hi)})}),Fu=A.object({[de.llm]:A.object({[Le.output_messages]:A.array(hi)})}),Ku=A.object({[de.output]:A.object({value:A.string()})}),ki=xt()(A.enum(["user","ai","system","tool"])),xu=xt()(A.object({id:A.number(),role:ki,content:A.string().optional(),toolCallId:A.string().optional(),toolCalls:A.array(Kd).optional()})),Tu=A.array(xu),Vt=A.lazy(()=>A.record(Al)),Iu=Vt,bi=A.string().transform((n,a)=>{const{json:t}=_e(n);if(!Ml(t))return a.addIssue({code:A.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),A.NEVER;const{success:l,data:i}=Iu.safeParse(t);return l?i:(a.addIssue({code:A.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),A.NEVER)}).default("{}"),Du=A.object({[de.llm]:A.object({[Le.provider]:A.string().optional(),[Le.model_name]:A.string()})}),Si=A.object({[de.llm]:A.object({[Le.invocation_parameters]:bi})}),Pu=A.object({[de.llm]:A.object({[Le.invocation_parameters]:bi.pipe(A.object({response_format:Vt.optional()}))})}),Lu=A.string().transform((n,a)=>{const{json:t}=_e(n);return t==null||!Ml(t)?(a.addIssue({code:A.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),A.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=Nl.safeParse(n);return l?t:(a.addIssue({code:A.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),A.NEVER)}),wu=A.object({[de.llm]:A.object({[Le.tools]:A.array(A.object({[de.tool]:A.object({[Pa.json_schema]:Lu})}).optional()).optional()}).optional()}).optional(),Eu=A.lazy(()=>A.object({type:A.literal("json_schema"),json_schema:A.object({name:A.string().describe("The name of the schema"),schema:Al.describe("The schema itself in JSON format"),strict:A.literal(!0).describe("The schema must be strict")})})),_u=Jo(Eu,{removeAdditionalStrategy:"passthrough"}),Ru=A.string().transform((n,a)=>{const{json:t}=_e(n);return yn(t)?Object.entries(t).reduce((i,[r,s])=>{if(typeof s=="string")i[r]=s;else{const{json:c}=zl(s);c!=null&&(i[r]=c)}return i},{}):(a.addIssue({code:A.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),A.NEVER)}),Au=A.object({[de.llm]:A.object({[Le.prompt_template]:A.object({variables:Ru}).optional()}).optional()}).optional();function vi(n){return ki.safeParse(n).success}function Na(n){if(vi(n))return n;for(const[a,t]of Object.entries(lu))if(t.includes(n))return a;return Id}function Mu({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,s,c;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:d}=_e(t.function.arguments);yn(d)&&(l=d)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((s=t.function)==null?void 0:s.name)??"",input:l};case"GEMINI":return{id:t.id??"",function:{name:((c=t.function)==null?void 0:c.name)??"",arguments:l}};default:me()}}).filter(t=>t!=null)}function Ci({messages:n,provider:a}){return n.map(({message:t})=>({id:fa(),role:t.tool_call_id!=null?Na("tool"):Na(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Mu({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function Nu({provider:n,parsedAttributes:a}){var l;const t=Cu.safeParse(a);if(!t.success)return{messageParsingErrors:[iu],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=Si.safeParse(a);if(i){const s=t.data.llm.input_messages,c=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof c=="string"&&c&&(!s||s[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:c}})}}return{messageParsingErrors:[],messages:Ci({provider:n,messages:t.data.llm.input_messages})}}function zu({provider:n,parsedAttributes:a}){const t=[],l=Fu.safeParse(a);if(l.success)return{output:Ci({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(ru);const i=Ku.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(su),{output:void 0,outputParsingErrors:t})}function Vu(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GEMINI";case"azure":return"AZURE_OPENAI";default:return null}}function $u(n){for(const a of Object.keys(al))if(al[a].some(l=>n.includes(l)))return a;return Td}function Ou(n){const{success:a,data:t}=Du.safeParse(n);if(a){const l=Vu(t.llm.provider)||$u(t.llm.model_name);return{modelConfig:{modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[du]}}function Qu(n,a=[]){const{success:t,data:l}=Si.safeParse(n),i=[];return t||i.push(cu),{invocationParameters:Zu((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function ju(n){const{success:a,data:t}=Pu.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[uu]}}function qu(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:wa(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Uu(n){var l;const{data:a,success:t}=wu.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:qu(a),parsingErrors:[]}:{tools:null,parsingErrors:[mu]}}function Bu(n){var l;const{success:a,data:t}=Au.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:[gu]}}function Hu(n){const a=xd(),{json:t,parseError:l}=_e(n.attributes);if(l)return{playgroundInstance:{...a,spanId:(n==null?void 0:n.id)??null},parsingErrors:[ou]};const i=n.invocationParameters,r=Ou(t);let{modelConfig:s}=r;const{parsingErrors:c}=r,{messages:d,messageParsingErrors:m}=Nu({provider:(s==null?void 0:s.provider)??a.model.provider,parsedAttributes:t}),{output:f,outputParsingErrors:g}=zu({provider:(s==null?void 0:s.provider)??a.model.provider,parsedAttributes:t}),{invocationParameters:y,parsingErrors:p}=Qu(t,i),{variables:k,parsingErrors:b}=Bu(t),{parsingErrors:S}=ju(t);s=s!=null?{...s,invocationParameters:S.length>0?y.filter(E=>E.invocationName!==Ln&&E.canonicalName!==_n):y}:null;const{tools:v,parsingErrors:P}=Uu(t);return{playgroundInstance:{...a,model:s??a.model,template:d!=null?{__type:"chat",messages:d}:a.template,output:f,spanId:n.id,tools:v??a.tools},playgroundInput:k!=null?{variablesValueCache:k}:void 0,parsingErrors:[...m,...g,...c,...P,...p,...S,...b]}}const Gu=n=>Tu.safeParse(n).success,Fi=({instance:n,templateLanguage:a})=>{if(a==Pn.NONE)return[];const t=new Set,l=n.template.__type,i=Dd(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(c=>{t.add(c)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(s=>{t.add(s)});break}default:me()}return Array.from(t)},Wu=({instances:n,templateLanguage:a})=>a==Pn.NONE?[]:Array.from(new Set(n.flatMap(t=>Fi({instance:t,templateLanguage:a})))),Ki=({instances:n,templateLanguage:a,input:t})=>{if(a==Pn.NONE)return{variablesMap:{},variableKeys:[]};const l=Wu({instances:n,templateLanguage:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((s,c)=>(s[c]=i[c]||"",s),{}),variableKeys:l}};function Rn(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Ju=(n,a)=>n.filter(t=>a.some(l=>Rn(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>Rn(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),Wa=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),Zu=(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,[Wa(i.invocationInputField)]:l}}).filter(t=>t!=null),_a=n=>{const{provider:a,validatedToolDefinition:t}=Ld(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:me()}},tl=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:wa(),definition:Jt(a)};case"ANTHROPIC":return{id:wa(),definition:wd(a)};case"GEMINI":return{id:wa(),definition:Jt(a)};default:me()}},Yu=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return Wt();case"ANTHROPIC":return Pd();case"GEMINI":return Wt();default:me()}};function Xu(n){return{content:n.content,role:em(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function em(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:me()}}const xi=({playgroundStore:n,instanceId:a,credentials:t})=>{const{instances:l}=n.getState(),i=l.find(m=>m.id===a);if(!i)throw new Error(`No instance found for id ${a}`);if(i.template.__type!=="chat")throw new Error("We only support chat templates for now");const r=i.model.supportedInvocationParameters;let s=[...i.model.invocationParameters];const c=Su({toolChoice:i.toolChoice,targetProvider:i.model.provider});i.tools.length>0?(s=s.filter(m=>m.invocationName!==Ea&&m.canonicalName!==ya),s.push({canonicalName:ya,invocationName:Ea,valueJson:c})):s=s.filter(m=>m.invocationName!==Ea&&m.canonicalName!==ya),s=r.length?Ju(s,r):s;const d=i.model.provider==="AZURE_OPENAI"?{endpoint:i.model.endpoint,apiVersion:i.model.apiVersion}:{};return{messages:i.template.messages.map(Xu),model:{providerKey:i.model.provider,name:i.model.modelName||"",...d},invocationParameters:s,tools:i.tools.length?i.tools.map(m=>m.definition):void 0,apiKey:t[i.model.provider]||null}},nm=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=xi({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateLanguage:r,input:s}=n.getState(),{variablesMap:c}=Ki({instances:i,input:s,templateLanguage:r});return{...l,template:{variables:c,language:r}}},ll=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...xi({playgroundStore:n,instanceId:a,credentials:t}),templateLanguage:n.getState().templateLanguage,datasetId:l});function Ti(n){return n==null||n===""?"{}":typeof n=="string"?n:JSON.stringify(n,null,2)}function Ii(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>Rn(l,t)))}const am=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function L0(n,a){const t=new Map(n.map(l=>[l.canonicalName||l.invocationName,l]));return a.forEach(l=>{var d;const i=l.canonicalName||l.invocationName,r=am(l),s=Wa(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((d=t.get(i))==null?void 0:d[s])!=null)return;const c={canonicalName:l.canonicalName,invocationName:l.invocationName,[s]:r};t.set(i,c)}),Array.from(t.values())}const Di=u.createContext(null);function w0({children:n,...a}){const[t]=u.useState(()=>Ed(a));return e(Di.Provider,{value:t,children:n})}function za(n,a){const t=Se.useContext(Di);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return ba(t,n,a)}const Pi=u.createContext(null);function tm(){const n=u.useContext(Pi);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function E0(n){return e(Pi.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const lm=C`
|
|
2
2
|
display: flex;
|
|
3
3
|
direction: row;
|
|
4
4
|
height: 100vh;
|
|
@@ -4253,14 +4253,18 @@ fragment ModelProviderPickerFragment on Query {
|
|
|
4253
4253
|
padding: var(--ac-global-dimension-size-200);
|
|
4254
4254
|
`,children:d.messages.map((f,g)=>e(g0,{playgroundInstanceId:a,instance:r,templateLanguage:t,template:d,message:f,index:g},f.id))})}),e(K,{paddingStart:"size-200",paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderColor:"dark",borderTopWidth:"thin",borderBottomWidth:s||c?"thin":void 0,children:e(l0,{instanceId:a,hasResponseFormat:c})}),s?e(d0,{...n}):null,c?e(r0,{...n}):null]})}function m0({message:n,updateMessage:a,templateLanguage:t,playgroundInstanceId:l,template:i,messageMode:r}){if(r==="toolCalls")return e(K,{paddingTop:"size-100",paddingStart:"size-250",paddingEnd:"size-250",paddingBottom:"size-200",children:e(Vn,{label:"Tool Calls",children:e(Ne,{width:"100%",children:e(Yh,{playgroundInstanceId:l,toolCalls:n.toolCalls,templateMessages:i.messages,messageId:n.id})})})});if(n.role==="tool"){const s=Ti(n.content);return o(Ae,{onSubmit:c=>{c.preventDefault()},children:[e(K,{paddingStart:"size-200",paddingEnd:"size-200",paddingTop:"size-200",paddingBottom:"size-200",borderColor:"yellow-700",borderBottomWidth:"thin",children:e(ae,{value:n.toolCallId,onChange:c=>a({toolCallId:c}),"aria-label":"Tool Call ID",addonBefore:"Tool Call ID"})}),e(Re,{value:s,"aria-label":"tool message content",height:"100%",onChange:c=>a({content:c}),onBlur:()=>{if(n.content!=null&&typeof n.content=="string"){const{json:c}=_e(n.content);a({content:JSON.stringify(c,null,2)})}}})]})}return e("div",{css:C`
|
|
4255
4255
|
& .cm-content {
|
|
4256
|
-
padding
|
|
4257
|
-
|
|
4256
|
+
padding: var(--ac-global-dimension-size-100)
|
|
4257
|
+
var(--ac-global-dimension-size-250);
|
|
4258
|
+
}
|
|
4259
|
+
& .cm-gutter,
|
|
4260
|
+
& .cm-content {
|
|
4261
|
+
min-height: 75px;
|
|
4258
4262
|
}
|
|
4259
4263
|
& .cm-line {
|
|
4260
4264
|
padding-left: 0;
|
|
4261
4265
|
padding-right: 0;
|
|
4262
4266
|
}
|
|
4263
|
-
`,children:e(Uc,{height:"100%",value:typeof n.content=="string"?n.content:JSON.stringify(n.content,null,2),"aria-label":"Message content",templateLanguage:t,onChange:s=>a({content:s})})})}function g0({playgroundInstanceId:n,templateLanguage:a,template:t,message:l,instance:i}){const r=O(w=>w.updateInstance),{attributes:s,listeners:c,setNodeRef:d,transform:m,transition:f,setActivatorNodeRef:g,isDragging:y}=md({id:l.id}),p=Ja(l.role),k={transform:gd.Translate.toString(m),transition:f,zIndex:y?c0:Bo},b=l.toolCalls!=null&&l.toolCalls.length>0,[S,v]=u.useState(b?"toolCalls":"text"),P=u.useCallback(w=>{r({instanceId:n,patch:{template:{__type:"chat",messages:t.messages.map(_=>_.id===l.id?{..._,...w}:_)}}})},[l.id,n,t.messages,r]),[E,R]=u.useState(l.content),[F,T]=u.useState(l.toolCalls);return e("li",{ref:d,style:k,children:e(q,{collapsible:!0,variant:"compact",bodyStyle:{padding:0},...p,title:e(a0,{includeLabel:!1,role:l.role,onChange:w=>{let _=l.toolCalls;w!=="ai"&&(_=void 0,v("text")),r({instanceId:n,patch:{template:{__type:"chat",messages:t.messages.map(Q=>Q.id===l.id?{...Q,role:w,toolCalls:_}:Q)}}})}}),extra:o(h,{direction:"row",gap:"size-100",children:[l.role==="ai"?e(e0,{messageMode:S,onChange:w=>{switch(v(w),w){case"text":T(l.toolCalls),P({content:E,toolCalls:void 0});break;case"toolCalls":R(l.content),P({content:"",toolCalls:F!=null?mi({toolCalls:F,provider:i.model.provider}):[Yu(i.model.provider)]});break;default:me()}}}):null,e(se,{text:S==="toolCalls"?JSON.stringify(l.toolCalls):Ti(l.content)}),e(z,{"aria-label":"Delete message",icon:e(L,{svg:e(I.TrashOutline,{})}),variant:"default",size:"compact",onClick:()=>{r({instanceId:n,patch:{template:{__type:"chat",messages:t.messages.filter(w=>w.id!==l.id)}}})}}),e(qc,{ref:g,listeners:c,attributes:s})]}),children:e("div",{children:e(m0,{message:l,messageMode:S,playgroundInstanceId:n,template:t,templateLanguage:a,updateMessage:P})})})})}function p0(n){const a=n.playgroundInstanceId,t=O(s=>s.instances),l=t.find(s=>s.id===a),i=t.findIndex(s=>s.id===a);if(!l)throw new Error(`Playground instance ${a} not found`);const{template:r}=l;return e(q,{title:o(h,{direction:"row",gap:"size-100",alignItems:"center",children:[e(Rt,{index:i}),e("span",{children:"Prompt"})]}),collapsible:!0,variant:"compact",bodyStyle:{padding:0},extra:o(h,{direction:"row",gap:"size-100",children:[e(u.Suspense,{fallback:e("div",{children:e(ye,{size:"S"})}),children:e(Zh,{instanceId:a})}),e(Gh,{...n}),t.length>1?e(y0,{...n}):null]}),children:r.__type==="chat"?e(u.Suspense,{children:e(u0,{...n})}):"Completion Template"})}function y0(n){const a=O(t=>t.deleteInstance);return o(pe,{children:[e(je,{children:e(z,{variant:"default",size:"compact",icon:e(L,{svg:e(I.TrashOutline,{})}),onClick:()=>{a(n.playgroundInstanceId)}})}),e(Ie,{children:e(zn,{children:"Delete this instance of the playground"})})]})}function f0(){const n=O(t=>t.templateLanguage),a=O(t=>t.setTemplateLanguage);return e("div",{css:C`
|
|
4267
|
+
`,children:e(Uc,{height:"100%",value:typeof n.content=="string"?n.content:JSON.stringify(n.content,null,2),"aria-label":"Message content",templateLanguage:t,onChange:s=>a({content:s}),placeholder:n.role==="system"?"You are a helpful assistant":n.role==="ai"?"Hello, how can I help you today?":"What is the weather in San Francisco?"})})}function g0({playgroundInstanceId:n,templateLanguage:a,template:t,message:l,instance:i}){const r=O(w=>w.updateInstance),{attributes:s,listeners:c,setNodeRef:d,transform:m,transition:f,setActivatorNodeRef:g,isDragging:y}=md({id:l.id}),p=Ja(l.role),k={transform:gd.Translate.toString(m),transition:f,zIndex:y?c0:Bo},b=l.toolCalls!=null&&l.toolCalls.length>0,[S,v]=u.useState(b?"toolCalls":"text"),P=u.useCallback(w=>{r({instanceId:n,patch:{template:{__type:"chat",messages:t.messages.map(_=>_.id===l.id?{..._,...w}:_)}}})},[l.id,n,t.messages,r]),[E,R]=u.useState(l.content),[F,T]=u.useState(l.toolCalls);return e("li",{ref:d,style:k,children:e(q,{collapsible:!0,variant:"compact",bodyStyle:{padding:0},...p,title:e(a0,{includeLabel:!1,role:l.role,onChange:w=>{let _=l.toolCalls;w!=="ai"&&(_=void 0,v("text")),r({instanceId:n,patch:{template:{__type:"chat",messages:t.messages.map(Q=>Q.id===l.id?{...Q,role:w,toolCalls:_}:Q)}}})}}),extra:o(h,{direction:"row",gap:"size-100",children:[l.role==="ai"?e(e0,{messageMode:S,onChange:w=>{switch(v(w),w){case"text":T(l.toolCalls),P({content:E,toolCalls:void 0});break;case"toolCalls":R(l.content),P({content:"",toolCalls:F!=null?mi({toolCalls:F,provider:i.model.provider}):[Yu(i.model.provider)]});break;default:me()}}}):null,e(se,{text:S==="toolCalls"?JSON.stringify(l.toolCalls):Ti(l.content)}),e(z,{"aria-label":"Delete message",icon:e(L,{svg:e(I.TrashOutline,{})}),variant:"default",size:"compact",onClick:()=>{r({instanceId:n,patch:{template:{__type:"chat",messages:t.messages.filter(w=>w.id!==l.id)}}})}}),e(qc,{ref:g,listeners:c,attributes:s})]}),children:e("div",{children:e(m0,{message:l,messageMode:S,playgroundInstanceId:n,template:t,templateLanguage:a,updateMessage:P})})})})}function p0(n){const a=n.playgroundInstanceId,t=O(s=>s.instances),l=t.find(s=>s.id===a),i=t.findIndex(s=>s.id===a);if(!l)throw new Error(`Playground instance ${a} not found`);const{template:r}=l;return e(q,{title:o(h,{direction:"row",gap:"size-100",alignItems:"center",children:[e(Rt,{index:i}),e("span",{children:"Prompt"})]}),collapsible:!0,variant:"compact",bodyStyle:{padding:0},extra:o(h,{direction:"row",gap:"size-100",children:[e(u.Suspense,{fallback:e("div",{children:e(ye,{size:"S"})}),children:e(Zh,{instanceId:a})}),e(Gh,{...n}),t.length>1?e(y0,{...n}):null]}),children:r.__type==="chat"?e(u.Suspense,{children:e(u0,{...n})}):"Completion Template"})}function y0(n){const a=O(t=>t.deleteInstance);return o(pe,{children:[e(je,{children:e(z,{variant:"default",size:"compact",icon:e(L,{svg:e(I.TrashOutline,{})}),onClick:()=>{a(n.playgroundInstanceId)}})}),e(Ie,{children:e(zn,{children:"Delete this instance of the playground"})})]})}function f0(){const n=O(t=>t.templateLanguage),a=O(t=>t.setTemplateLanguage);return e("div",{css:C`
|
|
4264
4268
|
& * {
|
|
4265
4269
|
white-space: nowrap;
|
|
4266
4270
|
}
|
|
@@ -68,10 +68,6 @@
|
|
|
68
68
|
<body>
|
|
69
69
|
<div id="root"></div>
|
|
70
70
|
<script>(function() {
|
|
71
|
-
// Request Info:
|
|
72
|
-
// URL: {{request.url}}
|
|
73
|
-
// Base URL: {{request.base_url}}
|
|
74
|
-
// Root Path: {{root_path}}
|
|
75
71
|
Object.defineProperty(window, "Config", {
|
|
76
72
|
// Place any server-side injected config here
|
|
77
73
|
// E.g. default UMAP parameters etc. that needs to be
|
phoenix/server/types.py
CHANGED
|
@@ -219,31 +219,31 @@ class UserId(_DbId):
|
|
|
219
219
|
|
|
220
220
|
|
|
221
221
|
@dataclass(frozen=True)
|
|
222
|
-
class UserClaimSet(ClaimSet):
|
|
222
|
+
class UserClaimSet(ClaimSet): # type: ignore[override,unused-ignore]
|
|
223
223
|
subject: Optional[UserId] = None
|
|
224
224
|
attributes: Optional[UserTokenAttributes] = None
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
@dataclass(frozen=True)
|
|
228
|
-
class PasswordResetTokenClaims(UserClaimSet):
|
|
228
|
+
class PasswordResetTokenClaims(UserClaimSet): # type: ignore[override,unused-ignore]
|
|
229
229
|
token_id: Optional[PasswordResetTokenId] = None
|
|
230
230
|
attributes: Optional[PasswordResetTokenAttributes] = None
|
|
231
231
|
|
|
232
232
|
|
|
233
233
|
@dataclass(frozen=True)
|
|
234
|
-
class AccessTokenClaims(UserClaimSet):
|
|
234
|
+
class AccessTokenClaims(UserClaimSet): # type: ignore[override,unused-ignore]
|
|
235
235
|
token_id: Optional[AccessTokenId] = None
|
|
236
236
|
attributes: Optional[AccessTokenAttributes] = None
|
|
237
237
|
|
|
238
238
|
|
|
239
239
|
@dataclass(frozen=True)
|
|
240
|
-
class RefreshTokenClaims(UserClaimSet):
|
|
240
|
+
class RefreshTokenClaims(UserClaimSet): # type: ignore[override,unused-ignore]
|
|
241
241
|
token_id: Optional[RefreshTokenId] = None
|
|
242
242
|
attributes: Optional[RefreshTokenAttributes] = None
|
|
243
243
|
|
|
244
244
|
|
|
245
245
|
@dataclass(frozen=True)
|
|
246
|
-
class ApiKeyClaims(UserClaimSet):
|
|
246
|
+
class ApiKeyClaims(UserClaimSet): # type: ignore[override,unused-ignore]
|
|
247
247
|
token_id: Optional[ApiKeyId] = None
|
|
248
248
|
attributes: Optional[ApiKeyAttributes] = None
|
|
249
249
|
|
phoenix/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "7.
|
|
1
|
+
__version__ = "7.2.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|