promptfoo 0.20.0 → 0.20.1

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.
package/README.md CHANGED
@@ -23,7 +23,7 @@ promptfoo produces matrix views that let you quickly evaluate outputs across man
23
23
 
24
24
  Here's an example of a side-by-side comparison of multiple prompts and inputs:
25
25
 
26
- ![prompt evaluation matrix - web viewer](https://github.com/promptfoo/promptfoo/assets/310310/d365c752-87dd-48a2-aafc-9ece03d61930)
26
+ ![prompt evaluation matrix - web viewer](https://github.com/promptfoo/promptfoo/assets/310310/ce5a7817-da82-4484-b26d-32474f1cabc5)
27
27
 
28
28
  It works on the command line too:
29
29
 
package/dist/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "promptfoo",
3
3
  "description": "LLM eval & testing toolkit",
4
4
  "author": "Ian Webster",
5
- "version": "0.20.0",
5
+ "version": "0.20.1",
6
6
  "license": "MIT",
7
7
  "type": "commonjs",
8
8
  "main": "dist/src/index.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" defer=""></script><script src="/_next/static/chunks/framework-43665103d101a22d.js" defer=""></script><script src="/_next/static/chunks/main-50cc0a98559591ce.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6b79a29ad0d63b21.js" defer=""></script><script src="/_next/static/chunks/pages/_error-9aeb3e4d490fe4b8.js" defer=""></script><script src="/_next/static/US6gOx8LHTX_Hzm9aYNrC/_buildManifest.js" defer=""></script><script src="/_next/static/US6gOx8LHTX_Hzm9aYNrC/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"US6gOx8LHTX_Hzm9aYNrC","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" defer=""></script><script src="/_next/static/chunks/framework-43665103d101a22d.js" defer=""></script><script src="/_next/static/chunks/main-50cc0a98559591ce.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6b79a29ad0d63b21.js" defer=""></script><script src="/_next/static/chunks/pages/_error-9aeb3e4d490fe4b8.js" defer=""></script><script src="/_next/static/BEyLhF7rmCpG4uhyEM3Pd/_buildManifest.js" defer=""></script><script src="/_next/static/BEyLhF7rmCpG4uhyEM3Pd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"BEyLhF7rmCpG4uhyEM3Pd","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" defer=""></script><script src="/_next/static/chunks/framework-43665103d101a22d.js" defer=""></script><script src="/_next/static/chunks/main-50cc0a98559591ce.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6b79a29ad0d63b21.js" defer=""></script><script src="/_next/static/chunks/pages/_error-9aeb3e4d490fe4b8.js" defer=""></script><script src="/_next/static/US6gOx8LHTX_Hzm9aYNrC/_buildManifest.js" defer=""></script><script src="/_next/static/US6gOx8LHTX_Hzm9aYNrC/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"US6gOx8LHTX_Hzm9aYNrC","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" defer=""></script><script src="/_next/static/chunks/framework-43665103d101a22d.js" defer=""></script><script src="/_next/static/chunks/main-50cc0a98559591ce.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6b79a29ad0d63b21.js" defer=""></script><script src="/_next/static/chunks/pages/_error-9aeb3e4d490fe4b8.js" defer=""></script><script src="/_next/static/BEyLhF7rmCpG4uhyEM3Pd/_buildManifest.js" defer=""></script><script src="/_next/static/BEyLhF7rmCpG4uhyEM3Pd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"BEyLhF7rmCpG4uhyEM3Pd","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[891],{26891:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return em}});var l=s(57437),n=s(2265),a=s(6882),r=s(63388),i=s(22130),o=s(35551),c=s(96507),d=s(27760),u=s(84081),p=s(40182),h=s(50819),x=s(38212),m=s(65507),j=s(90923),g=s(75156),f=s(33),b=s(13457),y=s(78276),v=s(43226),Z=s(72467),C=s(49605),S=s(39190),w=s(96704),k=s(89394),R=s(91797),P=s(26337),N=s(41101),L=s(29872),M=s(52653),D=s(33533),F=s(94740),V=s(94660);let W=(0,V.Ue)(e=>({table:null,setTable:t=>e(()=>({table:t})),config:null,setConfig:t=>e(()=>({config:t}))})),T=["#fd7f6f","#7eb0d5","#b2e061","#bd7ebe","#ffb55a","#ffee65","#beb9db","#fdcce5","#8bd3c7"];function I(e){let{table:t}=e,s=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!s.current)return;a.current&&a.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),l=Math.min(...e),n=(Math.ceil(Math.max(...e))-Math.floor(l))/10,r=Array.from({length:11},(e,t)=>parseFloat((Math.floor(l)+t*n).toFixed(2))),i=t.head.prompts.map((e,s)=>{let l=t.body.flatMap(e=>e.outputs[s].score),a=r.map(e=>l.filter(t=>t>=e&&t<e+n).length);return{label:"Prompt ".concat(s+1),data:a,backgroundColor:T[s%T.length]}});a.current=new w.kL(s.current,{type:"bar",data:{labels:r,datasets:i},options:{animation:!1,plugins:{title:{display:!0,text:"Score Distribution"},legend:{display:!1},tooltip:{callbacks:{title:function(e){let t=e[0].datasetIndex;return"Prompt ".concat(t+1)},label:function(e){let t=e.dataIndex,s=r[t],l=r[t+1];return l?"".concat(s," <= score < ").concat(l):"".concat(s," <= score")}}}}}})},[t]),(0,l.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function z(e){let{table:t}=e,s=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!s.current)return;a.current&&a.current.destroy();let e=t.head.prompts.map((e,s)=>{let l=t.body.flatMap(e=>e.outputs[s]),n=l.filter(e=>e.pass).length,a=n/l.length*100;return{label:"Prompt ".concat(s+1),data:[a],backgroundColor:T[s%T.length]}});a.current=new w.kL(s.current,{type:"bar",data:{labels:["Pass Rate (%)"],datasets:e},options:{animation:!1,plugins:{title:{display:!0,text:"Pass rate"},legend:{display:!0}}}})},[t]),(0,l.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function O(e){let{table:t}=e,s=(0,n.useRef)(null),a=(0,n.useRef)(null),[r,i]=(0,n.useState)(0),[o,c]=(0,n.useState)(1),[d,p]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!s.current)return;a.current&&a.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),l=Math.min(...e),n=Math.max(...e),i=t.body.map(e=>{let t=e.outputs[r].score,s=e.outputs[o].score;return{x:t,y:s,backgroundColor:s>t?"green":s<t?"red":"gray"}});a.current=new w.kL(s.current,{type:"scatter",data:{datasets:[{data:i,backgroundColor:i.map(e=>e.backgroundColor)},{type:"line",data:[{x:l,y:l},{x:n,y:n}],borderColor:"gray",borderWidth:1,borderDash:[5,5],pointRadius:0}]},options:{animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let s=t.body[e.dataIndex],l=s.outputs[0].text,n=s.outputs[1].text;return l.length>30&&(l=l.substring(0,30)+"..."),n.length>30&&(n=n.substring(0,30)+"..."),"Output 1: ".concat(l,"\nOutput 2: ").concat(n)}}}},scales:{x:{title:{display:!0,text:"Prompt ".concat(r+1," Score")}},y:{title:{display:!0,text:"Prompt ".concat(o+1," Score")}}}}})},[t,r,o]),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(k.Z,{open:d,onClose:()=>p(!1),children:[(0,l.jsx)(R.Z,{children:"Compare prompt outputs"}),(0,l.jsxs)(P.Z,{children:[(0,l.jsx)(u.Z,{sx:{m:1,minWidth:120},children:(0,l.jsx)(g.Z,{value:r,onChange:e=>i(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,l.jsxs)(m.Z,{value:t,children:["Prompt ",t+1]},t))})}),(0,l.jsx)(u.Z,{sx:{m:1,minWidth:120},children:(0,l.jsx)(g.Z,{value:o,onChange:e=>c(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,l.jsxs)(m.Z,{value:t,children:["Prompt ",t+1]},t))})})]})]}),(0,l.jsx)("canvas",{ref:s,style:{maxHeight:"300px",cursor:"pointer"},onClick:()=>p(!0)})]})}function E(e){let{columnVisibility:t}=e,s=(0,N.Z)();w.kL.defaults.color="dark"===s.palette.mode?"#aaa":"#666";let[a,r]=(0,n.useState)(!0),{table:i}=W();if(!i||!a||i.head.prompts.length<2)return null;let o=i.body.flatMap(e=>e.outputs.map(e=>e.score));return 1===new Set(o).size?null:(0,l.jsx)(F.SV,{fallback:null,children:(0,l.jsxs)(L.Z,{style:{position:"relative",padding:s.spacing(3)},children:[(0,l.jsx)(M.Z,{style:{position:"absolute",right:0,top:0},onClick:()=>r(!1),children:(0,l.jsx)(D.Z,{})}),(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,l.jsx)("div",{style:{width:"33%"},children:(0,l.jsx)(z,{table:i})}),(0,l.jsx)("div",{style:{width:"33%"},children:(0,l.jsx)(I,{table:i})}),(0,l.jsx)("div",{style:{width:"33%"},children:(0,l.jsx)(O,{table:i})})]})]})})}w.kL.register(w.vn,w.ST,w.ho,w.uw,w.f$,w.ZL,w.jn,w.od,w.u,w.wL);var H=s(19116);s(85777);var _=s(7660),U=s(3216),A=s(42834),J=s(95446),B=s(39329),G=s(54719),Y=s(73701),q=s(39279),$=s(30666),K=s(15795),Q=s(66988),X=s(98489);function ee(e){let{gradingResults:t}=e;return t?(0,l.jsxs)(c.Z,{mt:2,children:[(0,l.jsx)(v.Z,{variant:"subtitle1",children:"Assertions"}),(0,l.jsx)(K.Z,{children:(0,l.jsxs)(Y.Z,{children:[(0,l.jsx)(Q.Z,{children:(0,l.jsxs)(X.Z,{children:[(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Pass"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Score"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Type"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Value"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Reason"})]})}),(0,l.jsx)(q.Z,{children:t.map((e,t)=>{var s,n;return(0,l.jsxs)(X.Z,{children:[(0,l.jsx)($.Z,{children:e.pass?"✅":"❌"}),(0,l.jsx)($.Z,{children:e.score}),(0,l.jsx)($.Z,{children:(null===(s=e.assertion)||void 0===s?void 0:s.type)||""}),(0,l.jsx)($.Z,{children:(null===(n=e.assertion)||void 0===n?void 0:n.value)?String(e.assertion.value):"-"}),(0,l.jsx)($.Z,{children:e.reason})]},t)})})]})})]}):null}function et(e){let{open:t,onClose:s,prompt:a,output:r,gradingResults:i}=e,[d,u]=(0,n.useState)(!1);(0,n.useEffect)(()=>{u(!1)},[a]);let p=async e=>{await navigator.clipboard.writeText(e),u(!0)};return(0,l.jsxs)(k.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"lg",children:[(0,l.jsx)(R.Z,{children:"Details"}),(0,l.jsxs)(P.Z,{children:[(0,l.jsxs)(c.Z,{mb:2,children:[(0,l.jsx)(v.Z,{variant:"subtitle1",style:{marginBottom:"1rem"},children:"Prompt"}),(0,l.jsx)(J.u,{readOnly:!0,value:a,style:{width:"100%",padding:"0.75rem"},maxRows:20}),(0,l.jsx)(M.Z,{onClick:()=>p(a),style:{position:"absolute",right:"10px",top:"10px"},children:d?(0,l.jsx)(G.Z,{}):(0,l.jsx)(B.Z,{})})]}),r&&(0,l.jsxs)(c.Z,{my:2,children:[(0,l.jsx)(v.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Output"}),(0,l.jsx)(J.u,{readOnly:!0,maxRows:20,value:r,style:{width:"100%",padding:"0.75rem"}})]}),(0,l.jsx)(ee,{gradingResults:i})]}),(0,l.jsx)(A.Z,{children:(0,l.jsx)(o.Z,{onClick:s,children:"Close"})})]})}function es(e){return 0===e||1===e?"":"(".concat(e.toFixed(2),")")}function el(e){let{text:t,maxLength:s}=e,[a,r]=n.useState(!0),i="string"==typeof t?t:JSON.stringify(t);i=i.replace(/\n/g,"<br>");let o=()=>{r(!a)};return i.length<=s?(0,l.jsx)("span",{dangerouslySetInnerHTML:{__html:i}}):a?(0,l.jsxs)("span",{style:{cursor:"pointer"},onClick:o,children:[(0,l.jsx)("span",{dangerouslySetInnerHTML:{__html:i.substring(0,s)}})," ..."]}):(0,l.jsx)("span",{style:{cursor:"pointer"},onClick:o,children:(0,l.jsx)("span",{dangerouslySetInnerHTML:{__html:i}})})}function en(e){var t,s,a;let{output:r,maxTextLength:i,rowIndex:o,promptIndex:c,onRating:d,firstOutput:u,filterMode:p}=e,[h,x]=n.useState(!1),m="string"==typeof r.text?r.text:JSON.stringify(r.text),j=[];if(!r.pass&&m.includes("---")&&(m=(j=m.split("---")).slice(1).join("---")),"different"===p&&u){let e,t="string"==typeof u.text?u.text:JSON.stringify(u.text);t.includes("---")&&(t=t.split("---").slice(1).join("---"));try{JSON.parse(t),JSON.parse(m),e=(0,H.CT)(t,m)}catch(s){e=t.includes(". ")&&m.includes(". ")?(0,H.SY)(t,m):(0,H.NV)(t,m)}m=e.map(e=>e.added?"<ins>".concat(e.value,"</ins>"):e.removed?"<del>".concat(e.value,"</del>"):e.value).join("")}let g=e=>{d(o,c,e)};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"cell",children:[r.pass&&(0,l.jsxs)("div",{className:"status pass",children:["PASS ",(0,l.jsx)("span",{className:"score",children:es(r.score)})]}),!r.pass&&(0,l.jsxs)("div",{className:"status fail",children:["[FAIL",(0,l.jsx)("span",{className:"score",children:es(r.score)}),"] ",j[0]]})," ",(0,l.jsx)(el,{text:m,maxLength:i})]}),(0,l.jsx)("div",{className:"cell-detail",children:(null===(t=r.tokenUsage)||void 0===t?void 0:t.cached)?(0,l.jsxs)("span",{children:[r.tokenUsage.cached," tokens (cached)"]}):(0,l.jsxs)(l.Fragment,{children:[(null===(s=r.tokenUsage)||void 0===s?void 0:s.total)&&(0,l.jsxs)("span",{children:[r.tokenUsage.total," tokens"]})," |"," ",(0,l.jsxs)("span",{children:[r.latencyMs," ms"]})]})}),(0,l.jsxs)("div",{className:"cell-actions",children:[r.prompt&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"action",onClick:()=>{x(!0)},children:"\uD83D\uDD0E"}),(0,l.jsx)(et,{open:h,onClose:()=>{x(!1)},prompt:r.prompt,gradingResults:null===(a=r.gradingResult)||void 0===a?void 0:a.componentResults,output:m})]}),(0,l.jsx)("span",{className:"action",onClick:()=>g(!0),children:"\uD83D\uDC4D"}),(0,l.jsx)("span",{className:"action",onClick:()=>g(!1),children:"\uD83D\uDC4E"})]})]})}function ea(e){let{text:t,maxLength:s,smallText:a,expandedText:r}=e,[i,o]=n.useState(!1);return(0,l.jsxs)("div",{children:[(0,l.jsx)(el,{text:t,maxLength:s}),r&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"action",onClick:()=>{o(!0)},children:"\uD83D\uDD0E"}),(0,l.jsx)(et,{open:i,onClose:()=>{o(!1)},prompt:r})]}),(0,l.jsx)("div",{className:"smalltext",children:a})]})}function er(e){let{maxTextLength:t,columnVisibility:s,wordBreak:a,filterMode:r,failureFilter:o,onFailureFilterToggle:c}=e,{table:u,setTable:h}=W();(0,i.Z)(u,"Table should be defined");let{head:x,body:m}=u,j=x.prompts.map((e,t)=>m.reduce((e,s)=>e+(s.outputs[t].pass?1:0),0)),g=x.prompts.map((e,t)=>m.reduce((e,s)=>{var l,n;return e+((null===(n=s.outputs[t].gradingResult)||void 0===n?void 0:null===(l=n.componentResults)||void 0===l?void 0:l.length)||0)},0)),f=x.prompts.map((e,t)=>m.reduce((e,s)=>{var l;let n=null===(l=s.outputs[t].gradingResult)||void 0===l?void 0:l.componentResults;return e+(n?n.filter(e=>e.pass).length:0)},0)),b=(e,t,s)=>{let l=[...m],n={...l[e]},a=[...n.outputs];a[t].pass=s,a[t].score=s?1:0,n.outputs=a,l[e]=n,h({head:x,body:l})},y=j.reduce((e,t,s,l)=>t>l[e]?s:e,0),v=j[y],Z=(0,_.Cl)(),C=[Z.group({id:"vars",header:()=>(0,l.jsx)("span",{children:"Variables"}),columns:x.vars.map((e,s)=>Z.accessor(e=>e.vars[s],{id:"Variable ".concat(s+1),header:()=>(0,l.jsx)(ea,{smallText:"Variable ".concat(s+1),text:e,maxLength:t}),cell:e=>(0,l.jsx)(el,{text:e.getValue(),maxLength:t}),size:50}))}),Z.group({id:"prompts",header:()=>(0,l.jsx)("span",{children:"Outputs"}),columns:x.prompts.map((e,s)=>Z.accessor(e=>(function(e){if("string"==typeof e){let t=e.startsWith("[PASS]"),s=e;return e.startsWith("[PASS]")?s=s.slice(6):e.startsWith("[FAIL]")&&(s=s.slice(6)),{text:s,pass:t,score:t?1:0}}return e})(e.outputs[s]),{id:"Prompt ".concat(s+1),header:()=>{let n=(j[s]/m.length*100).toFixed(2),a=j[s]===v&&0!==v,i="Prompt ".concat(s+1),u=o[i]||!1;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(ea,{smallText:"Prompt ".concat(s+1),text:"string"==typeof e?e:e.display,expandedText:"string"==typeof e?void 0:e.raw,maxLength:t}),"failures"===r&&(0,l.jsx)(p.Z,{sx:{"& .MuiFormControlLabel-label":{fontSize:"0.75rem"}},control:(0,l.jsx)(d.Z,{checked:u,onChange:e=>c(i,e.target.checked)}),label:"Show failures"}),(0,l.jsxs)("div",{className:"summary ".concat(a?"highlight":""),children:["Passing: ",(0,l.jsxs)("strong",{children:[n,"%"]})," (",j[s],"/",m.length," cases",g[s]?(0,l.jsxs)("span",{children:[", ",f[s],"/",g[s]," asserts"]}):null,")"]})]})},cell:e=>(0,l.jsx)(en,{output:e.getValue(),maxTextLength:t,rowIndex:e.row.index,promptIndex:s,onRating:b,firstOutput:S[e.row.index].outputs[0],filterMode:r})}))})],S=n.useMemo(()=>"failures"===r?Object.values(o).every(e=>!e)?m:m.filter(e=>e.outputs.some((e,t)=>{let s=!e.pass;return o["Prompt ".concat(t+1)]&&s})):"different"===r?m.filter(e=>!e.outputs.every(t=>t.text===e.outputs[0].text)):m,[m,o,r]),w=(0,U.b7)({data:S,columns:C,columnResizeMode:"onChange",getCoreRowModel:(0,_.sC)(),state:{columnVisibility:s}});return(0,l.jsxs)("table",{style:{wordBreak:a},children:[(0,l.jsx)("thead",{children:w.getHeaderGroups().map(e=>(0,l.jsx)("tr",{className:"header",children:e.headers.map(e=>(0,l.jsxs)("th",{colSpan:e.colSpan,style:{width:e.getSize()},children:[e.isPlaceholder?null:(0,U.ie)(e.column.columnDef.header,e.getContext()),(0,l.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:"resizer ".concat(e.column.getIsResizing()?"isResizing":"")})]},e.id))},e.id))}),(0,l.jsx)("tbody",{children:w.getRowModel().rows.map((e,t)=>{let s=!1;return(0,l.jsx)("tr",{children:e.getVisibleCells().map(e=>{let n=e.column.id.startsWith("Variable"),a=!n&&!s;return a&&(s=!0),(0,l.jsx)("td",{style:{width:e.column.getSize()},className:"".concat(n?"variable":""," ").concat(0!==t||n?"":"first-prompt-row"," ").concat(a?"first-prompt-col":""),children:(0,U.ie)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)})})]})}s(2604);var ei=s(7175);function eo(e){let{open:t,onClose:a}=e,{config:r}=W(),i=n.useRef(null),[d,u]=n.useState(!1),[p,h]=n.useState("");n.useEffect(()=>{t&&(async()=>{let{default:e}=await s.e(339).then(s.bind(s,28339));h(e.dump(r))})()},[t,r]);let x=()=>{u(!1),a()};return(0,l.jsxs)(k.Z,{open:t,onClose:x,"aria-labelledby":"config-dialog-title",maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(R.Z,{id:"config-dialog-title",children:(0,l.jsxs)(c.Z,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,l.jsx)(v.Z,{variant:"h6",children:"Config"}),(0,l.jsx)(M.Z,{onClick:()=>{i.current&&(i.current.select(),document.execCommand("copy"),u(!0))},children:d?(0,l.jsx)(G.Z,{}):(0,l.jsx)(ei.Z,{})})]})}),(0,l.jsx)(P.Z,{children:(0,l.jsx)(v.Z,{variant:"body1",component:"div",children:(0,l.jsx)("textarea",{ref:i,readOnly:!0,value:p,style:{width:"100%",minHeight:"400px",fontFamily:"monospace",border:"1px solid #ccc"}})})}),(0,l.jsx)(A.Z,{children:(0,l.jsx)(o.Z,{onClick:x,color:"primary",children:"Close"})})]})}var ec=s(64173),ed=s(21975),eu=e=>{let{open:t,onClose:s,shareUrl:a}=e,r=(0,n.useRef)(null),[i,c]=(0,n.useState)(!1),d=()=>{s(),c(!1)};return(0,l.jsxs)(k.Z,{open:t,onClose:d,PaperProps:{style:{minWidth:"min(660px, 100%)"}},children:[(0,l.jsx)(R.Z,{children:"Your eval is ready to share"}),(0,l.jsxs)(P.Z,{children:[(0,l.jsx)(ed.Z,{inputRef:r,value:a,fullWidth:!0,InputProps:{readOnly:!0,endAdornment:(0,l.jsx)(M.Z,{onClick:()=>{r.current&&(r.current.select(),document.execCommand("copy"),c(!0))},children:i?(0,l.jsx)(G.Z,{}):(0,l.jsx)(ei.Z,{})})}}),(0,l.jsx)(ec.Z,{sx:{fontSize:"0.75rem"},children:"Shared URLs are deleted after 1 week."})]}),(0,l.jsx)(A.Z,{children:(0,l.jsx)(o.Z,{onClick:d,color:"primary",children:"Close"})})]})};let ep=(0,S.Z)(b.Z)(e=>{let{theme:t}=e;return{maxWidth:"100%",flexWrap:"wrap",[t.breakpoints.down("sm")]:{flexDirection:"column"}}});function eh(e){let{recentFiles:t,onRecentFileSelected:s}=e,{table:r,config:b}=W(),[S,w]=n.useState(250),[k,R]=n.useState({}),[P,N]=n.useState([]),[L,M]=n.useState({}),[D,F]=n.useState("all"),[V,T]=n.useState("break-word"),[I,z]=n.useState(!1),[O,H]=n.useState(""),[_,U]=n.useState(!1),A=async()=>{U(!0);try{let e=await fetch("https://api.promptfoo.dev/eval",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{version:1,results:{table:r},config:b}})}),{id:t}=await e.json(),s="https://app.promptfoo.dev/eval/".concat(t);H(s),z(!0)}catch(e){alert("Sorry, something went wrong.")}finally{U(!1)}},[J,B]=n.useState(!1);(0,i.Z)(r,"Table data must be loaded before rendering ResultsView");let{head:G}=r,Y=[...G.vars.map((e,t)=>({value:"Variable ".concat(t+1),label:"Variable ".concat(t+1),group:"Variables"})),...G.prompts.map((e,t)=>({value:"Prompt ".concat(t+1),label:"Prompt ".concat(t+1),group:"Prompts"}))];return n.useEffect(()=>{N([...G.vars.map((e,t)=>"Variable ".concat(t+1)),...G.prompts.map((e,t)=>"Prompt ".concat(t+1))])},[G]),(0,l.jsxs)("div",{style:{marginLeft:"1rem",marginRight:"1rem"},children:[(0,l.jsx)(c.Z,{py:"md",children:(0,l.jsxs)(ep,{direction:"row",spacing:4,alignItems:"center",children:[(0,l.jsx)(c.Z,{children:t&&t.length>0&&(0,l.jsxs)(u.Z,{sx:{m:1,minWidth:200},size:"small",children:[(0,l.jsx)(h.Z,{children:"View run"}),(0,l.jsx)(g.Z,{className:"recent-files",label:"Previous runs",defaultValue:t[0],onChange:e=>s(e.target.value),children:t.map(e=>(0,l.jsx)(m.Z,{value:e,children:function(e){let t=e.slice(5,e.length-5),s=t.split("T"),l=s[1].replace(/-/g,":"),n="".concat(s[0],"T").concat(l),a=new Date(n);return a.toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"})}(e)},e))},t.join(","))]})}),(0,l.jsx)(c.Z,{children:(0,l.jsxs)(u.Z,{sx:{m:1,minWidth:200},size:"small",children:[(0,l.jsx)(h.Z,{id:"visible-columns-label",children:"Show columns"}),(0,l.jsx)(g.Z,{labelId:"visible-columns-label",id:"visible-columns",multiple:!0,value:P,onChange:e=>{let{target:{value:t}}=e;N("string"==typeof t?t.split(","):t);let s=[...G.vars.map((e,t)=>"Variable ".concat(t+1)),...G.prompts.map((e,t)=>"Prompt ".concat(t+1))],l={};s.forEach(e=>{l[e]=("string"==typeof t?t.split(","):t).includes(e)}),R(l)},input:(0,l.jsx)(j.Z,{label:"Visible columns"}),renderValue:e=>e.join(", "),children:Y.map(e=>(0,l.jsxs)(m.Z,{dense:!0,value:e.value,children:[(0,l.jsx)(d.Z,{checked:P.indexOf(e.value)>-1}),(0,l.jsx)(x.Z,{primary:e.label})]},e.value))})]})}),(0,l.jsx)(c.Z,{children:(0,l.jsxs)(u.Z,{sx:{minWidth:180},size:"small",children:[(0,l.jsx)(h.Z,{id:"failure-filter-mode-label",children:"Filter"}),(0,l.jsxs)(g.Z,{labelId:"filter-mode-label",id:"filter-mode",value:D,onChange:e=>{let t=e.target.value;F(t);let s={};G.prompts.forEach((e,l)=>{s["Prompt ".concat(l+1)]="failures"===t}),M(s)},label:"Filter",children:[(0,l.jsx)(m.Z,{value:"all",children:"Show all results"}),(0,l.jsx)(m.Z,{value:"failures",children:"Show failures only"}),(0,l.jsx)(m.Z,{value:"different",children:"Show different only"})]})]})}),(0,l.jsxs)(c.Z,{children:[(0,l.jsxs)(v.Z,{mt:2,children:["Max text length: ",S]}),(0,l.jsx)(f.ZP,{min:25,max:1e3,value:S,onChange:(e,t)=>w(t)})]}),(0,l.jsx)(c.Z,{children:(0,l.jsx)(y.Z,{title:"Forcing line breaks makes it easier to adjust column widths to your liking",children:(0,l.jsx)(p.Z,{control:(0,l.jsx)(d.Z,{checked:"break-all"===V,onChange:e=>{T(e.target.checked?"break-all":"break-word")}}),label:"Force line breaks"})})}),(0,l.jsx)(c.Z,{flexGrow:1}),(0,l.jsx)(c.Z,{display:"flex",justifyContent:"flex-end",children:(0,l.jsxs)(ep,{direction:"row",spacing:2,children:[b&&(0,l.jsx)(y.Z,{title:"View config",children:(0,l.jsx)(o.Z,{color:"primary",onClick:()=>B(!0),startIcon:(0,l.jsx)(C.Z,{}),children:"Config"})}),(null==b?void 0:b.sharing)&&(0,l.jsx)(y.Z,{title:"Generate a unique URL that others can access",children:(0,l.jsx)(o.Z,{color:"primary",onClick:A,disabled:_,startIcon:_?(0,l.jsx)(a.Z,{size:16}):(0,l.jsx)(Z.Z,{}),children:"Share"})})]})})]})}),(0,l.jsx)(E,{columnVisibility:k}),(0,l.jsx)(er,{maxTextLength:S,columnVisibility:k,wordBreak:V,filterMode:D,failureFilter:L,onFailureFilterToggle:(e,t)=>{M(s=>({...s,[e]:t}))}}),(0,l.jsx)(eo,{open:J,onClose:()=>B(!1)}),(0,l.jsx)(eu,{open:I,onClose:()=>z(!1),shareUrl:O})]})}var ex=s(79050);function em(e){let{preloadedData:t}=e,{table:s,setTable:i,setConfig:o}=W(),[c,d]=n.useState(!1),[u,p]=n.useState([]),h=async()=>{if(!window.location.href.includes("localhost"))return;let e=await fetch("".concat(ex.C,"/results")),t=await e.json();p(t.data)},x=async e=>{let t=await fetch("".concat(ex.C,"/results/").concat(e)),s=await t.json();i(s.data.results.table),o(s.data.config)};return n.useEffect(()=>{let e=(0,r.io)(ex.C);if(t){var s;i(null===(s=t.data.results)||void 0===s?void 0:s.table),o(t.data.config),d(!0)}else e.on("init",e=>{console.log("Initialized socket connection",e),d(!0),i(e.results.table),o(e.config),h()}),e.on("update",e=>{console.log("Received data update",e),i(e.results.table),o(e.config),h()});return()=>{e.disconnect()}},[i,o,t]),c&&s?(0,l.jsx)(eh,{recentFiles:u,onRecentFileSelected:x}):(0,l.jsxs)("div",{className:"loading",children:[(0,l.jsx)("div",{children:(0,l.jsx)(a.Z,{size:22})}),(0,l.jsx)("div",{children:"Loading eval data"})]})}s(85038)},79050:function(e,t,s){"use strict";s.d(t,{C:function(){return l}});let l="http://localhost:15500"},85038:function(){},2604:function(){},85777:function(){}}]);
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e388dd377baf25ec.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/fc460b8a7cadb952.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-6e474e42be502dd7.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-07e4a23a5c6cdf04.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-c9dc13756d166550.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_979022"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img src="/logo.svg" alt="Promptfoo logo"/> <span>promptfoo</span></div><a href="/setup/">New Eval</a><a href="/eval/">View Evals</a><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div><div><div class="loading"><div><style data-emotion="css z01bqi animation-61bdi0">.css-z01bqi{display:inline-block;color:#1976d2;-webkit-animation:animation-61bdi0 1.4s linear infinite;animation:animation-61bdi0 1.4s linear infinite;}@-webkit-keyframes animation-61bdi0{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-61bdi0{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><span class="MuiCircularProgress-root MuiCircularProgress-indeterminate MuiCircularProgress-colorPrimary css-z01bqi" style="width:22px;height:22px" role="progressbar"><style data-emotion="css 13o7eu2">.css-13o7eu2{display:block;}</style><svg class="MuiCircularProgress-svg css-13o7eu2" viewBox="22 22 44 44"><style data-emotion="css 14891ef animation-1p2h4ri">.css-14891ef{stroke:currentColor;stroke-dasharray:80px,200px;stroke-dashoffset:0;-webkit-animation:animation-1p2h4ri 1.4s ease-in-out infinite;animation:animation-1p2h4ri 1.4s ease-in-out infinite;}@-webkit-keyframes animation-1p2h4ri{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0;}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px;}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px;}}@keyframes animation-1p2h4ri{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0;}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px;}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px;}}</style><circle class="MuiCircularProgress-circle MuiCircularProgress-circleIndeterminate css-14891ef" cx="44" cy="44" r="20.2" fill="none" stroke-width="3.6"></circle></svg></span></div><div>Loading eval data</div></div></div></div><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" async=""></script><script src="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" async=""></script><script src="/_next/static/chunks/596-07e4a23a5c6cdf04.js" async=""></script><script src="/_next/static/chunks/main-app-c9dc13756d166550.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/e388dd377baf25ec.css\",{\"as\":\"style\"}]\n0:\"$L5\"\n"])</script><script>self.__next_f.push([1,"6:HL[\"/_next/static/css/fc460b8a7cadb952.css\",{\"as\":\"style\"}]\n"])</script><script>self.__next_f.push([1,"7:I{\"id\":57948,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n9:I{\"id\":56628,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"\",\"async\":false}\na:I{\"id\":82152,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"185:sta"])</script><script>self.__next_f.push([1,"tic/chunks/app/layout-664a8d716d2d24b1.js\"],\"name\":\"PageShell\",\"async\":false}\nb:I{\"id\":47767,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":57920,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":26891,\"chunks\":[\"674:static"])</script><script>self.__next_f.push([1,"/chunks/ca377847-cb6ae6a6a073aebb.js\",\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"858:static/chunks/858-ceb6fa22e614492b.js\",\"707:static/chunks/707-699cbd84b259c37b.js\",\"891:static/chunks/891-3000ea7c0a292558.js\",\"11:static/chunks/app/eval/page-d4a1813b2f8c4532.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"5:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e388dd377baf25ec.css\",\"precedence\":\"next\"}]],[\"$\",\"$L7\",null,{\"buildId\":\"US6gOx8LHTX_Hzm9aYNrC\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/eval/\",\"initialTree\":[\"\",{\"children\":[\"eval\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L8\",\"globalErrorComponent\":\"$9\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_979022\",\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"eval\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Ld\",[\"$\",\"$Le\",null,{}],null],\"segment\":\"__PAGE__\"},\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fc460b8a7cadb952.css\",\"precedence\":\"next\"}]]}],\"segment\":\"eval\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\nd:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e388dd377baf25ec.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/fc460b8a7cadb952.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-6e474e42be502dd7.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-07e4a23a5c6cdf04.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-c9dc13756d166550.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_979022"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img src="/logo.svg" alt="Promptfoo logo"/> <span>promptfoo</span></div><a href="/setup/">New Eval</a><a href="/eval/">View Evals</a><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div><div><div class="loading"><div><style data-emotion="css z01bqi animation-61bdi0">.css-z01bqi{display:inline-block;color:#1976d2;-webkit-animation:animation-61bdi0 1.4s linear infinite;animation:animation-61bdi0 1.4s linear infinite;}@-webkit-keyframes animation-61bdi0{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-61bdi0{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><span class="MuiCircularProgress-root MuiCircularProgress-indeterminate MuiCircularProgress-colorPrimary css-z01bqi" style="width:22px;height:22px" role="progressbar"><style data-emotion="css 13o7eu2">.css-13o7eu2{display:block;}</style><svg class="MuiCircularProgress-svg css-13o7eu2" viewBox="22 22 44 44"><style data-emotion="css 14891ef animation-1p2h4ri">.css-14891ef{stroke:currentColor;stroke-dasharray:80px,200px;stroke-dashoffset:0;-webkit-animation:animation-1p2h4ri 1.4s ease-in-out infinite;animation:animation-1p2h4ri 1.4s ease-in-out infinite;}@-webkit-keyframes animation-1p2h4ri{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0;}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px;}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px;}}@keyframes animation-1p2h4ri{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0;}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px;}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px;}}</style><circle class="MuiCircularProgress-circle MuiCircularProgress-circleIndeterminate css-14891ef" cx="44" cy="44" r="20.2" fill="none" stroke-width="3.6"></circle></svg></span></div><div>Loading eval data</div></div></div></div><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" async=""></script><script src="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" async=""></script><script src="/_next/static/chunks/596-07e4a23a5c6cdf04.js" async=""></script><script src="/_next/static/chunks/main-app-c9dc13756d166550.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/e388dd377baf25ec.css\",{\"as\":\"style\"}]\n0:\"$L5\"\n"])</script><script>self.__next_f.push([1,"6:HL[\"/_next/static/css/fc460b8a7cadb952.css\",{\"as\":\"style\"}]\n"])</script><script>self.__next_f.push([1,"7:I{\"id\":57948,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n9:I{\"id\":56628,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"\",\"async\":false}\na:I{\"id\":82152,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"185:sta"])</script><script>self.__next_f.push([1,"tic/chunks/app/layout-664a8d716d2d24b1.js\"],\"name\":\"PageShell\",\"async\":false}\nb:I{\"id\":47767,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":57920,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":26891,\"chunks\":[\"674:static"])</script><script>self.__next_f.push([1,"/chunks/ca377847-cb6ae6a6a073aebb.js\",\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"858:static/chunks/858-ceb6fa22e614492b.js\",\"707:static/chunks/707-699cbd84b259c37b.js\",\"891:static/chunks/891-86c74b761e072027.js\",\"11:static/chunks/app/eval/page-d4a1813b2f8c4532.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"5:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e388dd377baf25ec.css\",\"precedence\":\"next\"}]],[\"$\",\"$L7\",null,{\"buildId\":\"BEyLhF7rmCpG4uhyEM3Pd\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/eval/\",\"initialTree\":[\"\",{\"children\":[\"eval\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L8\",\"globalErrorComponent\":\"$9\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_979022\",\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"eval\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Ld\",[\"$\",\"$Le\",null,{}],null],\"segment\":\"__PAGE__\"},\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fc460b8a7cadb952.css\",\"precedence\":\"next\"}]]}],\"segment\":\"eval\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\nd:null\n"])</script></body></html>
@@ -2,12 +2,12 @@
2
2
  2:HL["/_next/static/media/627622453ef56b0d-s.p.woff2",{"as":"font","type":"font/woff2"}]
3
3
  3:HL["/_next/static/media/934c4b7cb736f2a3-s.p.woff2",{"as":"font","type":"font/woff2"}]
4
4
  4:HL["/_next/static/css/e388dd377baf25ec.css",{"as":"style"}]
5
- 0:["US6gOx8LHTX_Hzm9aYNrC",[[["",{"children":["eval",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L5",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e388dd377baf25ec.css","precedence":"next"}]],"$L6"]]]]
5
+ 0:["BEyLhF7rmCpG4uhyEM3Pd",[[["",{"children":["eval",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L5",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e388dd377baf25ec.css","precedence":"next"}]],"$L6"]]]]
6
6
  7:HL["/_next/static/css/fc460b8a7cadb952.css",{"as":"style"}]
7
7
  8:I{"id":82152,"chunks":["658:static/chunks/658-a62210d07dc4dcb6.js","583:static/chunks/583-125d32af505e9bc4.js","185:static/chunks/app/layout-664a8d716d2d24b1.js"],"name":"PageShell","async":false}
8
8
  9:I{"id":47767,"chunks":["272:static/chunks/webpack-6e474e42be502dd7.js","971:static/chunks/fd9d1056-ac777be631f5a9e9.js","596:static/chunks/596-07e4a23a5c6cdf04.js"],"name":"default","async":false}
9
9
  a:I{"id":57920,"chunks":["272:static/chunks/webpack-6e474e42be502dd7.js","971:static/chunks/fd9d1056-ac777be631f5a9e9.js","596:static/chunks/596-07e4a23a5c6cdf04.js"],"name":"default","async":false}
10
- c:I{"id":26891,"chunks":["674:static/chunks/ca377847-cb6ae6a6a073aebb.js","658:static/chunks/658-a62210d07dc4dcb6.js","858:static/chunks/858-ceb6fa22e614492b.js","707:static/chunks/707-699cbd84b259c37b.js","891:static/chunks/891-3000ea7c0a292558.js","11:static/chunks/app/eval/page-d4a1813b2f8c4532.js"],"name":"","async":false}
10
+ c:I{"id":26891,"chunks":["674:static/chunks/ca377847-cb6ae6a6a073aebb.js","658:static/chunks/658-a62210d07dc4dcb6.js","858:static/chunks/858-ceb6fa22e614492b.js","707:static/chunks/707-699cbd84b259c37b.js","891:static/chunks/891-86c74b761e072027.js","11:static/chunks/app/eval/page-d4a1813b2f8c4532.js"],"name":"","async":false}
11
11
  5:[null,["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__className_979022","children":["$","$L8",null,{"children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":"$undefined","childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","eval","children"],"error":"$undefined","errorStyles":"$undefined","loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lb",["$","$Lc",null,{}],null],"segment":"__PAGE__"},"styles":[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fc460b8a7cadb952.css","precedence":"next"}]]}],"segment":"eval"},"styles":[]}]}]}]}],null]
12
12
  6:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"promptfoo"}],["$","meta","2",{"name":"description","content":"LLM testing and evaluation"}],["$","meta","3",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","4",{"name":"next-size-adjust"}]]
13
13
  b:null
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="style" href="/_next/static/css/e388dd377baf25ec.css"/><link rel="preload" href="/_next/static/chunks/webpack-6e474e42be502dd7.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-07e4a23a5c6cdf04.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-c9dc13756d166550.js" as="script"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" async=""></script><script src="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" async=""></script><script src="/_next/static/chunks/596-07e4a23a5c6cdf04.js" async=""></script><script src="/_next/static/chunks/main-app-c9dc13756d166550.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/e388dd377baf25ec.css\",{\"as\":\"style\"}]\n0:\"$L5\"\n"])</script><script>self.__next_f.push([1,"6:HL[\"/_next/static/css/8119d8bd13a8adab.css\",{\"as\":\"style\"}]\n"])</script><script>self.__next_f.push([1,"7:I{\"id\":57948,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n9:I{\"id\":56628,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"\",\"async\":false}\na:I{\"id\":82152,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"185:sta"])</script><script>self.__next_f.push([1,"tic/chunks/app/layout-664a8d716d2d24b1.js\"],\"name\":\"PageShell\",\"async\":false}\nb:I{\"id\":47767,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":57920,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"5:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e388dd377baf25ec.css\",\"precedence\":\"next\"}]],[\"$\",\"$L7\",null,{\"buildId\":\"US6gOx8LHTX_Hzm9aYNrC\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/\",\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L8\",\"globalErrorComponent\":\"$9\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_979022\",\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Ld\",\"$Le\",null],\"segment\":\"__PAGE__\"},\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8119d8bd13a8adab.css\",\"precedence\":\"next\"}]]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"e:E{\"digest\":\"NEXT_REDIRECT;replace;/eval\"}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\nd:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="style" href="/_next/static/css/e388dd377baf25ec.css"/><link rel="preload" href="/_next/static/chunks/webpack-6e474e42be502dd7.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-07e4a23a5c6cdf04.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-c9dc13756d166550.js" as="script"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" async=""></script><script src="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" async=""></script><script src="/_next/static/chunks/596-07e4a23a5c6cdf04.js" async=""></script><script src="/_next/static/chunks/main-app-c9dc13756d166550.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/e388dd377baf25ec.css\",{\"as\":\"style\"}]\n0:\"$L5\"\n"])</script><script>self.__next_f.push([1,"6:HL[\"/_next/static/css/8119d8bd13a8adab.css\",{\"as\":\"style\"}]\n"])</script><script>self.__next_f.push([1,"7:I{\"id\":57948,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n9:I{\"id\":56628,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"\",\"async\":false}\na:I{\"id\":82152,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"185:sta"])</script><script>self.__next_f.push([1,"tic/chunks/app/layout-664a8d716d2d24b1.js\"],\"name\":\"PageShell\",\"async\":false}\nb:I{\"id\":47767,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":57920,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"5:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e388dd377baf25ec.css\",\"precedence\":\"next\"}]],[\"$\",\"$L7\",null,{\"buildId\":\"BEyLhF7rmCpG4uhyEM3Pd\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/\",\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L8\",\"globalErrorComponent\":\"$9\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_979022\",\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Ld\",\"$Le\",null],\"segment\":\"__PAGE__\"},\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8119d8bd13a8adab.css\",\"precedence\":\"next\"}]]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"e:E{\"digest\":\"NEXT_REDIRECT;replace;/eval\"}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\nd:null\n"])</script></body></html>
@@ -2,7 +2,7 @@
2
2
  2:HL["/_next/static/media/627622453ef56b0d-s.p.woff2",{"as":"font","type":"font/woff2"}]
3
3
  3:HL["/_next/static/media/934c4b7cb736f2a3-s.p.woff2",{"as":"font","type":"font/woff2"}]
4
4
  4:HL["/_next/static/css/e388dd377baf25ec.css",{"as":"style"}]
5
- 0:["US6gOx8LHTX_Hzm9aYNrC",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L5",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e388dd377baf25ec.css","precedence":"next"}]],"$L6"]]]]
5
+ 0:["BEyLhF7rmCpG4uhyEM3Pd",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L5",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e388dd377baf25ec.css","precedence":"next"}]],"$L6"]]]]
6
6
  7:HL["/_next/static/css/8119d8bd13a8adab.css",{"as":"style"}]
7
7
  8:I{"id":82152,"chunks":["658:static/chunks/658-a62210d07dc4dcb6.js","583:static/chunks/583-125d32af505e9bc4.js","185:static/chunks/app/layout-664a8d716d2d24b1.js"],"name":"PageShell","async":false}
8
8
  9:I{"id":47767,"chunks":["272:static/chunks/webpack-6e474e42be502dd7.js","971:static/chunks/fd9d1056-ac777be631f5a9e9.js","596:static/chunks/596-07e4a23a5c6cdf04.js"],"name":"default","async":false}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e388dd377baf25ec.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a35c840ac696f161.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-6e474e42be502dd7.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-07e4a23a5c6cdf04.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-c9dc13756d166550.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_979022"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img src="/logo.svg" alt="Promptfoo logo"/> <span>promptfoo</span></div><a href="/setup/">New Eval</a><a href="/eval/">View Evals</a><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div><div><style data-emotion="css 19t2hy6">.css-19t2hy6{width:100%;margin-left:auto;box-sizing:border-box;margin-right:auto;display:block;padding-left:16px;padding-right:16px;margin-top:2rem;}@media (min-width:600px){.css-19t2hy6{padding-left:24px;padding-right:24px;}}@media (min-width:1200px){.css-19t2hy6{max-width:1200px;}}</style><div class="MuiContainer-root MuiContainer-maxWidthLg css-19t2hy6"><style data-emotion="css 1w57jtv">.css-1w57jtv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.css-1w57jtv>:not(style):not(style){margin:0;}.css-1w57jtv>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root css-1w57jtv"><style data-emotion="css jqhduh">.css-jqhduh{margin:0;font-family:inherit;font-weight:400;font-size:2.125rem;line-height:1.235;}</style><h4 class="MuiTypography-root MuiTypography-h4 css-jqhduh">Set up an evaluation</h4><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root css-jj2ztu"><style data-emotion="css 11kchfx">.css-11kchfx{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);}.css-11kchfx:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-11kchfx:hover{background-color:#1976d2;}}.css-11kchfx:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-11kchfx.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-11kchfx.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1r4sjx4">.css-1r4sjx4{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);}.css-1r4sjx4::-moz-focus-inner{border-style:none;}.css-1r4sjx4.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1r4sjx4{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1r4sjx4:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1r4sjx4:hover{background-color:#1976d2;}}.css-1r4sjx4:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1r4sjx4.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1r4sjx4.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1r4sjx4" tabindex="0" type="button">Run Evaluation</button><style data-emotion="css 1l5hj2g">.css-1l5hj2g{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:5px 15px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid rgba(25, 118, 210, 0.5);color:#1976d2;}.css-1l5hj2g:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(25, 118, 210, 0.04);border:1px solid #1976d2;}@media (hover: none){.css-1l5hj2g:hover{background-color:transparent;}}.css-1l5hj2g.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1avs8v6">.css-1avs8v6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:5px 15px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid rgba(25, 118, 210, 0.5);color:#1976d2;}.css-1avs8v6::-moz-focus-inner{border-style:none;}.css-1avs8v6.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1avs8v6{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1avs8v6:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(25, 118, 210, 0.04);border:1px solid #1976d2;}@media (hover: none){.css-1avs8v6:hover{background-color:transparent;}}.css-1avs8v6.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium css-1avs8v6" tabindex="0" type="button">Reset</button></div></div><style data-emotion="css h5fkc8">.css-h5fkc8{margin-top:32px;}</style><div class="MuiBox-root css-h5fkc8"></div><style data-emotion="css 1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style><div class="MuiBox-root css-1yuhvjn"><style data-emotion="css 1nguorl">.css-1nguorl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.css-1nguorl>:not(style):not(style){margin:0;}.css-1nguorl>:not(style)~:not(style){margin-top:16px;}</style><div class="MuiStack-root css-1nguorl"><style data-emotion="css 1d79rw6">.css-1d79rw6{margin:0;font-family:inherit;font-weight:400;font-size:1.5rem;line-height:1.334;}</style><h5 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Providers</h5><div class="MuiBox-root css-1yuhvjn"><style data-emotion="css 18nc3u2">.css-18nc3u2.Mui-focused .MuiAutocomplete-clearIndicator{visibility:visible;}@media (pointer: fine){.css-18nc3u2:hover .MuiAutocomplete-clearIndicator{visibility:visible;}}.css-18nc3u2 .MuiAutocomplete-tag{margin:3px;max-width:calc(100% - 6px);}.css-18nc3u2 .MuiAutocomplete-inputRoot{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.MuiAutocomplete-hasPopupIcon.css-18nc3u2 .MuiAutocomplete-inputRoot,.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiAutocomplete-inputRoot{padding-right:30px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiAutocomplete-inputRoot{padding-right:56px;}.css-18nc3u2 .MuiAutocomplete-inputRoot .MuiAutocomplete-input{width:0;min-width:30px;}.css-18nc3u2 .MuiInput-root{padding-bottom:1px;}.css-18nc3u2 .MuiInput-root .MuiInput-input{padding:4px 4px 4px 0px;}.css-18nc3u2 .MuiInput-root.MuiInputBase-sizeSmall .MuiInput-input{padding:2px 4px 3px 0;}.css-18nc3u2 .MuiOutlinedInput-root{padding:9px;}.MuiAutocomplete-hasPopupIcon.css-18nc3u2 .MuiOutlinedInput-root,.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiOutlinedInput-root{padding-right:39px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiOutlinedInput-root{padding-right:65px;}.css-18nc3u2 .MuiOutlinedInput-root .MuiAutocomplete-input{padding:7.5px 4px 7.5px 5px;}.css-18nc3u2 .MuiOutlinedInput-root .MuiAutocomplete-endAdornment{right:9px;}.css-18nc3u2 .MuiOutlinedInput-root.MuiInputBase-sizeSmall{padding-top:6px;padding-bottom:6px;padding-left:6px;}.css-18nc3u2 .MuiOutlinedInput-root.MuiInputBase-sizeSmall .MuiAutocomplete-input{padding:2.5px 4px 2.5px 8px;}.css-18nc3u2 .MuiFilledInput-root{padding-top:19px;padding-left:8px;}.MuiAutocomplete-hasPopupIcon.css-18nc3u2 .MuiFilledInput-root,.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiFilledInput-root{padding-right:39px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiFilledInput-root{padding-right:65px;}.css-18nc3u2 .MuiFilledInput-root .MuiFilledInput-input{padding:7px 4px;}.css-18nc3u2 .MuiFilledInput-root .MuiAutocomplete-endAdornment{right:9px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-sizeSmall{padding-bottom:1px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-sizeSmall .MuiFilledInput-input{padding:2.5px 4px;}.css-18nc3u2 .MuiInputBase-hiddenLabel{padding-top:8px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-hiddenLabel{padding-top:0;padding-bottom:0;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-hiddenLabel .MuiAutocomplete-input{padding-top:16px;padding-bottom:17px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-hiddenLabel.MuiInputBase-sizeSmall .MuiAutocomplete-input{padding-top:8px;padding-bottom:9px;}.css-18nc3u2 .MuiAutocomplete-input{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;text-overflow:ellipsis;opacity:1;}</style><div class="MuiAutocomplete-root css-18nc3u2"><style data-emotion="css feqhe6">.css-feqhe6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;min-width:0;padding:0;margin:0;border:0;vertical-align:top;width:100%;}</style><div class="MuiFormControl-root MuiFormControl-fullWidth MuiTextField-root css-feqhe6"><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><style data-emotion="css 18bxsfn">.css-18bxsfn{font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;color:rgba(0, 0, 0, 0.87);box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;border-radius:4px;}.css-18bxsfn.Mui-disabled{color:rgba(0, 0, 0, 0.38);cursor:default;}.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.87);}@media (hover: none){.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-18bxsfn.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#1976d2;border-width:2px;}.css-18bxsfn.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#d32f2f;}.css-18bxsfn.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiAutocomplete-inputRoot css-18bxsfn"><style data-emotion="css 1x5jdmq">.css-1x5jdmq{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding:16.5px 14px;}.css-1x5jdmq::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:focus{outline:0;}.css-1x5jdmq:invalid{box-shadow:none;}.css-1x5jdmq::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-ms-input-placeholder{opacity:0.42;}.css-1x5jdmq.Mui-disabled{opacity:1;-webkit-text-fill-color:rgba(0, 0, 0, 0.38);}.css-1x5jdmq:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-1x5jdmq:-webkit-autofill{border-radius:inherit;}</style><input aria-invalid="false" autoComplete="off" id=":R3ahqmmla:" placeholder="Select LLM providers" type="text" class="MuiInputBase-input MuiOutlinedInput-input MuiAutocomplete-input MuiAutocomplete-inputFocused css-1x5jdmq" aria-autocomplete="list" aria-expanded="false" autoCapitalize="none" spellCheck="false" role="combobox" value=""/><style data-emotion="css 19w1uun">.css-19w1uun{border-color:rgba(0, 0, 0, 0.23);}</style><style data-emotion="css igs3ac">.css-igs3ac{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);}</style><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><style data-emotion="css ihdtdm">.css-ihdtdm{float:unset;width:auto;overflow:hidden;padding:0;line-height:11px;-webkit-transition:width 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:width 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;}</style><legend class="css-ihdtdm"><span class="notranslate">​</span></legend></fieldset></div></div></div></div></div></div><div class="MuiBox-root css-h5fkc8"></div><div><div class="MuiStack-root css-1w57jtv"><h5 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Prompts</h5><div><label for="file-input-add-prompt"><span aria-label="Upload prompt from file" class=""><style data-emotion="css 1wf493t">.css-1wf493t{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1wf493t:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1wf493t:hover{background-color:transparent;}}.css-1wf493t.Mui-disabled{background-color:transparent;color:rgba(0, 0, 0, 0.26);}</style><style data-emotion="css 1yxmbwk">.css-1yxmbwk{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1yxmbwk::-moz-focus-inner{border-style:none;}.css-1yxmbwk.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1yxmbwk{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1yxmbwk:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1yxmbwk:hover{background-color:transparent;}}.css-1yxmbwk.Mui-disabled{background-color:transparent;color:rgba(0, 0, 0, 0.26);}</style><span class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1yxmbwk" tabindex="0" role="button"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="PublishIcon"><path d="M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z"></path></svg></span><input id="file-input-add-prompt" type="file" accept=".txt,.md" style="display:none"/></span><style data-emotion="css 1e2dcm1">.css-1e2dcm1{z-index:1500;pointer-events:none;}</style><style data-emotion="css okvapm">.css-okvapm{z-index:1500;pointer-events:none;}</style></label><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1r4sjx4" tabindex="0" type="button">Add Prompt</button></div></div><style data-emotion="css kge0eu">.css-kge0eu{width:100%;overflow-x:auto;}</style><div class="MuiTableContainer-root css-kge0eu"><style data-emotion="css 1od17fy">.css-1od17fy{display:table;width:100%;border-collapse:collapse;border-spacing:0;}.css-1od17fy caption{font-family:inherit;font-weight:400;font-size:0.875rem;line-height:1.43;padding:16px;color:rgba(0, 0, 0, 0.6);text-align:left;caption-side:bottom;}</style><table class="MuiTable-root css-1od17fy"><style data-emotion="css 1xnox0e">.css-1xnox0e{display:table-row-group;}</style><tbody class="MuiTableBody-root css-1xnox0e"><style data-emotion="css 1gqug66">.css-1gqug66{color:inherit;display:table-row;vertical-align:middle;outline:0;}.css-1gqug66.MuiTableRow-hover:hover{background-color:rgba(0, 0, 0, 0.04);}.css-1gqug66.Mui-selected{background-color:rgba(25, 118, 210, 0.08);}.css-1gqug66.Mui-selected:hover{background-color:rgba(25, 118, 210, 0.12);}</style><tr class="MuiTableRow-root css-1gqug66"><style data-emotion="css qzozz">.css-qzozz{font-family:inherit;font-weight:400;font-size:0.875rem;line-height:1.43;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgba(224, 224, 224, 1);text-align:center;padding:16px;color:rgba(0, 0, 0, 0.87);}</style><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-alignCenter MuiTableCell-sizeMedium css-qzozz" colSpan="2">No prompts added yet.</td></tr></tbody></table></div><style data-emotion="css 1k371a6">@media print{.css-1k371a6{position:absolute!important;}}</style></div><style data-emotion="css 1hnm6b6">.css-1hnm6b6{margin-top:48px;}</style><div class="MuiBox-root css-1hnm6b6"></div><div class="MuiStack-root css-1w57jtv"><h5 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Test Cases</h5><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1r4sjx4" tabindex="0" type="button">Add Test Case</button></div><div class="MuiTableContainer-root css-kge0eu"><table class="MuiTable-root css-1od17fy"><style data-emotion="css 1wbz3t9">.css-1wbz3t9{display:table-header-group;}</style><thead class="MuiTableHead-root css-1wbz3t9"><tr class="MuiTableRow-root MuiTableRow-head css-1gqug66"><style data-emotion="css 75le9z">.css-75le9z{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.5rem;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgba(224, 224, 224, 1);text-align:left;padding:16px;color:rgba(0, 0, 0, 0.87);}</style><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-75le9z" scope="col">Description</th><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-75le9z" scope="col">Assertions</th><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-75le9z" scope="col">Variables</th><style data-emotion="css qnurhq">.css-qnurhq{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.5rem;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgba(224, 224, 224, 1);text-align:right;padding:16px;color:rgba(0, 0, 0, 0.87);-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}</style><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-alignRight MuiTableCell-sizeMedium css-qnurhq" scope="col"></th></tr></thead><tbody class="MuiTableBody-root css-1xnox0e"><tr class="MuiTableRow-root css-1gqug66"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-alignCenter MuiTableCell-sizeMedium css-qzozz" colSpan="4">No test cases added yet.</td></tr></tbody></table></div><style data-emotion="css h8m1q6">.css-h8m1q6{margin-top:64px;}</style><div class="MuiBox-root css-h8m1q6"></div></div></div></div><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" async=""></script><script src="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" async=""></script><script src="/_next/static/chunks/596-07e4a23a5c6cdf04.js" async=""></script><script src="/_next/static/chunks/main-app-c9dc13756d166550.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/e388dd377baf25ec.css\",{\"as\":\"style\"}]\n0:\"$L5\"\n"])</script><script>self.__next_f.push([1,"6:HL[\"/_next/static/css/a35c840ac696f161.css\",{\"as\":\"style\"}]\n"])</script><script>self.__next_f.push([1,"7:I{\"id\":57948,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n9:I{\"id\":56628,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"\",\"async\":false}\na:I{\"id\":82152,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"185:sta"])</script><script>self.__next_f.push([1,"tic/chunks/app/layout-664a8d716d2d24b1.js\"],\"name\":\"PageShell\",\"async\":false}\nb:I{\"id\":47767,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":57920,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":44839,\"chunks\":[\"272:static"])</script><script>self.__next_f.push([1,"/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nf:I{\"id\":95302,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"858:static/chunks/858-ceb6fa22e614492b.js\",\"339:static/chunks/339-4fc8a80fa840e771.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"373:static/chunks/373-8a280796c0f2d1af.js\",\"413:static/chunks/app/setup/page-182018a3c6397345.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"5:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e388dd377baf25ec.css\",\"precedence\":\"next\"}]],[\"$\",\"$L7\",null,{\"buildId\":\"US6gOx8LHTX_Hzm9aYNrC\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/setup/\",\"initialTree\":[\"\",{\"children\":[\"setup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L8\",\"globalErrorComponent\":\"$9\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_979022\",\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"setup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Ld\",[\"$\",\"$Le\",null,{\"propsForComponent\":{\"params\":{}},\"Component\":\"$f\"}],null],\"segment\":\"__PAGE__\"},\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a35c840ac696f161.css\",\"precedence\":\"next\"}]]}],\"segment\":\"setup\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\nd:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e388dd377baf25ec.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a35c840ac696f161.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-6e474e42be502dd7.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-07e4a23a5c6cdf04.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-c9dc13756d166550.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_979022"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img src="/logo.svg" alt="Promptfoo logo"/> <span>promptfoo</span></div><a href="/setup/">New Eval</a><a href="/eval/">View Evals</a><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div><div><style data-emotion="css 19t2hy6">.css-19t2hy6{width:100%;margin-left:auto;box-sizing:border-box;margin-right:auto;display:block;padding-left:16px;padding-right:16px;margin-top:2rem;}@media (min-width:600px){.css-19t2hy6{padding-left:24px;padding-right:24px;}}@media (min-width:1200px){.css-19t2hy6{max-width:1200px;}}</style><div class="MuiContainer-root MuiContainer-maxWidthLg css-19t2hy6"><style data-emotion="css 1w57jtv">.css-1w57jtv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.css-1w57jtv>:not(style):not(style){margin:0;}.css-1w57jtv>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root css-1w57jtv"><style data-emotion="css jqhduh">.css-jqhduh{margin:0;font-family:inherit;font-weight:400;font-size:2.125rem;line-height:1.235;}</style><h4 class="MuiTypography-root MuiTypography-h4 css-jqhduh">Set up an evaluation</h4><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root css-jj2ztu"><style data-emotion="css 11kchfx">.css-11kchfx{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);}.css-11kchfx:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-11kchfx:hover{background-color:#1976d2;}}.css-11kchfx:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-11kchfx.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-11kchfx.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1r4sjx4">.css-1r4sjx4{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);}.css-1r4sjx4::-moz-focus-inner{border-style:none;}.css-1r4sjx4.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1r4sjx4{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1r4sjx4:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1r4sjx4:hover{background-color:#1976d2;}}.css-1r4sjx4:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1r4sjx4.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1r4sjx4.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1r4sjx4" tabindex="0" type="button">Run Evaluation</button><style data-emotion="css 1l5hj2g">.css-1l5hj2g{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:5px 15px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid rgba(25, 118, 210, 0.5);color:#1976d2;}.css-1l5hj2g:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(25, 118, 210, 0.04);border:1px solid #1976d2;}@media (hover: none){.css-1l5hj2g:hover{background-color:transparent;}}.css-1l5hj2g.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1avs8v6">.css-1avs8v6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:5px 15px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid rgba(25, 118, 210, 0.5);color:#1976d2;}.css-1avs8v6::-moz-focus-inner{border-style:none;}.css-1avs8v6.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1avs8v6{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1avs8v6:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(25, 118, 210, 0.04);border:1px solid #1976d2;}@media (hover: none){.css-1avs8v6:hover{background-color:transparent;}}.css-1avs8v6.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium css-1avs8v6" tabindex="0" type="button">Reset</button></div></div><style data-emotion="css h5fkc8">.css-h5fkc8{margin-top:32px;}</style><div class="MuiBox-root css-h5fkc8"></div><style data-emotion="css 1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style><div class="MuiBox-root css-1yuhvjn"><style data-emotion="css 1nguorl">.css-1nguorl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.css-1nguorl>:not(style):not(style){margin:0;}.css-1nguorl>:not(style)~:not(style){margin-top:16px;}</style><div class="MuiStack-root css-1nguorl"><style data-emotion="css 1d79rw6">.css-1d79rw6{margin:0;font-family:inherit;font-weight:400;font-size:1.5rem;line-height:1.334;}</style><h5 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Providers</h5><div class="MuiBox-root css-1yuhvjn"><style data-emotion="css 18nc3u2">.css-18nc3u2.Mui-focused .MuiAutocomplete-clearIndicator{visibility:visible;}@media (pointer: fine){.css-18nc3u2:hover .MuiAutocomplete-clearIndicator{visibility:visible;}}.css-18nc3u2 .MuiAutocomplete-tag{margin:3px;max-width:calc(100% - 6px);}.css-18nc3u2 .MuiAutocomplete-inputRoot{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.MuiAutocomplete-hasPopupIcon.css-18nc3u2 .MuiAutocomplete-inputRoot,.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiAutocomplete-inputRoot{padding-right:30px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiAutocomplete-inputRoot{padding-right:56px;}.css-18nc3u2 .MuiAutocomplete-inputRoot .MuiAutocomplete-input{width:0;min-width:30px;}.css-18nc3u2 .MuiInput-root{padding-bottom:1px;}.css-18nc3u2 .MuiInput-root .MuiInput-input{padding:4px 4px 4px 0px;}.css-18nc3u2 .MuiInput-root.MuiInputBase-sizeSmall .MuiInput-input{padding:2px 4px 3px 0;}.css-18nc3u2 .MuiOutlinedInput-root{padding:9px;}.MuiAutocomplete-hasPopupIcon.css-18nc3u2 .MuiOutlinedInput-root,.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiOutlinedInput-root{padding-right:39px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiOutlinedInput-root{padding-right:65px;}.css-18nc3u2 .MuiOutlinedInput-root .MuiAutocomplete-input{padding:7.5px 4px 7.5px 5px;}.css-18nc3u2 .MuiOutlinedInput-root .MuiAutocomplete-endAdornment{right:9px;}.css-18nc3u2 .MuiOutlinedInput-root.MuiInputBase-sizeSmall{padding-top:6px;padding-bottom:6px;padding-left:6px;}.css-18nc3u2 .MuiOutlinedInput-root.MuiInputBase-sizeSmall .MuiAutocomplete-input{padding:2.5px 4px 2.5px 8px;}.css-18nc3u2 .MuiFilledInput-root{padding-top:19px;padding-left:8px;}.MuiAutocomplete-hasPopupIcon.css-18nc3u2 .MuiFilledInput-root,.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiFilledInput-root{padding-right:39px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-18nc3u2 .MuiFilledInput-root{padding-right:65px;}.css-18nc3u2 .MuiFilledInput-root .MuiFilledInput-input{padding:7px 4px;}.css-18nc3u2 .MuiFilledInput-root .MuiAutocomplete-endAdornment{right:9px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-sizeSmall{padding-bottom:1px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-sizeSmall .MuiFilledInput-input{padding:2.5px 4px;}.css-18nc3u2 .MuiInputBase-hiddenLabel{padding-top:8px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-hiddenLabel{padding-top:0;padding-bottom:0;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-hiddenLabel .MuiAutocomplete-input{padding-top:16px;padding-bottom:17px;}.css-18nc3u2 .MuiFilledInput-root.MuiInputBase-hiddenLabel.MuiInputBase-sizeSmall .MuiAutocomplete-input{padding-top:8px;padding-bottom:9px;}.css-18nc3u2 .MuiAutocomplete-input{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;text-overflow:ellipsis;opacity:1;}</style><div class="MuiAutocomplete-root css-18nc3u2"><style data-emotion="css feqhe6">.css-feqhe6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;min-width:0;padding:0;margin:0;border:0;vertical-align:top;width:100%;}</style><div class="MuiFormControl-root MuiFormControl-fullWidth MuiTextField-root css-feqhe6"><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><style data-emotion="css 18bxsfn">.css-18bxsfn{font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;color:rgba(0, 0, 0, 0.87);box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;border-radius:4px;}.css-18bxsfn.Mui-disabled{color:rgba(0, 0, 0, 0.38);cursor:default;}.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.87);}@media (hover: none){.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-18bxsfn.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#1976d2;border-width:2px;}.css-18bxsfn.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#d32f2f;}.css-18bxsfn.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiAutocomplete-inputRoot css-18bxsfn"><style data-emotion="css 1x5jdmq">.css-1x5jdmq{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding:16.5px 14px;}.css-1x5jdmq::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:focus{outline:0;}.css-1x5jdmq:invalid{box-shadow:none;}.css-1x5jdmq::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-ms-input-placeholder{opacity:0.42;}.css-1x5jdmq.Mui-disabled{opacity:1;-webkit-text-fill-color:rgba(0, 0, 0, 0.38);}.css-1x5jdmq:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-1x5jdmq:-webkit-autofill{border-radius:inherit;}</style><input aria-invalid="false" autoComplete="off" id=":R3ahqmmla:" placeholder="Select LLM providers" type="text" class="MuiInputBase-input MuiOutlinedInput-input MuiAutocomplete-input MuiAutocomplete-inputFocused css-1x5jdmq" aria-autocomplete="list" aria-expanded="false" autoCapitalize="none" spellCheck="false" role="combobox" value=""/><style data-emotion="css 19w1uun">.css-19w1uun{border-color:rgba(0, 0, 0, 0.23);}</style><style data-emotion="css igs3ac">.css-igs3ac{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);}</style><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><style data-emotion="css ihdtdm">.css-ihdtdm{float:unset;width:auto;overflow:hidden;padding:0;line-height:11px;-webkit-transition:width 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:width 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;}</style><legend class="css-ihdtdm"><span class="notranslate">​</span></legend></fieldset></div></div></div></div></div></div><div class="MuiBox-root css-h5fkc8"></div><div><div class="MuiStack-root css-1w57jtv"><h5 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Prompts</h5><div><label for="file-input-add-prompt"><span aria-label="Upload prompt from file" class=""><style data-emotion="css 1wf493t">.css-1wf493t{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1wf493t:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1wf493t:hover{background-color:transparent;}}.css-1wf493t.Mui-disabled{background-color:transparent;color:rgba(0, 0, 0, 0.26);}</style><style data-emotion="css 1yxmbwk">.css-1yxmbwk{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1yxmbwk::-moz-focus-inner{border-style:none;}.css-1yxmbwk.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1yxmbwk{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1yxmbwk:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1yxmbwk:hover{background-color:transparent;}}.css-1yxmbwk.Mui-disabled{background-color:transparent;color:rgba(0, 0, 0, 0.26);}</style><span class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1yxmbwk" tabindex="0" role="button"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="PublishIcon"><path d="M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z"></path></svg></span><input id="file-input-add-prompt" type="file" accept=".txt,.md" style="display:none"/></span><style data-emotion="css 1e2dcm1">.css-1e2dcm1{z-index:1500;pointer-events:none;}</style><style data-emotion="css okvapm">.css-okvapm{z-index:1500;pointer-events:none;}</style></label><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1r4sjx4" tabindex="0" type="button">Add Prompt</button></div></div><style data-emotion="css kge0eu">.css-kge0eu{width:100%;overflow-x:auto;}</style><div class="MuiTableContainer-root css-kge0eu"><style data-emotion="css 1od17fy">.css-1od17fy{display:table;width:100%;border-collapse:collapse;border-spacing:0;}.css-1od17fy caption{font-family:inherit;font-weight:400;font-size:0.875rem;line-height:1.43;padding:16px;color:rgba(0, 0, 0, 0.6);text-align:left;caption-side:bottom;}</style><table class="MuiTable-root css-1od17fy"><style data-emotion="css 1xnox0e">.css-1xnox0e{display:table-row-group;}</style><tbody class="MuiTableBody-root css-1xnox0e"><style data-emotion="css 1gqug66">.css-1gqug66{color:inherit;display:table-row;vertical-align:middle;outline:0;}.css-1gqug66.MuiTableRow-hover:hover{background-color:rgba(0, 0, 0, 0.04);}.css-1gqug66.Mui-selected{background-color:rgba(25, 118, 210, 0.08);}.css-1gqug66.Mui-selected:hover{background-color:rgba(25, 118, 210, 0.12);}</style><tr class="MuiTableRow-root css-1gqug66"><style data-emotion="css qzozz">.css-qzozz{font-family:inherit;font-weight:400;font-size:0.875rem;line-height:1.43;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgba(224, 224, 224, 1);text-align:center;padding:16px;color:rgba(0, 0, 0, 0.87);}</style><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-alignCenter MuiTableCell-sizeMedium css-qzozz" colSpan="2">No prompts added yet.</td></tr></tbody></table></div><style data-emotion="css 1k371a6">@media print{.css-1k371a6{position:absolute!important;}}</style></div><style data-emotion="css 1hnm6b6">.css-1hnm6b6{margin-top:48px;}</style><div class="MuiBox-root css-1hnm6b6"></div><div class="MuiStack-root css-1w57jtv"><h5 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Test Cases</h5><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1r4sjx4" tabindex="0" type="button">Add Test Case</button></div><div class="MuiTableContainer-root css-kge0eu"><table class="MuiTable-root css-1od17fy"><style data-emotion="css 1wbz3t9">.css-1wbz3t9{display:table-header-group;}</style><thead class="MuiTableHead-root css-1wbz3t9"><tr class="MuiTableRow-root MuiTableRow-head css-1gqug66"><style data-emotion="css 75le9z">.css-75le9z{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.5rem;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgba(224, 224, 224, 1);text-align:left;padding:16px;color:rgba(0, 0, 0, 0.87);}</style><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-75le9z" scope="col">Description</th><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-75le9z" scope="col">Assertions</th><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-75le9z" scope="col">Variables</th><style data-emotion="css qnurhq">.css-qnurhq{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.5rem;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgba(224, 224, 224, 1);text-align:right;padding:16px;color:rgba(0, 0, 0, 0.87);-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}</style><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-alignRight MuiTableCell-sizeMedium css-qnurhq" scope="col"></th></tr></thead><tbody class="MuiTableBody-root css-1xnox0e"><tr class="MuiTableRow-root css-1gqug66"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-alignCenter MuiTableCell-sizeMedium css-qzozz" colSpan="4">No test cases added yet.</td></tr></tbody></table></div><style data-emotion="css h8m1q6">.css-h8m1q6{margin-top:64px;}</style><div class="MuiBox-root css-h8m1q6"></div></div></div></div><script src="/_next/static/chunks/webpack-6e474e42be502dd7.js" async=""></script><script src="/_next/static/chunks/fd9d1056-ac777be631f5a9e9.js" async=""></script><script src="/_next/static/chunks/596-07e4a23a5c6cdf04.js" async=""></script><script src="/_next/static/chunks/main-app-c9dc13756d166550.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/e388dd377baf25ec.css\",{\"as\":\"style\"}]\n0:\"$L5\"\n"])</script><script>self.__next_f.push([1,"6:HL[\"/_next/static/css/a35c840ac696f161.css\",{\"as\":\"style\"}]\n"])</script><script>self.__next_f.push([1,"7:I{\"id\":57948,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\n9:I{\"id\":56628,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"\",\"async\":false}\na:I{\"id\":82152,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"185:sta"])</script><script>self.__next_f.push([1,"tic/chunks/app/layout-664a8d716d2d24b1.js\"],\"name\":\"PageShell\",\"async\":false}\nb:I{\"id\":47767,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":57920,\"chunks\":[\"272:static/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":44839,\"chunks\":[\"272:static"])</script><script>self.__next_f.push([1,"/chunks/webpack-6e474e42be502dd7.js\",\"971:static/chunks/fd9d1056-ac777be631f5a9e9.js\",\"596:static/chunks/596-07e4a23a5c6cdf04.js\"],\"name\":\"default\",\"async\":false}\nf:I{\"id\":95302,\"chunks\":[\"658:static/chunks/658-a62210d07dc4dcb6.js\",\"858:static/chunks/858-ceb6fa22e614492b.js\",\"339:static/chunks/339-4fc8a80fa840e771.js\",\"583:static/chunks/583-125d32af505e9bc4.js\",\"373:static/chunks/373-8a280796c0f2d1af.js\",\"413:static/chunks/app/setup/page-182018a3c6397345.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"5:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e388dd377baf25ec.css\",\"precedence\":\"next\"}]],[\"$\",\"$L7\",null,{\"buildId\":\"BEyLhF7rmCpG4uhyEM3Pd\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/setup/\",\"initialTree\":[\"\",{\"children\":[\"setup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L8\",\"globalErrorComponent\":\"$9\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_979022\",\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"setup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Ld\",[\"$\",\"$Le\",null,{\"propsForComponent\":{\"params\":{}},\"Component\":\"$f\"}],null],\"segment\":\"__PAGE__\"},\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a35c840ac696f161.css\",\"precedence\":\"next\"}]]}],\"segment\":\"setup\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\nd:null\n"])</script></body></html>
@@ -2,7 +2,7 @@
2
2
  2:HL["/_next/static/media/627622453ef56b0d-s.p.woff2",{"as":"font","type":"font/woff2"}]
3
3
  3:HL["/_next/static/media/934c4b7cb736f2a3-s.p.woff2",{"as":"font","type":"font/woff2"}]
4
4
  4:HL["/_next/static/css/e388dd377baf25ec.css",{"as":"style"}]
5
- 0:["US6gOx8LHTX_Hzm9aYNrC",[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L5",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e388dd377baf25ec.css","precedence":"next"}]],"$L6"]]]]
5
+ 0:["BEyLhF7rmCpG4uhyEM3Pd",[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L5",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e388dd377baf25ec.css","precedence":"next"}]],"$L6"]]]]
6
6
  7:HL["/_next/static/css/a35c840ac696f161.css",{"as":"style"}]
7
7
  8:I{"id":82152,"chunks":["658:static/chunks/658-a62210d07dc4dcb6.js","583:static/chunks/583-125d32af505e9bc4.js","185:static/chunks/app/layout-664a8d716d2d24b1.js"],"name":"PageShell","async":false}
8
8
  9:I{"id":47767,"chunks":["272:static/chunks/webpack-6e474e42be502dd7.js","971:static/chunks/fd9d1056-ac777be631f5a9e9.js","596:static/chunks/596-07e4a23a5c6cdf04.js"],"name":"default","async":false}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "promptfoo",
3
3
  "description": "LLM eval & testing toolkit",
4
4
  "author": "Ian Webster",
5
- "version": "0.20.0",
5
+ "version": "0.20.1",
6
6
  "license": "MIT",
7
7
  "type": "commonjs",
8
8
  "main": "dist/src/index.js",
@@ -123,6 +123,9 @@ function HistogramChart({ table }: ChartProps) {
123
123
  const labelIndex = context.dataIndex;
124
124
  const lowerBound = bins[labelIndex];
125
125
  const upperBound = bins[labelIndex + 1];
126
+ if (!upperBound) {
127
+ return `${lowerBound} <= score`;
128
+ }
126
129
  return `${lowerBound} <= score < ${upperBound}`;
127
130
  },
128
131
  },
@@ -325,7 +328,13 @@ export default function ResultsCharts({ columnVisibility }: ResultsChartsProps)
325
328
  const [showCharts, setShowCharts] = useState(true);
326
329
 
327
330
  const { table } = useStore();
328
- if (!table || !showCharts) {
331
+ if (!table || !showCharts || table.head.prompts.length < 2) {
332
+ return null;
333
+ }
334
+
335
+ const scores = table.body.flatMap((row) => row.outputs.map((output) => output.score));
336
+ if (new Set(scores).size === 1) {
337
+ // All scores are the same, charts not useful.
329
338
  return null;
330
339
  }
331
340
 
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[891],{26891:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return em}});var l=s(57437),n=s(2265),a=s(6882),r=s(63388),i=s(22130),o=s(35551),c=s(96507),d=s(27760),u=s(84081),h=s(40182),p=s(50819),x=s(38212),m=s(65507),j=s(90923),g=s(75156),f=s(33),b=s(13457),y=s(78276),v=s(43226),Z=s(72467),C=s(49605),S=s(39190),w=s(96704),k=s(89394),R=s(91797),P=s(26337),N=s(41101),L=s(29872),D=s(52653),M=s(33533),F=s(94740),V=s(94660);let W=(0,V.Ue)(e=>({table:null,setTable:t=>e(()=>({table:t})),config:null,setConfig:t=>e(()=>({config:t}))})),T=["#fd7f6f","#7eb0d5","#b2e061","#bd7ebe","#ffb55a","#ffee65","#beb9db","#fdcce5","#8bd3c7"];function I(e){let{table:t}=e,s=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!s.current)return;a.current&&a.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),l=Math.min(...e),n=(Math.ceil(Math.max(...e))-Math.floor(l))/10,r=Array.from({length:11},(e,t)=>parseFloat((Math.floor(l)+t*n).toFixed(2))),i=t.head.prompts.map((e,s)=>{let l=t.body.flatMap(e=>e.outputs[s].score),a=r.map(e=>l.filter(t=>t>=e&&t<e+n).length);return{label:"Prompt ".concat(s+1),data:a,backgroundColor:T[s%T.length]}});a.current=new w.kL(s.current,{type:"bar",data:{labels:r,datasets:i},options:{animation:!1,plugins:{title:{display:!0,text:"Score Distribution"},legend:{display:!1},tooltip:{callbacks:{title:function(e){let t=e[0].datasetIndex;return"Prompt ".concat(t+1)},label:function(e){let t=e.dataIndex,s=r[t],l=r[t+1];return"".concat(s," <= score < ").concat(l)}}}}}})},[t]),(0,l.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function O(e){let{table:t}=e,s=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!s.current)return;a.current&&a.current.destroy();let e=t.head.prompts.map((e,s)=>{let l=t.body.flatMap(e=>e.outputs[s]),n=l.filter(e=>e.pass).length,a=n/l.length*100;return{label:"Prompt ".concat(s+1),data:[a],backgroundColor:T[s%T.length]}});a.current=new w.kL(s.current,{type:"bar",data:{labels:["Pass Rate (%)"],datasets:e},options:{animation:!1,plugins:{title:{display:!0,text:"Pass rate"},legend:{display:!0}}}})},[t]),(0,l.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function z(e){let{table:t}=e,s=(0,n.useRef)(null),a=(0,n.useRef)(null),[r,i]=(0,n.useState)(0),[o,c]=(0,n.useState)(1),[d,h]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!s.current)return;a.current&&a.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),l=Math.min(...e),n=Math.max(...e),i=t.body.map(e=>{let t=e.outputs[r].score,s=e.outputs[o].score;return{x:t,y:s,backgroundColor:s>t?"green":s<t?"red":"gray"}});a.current=new w.kL(s.current,{type:"scatter",data:{datasets:[{data:i,backgroundColor:i.map(e=>e.backgroundColor)},{type:"line",data:[{x:l,y:l},{x:n,y:n}],borderColor:"gray",borderWidth:1,borderDash:[5,5],pointRadius:0}]},options:{animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let s=t.body[e.dataIndex],l=s.outputs[0].text,n=s.outputs[1].text;return l.length>30&&(l=l.substring(0,30)+"..."),n.length>30&&(n=n.substring(0,30)+"..."),"Output 1: ".concat(l,"\nOutput 2: ").concat(n)}}}},scales:{x:{title:{display:!0,text:"Prompt ".concat(r+1," Score")}},y:{title:{display:!0,text:"Prompt ".concat(o+1," Score")}}}}})},[t,r,o]),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(k.Z,{open:d,onClose:()=>h(!1),children:[(0,l.jsx)(R.Z,{children:"Compare prompt outputs"}),(0,l.jsxs)(P.Z,{children:[(0,l.jsx)(u.Z,{sx:{m:1,minWidth:120},children:(0,l.jsx)(g.Z,{value:r,onChange:e=>i(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,l.jsxs)(m.Z,{value:t,children:["Prompt ",t+1]},t))})}),(0,l.jsx)(u.Z,{sx:{m:1,minWidth:120},children:(0,l.jsx)(g.Z,{value:o,onChange:e=>c(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,l.jsxs)(m.Z,{value:t,children:["Prompt ",t+1]},t))})})]})]}),(0,l.jsx)("canvas",{ref:s,style:{maxHeight:"300px",cursor:"pointer"},onClick:()=>h(!0)})]})}function E(e){let{columnVisibility:t}=e,s=(0,N.Z)();w.kL.defaults.color="dark"===s.palette.mode?"#aaa":"#666";let[a,r]=(0,n.useState)(!0),{table:i}=W();return i&&a?(0,l.jsx)(F.SV,{fallback:null,children:(0,l.jsxs)(L.Z,{style:{position:"relative",padding:s.spacing(3)},children:[(0,l.jsx)(D.Z,{style:{position:"absolute",right:0,top:0},onClick:()=>r(!1),children:(0,l.jsx)(M.Z,{})}),(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,l.jsx)("div",{style:{width:"33%"},children:(0,l.jsx)(O,{table:i})}),(0,l.jsx)("div",{style:{width:"33%"},children:(0,l.jsx)(I,{table:i})}),(0,l.jsx)("div",{style:{width:"33%"},children:(0,l.jsx)(z,{table:i})})]})]})}):null}w.kL.register(w.vn,w.ST,w.ho,w.uw,w.f$,w.ZL,w.jn,w.od,w.u,w.wL);var H=s(19116);s(85777);var _=s(7660),U=s(3216),A=s(42834),J=s(95446),B=s(39329),G=s(54719),Y=s(73701),q=s(39279),$=s(30666),K=s(15795),Q=s(66988),X=s(98489);function ee(e){let{gradingResults:t}=e;return t?(0,l.jsxs)(c.Z,{mt:2,children:[(0,l.jsx)(v.Z,{variant:"subtitle1",children:"Assertions"}),(0,l.jsx)(K.Z,{children:(0,l.jsxs)(Y.Z,{children:[(0,l.jsx)(Q.Z,{children:(0,l.jsxs)(X.Z,{children:[(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Pass"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Score"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Type"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Value"}),(0,l.jsx)($.Z,{style:{fontWeight:"bold"},children:"Reason"})]})}),(0,l.jsx)(q.Z,{children:t.map((e,t)=>{var s,n;return(0,l.jsxs)(X.Z,{children:[(0,l.jsx)($.Z,{children:e.pass?"✅":"❌"}),(0,l.jsx)($.Z,{children:e.score}),(0,l.jsx)($.Z,{children:(null===(s=e.assertion)||void 0===s?void 0:s.type)||""}),(0,l.jsx)($.Z,{children:(null===(n=e.assertion)||void 0===n?void 0:n.value)?String(e.assertion.value):"-"}),(0,l.jsx)($.Z,{children:e.reason})]},t)})})]})})]}):null}function et(e){let{open:t,onClose:s,prompt:a,output:r,gradingResults:i}=e,[d,u]=(0,n.useState)(!1);(0,n.useEffect)(()=>{u(!1)},[a]);let h=async e=>{await navigator.clipboard.writeText(e),u(!0)};return(0,l.jsxs)(k.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"lg",children:[(0,l.jsx)(R.Z,{children:"Details"}),(0,l.jsxs)(P.Z,{children:[(0,l.jsxs)(c.Z,{mb:2,children:[(0,l.jsx)(v.Z,{variant:"subtitle1",style:{marginBottom:"1rem"},children:"Prompt"}),(0,l.jsx)(J.u,{readOnly:!0,value:a,style:{width:"100%",padding:"0.75rem"},maxRows:20}),(0,l.jsx)(D.Z,{onClick:()=>h(a),style:{position:"absolute",right:"10px",top:"10px"},children:d?(0,l.jsx)(G.Z,{}):(0,l.jsx)(B.Z,{})})]}),r&&(0,l.jsxs)(c.Z,{my:2,children:[(0,l.jsx)(v.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Output"}),(0,l.jsx)(J.u,{readOnly:!0,maxRows:20,value:r,style:{width:"100%",padding:"0.75rem"}})]}),(0,l.jsx)(ee,{gradingResults:i})]}),(0,l.jsx)(A.Z,{children:(0,l.jsx)(o.Z,{onClick:s,children:"Close"})})]})}function es(e){return 0===e||1===e?"":"(".concat(e.toFixed(2),")")}function el(e){let{text:t,maxLength:s}=e,[a,r]=n.useState(!0),i="string"==typeof t?t:JSON.stringify(t);i=i.replace(/\n/g,"<br>");let o=()=>{r(!a)};return i.length<=s?(0,l.jsx)("span",{dangerouslySetInnerHTML:{__html:i}}):a?(0,l.jsxs)("span",{style:{cursor:"pointer"},onClick:o,children:[(0,l.jsx)("span",{dangerouslySetInnerHTML:{__html:i.substring(0,s)}})," ..."]}):(0,l.jsx)("span",{style:{cursor:"pointer"},onClick:o,children:(0,l.jsx)("span",{dangerouslySetInnerHTML:{__html:i}})})}function en(e){var t,s,a;let{output:r,maxTextLength:i,rowIndex:o,promptIndex:c,onRating:d,firstOutput:u,filterMode:h}=e,[p,x]=n.useState(!1),m="string"==typeof r.text?r.text:JSON.stringify(r.text),j=[];if(!r.pass&&m.includes("---")&&(m=(j=m.split("---")).slice(1).join("---")),"different"===h&&u){let e,t="string"==typeof u.text?u.text:JSON.stringify(u.text);t.includes("---")&&(t=t.split("---").slice(1).join("---"));try{JSON.parse(t),JSON.parse(m),e=(0,H.CT)(t,m)}catch(s){e=t.includes(". ")&&m.includes(". ")?(0,H.SY)(t,m):(0,H.NV)(t,m)}m=e.map(e=>e.added?"<ins>".concat(e.value,"</ins>"):e.removed?"<del>".concat(e.value,"</del>"):e.value).join("")}let g=e=>{d(o,c,e)};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"cell",children:[r.pass&&(0,l.jsxs)("div",{className:"status pass",children:["PASS ",(0,l.jsx)("span",{className:"score",children:es(r.score)})]}),!r.pass&&(0,l.jsxs)("div",{className:"status fail",children:["[FAIL",(0,l.jsx)("span",{className:"score",children:es(r.score)}),"] ",j[0]]})," ",(0,l.jsx)(el,{text:m,maxLength:i})]}),(0,l.jsx)("div",{className:"cell-detail",children:(null===(t=r.tokenUsage)||void 0===t?void 0:t.cached)?(0,l.jsxs)("span",{children:[r.tokenUsage.cached," tokens (cached)"]}):(0,l.jsxs)(l.Fragment,{children:[(null===(s=r.tokenUsage)||void 0===s?void 0:s.total)&&(0,l.jsxs)("span",{children:[r.tokenUsage.total," tokens"]})," |"," ",(0,l.jsxs)("span",{children:[r.latencyMs," ms"]})]})}),(0,l.jsxs)("div",{className:"cell-actions",children:[r.prompt&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"action",onClick:()=>{x(!0)},children:"\uD83D\uDD0E"}),(0,l.jsx)(et,{open:p,onClose:()=>{x(!1)},prompt:r.prompt,gradingResults:null===(a=r.gradingResult)||void 0===a?void 0:a.componentResults,output:m})]}),(0,l.jsx)("span",{className:"action",onClick:()=>g(!0),children:"\uD83D\uDC4D"}),(0,l.jsx)("span",{className:"action",onClick:()=>g(!1),children:"\uD83D\uDC4E"})]})]})}function ea(e){let{text:t,maxLength:s,smallText:a,expandedText:r}=e,[i,o]=n.useState(!1);return(0,l.jsxs)("div",{children:[(0,l.jsx)(el,{text:t,maxLength:s}),r&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"action",onClick:()=>{o(!0)},children:"\uD83D\uDD0E"}),(0,l.jsx)(et,{open:i,onClose:()=>{o(!1)},prompt:r})]}),(0,l.jsx)("div",{className:"smalltext",children:a})]})}function er(e){let{maxTextLength:t,columnVisibility:s,wordBreak:a,filterMode:r,failureFilter:o,onFailureFilterToggle:c}=e,{table:u,setTable:p}=W();(0,i.Z)(u,"Table should be defined");let{head:x,body:m}=u,j=x.prompts.map((e,t)=>m.reduce((e,s)=>e+(s.outputs[t].pass?1:0),0)),g=x.prompts.map((e,t)=>m.reduce((e,s)=>{var l,n;return e+((null===(n=s.outputs[t].gradingResult)||void 0===n?void 0:null===(l=n.componentResults)||void 0===l?void 0:l.length)||0)},0)),f=x.prompts.map((e,t)=>m.reduce((e,s)=>{var l;let n=null===(l=s.outputs[t].gradingResult)||void 0===l?void 0:l.componentResults;return e+(n?n.filter(e=>e.pass).length:0)},0)),b=(e,t,s)=>{let l=[...m],n={...l[e]},a=[...n.outputs];a[t].pass=s,a[t].score=s?1:0,n.outputs=a,l[e]=n,p({head:x,body:l})},y=j.reduce((e,t,s,l)=>t>l[e]?s:e,0),v=j[y],Z=(0,_.Cl)(),C=[Z.group({id:"vars",header:()=>(0,l.jsx)("span",{children:"Variables"}),columns:x.vars.map((e,s)=>Z.accessor(e=>e.vars[s],{id:"Variable ".concat(s+1),header:()=>(0,l.jsx)(ea,{smallText:"Variable ".concat(s+1),text:e,maxLength:t}),cell:e=>(0,l.jsx)(el,{text:e.getValue(),maxLength:t}),size:50}))}),Z.group({id:"prompts",header:()=>(0,l.jsx)("span",{children:"Outputs"}),columns:x.prompts.map((e,s)=>Z.accessor(e=>(function(e){if("string"==typeof e){let t=e.startsWith("[PASS]"),s=e;return e.startsWith("[PASS]")?s=s.slice(6):e.startsWith("[FAIL]")&&(s=s.slice(6)),{text:s,pass:t,score:t?1:0}}return e})(e.outputs[s]),{id:"Prompt ".concat(s+1),header:()=>{let n=(j[s]/m.length*100).toFixed(2),a=j[s]===v&&0!==v,i="Prompt ".concat(s+1),u=o[i]||!1;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(ea,{smallText:"Prompt ".concat(s+1),text:"string"==typeof e?e:e.display,expandedText:"string"==typeof e?void 0:e.raw,maxLength:t}),"failures"===r&&(0,l.jsx)(h.Z,{sx:{"& .MuiFormControlLabel-label":{fontSize:"0.75rem"}},control:(0,l.jsx)(d.Z,{checked:u,onChange:e=>c(i,e.target.checked)}),label:"Show failures"}),(0,l.jsxs)("div",{className:"summary ".concat(a?"highlight":""),children:["Passing: ",(0,l.jsxs)("strong",{children:[n,"%"]})," (",j[s],"/",m.length," cases",g[s]?(0,l.jsxs)("span",{children:[", ",f[s],"/",g[s]," asserts"]}):null,")"]})]})},cell:e=>(0,l.jsx)(en,{output:e.getValue(),maxTextLength:t,rowIndex:e.row.index,promptIndex:s,onRating:b,firstOutput:S[e.row.index].outputs[0],filterMode:r})}))})],S=n.useMemo(()=>"failures"===r?Object.values(o).every(e=>!e)?m:m.filter(e=>e.outputs.some((e,t)=>{let s=!e.pass;return o["Prompt ".concat(t+1)]&&s})):"different"===r?m.filter(e=>!e.outputs.every(t=>t.text===e.outputs[0].text)):m,[m,o,r]),w=(0,U.b7)({data:S,columns:C,columnResizeMode:"onChange",getCoreRowModel:(0,_.sC)(),state:{columnVisibility:s}});return(0,l.jsxs)("table",{style:{wordBreak:a},children:[(0,l.jsx)("thead",{children:w.getHeaderGroups().map(e=>(0,l.jsx)("tr",{className:"header",children:e.headers.map(e=>(0,l.jsxs)("th",{colSpan:e.colSpan,style:{width:e.getSize()},children:[e.isPlaceholder?null:(0,U.ie)(e.column.columnDef.header,e.getContext()),(0,l.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:"resizer ".concat(e.column.getIsResizing()?"isResizing":"")})]},e.id))},e.id))}),(0,l.jsx)("tbody",{children:w.getRowModel().rows.map((e,t)=>{let s=!1;return(0,l.jsx)("tr",{children:e.getVisibleCells().map(e=>{let n=e.column.id.startsWith("Variable"),a=!n&&!s;return a&&(s=!0),(0,l.jsx)("td",{style:{width:e.column.getSize()},className:"".concat(n?"variable":""," ").concat(0!==t||n?"":"first-prompt-row"," ").concat(a?"first-prompt-col":""),children:(0,U.ie)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)})})]})}s(2604);var ei=s(7175);function eo(e){let{open:t,onClose:a}=e,{config:r}=W(),i=n.useRef(null),[d,u]=n.useState(!1),[h,p]=n.useState("");n.useEffect(()=>{t&&(async()=>{let{default:e}=await s.e(339).then(s.bind(s,28339));p(e.dump(r))})()},[t,r]);let x=()=>{u(!1),a()};return(0,l.jsxs)(k.Z,{open:t,onClose:x,"aria-labelledby":"config-dialog-title",maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(R.Z,{id:"config-dialog-title",children:(0,l.jsxs)(c.Z,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,l.jsx)(v.Z,{variant:"h6",children:"Config"}),(0,l.jsx)(D.Z,{onClick:()=>{i.current&&(i.current.select(),document.execCommand("copy"),u(!0))},children:d?(0,l.jsx)(G.Z,{}):(0,l.jsx)(ei.Z,{})})]})}),(0,l.jsx)(P.Z,{children:(0,l.jsx)(v.Z,{variant:"body1",component:"div",children:(0,l.jsx)("textarea",{ref:i,readOnly:!0,value:h,style:{width:"100%",minHeight:"400px",fontFamily:"monospace",border:"1px solid #ccc"}})})}),(0,l.jsx)(A.Z,{children:(0,l.jsx)(o.Z,{onClick:x,color:"primary",children:"Close"})})]})}var ec=s(64173),ed=s(21975),eu=e=>{let{open:t,onClose:s,shareUrl:a}=e,r=(0,n.useRef)(null),[i,c]=(0,n.useState)(!1),d=()=>{s(),c(!1)};return(0,l.jsxs)(k.Z,{open:t,onClose:d,PaperProps:{style:{minWidth:"min(660px, 100%)"}},children:[(0,l.jsx)(R.Z,{children:"Your eval is ready to share"}),(0,l.jsxs)(P.Z,{children:[(0,l.jsx)(ed.Z,{inputRef:r,value:a,fullWidth:!0,InputProps:{readOnly:!0,endAdornment:(0,l.jsx)(D.Z,{onClick:()=>{r.current&&(r.current.select(),document.execCommand("copy"),c(!0))},children:i?(0,l.jsx)(G.Z,{}):(0,l.jsx)(ei.Z,{})})}}),(0,l.jsx)(ec.Z,{sx:{fontSize:"0.75rem"},children:"Shared URLs are deleted after 1 week."})]}),(0,l.jsx)(A.Z,{children:(0,l.jsx)(o.Z,{onClick:d,color:"primary",children:"Close"})})]})};let eh=(0,S.Z)(b.Z)(e=>{let{theme:t}=e;return{maxWidth:"100%",flexWrap:"wrap",[t.breakpoints.down("sm")]:{flexDirection:"column"}}});function ep(e){let{recentFiles:t,onRecentFileSelected:s}=e,{table:r,config:b}=W(),[S,w]=n.useState(250),[k,R]=n.useState({}),[P,N]=n.useState([]),[L,D]=n.useState({}),[M,F]=n.useState("all"),[V,T]=n.useState("break-word"),[I,O]=n.useState(!1),[z,H]=n.useState(""),[_,U]=n.useState(!1),A=async()=>{U(!0);try{let e=await fetch("https://api.promptfoo.dev/eval",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{version:1,results:{table:r},config:b}})}),{id:t}=await e.json(),s="https://app.promptfoo.dev/eval/".concat(t);H(s),O(!0)}catch(e){alert("Sorry, something went wrong.")}finally{U(!1)}},[J,B]=n.useState(!1);(0,i.Z)(r,"Table data must be loaded before rendering ResultsView");let{head:G}=r,Y=[...G.vars.map((e,t)=>({value:"Variable ".concat(t+1),label:"Variable ".concat(t+1),group:"Variables"})),...G.prompts.map((e,t)=>({value:"Prompt ".concat(t+1),label:"Prompt ".concat(t+1),group:"Prompts"}))];return n.useEffect(()=>{N([...G.vars.map((e,t)=>"Variable ".concat(t+1)),...G.prompts.map((e,t)=>"Prompt ".concat(t+1))])},[G]),(0,l.jsxs)("div",{style:{marginLeft:"1rem",marginRight:"1rem"},children:[(0,l.jsx)(c.Z,{py:"md",children:(0,l.jsxs)(eh,{direction:"row",spacing:4,alignItems:"center",children:[(0,l.jsx)(c.Z,{children:t&&t.length>0&&(0,l.jsxs)(u.Z,{sx:{m:1,minWidth:200},size:"small",children:[(0,l.jsx)(p.Z,{children:"View run"}),(0,l.jsx)(g.Z,{className:"recent-files",label:"Previous runs",defaultValue:t[0],onChange:e=>s(e.target.value),children:t.map(e=>(0,l.jsx)(m.Z,{value:e,children:function(e){let t=e.slice(5,e.length-5),s=t.split("T"),l=s[1].replace(/-/g,":"),n="".concat(s[0],"T").concat(l),a=new Date(n);return a.toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"})}(e)},e))},t.join(","))]})}),(0,l.jsx)(c.Z,{children:(0,l.jsxs)(u.Z,{sx:{m:1,minWidth:200},size:"small",children:[(0,l.jsx)(p.Z,{id:"visible-columns-label",children:"Show columns"}),(0,l.jsx)(g.Z,{labelId:"visible-columns-label",id:"visible-columns",multiple:!0,value:P,onChange:e=>{let{target:{value:t}}=e;N("string"==typeof t?t.split(","):t);let s=[...G.vars.map((e,t)=>"Variable ".concat(t+1)),...G.prompts.map((e,t)=>"Prompt ".concat(t+1))],l={};s.forEach(e=>{l[e]=("string"==typeof t?t.split(","):t).includes(e)}),R(l)},input:(0,l.jsx)(j.Z,{label:"Visible columns"}),renderValue:e=>e.join(", "),children:Y.map(e=>(0,l.jsxs)(m.Z,{dense:!0,value:e.value,children:[(0,l.jsx)(d.Z,{checked:P.indexOf(e.value)>-1}),(0,l.jsx)(x.Z,{primary:e.label})]},e.value))})]})}),(0,l.jsx)(c.Z,{children:(0,l.jsxs)(u.Z,{sx:{minWidth:180},size:"small",children:[(0,l.jsx)(p.Z,{id:"failure-filter-mode-label",children:"Filter"}),(0,l.jsxs)(g.Z,{labelId:"filter-mode-label",id:"filter-mode",value:M,onChange:e=>{let t=e.target.value;F(t);let s={};G.prompts.forEach((e,l)=>{s["Prompt ".concat(l+1)]="failures"===t}),D(s)},label:"Filter",children:[(0,l.jsx)(m.Z,{value:"all",children:"Show all results"}),(0,l.jsx)(m.Z,{value:"failures",children:"Show failures only"}),(0,l.jsx)(m.Z,{value:"different",children:"Show different only"})]})]})}),(0,l.jsxs)(c.Z,{children:[(0,l.jsxs)(v.Z,{mt:2,children:["Max text length: ",S]}),(0,l.jsx)(f.ZP,{min:25,max:1e3,value:S,onChange:(e,t)=>w(t)})]}),(0,l.jsx)(c.Z,{children:(0,l.jsx)(y.Z,{title:"Forcing line breaks makes it easier to adjust column widths to your liking",children:(0,l.jsx)(h.Z,{control:(0,l.jsx)(d.Z,{checked:"break-all"===V,onChange:e=>{T(e.target.checked?"break-all":"break-word")}}),label:"Force line breaks"})})}),(0,l.jsx)(c.Z,{flexGrow:1}),(0,l.jsx)(c.Z,{display:"flex",justifyContent:"flex-end",children:(0,l.jsxs)(eh,{direction:"row",spacing:2,children:[b&&(0,l.jsx)(y.Z,{title:"View config",children:(0,l.jsx)(o.Z,{color:"primary",onClick:()=>B(!0),startIcon:(0,l.jsx)(C.Z,{}),children:"Config"})}),(null==b?void 0:b.sharing)&&(0,l.jsx)(y.Z,{title:"Generate a unique URL that others can access",children:(0,l.jsx)(o.Z,{color:"primary",onClick:A,disabled:_,startIcon:_?(0,l.jsx)(a.Z,{size:16}):(0,l.jsx)(Z.Z,{}),children:"Share"})})]})})]})}),(0,l.jsx)(E,{columnVisibility:k}),(0,l.jsx)(er,{maxTextLength:S,columnVisibility:k,wordBreak:V,filterMode:M,failureFilter:L,onFailureFilterToggle:(e,t)=>{D(s=>({...s,[e]:t}))}}),(0,l.jsx)(eo,{open:J,onClose:()=>B(!1)}),(0,l.jsx)(eu,{open:I,onClose:()=>O(!1),shareUrl:z})]})}var ex=s(79050);function em(e){let{preloadedData:t}=e,{table:s,setTable:i,setConfig:o}=W(),[c,d]=n.useState(!1),[u,h]=n.useState([]),p=async()=>{if(!window.location.href.includes("localhost"))return;let e=await fetch("".concat(ex.C,"/results")),t=await e.json();h(t.data)},x=async e=>{let t=await fetch("".concat(ex.C,"/results/").concat(e)),s=await t.json();i(s.data.results.table),o(s.data.config)};return n.useEffect(()=>{let e=(0,r.io)(ex.C);if(t){var s;i(null===(s=t.data.results)||void 0===s?void 0:s.table),o(t.data.config),d(!0)}else e.on("init",e=>{console.log("Initialized socket connection",e),d(!0),i(e.results.table),o(e.config),p()}),e.on("update",e=>{console.log("Received data update",e),i(e.results.table),o(e.config),p()});return()=>{e.disconnect()}},[i,o,t]),c&&s?(0,l.jsx)(ep,{recentFiles:u,onRecentFileSelected:x}):(0,l.jsxs)("div",{className:"loading",children:[(0,l.jsx)("div",{children:(0,l.jsx)(a.Z,{size:22})}),(0,l.jsx)("div",{children:"Loading eval data"})]})}s(85038)},79050:function(e,t,s){"use strict";s.d(t,{C:function(){return l}});let l="http://localhost:15500"},85038:function(){},2604:function(){},85777:function(){}}]);