From 5b9bea02c3733a3c70aa4cd64e1c3d15e7b8bd24 Mon Sep 17 00:00:00 2001 From: Alexey Rybak Date: Mon, 22 Sep 2025 13:43:38 -0700 Subject: [PATCH] static files deprecation --- docs/_static/css/my_theme.css | 136 - docs/_static/js/detect_theme.js | 32 - docs/_static/js/horizontal_nav.js | 44 - docs/_static/js/keyboard_shortcuts.js | 14 - docs/_static/llama-stack-logo.png | Bin 71620 -> 0 bytes docs/_static/llama-stack-spec.html | 18124 ---------------- docs/_static/llama-stack-spec.yaml | 13450 ------------ docs/_static/llama-stack.png | Bin 200757 -> 0 bytes .../read_time_comparison_sqlite-vec-faiss.png | Bin 34038 -> 0 bytes ...write_time_comparison_sqlite-vec-faiss.png | Bin 37760 -> 0 bytes .../write_time_sequence_sqlite-vec-faiss.png | Bin 56902 -> 0 bytes docs/_static/remote_or_local.gif | Bin 209060 -> 0 bytes docs/_static/safety_system.webp | Bin 32068 -> 0 bytes 13 files changed, 31800 deletions(-) delete mode 100644 docs/_static/css/my_theme.css delete mode 100644 docs/_static/js/detect_theme.js delete mode 100644 docs/_static/js/horizontal_nav.js delete mode 100644 docs/_static/js/keyboard_shortcuts.js delete mode 100644 docs/_static/llama-stack-logo.png delete mode 100644 docs/_static/llama-stack-spec.html delete mode 100644 docs/_static/llama-stack-spec.yaml delete mode 100644 docs/_static/llama-stack.png delete mode 100644 docs/_static/providers/vector_io/read_time_comparison_sqlite-vec-faiss.png delete mode 100644 docs/_static/providers/vector_io/write_time_comparison_sqlite-vec-faiss.png delete mode 100644 docs/_static/providers/vector_io/write_time_sequence_sqlite-vec-faiss.png delete mode 100644 docs/_static/remote_or_local.gif delete mode 100644 docs/_static/safety_system.webp diff --git a/docs/_static/css/my_theme.css b/docs/_static/css/my_theme.css deleted file mode 100644 index 7dcd97c9b..000000000 --- a/docs/_static/css/my_theme.css +++ /dev/null @@ -1,136 +0,0 @@ -@import url("theme.css"); - -/* Horizontal Navigation Bar */ -.horizontal-nav { - background-color: #ffffff; - border-bottom: 1px solid #e5e5e5; - padding: 0; - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1050; - height: 50px; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); -} - -[data-theme="dark"] .horizontal-nav { - background-color: #1a1a1a; - border-bottom: 1px solid #333; -} - -.horizontal-nav .nav-container { - max-width: 1200px; - margin: 0 auto; - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 20px; - height: 100%; -} - -.horizontal-nav .nav-brand { - font-size: 18px; - font-weight: 600; - color: #333; - text-decoration: none; -} - -[data-theme="dark"] .horizontal-nav .nav-brand { - color: #fff; -} - -.horizontal-nav .nav-links { - display: flex; - align-items: center; - gap: 30px; - list-style: none; - margin: 0; - padding: 0; -} - -.horizontal-nav .nav-links a { - color: #666; - text-decoration: none; - font-size: 14px; - font-weight: 500; - padding: 8px 12px; - border-radius: 6px; - transition: all 0.2s ease; -} - -.horizontal-nav .nav-links a:hover, -.horizontal-nav .nav-links a.active { - color: #333; - background-color: #f5f5f5; -} - -.horizontal-nav .nav-links a.active { - font-weight: 600; -} - -[data-theme="dark"] .horizontal-nav .nav-links a { - color: #ccc; -} - -[data-theme="dark"] .horizontal-nav .nav-links a:hover, -[data-theme="dark"] .horizontal-nav .nav-links a.active { - color: #fff; - background-color: #333; -} - -.horizontal-nav .nav-links .github-link { - display: flex; - align-items: center; - gap: 6px; -} - -.horizontal-nav .nav-links .github-icon { - width: 16px; - height: 16px; - fill: currentColor; -} - -/* Adjust main content to account for fixed nav */ -.wy-nav-side { - top: 50px; - height: calc(100vh - 50px); -} - -.wy-nav-content-wrap { - margin-top: 50px; -} - -.wy-nav-content { - max-width: 90%; -} - -.wy-nav-side { - /* background: linear-gradient(45deg, #2980B9, #16A085); */ - background: linear-gradient(90deg, #332735, #1b263c); -} - -.wy-side-nav-search { - background-color: transparent !important; -} - -.hide-title h1 { - display: none; -} - -h2, h3, h4 { - font-weight: normal; -} -html[data-theme="dark"] .rst-content div[class^="highlight"] { - background-color: #0b0b0b; -} -pre { - white-space: pre-wrap !important; - word-break: break-all; -} - -[data-theme="dark"] .mermaid { - background-color: #f4f4f6 !important; - border-radius: 6px; - padding: 0.5em; - } diff --git a/docs/_static/js/detect_theme.js b/docs/_static/js/detect_theme.js deleted file mode 100644 index 712565ef7..000000000 --- a/docs/_static/js/detect_theme.js +++ /dev/null @@ -1,32 +0,0 @@ -document.addEventListener("DOMContentLoaded", function () { - const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; - const htmlElement = document.documentElement; - - // Check if theme is saved in localStorage - const savedTheme = localStorage.getItem("sphinx-rtd-theme"); - - if (savedTheme) { - // Use the saved theme preference - htmlElement.setAttribute("data-theme", savedTheme); - document.body.classList.toggle("dark", savedTheme === "dark"); - } else { - // Fall back to system preference - const theme = prefersDark ? "dark" : "light"; - htmlElement.setAttribute("data-theme", theme); - document.body.classList.toggle("dark", theme === "dark"); - // Save initial preference - localStorage.setItem("sphinx-rtd-theme", theme); - } - - // Listen for theme changes from the existing toggle - const observer = new MutationObserver(function(mutations) { - mutations.forEach(function(mutation) { - if (mutation.attributeName === "data-theme") { - const currentTheme = htmlElement.getAttribute("data-theme"); - localStorage.setItem("sphinx-rtd-theme", currentTheme); - } - }); - }); - - observer.observe(htmlElement, { attributes: true }); -}); diff --git a/docs/_static/js/horizontal_nav.js b/docs/_static/js/horizontal_nav.js deleted file mode 100644 index c2384f9d5..000000000 --- a/docs/_static/js/horizontal_nav.js +++ /dev/null @@ -1,44 +0,0 @@ -// Horizontal Navigation Bar for Llama Stack Documentation -document.addEventListener('DOMContentLoaded', function() { - // Create the horizontal navigation HTML - const navHTML = ` - - `; - - // Insert the navigation at the beginning of the body - document.body.insertAdjacentHTML('afterbegin', navHTML); - - // Update navigation links based on current page - updateActiveNav(); -}); - -function updateActiveNav() { - const currentPath = window.location.pathname; - const navLinks = document.querySelectorAll('.horizontal-nav .nav-links a'); - - navLinks.forEach(link => { - // Remove any existing active classes - link.classList.remove('active'); - - // Add active class based on current path - if (currentPath === '/' && link.getAttribute('href') === '/') { - link.classList.add('active'); - } else if (currentPath.includes('/references/api_reference/') && link.getAttribute('href').includes('api_reference')) { - link.classList.add('active'); - } - }); -} diff --git a/docs/_static/js/keyboard_shortcuts.js b/docs/_static/js/keyboard_shortcuts.js deleted file mode 100644 index 81d0b7c65..000000000 --- a/docs/_static/js/keyboard_shortcuts.js +++ /dev/null @@ -1,14 +0,0 @@ -document.addEventListener('keydown', function(event) { - // command+K or ctrl+K - if ((event.metaKey || event.ctrlKey) && event.key === 'k') { - event.preventDefault(); - document.querySelector('.search-input, .search-field, input[name="q"]').focus(); - } - - // forward slash - if (event.key === '/' && - !event.target.matches('input, textarea, select')) { - event.preventDefault(); - document.querySelector('.search-input, .search-field, input[name="q"]').focus(); - } -}); diff --git a/docs/_static/llama-stack-logo.png b/docs/_static/llama-stack-logo.png deleted file mode 100644 index 1899a0fc7f4a814f358e54ed3539fc29c681216b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71620 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

#9!>tOniSDP*0sPwR~6a@p&@1 zbOzV^ol@)^@AZ3mCwOK&j`J~D?SOdaM-OO${_myyxvGs= z(H%|l`Hh6mSN0$$#H_=(-B`HYunTIk{-+?R_{p+_JseZ^MfDc+oH?;()9VSeaA^#-o6e`O_iL$JFV zwc!I?L?q1QPI!qVzA3k!xGl1f^m~V~Z!R|$omETE+GAU( zl|I`&%O;gmGbeAWUgLY`;PPyz$+eeH@up6B887AA{HU-0zzN2{wHqWp@VHr?Er*m^ z9=LDsPrQLk{Rai1SR;!Y6t;=eU3zzB4-+wPuCS$CgS>xmBLq;5?c8FJt@NHlH96D{ z;*ucY+#-L%zRyBKt`C1v?=a(85cay`n|qwQZmo-@e;E1i4IG53!r`>I*#J1s)iY!J zA+pujEh8=8cF!%yYBWYx&7pliYJN4;h8@~_-LHMt^=As4RQnQfa0%5aSXim%TG3tx z6K5>j^cT3z=!GOf*0VtrxdOq(wsz|`9_nd`zqnQT*0vK~>ADBrJgE`(dAH%!;7CZ6 zaQER)fy*|RV5bUEN_-pmYD8y@bnFePSeJMA#7s#A@AcwgTZFZMx`<|wvc@*C==VYc zClF_S5FGs^E4s}GUUjar>`pufn{SY7aHJ>ay<3l*Q*8bNBN8&k%#AV>JfZYgtL0H2 z0jA&-Z4vQW(HV2x`|kpppU+rZrU&>(_+~4}kUFx!zXr9k+;N9?#=-r-(rlI_Y1q3y zQ=&XHYp=@(=^Z~5A1xCXPvcJXSAFNIimNNh;7Bp zHH9z64uvmQ{PJb~&KcrlaG_{Lp_@~z@lR!hpvTPbX=+>KjU1x`-;AHGl?0P%a~4|iD~;a^q~ugTOe%|P*0 z@4735Mlx^uo-OTD3wyyFO?@4`v0$Y4dmSfxHX|yJB!5aj-11Yqq4~M0xuBn(Df1&I z8}t5h>g%Yw%&56NxLvU8oGl2HFz<=o30Wq=JI{2=_tz79lHjVMGT++KN{$qgS zKwd}zq!Dgkex>fihv093McrfX+B0W6|M+9F`I362Y~m3C)oWf~=jLq2m6e^ImO6KB zCKV$8_33%+CLiP|^q4t`YJCH7m=_c)iy9JPz5rXbz=jlc11o$*IWZLe}>^!;Pz+1C7b&b<}(Z zZmx+HfNgsFodaz_CwC8 zgk9b-e2v0tqWdqrx?W(-x zg5EA-IQzy$`5un-YOVsd99~=;j7^ouphH2A8FgYSvc%e*{TIMQw)$`jtq5dQVS!rz z>Q$;+Xcasg8DtK2=cBOa1LCx;`PEc;oq~j0!wu_WsyypF;-V&#oObm@mo8R~N;-j^ zC3&F>-7HY71cK_G96oZKDKnvK%R4z+gLVz#hhhz{^zPUwvl{5XZv!#yMXXyMj9;>Ty&6-aHB2o z@VN4zSBRg&?=JuEoxgWlT}pFdx)bJB=9T+nIo7)Bm`e%WTtv}51BUCU0I0g|b2iX1 z3A>STs6D{H@UhcFPfPwxtJSUqh2L_YZV@KvNwSnTX;URoB>-T3ja5xWF!33fGhnkLN;#|&2Xxaw?svv8QGK!siBwIt-j5-viCS#2RQJ$mmQ zu>v)A_2+=~p!To<<6enONKA^d{9&$s>D%s)#+s(IgcZsYXSar5=U2-)MtX)~C>$f0 zUOs&T(ao#b!y{8J8!%15X2qjBZ2(a5sPy zP5OAAtID`kjq4R&JzJ&MhU1tnSAj^@U;eZwJ)td&@+&{9VU}r2eW6$Dj1tm6BkJ>(*)@51J`78_zo?YeDSzQx` zt)`mh%qTlhYm>-F?k_nwZf#gIy0d`bk_F5AgiP{RG?|C(R@>^zq)en!_xRKv6Vto>YMii0XMLQQ-q3bPD2XWaa-DE-syw!~QXJ`)@S%bZ(% z*A8ap_Of(b%s2LG2CKIYQJY;fMV+Qvlgn90Yp_T5`+1V@C^0sv-ydHNr=FatXAYj0 zbh^noz1oFpPRGj6l(o2)>SGampu}QBE!@Um|4?IUlzbUvFdO8Bky*mtOTrZdP>O)V zw=Lm@ZYU_Wvc2c}n4`MG?%(<#RTVQ`$)9E}qe6J{z59r4N3k<-7?MjMC}{ivTrDI; zi@CHQ{JWbGyP6?(tx%-E?_2*L>bgF^KCSuXf%dlQ0glBVIT^d+(_))p*2vUXPsoA^1WjypOwo_OAl3~U?xGInT+ybFK zq345aAn%3f;Np&9$LV#sv63cun<=IA84nhdCmmfD!cKdC)n{2EEVwwukcn^?BqS#M zjh`=QNJ)ObjFUIg*E3?Od~(NImxeb8-jodsE=~LU9A-0vlpxd)#;_z*1$|-5DVpGq zg$=V^#)>Q15Ouoo6N?8y2IMD?){jESBo&LfR>F7yIg5EeSt57HH%6;~+bXm?8b3KG zf#=2FX}M|%0tYCCr{h&k2~x8YxD}S4Qz$6-5XV#PO!k2TFmSNu_*xM=0WkY{$%q{d zXjVXp6%=F)Z{9GRb2A$9^%@ga?Cw}j+MiwhOfGZyFuPaz(PVkwdU48u#N69c)t=r; z+&d>Gq?RsuOi(D5=HA|p?k#@jP@#&-_cgXE5H1v4xGEdGty_?2MC;n@j&WgkkCEoV zc}`+LW+xT!Mi+t!)E3-gS21~t`5H?rLC#RzABy_A-{iO2 z4H^)ua^kFr9RLsrveGxErkPy|?NWNQx|;p4eQ-wh$E;D!Si(iqqCC+e->bKF0IC*S zp`ZEbHkV&+P>8TEO|NS=CFOVZxnm9?DFyLM_*TzRGffql5e9iF#6A>I$PCvUtK594 zrKh(bae1#u|DZH+tTyz1t@82p@qJs!zi#fJ2CN)mO?@!l#5aA3Q7_GbzdbA=Avln;c4Bp$cKs-X10i}E8M?Ik3*27s%tf1Fg_HLf&9&ril(sE? z-`1?}Umm1*sFhP{VsmWm2$f`EXzr_`5f0r${vz0uNUL!!Z}re(BYodDfd&)24!rS+E>uKoO*Ie}44 znfX?_z>Hg}IFMUn2naYE++zkr6e#7nv^S5mP7E2btg18l6+vbWvQUE!UT=H3_lf{} z|1l;JVb9Ej-#p`Ikk~~nD;>lyC!a4WUr@lfV3-i^;WtIMS~mXPmcRMe_t!w=qfP1Ns-_-s{;N{0@XOy`Y}!Z+xqlKK+2$2yj^p#qLpvN}XN18CH?Reh-}9xu>SVrqR% zVj3c^^h8E)q}|pR5$89z-|Ilx9wKnx#P;o`+-%6m3#yhT-G*}1T=&56h@b-tb3~51sAT~cs4ZwoD56?9rlo={XtRp{wz)*@c1k4KqR6x4ofMQ@i zr*6Bjt{%UsbGUtgjGt)b+|oJxQ3J>Gc}p*(oJNk}6K{fp8KY}0&q4_Mia7}pu|z*c zaXt4q{dKx0jwMfuDm!Hm=cWWUjK+}E#>aq@9ue~p(g1be|SvI!281x6w)u|0M(mDH*Y1l!bR-NrCQVG zMi+<;7P3VVM^IsQ2)|QL#5@TCO^!XY{i^-wha)cJ3zRaIbG+DprW9hQ@x$-7q+Elf z>G;dyn4UT)N<5sAq{ohEz8a(VAc5{MQEIcMw$u^+7c3uPSODQG_K%9TnHi>SAUy^{ zg9{$- z;&^?&^WlUPR(*$~s_tw%6mo!yz*r0zwuCn2TwotW6_Zs1pf*$5^;Hk`l8g=(QluA` zOpZg(ri22hd`o)L$(a`=GbSs;CVKj=hLV((;j)-I0ElOg|;!`v5 z0W!F(gN-+Q5v-Tp9q@UK)30G`{yRSM+cM_&Jqmj1%U6CkualI9E&*o9f_{-lC)aWj zg2BWRbGN?lWYDX>?h%{?X(CBw*Z@>ykIO@xOG9{9?ox|NXjoYB2jbSaM89vefVLp8 z{+{IRf`OZ4Kz~ftL-e6ITxO(#bv>cbz);9494C?I&9o}Z<1bn>t6t=UQolOGN$!Gy zRS@n64s2`++Jj)+MeTvWXh4AFze|dH7Y) z`tRB?kBRCmqx5aN3bNAnwBha#i<36_5sGwjWmSo8Ip27`t#!>pdH1^Ks$E+R^x%5`kS6 z12Z3cgnfN#(z^Lq=TphSKBbTS9RbbH$h{{49ELbRYHz0ZpD>A6vGD>}@SpHLpT%_d zZP?WQL>$0GaJU}orNnT;U`lU8X(#_vI4TgoWwb4>2 z)ZyK`07)}~2ksc1EUBI2s!{2NK*EWgG{MW(jk{T)_lqWHi7$=v2aYTiTNO+xmIHWK z^c@OkwduNq&O*;5|L?&EF0ID2EXwkyKVRMd!1BS?$ttR>vW0b4kU##{w|e~zrGuh@ zp583|$7v%(f2YJnQ4}D_QUP^Fl*~p~h8q*ub1*?Gs6P)bsHc|2VtGdobt^<>U;b^G zzDPE8O4uSUmwbU)N&Ntexq7AadT}*30RjD}-$_$k;?{ji#OhuprJ3vVvXl}hIAkUs zzBgJ`PNeVy1}!9$lTzUC4GN(yA>FD9b;y)GDmDTEJ-VG9Oti1 zo|d=jd;Qh_>E!o|mDSa;^Wzf2IErb_<91zd?}k-m9~i;>>!FR08FGZ??0r`FGpZByhSgXGnzd6{0 zr$;+T_t*R{oAECrv$pc{ZYdrL6r*24T;ZWDy6Sa7SJrdMg35Tn+}$6dBRSRAhL6bt zScQ4u@|{1|e%BdA6fg6hoYATI5^Ho}-e=RBV~vn~plAvqdmymPr$x3dYg>>Tz64px z^rw1qal5%S2r8Hz6x@_i@oqo@YB2~zFXpG833;Ky#7<-+RiewL!}`06Drrsqt$|?* zk=vTn?JO_W_qHXF|0p`#;#M-JtirQ4``U=UNjQV3G&J;YURTo!)arC zXI7ag39WqCR?-3&3!hkr@cgR4dn+;II(OB~-<+hpNAIzr_rOg~;Xd>=0QTYF;X96r5CJ|wRBquGKHyc*J6 zeRsOokqSY<2)%m%VYajZxG6*da{kctQ}y;-{r?`^^9ZSZwxeYAZWAA-`5VQ`lT4uj z3n3>T6#OZ`La%h3Oi|#2oQeidHk5(eRW({t>3I86uvvqrWmW3Z(S5x~os#onYd7{` zq)h8oa@PkQ2$N>kYI%nHNZtT9xLaj;ygR9e!9C@wl3nxTJsJJ!ohqH&d z^#(1y3)r1MSjmVI+sy*JmBVCi9T6^no>%|P287hg-eoRbE&XFfvPDlWnz_1=swY`C%= zw=)t}b&XzOKLTpJUcHwumy$7<*k0*8V6&;*xt$ejMF$fkPV*+EeP4F|rM#Q{`lQ3) z)vKUZr_S~=?_rfD9p5P5;79#5>xg4m%7?~o<2yjiP!vo**lO~l{()~K-`!7`mh9?b z-t*dV{g~J7BETHSFES`$Heho^q_BC9?<|zzvQ?_eOkb4G>Y|>khjrj8&#t-6UR~ds zZz`b$9>auV^EUa5xE?L$KEca2>$hTRQ^-`uuBE3%EJ9p8`yEcUE!M~Kz$Q?jKu4&l zPdf_Oq&V~40w-hg{lisQxyv9x`NA?6+p4z6C?rY_UfF`N+yh<{0Tm)VD+2Ll1}L&X z;p%`QRRiJUD-abqdR7G*O&PyCuhuY6dl;ftHEg5~eoe^D=t&H1v#sO6j==dEkpTfy zuOZMG^S;dYmG!E!dciw9?A@ev2OOyPZwu}4WfdLy%|>C>{YtNWc%}I`n@6iBGqw5` z<6ZT!n7znk0Mi-^3FGLCu5z3j#N!4O;Re#Lq_lfwrD@vMK)G!=K6gsanP)Pk?zxP(i(+Hf+nuf=zlCB8o07f#<<}z*yb}lmJf9 zPC0k<0mE%Bg+EXx5h{3J@7_jlz=Pd>TNldj#^okpXCtF(oF}v1HndsEA*n_S;;t#u zzm_`-xv^mA#fQ!1z_d!5)V`NN-4@bW(47HulSySU$tG+QcyC@gnH%s)LHd*G+`dxz z3gxi!?D>pJqs>WWkbwS)tP~hMA429Mgo8nMrX6xXByR$-w;w?(lzh~@&+1G~Rm(|_ zGWBs*QVz1NenGt3+Is3X%nMaX)tY~2b$PIZxY|VAwowd;@SmeW{fgBC$Q6(a>;aY&+4-AELrgwO%4O_6TY}VB;Ln z7SR88A2CE9zH(;|juHvA*Zepw-Y(cZ+cAWwXy)u7N2@J3E^^K&yb^ zScz(bClnI^Gr4)gz)?`ikZ}iPQVoh^vBvRhZ@=Ta^tiH|_kBuwhh6xt8WpP#qXLZEJR%panT0S2MpQP8K!Vug1bThEQsL+zLlGV;%@ z^SGA$U<^FcT2QOO!gr`vS-le4S2k~uzbH_~@JJlexcp-;&VHo!XmJvqp^}a&eobjH zVhG@P>>1~sB10hE?m%?SCcwo{G9h)HpvKNwAzO_fQ>8Frj%RDQa~## zMV%))L5_<%7y!`kio0ghQ`-UAh?lTRT__t?6O)G)XYkHzC?yS56Y^>IwIRvEOVAFh zLd$|-65uC(>@;vXWf0JB854+PAlt5uaucePIQOi7fx0d_RfYx4{AvhETWZF5$eo}i{ zChprCrUEkKk+;pbD(ce9u9Btc_@#xUnTfeHh!})h0pt~9b0zw=cV>pP;C7Kgz?*yioomyNDu2l=QLik?;o-QeCVjsT5-YzkpRd znyF)Gv$RV2I1LQ?ZywN4$tH0jH7so657oG$u_7YM>;Vnc9iks$nCdaWZFuvEi;z*m6XgZ#hk)T_hJJpA|N(NLqF)s;FGkdO>#XmUC$eB*jt&A}** zBJl*8{A)KCfgYV%)MpZ@6x8iB4r)AtEx{>JUFiV6sz>5MC!yewK*g+yxED9un`0<+ zlL1vV$C`|}UrDpyE4x&5-pa_yxXkxe6Q30Z(_u$C%u1)GX4V#(6?T1zWA0(tz4*7; zvJyD_z9_(6UWK%j=Ae=O5GV$6F@ps%6yflIjGo=}T-5(7d=hkV_wF~xRMkL5Lnpsb zSg*BQ0Rx<%(RLyuI=0{kO(-`GNE)hX;V3=Bl8C-nV5>JYWD zgSJ`DaJ?;jWk3Xb0*wf0A$*kl8|0R5GcM?>9>4eorjYU$bofEx&gQo^pMQS?pz*YbL}e(E5l!9 zHzFv~$$@4!ZoQfw?n4re$A(|&8Z!LtjqMF)2fFLqheQAwdGJH<+A7JDxC0|R`Pk$j z^N9=a4``?cF&Cgp-UmiNp1LE%GyQ2(@*spmY)?}SoR*-nPJ<=HmgVp70b|tb>e#md z-BRfKhqB6GeT{507Dba3+L!n3lSQ9JP5I!pEn!8pzI<8&QzmqcLx1O4`#T#1C`Js~ zy@LvJyU?H6;m`HZK=ZeUhC2}0?9=y zX@e}v3}78_wL7#4&(Buicr10~Sb{CaiY%!V$j|r%9frxgVY5F1B8;hJQ0RliMOS#3 zXtWh|MKlqjyO{}Z&|F*S!q^nf{D=mG4I#piHJ;l8@F;UQvJVN$x{|nZs3$~viVk*& z;e>UO_c(yFtQzO6g9*YG4#$Jgf$qly&kNli!))&?YpAon$tF&5we zS;r)gfaIA$krH?-_o3&kyCGXf+D#^;+RRKvfH8rpU=UXwYh2#9 z_UEQ<>VOu)#1hL|Y$7EIsEI!&uHWKx(uK zbXwhD0jU;|lrEwmE00jQ58(H{b|5>cT~>cX1DsT3 zCAcz-KcK59D>2aU{tY~HaMsdS*@ zU%Uur^#Jw;y}CX&1vaqDMyL&!?nMvJ2W~oOLaP%}Ldw+zRn@?_pwOo5zFvUwxL*Q$r~xpbH+|wj8BBl;mQc-RLq zAt1=~I830`=wHGwDu0hnfdIM)K_+b5@wKQZjH?I|Ygwlt)&Yz*RYx?e^pq~>N+hE; z09{m$_syyx&wm_3raU2oh0F|QDE!J!hxO6sNI?r>u_mT)x)Uy!cM=o*r8$=F_U)T2U)uZq#SJax!tdsqJ{|Z@3bpMPP zoe~?l_$+B8#;ssL$*X|LIQ{@l7n;7(zYAzLL|UT!e27@4%NZmp!WVK?k*iapi2 z(EL1f_?@Ot!V|>$I$GXjSl-t^o}Y)d=ibveb4*BZWhDWW2Z}c#dvgl)>q5){Gu&k(SF#`Y%m^|2uWENlr+7xR$Y%l#g zkmg6QLCe~Xc7;p-|7byHJ^2EXqCE7KH68I79Aj&2;Du&#E@d-_w6*WStrG%8s#3%M z4d;#gR|E~ZK065y-u{I2Yk=Bk4pb!s-d=k_}aOtH} zj+ly(9(Y4HZj>vI$wTT0IdF|l&`O4`rXv75U$eMKQovt&O^UxmAx8*ZanQMf#so11 zs@6mnjZgX;;sT2y{}?F_Gy(w$**F*!a6p3S(%ao7!41-72(~l2a#ho-c3=eN@2e_a zvu-{4MR>e7rJ%P6cWC?A)R{^{tE6=@91$5L+=iq>lIC|)H=i`wo^tQ(3z@A(9}gTF zKSrwXH=bhJ&%m!ln$3CnlD#@>w)ELSmjSX;GXoY^dk`$w9XFsv5BjI4+0TkSoxE^J z<_WqEVsV~nFV;Vm*$fyBXp)O);Gl$m1EZPF`4w|EbN@fX1OheV-yLy;%~il0AelF^ zW6!?{k+aZ1oOZH-tmwBZ*S7OP(Nvh6{4Su5{;S5o8W|%L+Ak^#<|2mZ)0gfXP!6W^ z6T?1)pdmteX9_K&J8W^A;6r<4?!#M6wmWGUAz3Ve(eTLH!&mIK^I;f~PE#lh{qN(~ z-8td!dMD5XI6W-2J2fdORy*NO81`S?9!1h2SRRbL6Mc??xL7EenOBPz&$q}bYHct{3q!26I10~x zRD@?^?jd$Xq1nHnvsSfsYXW15(5nL*unr_AC3f6=aq+Hn5sMq#*vw$zDuB470o=K* z%Lcz4lHt+vL!+AgR{S?jL&O};L@mX!c(;G-&V3dc6fg6aV)SXltp8EmbiM+l#{tBa zl!}DO2r(9zpuNU~hmYWY5B}e;nKx&{CKX86c)Oi8`42?&a4>xh1FNUu9W=U~&m1fVAk zMpWfP^!Q!SWJ;md)IIw9O)ijsD?S*0L=_kzU%5{as?@Ko%gfvBAh-MAGp%=lxo1u7 zZrE1wzJ>#dP*!`zx42S=8{45mx{eW4c}4p9-&1Q(bWc(e6_J1`KmYJDXQ5J*+68!IfZ7UvhFxOVgJwDlbPj zQb&qN9R=t4v%38IxvmPx5=Cr!MIY7-4f`-sH(m`sj$MVFcJ>?_V$)P@h=5AG42DVD z+MOPphOci!!Zm!;tZ?nQXmsv}ALiJSy&=GT)n~#i{*vUSjD}$Ji^1!R# z&P+`TXb}^N7EgjeS2NhH@mwZCohc>79~RX;0lj=3z3d!u6SkOYcw~oaOEgSD95|`k zgUC#d(qfWt`n%F`+OVhcX=P}jwYT@1@9)!~$dkH`Oe1ZEYu*oI^T_aM`T_S53q~YE zSY6^w*EWTdo$N~-$E$?+L)se>j}bBu7hA1?0M)TI0+@6Y7-iRnGz*L=5Atw{90fZXR#U$S(-?Carq2t($#yU{cj7g#< zIk=C>Q#-}6E0575^zjU4}hjpJupmYKG`GMkRj7R)i_*8Ep7H3N5ym=c&G|fNVlJ`#> z{7$uhFlkoUtvSrP=g^vl$SyrACt%PcclwYU3_-Y57ta{O3|w?T)W80gkZmq1d_QSz zgNW8SB+>NOD0pb;voy!{iUDgndHhh9NB;9iw6b8}E}VG6$0Li3%QL=tICbN9@U6pM zS3Cfrw`|$q{bt3SWa-an2r972$6$KQ4DYAyfu&cW--W$wy-c>9O8+6}A+aXBAxLg? zmc_e0B5+JiI%j~Ol@lE+AsTBNgInfY{^>JB#%m(L48s1J8Lf<#y@o)5>WzqwQ?PKn z;wOh$|qLfsJun;Tv()=Q|o${|m3bAP(Y6 zuyS)fd!3`N<+T^KNe$G@@i3tRkuFP*y~efh`X2wtpwH~7eix!TBo)^aRu%@ULj;<+ zVXwaA&s*B{N>E0i2hR^|!?0y*yYT02mx;?~FKP>VSZXjaG^qd=R2$#gZ>yQ9sE-H* znn{u3>K#6TTeJgk73;8uCy3(x990@FftRw(;C78&tq_fTVIDB6jIDz;Rn>nx9Gn>O zRN-@8WPJis5^-I14tpLQA8~QC3!rYt79PSE780J~IQZfjl_NS1(p7|_%;yk!A3czX1#SzqxPKW)fd!dzDa8MqE5XA8<1Kb=;)@BWc}Eo!y0? zk~a}(mw_-vQC(-Tdp5WpCVpL5O;z2^=kn!(gpC-E1fyRM>Q;+YZdgeu*j#3mlF&Gnt50q8qhw^Tz;=Phb7~}L1wG6}So^6?#nFB!sQm)p0&hzT>*7>EtK)&)Dh^@;iD9y`% zu8CA9ECJz`WX?mx?&~hew4Nj1b#{Mf|cO z!+hrhLHkR$HJmE|0fN<^)B>_RFTT6z)#brCHZav*1nLGR7+!NrJE~~0s)uvLVtA#k z4rzp+LBMk9u*2*7)F~;=Du*t#*u>;~m(P2H-k@gTdV0gMm)m+M#pT1-hLs08`A8zL zS@x(6uNyy&3*NnaqtBE0bnMf0?#C^lK;yzeyEvH_=nFt(?r9I$EAq@BW}e#f--GW}f{;Ym=*`(Y zVvd<+Je`_{!J`i0Z;yGzmQHOsKfE#_X5TRI0?Z*b?7wX=%9Z^bdFD~ixm8T^$KHOE z?rVHLq;z=yvaQ_<>K+&{#geJ^R;u^pl+keKa#HhtN}gm+E#lTm#4S@e`kK8wBt%y_ zAH#@t6rMzYc~w0kIuawrzm;Y$cNj_QyUso)8W1g0FY0%%lfVB@d7eFCcHnE+@XYM+ zv#&LE4r0S0nk|(JBebvZaWK0rqV64Tef2Hmm}m0H)uIX!hiyt0N5>i)9|7+YI>BnLwYYx(}bNKRGz^EF+RHTW3hhqwm!2RG#)R zli|lU*lmtOwpiStVy?~*wffv_B6Ix7!TtpE93#)C4s3Lpl0aKt0?wGpo}Oy=B~89! zpVjHmXwWNnnLV&;Sw|+6wg#W`I~Mj;T=+C+;a5eU%w5E%Q&;c&K^W#P9lwObtv%Vx z7Rl+)=e3DG0^g<=H$;P_-sFQegwvKm73S>d&feB(o+Q3;Irn8B@u|;sFMqp($XyFR zvfUu%67zSXJd5JftD&^9UrWdDmsrbhB;7z-IuS8g7bGvR8{b13J7y#|b3&Pt{?@2- z3)<;c!wcStG`?Wsn2o_9gO;W`ijdEkOtcgiBl!Rt`{eLCCw|@p)-j$EtG*QPR`;&T zvA!K9q9%29@%Lf1ri{$?%7jn(P5LfO9q8-9_x=}Y&wnx8p^-%0{pH`n&NnHpQKF2`6 zMVbkXK3v-QYCye!rmRpc@RN30+p=-u>W1Q%Q=DJXzMwq2<-VHel=<{ojj*P$`LM`pqW z0Qko-EcZV#MG`aZ+w(8MN32(s6}1RGQIY$4kXb?6(n6{=TRzk^_U(DL`NHt_Z9gug@;UYwYiEwzgvo8ZIn`FD3Cg$<%x;2e zq<(>OSoO&B)Ec!n3s>0bc4_*ga=N)gUhat94&H&C$kO})CbViAeBUWH*Ku~h;C$7y zJBGxol0|SRG;MrO#jZZr=qMYYogQ2a9pOppW>(sZ4)a_bPa5vf>0J`PJnJ@}&(U@C#s3W1}c)Oesa3`fbs8~NijaTr`H|aA) zjK|S2!yp~&)Ob0p&fv~@VkZ5P^^?>SKxNrVbe+}4`5U}lRkloU&tJ;u z_196;^yi*B`Z~xUo-&z%(IY3l@BIP!0bTBoZgo;g%?!a$2Sp>3&l15Li%TFH=8t7` zC4ZC(J{rJ^?b!(WJ|;3!Hx!6G(hjP5*k#y49j1h-`s;x$KFr)T)~pab9xUP!7YllW zyaacgV3%JsI3L}AxzLZ|>rM%btv}s3VG#_%^t*@bcJpDRd0;DvJF?>f6vzn{JOjq~ zLv*lVkzQl89O`ymIFKfJFGWSrQ4tEdzf+C|LC8zv@VbJWZu|gEOBd%S2Ix`b= z--h?y3#LTlXZ$AkOr>phU{t7j^l0xUf_R>av&Rw8tT1_`2joMtYL@W|ks3_?p-!@a z>U6f;Dl}5)fNQ`Gk>#;fUZB(Y>l64sl7EU6Of_z7*tOo`^b0k$K`1u@$?IsT!KQmjV-LLe(4 z#qRkP?$gBKMVogaMT?Ir(Dh{Zvp(LqW7=+>of+C}&f&o0Zi0)W% zvTGXUY_vO$5J(>}N?43QLuA_p0s&V1e0yX-9l*bo&w#t#xUhJ^JnClo;|5m(eS*lw zkFw3z8|v)=tVcTMG3)ql86J(R@WOwjJ&M?MIXG?p_vk`UJbV7P#eg?g1zjP{kr0Kj=n5NkLGVYAIT53ul#kp3{S3+EN4LVdEdInW>RbRLlAfOb1n$zf}vk(Ym0L4uVFdYsSx@hKJ z=rTDml1GX6*A_Rci{AsgU;UHuB@Oc12ssA$L2&~yhQAJfhkbA=;fW^ik{c$z~0g}KU zMLRx#0?}|7K~~$KvK^QJ7#{V>5nOIi!?}-=u-bRf>2~~P;WdePMqHgDd>a-BUdXLO zbj;Gq9Wv5s7IDjJPJi6*t^R zB8pUNG7rpy+|bkByjPKW7=D4r;GeiOI0a6??dCqh?Oj|%o6rr_g@}-25J$!99RDNT z%Gb*`u|HuEKs2;c@(7ELaRO8kU`|ynv`fYxX#<9UX}2Jl4)!cx9&$OL`F%yl(lAH@ zLML&pz$}fw1c002?8lczPlH6@1CjvVk#Tei;Pp&$eCggI-k5jZNk#D4D1;*-S}TAu zx@W{i5gh_|{~^jvt_A1^I;8G@#ZFC|^Dn30oq1#nV`DMsey-;RST-WL8j zFjLw3_lh9e>#AtGb~K~1rqaeP_q+`6J=aA5d} zJ+Q9H-~}uLtm&ONw87|{1IZxSgDxq#CldJwxMz5Tu6?&#@dBO;)7S=!ZRo-cXTLp& zDEUY`Y`3h(tWE4No4;Oy29X4J>EF&O_s_gu;R6WQWj9QXns0<7yhb0yS=$ZJ?|N5{ z1cCOMrDDfhW|9dKXpy(VBJ+y8z<-CmfqyzvSg`yF561wofgD%`+(xMHnuJvsqiq1Q z3=so@rW)!F(~+Gc^>sqe4}-=tRA-_-18sAt7oD(c6zJjz{IKr4R&>UaS%lz=M2}e` z&=0D|(QIym0B81pTJ~;PZJ&kJi~{OmBR`Ma8rt}F93;FEG$TfpMN8ES%HHfMEG}|J z0Qd>d!68dxfaN%jPKBs54O+C*7MuHPs{Q+}0=MDk5%xgtQ zV&fQ)Jpg(M902H?4weJGY)l8ni>LlO3J0}tM29*u(wuLR&&Zz zmjL!di5=JjSS=M|->pG=R3lJ3&IkUVDMES>&LbkJPP67J(Y)qYRMrjJ-xGo`09y?^ zTMnzwc*!4OwoO}e;1#P^XVQ?Z--B#E)%xzzr{Fdmz`zd12x*DKGjd=bd_bq%HDsG& z^~iOA8PGu7J^moW0PU(HNbwNt>R^`iFF!pX6MYJqNCYoH27%*i4{R)4Gy|9?nDNrV z%+h372Lvtu{Q^4v2}7VLd8zm5mIa0x+S(ato51j(gJF1NX<+rHI-Qz+@=Z#L@VY98 zJzuYweASz>HNObm(7=xDFO4+YSS{ar@$YJlrZB+Qg%`1>)U!slA{yw?A!NQM)Avo01nf42d`32r=bV>P2y& z6F_>b1NmHBl#rBJfa%Z?0S4TsK!hQy@*rCq91BdHqK(n(!E8qCZ<6$|)FFm|?YL#o zGXbW6yP$Z`osD;Z>on`>4Qse0ZMQlTNgt>U9+%a93d^1Q`OG|DsOX?)hQ4qlK%Rdk zi$;9HN{AIRRMv@!)`;2<+ig?Wla_8)ov^oK!`B z2h+m6@fH{WKqa!qJB;P)=qMbM<4?Nan|cV4)~fkQP5@b+GhHb8;$E|y9;u7;1;N7f zUCBgj0=QL_hGEpT-Q@%Z7U>0iR8MjM!QU>d!Xw+xC5YP_&^<-9%b!krc9KDTT3wEJdM`k*qO{B}=(WDNDm-4P|Ue?n1>_DiuxE zp=24fh_Q^a4aV|2uhIQH&-e5C{aNO{UGM8Uuk$>P<2>GQ;G+D*9@g5YO%SS-_tN{8 zHs1ff0;b`Ns?xTjE*#d5^ZU%MPVLGT7x;_xOPeYRdZQn+x3K}aw%kweae(l{;UhV5 zFfHdM1ntjZC6*~ZsIpiw;tPwy)K<2)a`Z$`gpj=|+RGq&4sS)K769qZ8N=KTlx9JurjTM>9xHH}TfhQ9H)&(lUw{^?weUN;4wo+6DM;(x ziZMj*XGQWEb3wSNKv!zW7SZok?XrYI*!)EIl19-3dytk6+UGhyTXPwWCIcOT_sBT% z@@&5W1yOCVq&HO_C_aW?1*vf2WJ33mKyjih)|cRD5c%r1KE!TB&i=^@P|gEUtK!lY zu}t2vdiO12aHStR0bcH`{`vhNi@J0sT^ovnyt9B1{J9v!ER^8=IJZu+BC8+O@$4=I2b1W9BjpbZNdFmk8_bRgQaR6=GIahl+$ANlGd zEvn&jk-U+f8b%Ri>$#^PzwM*e^S12#^(;m-vs@1yl%7DHCID=$cuOGM2tCV1cE?$a zEUH5`l|kvLhZ2^6`;;b0`mupLV5cyc8Eh?ex=A!4CE8*+U0Tk}hAwY|XNTIvO68V- zc~)T1-&-NUI0L^8CS)9o)OA*WtYC*yWt_pck*9Ia|MI-c zKjtVr4ES^pGBBU8-gnA@)x$I^iR}e&>AoJ5eIBxiYZUx~U?vZWmb{FA$nctxFvHwF zC2daReikkPHi5}-#6+F|qEFKG$bpnt{Jmz_x=@OUX+t4>$P%TOQ9OH#mE!SR#UA2% zX(ihLfZw4+u?qA^t2s=HJWDbOmHLx0DvZ&@puI@6rN?0P-}W$&mIeWg($+7MH}mX60434T&ydkG-c`a$-wQPgl&13 zAA%j6Q)NXO$EF;==A_(zgeH!IVjSlFqXWgpN^%k*Hydejg)coDPl)`eJ9qz1LQ}9I zMu=1F-9y=rVeG;#C1zE^Fs*AB3Scghz=oHh>HluEX6nttx$hEhMx=@&e7 z6iE*nZ8hfPMzEh;?hcVk7Q`y}Fn1UaoVBvK-d0nqh9Nf##P8WD=kPdH;lOkjy7~H)2 zkJ`aIZ8Bg&P3^t<6~$s9RY(GElKjsXeHs-~JTY4`1T@@nMU++E%asZDM5`$!Tdb?h zWV_izp1uGE_kt5XM(O3f5~J86NJNy3EJuB@VR>D07sz-++2F1TlFi1SKBtDzPJlx} zRS6B!w_k1bW$ZIFz|oan#!X6!hsd?4xw;qkg^H4vfN_%c5C9bjzT+*v(jF&_iI5YK`@T0hkdz3yGkv5?UC-oO~*q zA^F3D>@#pte8h|*m{kMGl_Y~vTS_K8#WoJz&^w`d4yA0pw)QLV2>nvtVSgwD(tvQ- z&eCvW0OU3b=GAP&h9!4&Lw*d$$0;doOS0X`NG-1}2P!hWS<@k0zu+wKt4-$9*9!I2La3&(N(8QsPr z2VA>Xw?f(lDJP~m?O(1(<72%F)#b<_g%S&s7oRUP3uJHIeJW2=)ZmVb$LB;dhQCft zHPRz30>k$isy~g&(sQJT*tu-aETCPu z_`pZ3{eh=dRr-@lcm7VvZf{K<7g@Zx(K$Hsf*O6_f$kNP+-QpI9o1UU)Tq50niV$^ zvuQ2qNja&c&y)~MZfboxwC6?uKacGG;xe+J^rFfO+1srC4_D1^PX=jNsJ9$%Sqy(x z>2xWGUsF2$El&_qaW%fGU(-LeO2LvTrpH)(9E|lP^|Pf^jC8V7iI${(bNfw~PGfl% zQ@NYm`qG3Q%p%ZzQBxDuP3O~VTsZqvh@#k~xj`m?yURGFOWgK>g)IQ2ib{PtkiaY| zx3JwT)N**P?``P;Ywz#t1N3Dd*<8v=pc~mm`6;>h-e_;_eyT)?P_$2;5%)CYUO>>R z%X!?k{(~O)F=hm8TU)b(C0WERvL9J~?g^gQNTuUeW6Esfq>C%k&*J3n53pZ(4uyOe zcCDlhGptOCt8YB3jG#Rj0=`>qea3CwSX2`yUkC_zbkz0}Hi5}kW@%exxkb#?%ens4 z0m|Qjc6?tpsR;!YM7Fn@zRJj`tW3S<^fa|{%@Ze0*&4t58zZy1D-mt#LS&>Lp58&& zoXxh7>6N==yQhSt{LOS<^CKZbuXU*4x2Z`X`CzSv)qG@stJ@B>0Bu82YY4DXT3F61uMO^5AJrJTtm;_OIK|<94?dpazRd`c2j^BJ>J2r zHYmW<*}nd(OqZr?NXTPSZ~MxOc->G9~5pFvC1y*!1h;nC<(EN#kshZ-@3~=At32 zSKN2-1@T6i*}bpM!eOC5M^qM0k;P9ERftvtK`F}p8YW?yhT@bAidCrBd9&A4uE`^U z84eol!wlVix4g+;B03cwx>aEKIlDKM`p4I(s~%P@S(aM>lusA9tO$(c$VJ;ye})Uu@tz&(hU*F+UWU z`}fu5!KBVKw}m`*8oX*%u5k3+ZRYuvTpG7?NzFW}#2g4&?N>`rohDR+T(z%aQ32}J zNl*{!^5a}-E5z;@)!h|H#jNo0*_m&sni$@g>24r+#hIhd6V=}qD&5r5Yqk!y0* zCMe0I^2v*ukO7{OZ{3YkNu1oN!PmTAiryleFgp0MkeWYz48LBvh^OGf^s;I$eBvB> zLKhJbCwS4`t`2%d&n5O0T*+FC=Z|L&uAutkyDO=wS+@swsHI*n2c;6t+D?8=rZgJ; zE3lhiQpw63ik;*okjMEInhz#0>qMM2HJB9gPP1K8k;x4SOR~we@Hon%| zXJBt=+3Br~^UwGBHt6BLF>}M?#KZm?SE9KL`>UpH@vG9z%4Zi&;$v>iM;7yihn_{Z z=(JHRb7#A2wQA5Cx++uq-lV$5+GdOt{jLz);};v6SHkE5kyrEH>jNnW-CAZ;&M{tP zJki=%HpZj5nk`+)wP^Y{=`d@=2r?=%53~RN%Zf8H znSt>@K6*d!)LFdcGE$fnSTz3IE7Q0txdTK&|2W|iaW;AE?9Fon$7w}O?O1_p6UGJI zzy&or1Bj(Nfs%#8I29XPeHMtV%UFpN1*_wf-uF^mmspafn|L13qRNlZ9V{b5=VS#Q zGYcmZMvg25HYxx7a5j^T4z`7i(q(!l{erGw8M~8iK-7+MCE!15DxLn#D{MiV9590P zcw?pwOIA?-{<9-F?OTT0-MX&Nv9@m*6od78(NGpQH&e&jCB!qBKdCljZbHdA{Y0`b zAf%=&yYhWlzD{e#U}O>ThUlG6FISJQu0c_*_wbIDhZDthLXWy&!jBty#X$kN$|rZc zrOy<<{;iQ08TU};2m!)FtB7Q#g=kEaK)L0th}}`X!;kR+gBdOA+zXK`BVED)2&xUj z27IgVh2y`?C%bz}*sL!Sx*q$iw&!TTSTPa3UwE`5#&dRrX;SJ$kb0-6reDG#a?oTJ ziTnIvUO~fPEi4k4OC@?K7wphZ&fWI&IPD9d*N2dqw0rL;YO}>XPgq&^0N1ial&p_YKbN}BTD*n?GC~V*^D219!6wV(%c+&J{fQr z|3uFP82|_Hyp*tAa0#LruMGY7BRrZZW8zZg^QQUb@0Ey{FSV1wv# zZ~5Q1cjxAU>*p#|7s_buT9niZ-oJ|3s9qbxBRU+7WVCnFZyt$E?x?G`Ay(abCN^8%QWG=1 zOJm(Li<{3D*2Bxe451_wC^?mHrc)1+@U^dL=MpTjUQY2C=~)nGLF$TCwcPSe*XoB` z!MJZgW1GByGj1&w%BKrIIT<^aVwY72$IzoizQ@8%iuB-=!2ijM!o3dUEiT^K9ep z`nnD8f^%d#TewtZjp43WjUVd>edZXbumX>Sk8N-3@13uFw?~FsU-DaD| zk`0RvT3YPiX=YNKrIIjO+IP!wnYWS}@hSpYGDyUoNbfXNYvNK1$=PIK&4ez=`#TS8 z((JsOK_8~3xyiR(e^#ji5&D(@kX@+CLu)t;kX1!!N5x;dr z{!JzIMBW#L>$I@MBMD4}b3>Io853Sa?HSQ4J!Zp#0b2a5AH#c^S5T+l&%girPFEET zFMs{x^^`NIx{R1&BT90u?AqN?&*wa>w=k|#KYX0>t&XErKBG$vUsGk&e*cgdQCaS$ zR+%1SwHQWizpPYM@Md_AxiocJKZFyHFu4e46-g3S$Y}@~Lt>1DSJ<<}>i)nCM{Yu&;Ko;Gy;(AfU#tH8dl3}V%j z$RL@%$nz^3oJyHNx^L2lv=?`RtIbMR}I>i9ps&mO^&RlXZ5C2kSeP zfAgW_^0?sem8dFFDh|i9aL6`9C{ZdH>XyznuPRoMhWV1wOfc3hyZr>ID0ld!+AE$a zz6>$GTy8Ox$4e`MHq{KYsejXNTr9Qv#c#DmKQTxq&PRTZDdAyN)!|@lXJBHdXn&Go z&sBZGmRY!~rcH8`Uwr7nKMhmEPdtuz28@}$5wxy~VWOPVP0qpW>LZyhJ;Xh7!Ho0X zC1ApD@p1R)tFr9XjmD(xmTc;`i*bv;%?C1mcAHuoIsY!lhE?0xt|(kuD0+K7%stD~ zI&}NvDf72p-@Y9hYl$wrN-Yv!^8i;e&QOGt!Pe+kMvUZ0SL{q=HIJz0PJqma>IN~|=tE_}=amhcrSy!;1adE8H*kUp5BM4Vm zx#9s@D+Lm(Jl9OQ6k4V#mshQQ6^K&!TlIIg($omDAH!kO#0Mr)ak!KNe5jA%lCDyL~goiP_*dFqpq#>1X<&& zew;I{*xtO#6UU?VDI&Flb!jP@9!wAi(XV&P5{QW~$sFeG3~c}spmKmx-fautj%|Ih zo3wIgcq{$pGqFM7X$rbPg-JU#T8+EN=I6o)p&NF+0bt6hGPX&7>fn>|I4g3#C`Rkq z$?~vRQ|=36#S}A{uB)L3ia+9a%titVluCBHVeK7r@_^xrABZnmW>Wp;E4^a zLIb2ppO4GifeFmmQ*sgPkn2DclPN`O$xB}%;o=k%im(@^A z&~@E^IpA|+wG0*ig`8+W>mJ9?aQ#|5_K!^spMvN zUfm8$fLdcgad_UFe%&)GlqMr;x7=f@%`8W8Xu&rAZQp+D%v_oS>lU@W z{E5yd9;?#RJBx2}?&52nF*f62aoTHUsprHS9WPMn{dtVte*_)_i-&`X>4~(3R1nEW zVAQH7?Nm>&d(ZHgI$dAaY{|IQbcELRMZ)DNNjbECb$a5WFeVMPvBjt&?szCWEGa6l z$OXG`j3=0WH58hqD1x6d+BMJi+R(-x$8pVlsDCf}ar%jPj4Y{$khR9mDe7ld8hO;s zn5zOI3FRIWoeJKp{JG+RfEVp3U3oQ|-A?J1pz|4UHTK)kc8E!>%XFb_N)O9pvpcgR zpM?kkLW*h&4r`kq^g4N3l$DLIj+@K{atEG32XKA>An?f^z+hS9D*vOF*v<5^Bp#)BXc=0alnk23|1 zZrC328HuKx2co6eU>4T})O=7roW#SOYp@tx79{8TZl!#)86?3@&t;8sW!bm6@Nvlv z5)1jEkK;N5Ga9ppQho3q~}@$4OjsjFyt%3pB_w{SWerK`?$k zsiPS(AMK+qtD8ZU2h1ji(Z)0lU4}swufM}%eRX@+X{8B=$H|8)PLqb6q(q}2jnN&DUH~NWJFT96z-h zliu<@!h$gOOrKZR039UD2xROdd3oF5fIi{gaa^`Xnz$$zMNoDs7eVAUp&RWIb%47!x<~Vo8Z}TT;r7At|&sAOZCN!?6ERT&?T=&3m)!7 za~Q*Ch;3IhOks-V_pWR`jUArUU!@ysQIW;Vf@?gac(2&khIK z9!}LlnG2p?X>^*TnzuB}Ou%9m@7_@PJjAl1OqxG0YMdOfPiHi7HS57`Hrpo-%tdsE zJndf(O`e8CRPD57xJt+Bjg)%xbG0g?oB-}&c<-=VW?TDG3`G2 ztMEsEY`OOL48J@7VUw96=@Wv+vG1z49)pJmb+}@&1^zG0=-ufGGy1}b{^5RBpW(&# zo+%3_r;B+4j6@n|PWS(#-%HO=b9Xf0b4^CQhReJ(@FSg4B<605a^wEC`V5@PfVnj$ zHrr3hiDWq@{_Y8D-^`P7eX3_lh)^1z?#Cp^**_Cug}L6^Msh}dH<&iY5-?^M{B6pZ z6lLqBrL2^JUx#UL>vKe7`1+nIx2Ps6t3s>UE%H-xL7s^kAlhRD;~XWfL(=??^^%ph zO=+^KjJ-0L!T%uP&l0w;^q9a?Lo^;M91U`^xJe7?EtK$|;SLb$4=%8H#*?>KEJ|Zj za3`xWR`e*g=5Uz)!mQB3d#*0sDpVga*T`S&4vF7~8#tfhG7wF!ZWt++@So!ju(2~x zBq^Krv(-YpHz~a*V2!aWB{jokr=LUw(nJ3ty|v8vr?tret zNdtULVo869X!v)ur{7f!-2A&;;#dUtq8dxKJyYm> zl-R4gH0p=^0Qu07p3{BcqF6{=-Z}rE}u7^#0=K)i<9{?P8r6d4AU4T(zLt&H!|u96Me+pEGx7DF>b8r*c=>a=xKf1yJ1Q zUJoMRvPH9Wx^D9yN^9Aa%-;dN~Sx}T(Twj^>L!1V2< z`3;>plUwz(0O{Y6%Fg_?6p|^-JHmPDx@AEFN|QKWkUfr*0I&l)91>TeQfwPU1`ZIz zzrWZ*$|v?ttADI zwKH09a6FW%ytwD)wk0nD{QxS*ij=VxHR`xf>iOkgC72rOAqTlYxZX>k^@?P3oqtuV z#rD?U`3CZhzN5j%*uAptvtON6Az`t`$MNuk*h#8p$&Bj|Lh=8VLG+n3cKK$G_eoZa z7;PSdOB+16s6z$P{X)n|7}6q`8}Xe&fiS?E4jBT>A% zL-sP9@b~J?D?l1Fm|=ar7vPB>$NOLB0WNw_`2Uql3@^(i+TPIzh@sZAyqHg;Q7oaz z0&Zwa$F}RFt+k?`Bs7Iwuh*f8JosEB_)SzQa~sOX@C9(>8I+kGwWnQQGNiSCk+3bl zH`!4C84Y!&AoMj!brp0P&Cvk^I(!K_w#^TBHSzM8Z-8n(O(rWp7M@)rTS&a)SGf zPHv#3f`d!=lT$Jg*1KLmCu;luINLS=IuMSrz#sW7$QzNGBxQV1*E)wD>-)f`h@l}g z76D5dL^4>u_tnvjEk3|NFw)4!jWYPuyYZmG!7N|b2?<|sQ-7W<2GPZ_>VaS&2v=0x0dz&`Q{b{oB^0{RB8m z{j3nk#4iBxpRG+{H$xxJ;l|hXH)NakUZS9lc3Do%F`_WqdcU%dDMt`DntOc6^JWSC zJC6-t%T;*j^aG#^RSZeJ)QhGC>XiQVf+hdUTQq&5*sF<>c9;4 z_Lgr(&EDqm$_I#gce@Ho6=SpMOuYl64lmrEdV)%nC&{=?Ub!^-dR zxcR3u>8I*CJlomt>wk8yf`^s116;c~nmTo0VsM8%$WqK(J|h|Aau>rvW6CC9TP&zG znsJQke)Gr4>WOQy;#S8ii|XCq94>$xC&HoCW$eGF4m5onK^j<4Y9gHtZZ8_DbGZ1y z^&a;Gtnc4Cs5Ia&&q&=aU?;|TMK}Mc)&})l{8eCOcwm+;D@9W*mL<5l0@I)C=cPW^ zr*&yARQLcGunNNdx~izD1ElQIzyFUC1ICB%&Y{Ly9+0tCqt$PX04? ze;mg52b04H_<#aADUIwK_8wY%o+2qJr?n*w_HdqxbEdUlX`!rq^3tQUqet$zX(fyq z3!DbsU2?~$tN2UU+)Q$EWHWBmzeA#xpY!A2YhyvM*KCV>ZlS$3lmo8bEiOrMdGZXS zUoj@zTfaB(!d6W9qG9_5Ah`1e3&_IlvbDw$Tip65s)mC#wyn`M;P5IO^{}RmPny&y zEbbr$0UM8q7sM*;oOnD6!Om62a|*$oZU?NjohcF^UBz770x4$m4yA3zbGyMNBgv-- zE9;+29pl#(-#-h&m&pG8UzyD6qb`Hj*5!7+V1|PDS+^K%Y`ocGchpTal=>awOL{}3 z;7VDw@nfPd*MMRrH-CIjS9V2uIIp(^?Ee>gK=*NV3-lrUXnFle_4VanUS3n)eM3=b zKz9fRn1Oo|->N^Y9i0?=8W8c4z(1EAlYONNBjKpZUETTy`d}C3_^aANyKK5qzjOdCbmUF@6##AOU>Qc-oC!VnjIZTK4cGoh;vq zxAd@Ejd7qiH<|;M|Eeb~2#e7|?VV{&hhS8m)Vqs_Jyb{vX!`6qRWFX4uBpFgQVnrc z`4Y1JxDA;=VsTh;e%AcnG~m`54=zdNjW}oOlqqddBp^U(o(_Z8eK&eR+jV0_S;4Bh&Jnlm5E!Oduv?fX~Sf&_D!dPMi;slB^_-fVO zbA|-D7c|O5x~96!|Aai}rnb|!%6QMI{R>r5(cI8x_rtrP;cxcWdUq*?CFr;R&=eCK zO@UJJky%pCA>NLSo5${#T9<|9tX~N`sq_Qyv2>GmUn3evJ%aIeSmKc2&G74N5d5I# z(YPvOGm$&AZ6ET-R}$@dx&lPzBH=;CPbohjq$8`8X2vp8~Vxz8UkmB_jP z^+!sCfD6svh2(Rc$71gpwrVSpC~sQq*(>Lx-tc0+C3Tq73~9Q~ueHqsJ!^L|B@3;q zo)lSEJukX+lkdRSo`X0Q(xjwD?cK%i%v1<-jYx^#SP!ts6A*VXRK$MVx`%zowxS*F zFHtTZv(ZWXm0GtS(`?NM9#IQXo=y0+*zieGPXMaev6#spb#}83z0XeYF3TdaME5Pq z&D32=o;LC_%3%~qL_D6_hw;r&|Xsh!j|*N_&I%g4CRk4j0NlwCWs3!P&}$XHrl$iV28 zMCF0f3XwG|&;7+u$vO{x+xjXg$f9Jq4>DeP&lCY4lk$(9)NY39fXS$wpm!+2Xl2Eh zt?MvLb%RneL4VSMm>sR>T)tWeWSYuh(P zM^_7Gx+uzaic=Dm{h+9dQ+ep!l#whn^!cAUuR{;GIrbZAw~{^DqE|kBNnY6?%!`S+>#5Q7sWP`xyP*3wG(pjLH#29!REGMAU@v0T zIV^~tKJwLU*`SKiD~YgQXi2RS@pRgQ|g6L{I4LHZ>pCsVuIby9re)oWOrupy|fcN(HQs(fyjcx^z+@Y21ySD-` zrbep7wSI*2)9Ss}$Km_z5l1t70A-*{PVaoI)Eo`*DUuRjj(XW<{nLt>LQ|P|;*Uw&wL{O$o{%$7-jY4zCzpGfSebp7onM>&zdQU!woB2&{BIr_%1fsa!b4CNKSR zSUtE8?LIfb-eT;Qqri%xr<3}Ghd$$#MPB5%YWqFa$Hi$iZ|75_1Dg{jMP#vwkmwgh zGRCqan`%fP0=}I<-~)RSeC1%4x7Um9I;$&UOBHn^(SE~2JN9DMWOILHNA8-;t;Uf|tFznRoSW+!00GkX41w~*k_6>3r`hzyCHq^s1&@a2<8N+e zj(#rIJCRXiC!AS>hL=mrQF`L9)@^ZbslsQQMtdBKruJ(oES&jL+>_(HU1)&TbiHhH zV)LBtfg(RuA}&O>XU|v+jUl~ZPj^>AE+`8k;r0wTw|7c6YH2Dc^Gnq}J&I=|#H3lh@cH)kL%TtlZGW-%a+iy}MWi2)_{{W0#dh207a0>_Zwy zH_3E&eW=d?!-av18+hZxV^FN;P3q83xXBKBs<65C0MJz5?z>9w`21aQNm5Shaf>T; zFx>GY^-(Szn}VOpAqZq&;td`BHeeu-u`NWdJCJ(@3r(~d2#3FPk6Hu4s>FPNb^V)i zFuSMr+v*LNJfP8Dx`AWD;CT;DBzouxqxI&&`~Qd+*wwHzHXnvkP~NX_TvxRZizuaI zDU-9YWEQciHitWW#NKdDiGKzD!4!o!PhdY0Px4(?y8r-%tu{362*q z;&zzKyRuY7j+M_+r7KfuTNVYy z;TVm}MOTtp<o|O&@Jvq{R;pKbZwO)?RtPgSR8?tJ%wJJ)MCPld$DZ4zQf-(S^@WPc{&wYH;T*htysZr{=EItf3C9~ zid3Xb@OGW5?*@_8VwTU`LP1g}U$Z>?Mac9a&m^>YVmhOrRr;SiWXrv*x^My%#t8;O zgjt1c9cxuysH$d%Y!eZHeokl&N+~&hqvk}@n0&u@x?V?55+Wv-n=qg!3co&E(~i-? zWEqo&U9@jcDJ@UX?EpRMvXeTFB#fFuQ4U?hOUQRp<61;T%2PSIG_wlGj6?6}Cy6$c zYE@W^swTU!?Ob;;na29iCh9KXDxAh8PvrEjXn>^>^i87teba%f^p~JmA{(5%`nl`0 zj#66_yLaqJ1eb1lk3QevQy8}rK4-Qq+}JYUk>&}HCS7GwzFReRx?1oUmmr38plv-9 z+&$xDx|(hxWx?6(bU~9`iqv-m!?f@&hiQ>Mdmg6;wpDyw$ERL~CrT)7V>}2S;NKT6 zRfu}I01;c&D=9A_#5m}HQ!$@S(Y6RJ8rHK|oH`-fwf4X|Z%@772l*~=C}`k1oAt)( zO%j-cy9f#;EPc5`tG}{iACL=*Be}!>f_KUHGF}M%ciIKpR`KtjH`PCR}e$+0T z8`Zv>=|CP%JQA3Y3|CMqs%&by{Y9ekAUyYS`|>ptfr-vXl&$sc#5GD;cmppo_Csl? zgPu~G9+!^Qc1ZzDg;eB&8&qd@48@B^X4{Qc>jP~SK7qpRhw0~G4%_7-S;ycmF~?b9 zP%rQB1(sSi$#@RxiNo#0&&l2M7?H1NVNqa3MiLiyGgPq|*33;+vGsfyF%|WnIbm~z z9KT3cjH-9=8|cAZG-t16Sl+Sfk#H*(^;G5#Sc!l+9O~aD0nbi9%IDgAor+~$#;?x= zDDFG+I;E*QWQ56M@rI|)Fa_g988aJoFQU@7ek=V8OlSa~edwz^ve1)KW#bgLs!kk9 zM3vE9p2`)^9h!c0i=&t`AY>Rs0{vrZxn*uv_p|Xrg-}eMydF>3aYN@oz^T3~^D1sl({#TKoL2>z!Mbww1FbG*&hHn~{Fe zbmFsXCJ(IVE9QP>X(KWz=y8VkPv%QWkra*?C(iytwtyqwxO0%;qVH` z7j<7Olw|D(tpI7Ow|!63j3?oyL}Wg9q%Z5p(!Q^eAWVOdbb}A`$?8b^?_gz*%tJm8 zA5Lmjn!o53H0%$4z{tutouTvo^?wBnIir>t!?ikJnFY#~bL}0iY3-$CQgXCeN70(h zk{2v|+0q1K>O!2hf0*e8L5$E#sCFMZWg5`F=GphQ?*o>r`i7U{YzlPg|Jxh=$x!2R2XEtQlQFGXT6+x2u2G_ZLCDto-`71SzE?QJ2+H*@q6z@qcA1ILLg93_4}1v|jTY7v`dshG?ld#rS8ryY=zs zMUFEEQzwpcHJ?N)wSr>;ps-M5RUX?Gi%k^F9}ITwT&Y{*aLUv-Kf`$D0aYv~;Wx6d zvmaLYv=B0?nYCtEVr?mV?qNd*#tO-W=+6U3x4vXcn3l61;KO#idf=@0z2ySg%?6u8 zQ%%#<8G39)rQqi_KpI#4(Qe=A@r@SbSQ`FEN6=9WG&0Q*H{C)XXgPIoA2V%$>-!X;H_B zA~AXS@Z!xdm&c2uc@iW`9jN+!53j|yJM2`@I( zHbZc4m+$5Owv&I3TwDu#hh^{eIWS@azCd?OOSb>^Kqx)yd}v;z>RWc0sk$IWEj9f~ z++8wsy@<^zlm*}Y?8>dX8x@NIu)b27TWR*^->nN@^JvS2CZlEX`9U z)bQ`6CuOZoa%-X{zaO0^tZdFir=mVvcELn+N$oa$zKce&#w>bN@-47tK8N`+_QlUS zR*I3G!D<>?H#L@8%`;VmSAX~Y;Tc)4yvO1T-9s%!r>)D>Q>zlkd*NHme*glow8YqP z8ifDVBSi!aNaaTrwqT zQ;Z|DWA4QDe)mQRmsspnKm;){oG^(Qy=RnimwKC4Rc2Fm9vqR7#UNPdCE}hZOh(Fd z4gd51qfR(x_W?mAX{JHn@Y&-P5449qiu`fs%_9$FQ>>VEXL4%;0BH`_&(5DNBkO$X zC#dybku{wYuWodMxU|o7U$Ts z@ciiv^XEKu+tG0nV5uZ}fA<&9&dU9u9|D{R^W!R<++A`Z=>4;Wag#6sPD2PLt)A{e z1P7RlS5=9itB4i=FgSb~n(d4ad_uvej(*Z*Ua6>Q#zo8twc{>(ALtLv*U*&LWCyE{ zF21XW;~*7*<815-&X|575H!L%(j)#$@)rW|Y${6+vsTZh5!#81ipA=YkKj6ecLC;- z*X)>*q3BLWIDx{yyqji;obuU4ClS~(t^WqF5B~FQg|)Gyk+T;vbi?q z%>Eys7=WQcu3T0f=>m^dhQCK)oN#@6Rl>eZ17elI&x^^b#6^{2VK>A&LQ+77DZh&c zHCS`F;#z3?y{Jj(eaSvWYaiSzKY@Lm4DU-9jaGW&l_*Yw{75O^I5NdVKMnvtuPh}) zB5aP8v5hT?Y&YBuSS)a-H@XYD+aWO{qV$PlJ~8+l=Afo)O1~<23I_brhhU}R(f~jq zMgxTFako4$A)KX$T91M8JDWk-`fdNGfh&k-bwzw5CX*MC;X4|lQ!BGzyL%Z8nFL3v zC;{EoE_r=`u{tr9UffkPncB0JSd|1&xBl|Y><)4N{WTA1*znt6QsBGxYrL|Y7O-3p zy`P=^1UflG(WJY8lLHk}h5=vTYiRsG`S?G|yPVNjHe@w`WV#STw+7QQio3?D{+&&I zD=8tP$MA6j7ko@B!QzQ?OU)i089i|n1?wkC=Ze@9J=nRfdYtHEfQG}jl;2gRo*n&( ze24zq*$z~3fT@5SwmU>}y8PsCZ2#*=NTCE{Ki)!@mOmsqwFjP=L;5ZE+2b}rQUbe= z?DTYb*quh2&sL&#c7(Mw=Yg9~tB<&aLAUB3J``pDt%&%7W^%QoM%HNZ4zZmaHlGz*pC?oi*jsI2`8nBMl4okK2K`v5jD2LN0Y8$wGcv}iO^T(M1XwmZc%U!^=9FDpB z;ovxUs{e7k>D0dNeYfUyeiL@<7iQ!<{Zv9{IWYKZCgJ%(Lt|6kg7u)GsZ` zW;|a$t#vPHX-#q%StxbuvOf-H*+++tI?(|*zA0dlh(9%IPBV2U?ghFP886nrsAO6L z(OS-a$s>1RIvTa0_dZ=}y4r)P(M{Ros(f&HKO;Gu6ig$&N87&}(Nv?*%#$Dx^%=Kl zPyS`1ImRxT+to#Xs>cX4uOK)^@mQNZb*wOJ0OKsQ5*nGHds7mT(r828M+LBcISxis z;K6~+4l?(|3RpRVq~av83N<-%Gy<7hnV$+HES4niJ0{dDf?ob#OC=ka7%vCs&LuN` zw?ClPp1Yj37Mmfl&{V(0zHLJ&|;V)nFjurqpj(pGs((MALoSQ%k zpsPKn@~KMckAwQMzm+!de8}0SG1`^YY0ntY8mr-O+5rwlIi2EQVE2Ei-S2~#4bwSv z9og6^ow5LFhJupZDOCvN&9Wi)FC|VkX(SJWsgpZBL=5WW`xGU7xjYzH_gi2L{t^w7}N5Nu{5-U-8a=R+l=h(LwOAgk>Qk)7@O`pQYa2U3 z&juEZNHJ-$g&xWH(B)vPCyoXW`3~iAPz^Wa__G#$e&8Z-C(zkV^O9wqc^C@QWAJO- zCkt=*$XNJ3faOE#4`~?QHbE6!)1rT7FnUgX#`!&oG=FGMGwrVQW?iL*BwiG-MB0(5 zmx+@AQtt5(Cl7zT?0pA)PXN<~YR;h-$fNDFz;ndVV&{s~tV&&Db9-uE2f|@K&onpt zfsEn$doVrH`=2g*N7TfP9za zLtrnnvM4HYKA&(?#W?a&WOgOak| zpnK($m5%nY6>AeZNz^t3@hT(^&b=^|2Q!1QKprPe9pFnw9|$0LK3sMq;y2uC){DCB zw}|afb#18EMUkfm#3jcNnVabfG1mYEcbW~&fFS-7q?1z83=MB^5?v3wE+z%ZZyRjU zDYr>o7fhU{m`NQt5w_iUEO6`X^*nn`<>w1gcpS!R~f#r zDG#od-^47LxgA~5WEDtvXUI~)9bW*UA(!vB9z0JC0ujZv(@%3N_gNmG3uGQcZ`T&C zjw}}kxe1PWSLRb9th*urWDNfffkzbidtEzC5C>TqUikP6uh!s|7%`Na@cXc`JC~Av zY3Fpi5vM6lZ(l$1I0|&`#dugnD`AT9q3&?HCk=n5z%rrCEHgG0*qC9w)=xY<VwM zLkoAkGhytt-38n!)}sEP{PAeN*XYvVei#=Ye|dO1MNV-Ey|KlU6EP) zwcXh7lTMz)`?s?{(NEsxqJ8}tb_}O>WM;`r-PmPlegoV;0n$xqJGrumG=PI^3Gk&H zLjS?n_y;~Z-y~F^EB4^gwNb3c_W5Zq**mZ}|ANTz%A2=WV$>o_PF^8LUaNHL{RmYHiL@oCJZ@r>?1`8haG#Ihz zUQFJ;5XYX7$*JH8aDOUiPl|>mB{z`T8>d5HRg@XYC2NCS(i;v#j*_g2RO7iVV&8QC z!(L|vj6Gi9Uc8-52YwICwwoWnA#!2TFW^LPPWS1Rt0b$Gs>m-auI*R-THz%uw!`T* zL@eZ(<{gT>`nl@e3+H?Gx=ZpWS9l~Uk1AQtzSJmp3*%1b-d?vNGH1I&q@LyP$74jC zUr3QrK|78*EK1J3LI5c4rf9a%kuv_hSQ=OtBf3`y8Lq!KnYCAT$V=NR{O4H z^Ef3^#!09C7fqXsf-kLXFcN*U26Hjv1+gcm=FL{wli3~uv;4HLNlw^JrRX;{ee*x|8R-LHNK41tcu1LZ6?kaC~&g{L-U&?P_!Sbt?C_Xb^!* zVF^J=*BpN z+~!(%XC#bSMU*1?9-48HbM+o1Z)|k)QgqLm|Gf3Vb{0D2ft7-303pWI8VTdq6&#B> zi*v$;9UV}kh3)CSx`>1e-|9&No5wv%>(x|v9f+Pc_e#jqQc3xp_H&t`CmBvJZs?=) zgnG zGVF5&u}cZRUd)yK?a23o8MT|mR^xH9Pl<*7Cg!3CEY1?4(0*|fag7WHWBXKwXH$0eMk2nxO-7WAsWc@v}7xFA*+_v89 ziBG3mZG?PLgZt;tJng^AC#Aga3go8V^ivAxv6P&@e}b#XXIChEs1<`*N`ipZd}3Dn z>IZNU#?lmYLg&#(ekv1l?f`$H_S(yY;;)w?n9Qc+qXqlPqI6XuH=50 zWc$Eh{M15Op=v{GbRWoFz#|Pcc-~ASONZ&eyLk=ohRYCcs#yg0+@@;f0EDX}g{NuJ znYTLax9k+({2MybSzt(*#S?1A*Pg}wM~Sq0`3oE2{)ka1skNGQxWJq)i#_j@c{~_$ zOj#WrX)0@j<6CySX8oj$Gh*tV@m)iS1&(DXf4@Z)_=8eoM z<>J$&!5f*9US9@!Oc^a-^2vKF$1cA5zH2dlvNdKV`o!v@NS@Q}E~cw6ug>K_%W$z( zkDi!s`WGI~$HF?Db1K9$7BApdvb!m_^9gAkesjNnTUAW@3M(8C7Q|ePY`UWGXy2$u zb?9h&=@%^?1I%_5E4Ex_y{Y$d&xo%tKhlrRCv{H3JHigs%DIKN}wUb?{{yAHwFoE~YAlJJDL@KX*RBu@G- ziIb1OWN(c=l_psdhD61LHU7K>iW)kz&G2J&nI7-!K{b%M8ozk)|&F+!$A^N!m1B)G;`)XWsWO>v=z(-;?zZWV)}m{-gc$A-<9Y z{TL$MY%%Yv@ZlGdIo)>FtV`$XZ0?{t91HI53@yXTEF3ihqr zz;Daq?K{X}0DnDGKIqHt{Quhf@_#7Xu>BiJk)epnTG{I%QTC-$l5E*!r%=3-W%_0A3HI(j zqDQ_9Q$LvgBx{|Kj91o>)^gGR-#r>NugsKM7OE>Ww{FNl*F8}dk2q(Lm5`+|c={H7 z=!Zt(!0yguA!Y%zct=M~U)UkBG*Jx0B(5M@EfqB&sFGkywERmyJ_Mu7#w3@**rYVVfRl$0Hv1CF`m;!_*R_2}(;Jxaa+ z4cIOKM(Ezfi)^m?qMx0kG(8<>~Dh$f=tTVV~i1{1<574^@)kWe4 z*IYh;Sd1GZ_(odR<_e=!&%fD(Wz= zqTeI^w<8YFyC=q?KRGT5p_~}%XA3UY_8w0m7bg=I>snrA94RGEH=u+xJ`Jq^5Joo0)PwU66AQY5Rq#0{!G zsoU!Q7c?A(JwrUh0Xl5-Dt+7Edsy;#cjcuL>Y`hjF}6$}?^}gk8>(Bb;_>gb)QPzY zzo?sEgb{hB0NM_WwAjQL@Je%y|p_D_@=ijA%LrBKbq9)evu@mZK!EiBP% z`O@T+hSachzme-73I|0(%@lS4vHb~kb>gShPN#{gO-8bH`0-9tO9vY4%T^uV9(t2-QkGgv^26&oh{~@4c=Ot`?fych0t0OA=p{oE1|M`Ir=61|S)4 z=cnJ~R$(y=qv}kpOix3y14cqNuiDaTabZ0r(*++0alB0#USX^&2UdSe$Z`^dGkmn# zbj#h@mQ}JO%Nu3tbj!1^4^1^Vq%V{EWc7Q*ZjhEEGRuo1|0pX75oP0g;$)rU6>m1& z@8HM_*fs9NUR&VMjlC}_zhR2I0VcdHZMV%5t!#Nm{vyrfY_{a)5B0g5`!gYBAUIeA zgdRKW(6;L&q@`mnLw_25*>wlLq>?Q{>Qe^-bT4m~8eIPeAG0eb=E%~k51%Ooh#LSG z^W6O5o#Glhx?-~^ zR>wAs2r}+B+CK;J$vJoW{a%?5$%+BW^821$54w0njxRl!FKSxR&Abji-0`@1z#M!@kb0?Amnzy(U2so zu~jK?UiPrwSFeyrY$O$3x+MW1DBNyeFko6pY4!XDX^*1X0~)5U9iYP_9;}fHl*S3Q z5RD6|hs<(IPjJKJo}|z?0@uSvP#iEI|x%}e`%S?Je(UTyDrEb5K!weh-KHSy@)8-F> zJyukkf6AbN>(>EJEi*cW%wjipaiG>Hr|04Nacan0MhYT!YrOgMGuS;G-_39mHle{b z)gbi_pGrmv?wdOJW1@cR%Wvf>>w`4=6SsQZ{+!lB-u^KUTxWcPN%q`QDoiS{@{P6c{A=9Ki+XBo9}AXg|I(t;>EnBYEb|R4XoUy$DGnU`BdM`P47{ z!q`z1xD;FUcd~!xFd^V2W?(JP5-?!DTkE7qqRf9Gc_Pc6S7bn=&_vvigtL~8Dd+z~ z8>TLfZ$JCYp=bWH(iSF1q!KYAqVdlVP0YYbo@IW(UOF=G*1?E%>e4*v_8K5ZdPlww zM*5sL>Idu^95QCCK=R45E`6GzShET1MbNU}dPe&6LO63EFxymxWvl*Z{fp4~p2YE< z2}u%la+C-Vc)Tk0@#V}v!!bD@aO0j11nIKDaIy6+2rlX>!q3oVnLm0S#84<{;@sqw*QEgw7;ZnnpzKzyW)h`~cO2~g)B8}JjE1Z?Cqvcl0)QNZ{ zFR>gvySJ34HJGX^;2PSHkNe+%^UQN7a$C$@mLCr!*;nwe6kl48dlDhL*6vgonMi53 z9;2RF$)!lnXm{=8$mP`THZbi(0es6dL?hI49!Pq486fwvd7 zY*(0oy^Ii!BG16QWH@6tYArco8WA60Aa9zkBof3(o7}LpuO@x}hxS9RP@xi(=n!Jw zt{;puV}(#FFl^R|F3WoO{#ct+?9?<*pKuXgCYJl(?uZqz$jyMLFel7wZE+2`A#uh( zM8D!kjr#Kcm9QH7?9&T;8V@1_b7Ep4g(>U8Fk@x_`+-40HtA=1fK*EmW(}(oW_Dui zMPW-9K;||888Z$tE+<^M$*t!BH%;9H11YM8Z2p=tN#D62KDYR8{HuphDt0(v%g zO7I19dU42@mA3JiYW8U*0XN{EV%fr8@?bNb!lG~Y;g z-1tkb1R}nW8i#$@WAOA}i03k+FsgOzf)6u@QN!(8CdIVkDUxw5;{*82&|M%GXoAZD z2I-;ugYrs3Zq8f(Yt4qKzfK6_n-=F>6pkikeZ0moTVCg%TjGi42|*RzM4l0=`QuK= zh;SaSit#5(fZx0q+}-4Y^SoD{-F?(%Hhm%2Q*I~Jt`S*AGF;qJv;Yzl>l))YEK*u9t1tiJ(1DR1 znOmuz+Wti6eyX&?+s~d@hdyNQT~69V5&63M5JzB>(RXOz@clX|9sI?|4AW@9LE(K_ zO2vDL{KLQd*noyX30Zn#mxqlN}RW<(Nn8*MZ0HxxT7xxLTZmzt|g0Y?!t=5AXv&V#BrktOs3=v#+)mS7<{pJTcXT0Jx7mUr*#$wxFAfDzmD z#iUH+{`P~I4`Ni&w)mTyw8aF9)y+!j;6Q|KWx_mF4|F;st`@cwJpnc~?Avvi4iAJB z1oHOp3h53|Mzy{j(D5}9UWTpCz{0sih>Or)xm%Is}G<%7+sm!xua}O6ta&Mv@ z3E=`Ks{-yT8;GO^`v~H8Y$Wh79&NmmFIjD=G7D69%s}(7uSZOeV*YRnE=kH-Q42PM zc`LgBEzCqng>wy7l8Ae7_BMpTeT(K|C&Z7lV&9|iTTq*DNCc@eL&y%T)*RxTn0#`Dkdt021ccewiy0 z*HqlHau;w%)1=k~PF$-0{2CN7(BM!3?^_*4R63Y+U;|;xl+ZyHi!lAxp$nx|)kV%v zM+O%bN@G6O5Ko#UT>utaw9U;kcTeAUgh;rnEIu;z1r}=NNKDp7= zpLC}sv!>9<_S?Aqs2PKeWeJ%?hgzPo)$Or7iDCdHtG;PH5w~&7MQZHeYT!rbfPxa^ z#1=n%{943Y`ke@UBg@lo`;&6Q%@=vUAd-@KbcxNVZ1v3d(~|O@OZI&__uwNkwhZgM zq(rH%*{FM5w6?ct0HQ^c_QyWdB}LgyNkHM)C@}_0nbP5h2?u~dwte_W4Uhbfj)cM% z$t`ZMFlEqCUw3H5U*>qJR))aDRM7GO%pR89sJPrWm_PUtB=5ju4P7=O;?a+n!I^7- zz^Rfl-{~44{1-Z1`uL;8xlTx0V#Y$yfrY$RFh4YCGL#Jyb@6a_+MmLlel|jHizz_a^HtfnsQI zZGpOLAVY*z{iG3dv^n2YD&Al7Eb%zppEhA5=U|h-%*e@)4pd*WuvP)e_6IdYc^5tJ zy`}TK6E2wOUi5$<8JMYhS`TyvM$jP>R|Q3@-R()!efZ*o-&efMg`-HQt5@Bx= zP&YjN@bBV1-`u%7*TlV#LbTVY|36I=>kg}5~V*`X9vBqTy5KYlc z{-g1M8S^YuSGG(Se-w{#f#)(^y~P*GU^zqUfUyEvDGxP7(1S9tg+QQ;4HQo{qTmbLuOQ(HhPQmXIllzmt05cp;Oz^k#0BZANSLnon-0A}&9 z313keY<>gS8VDv1Z)g{Xtk~tuy>ITVX1cj2F9y0U$NHOO^n-90yekEWVf{+zwNw;S*Tx|JH@I&KPwgs zvg(ODpcfKBsY-T^qD9q;G zmm1Um2WnMjL#RA>3x62DaT#z@G4zi%N)4;IRYv3(SFPiP0B2|%6R=}x`r0A+p?arh z7@-B($~zzq*5dL0QvKbYi&cG@!X(NQ7SxZj3R5ssC^q?o?( zINaUPT@!QNzn#XTM{|w`v_5l$co3O|+^24{Re_f^Eb)?fn|Rw0o=1Qc*#A+5RmrUz zWh95ChnJlq*;b+&1^`3={K~hS@nY$FCV()I!vrdR0VNn|-^%)e-{T>ZGqd#FLd&S$ zdrt$VJ&^tDz%h-4$sS)1?h*UZ{v^hcppwz)M?6k>XO@K2MYUc%@caoAK@9I881?Ib zl(%s^(z=2pqXDXKKJQDcD#US@oVYUqy?50)Vb z7*Qjj0jG^MZ5LN33{Do_?8Ez9+o@K4&6qztk_AiUK%=M;4?I!kP^4i@lhkLXGQLq& z8ItAYq?I@Y(CDS2bC0%BHon4z=zX&9XLRCZA_9G`$jIUdnkS9Ub9OgrCrpG41rvdn z4!wL0+?yCyea1xwa01(0zgy%HdKwg0B;a|$Y{{aVF`BQo-pj85Qu(_Jfyl1W5R%i) zLQg}xo~P8y3mY{QJyP5ty86@gqw(p&r^3N9^wQG98zBn{^}qV_4(QvX zytCT5*(sIlbv4y0UIGJ|2S^1x?&ln%sa$f7M~5-$t{IA2ztiut;AM z#tvxPRGeEpiQOsBH|~gG3;v!Tqf7NVc;eTk_1~h2?CVCso5#JTuVG~W4Z+w*?h?ni zX6^u8_M!2mq}voXTOvy%kdt>0il<<8to}bpjtcC7rMP)nkaI?nN&sZ~m~HYqgi`w*^SU!rlmc za^Lo$a_6;5aM{d&XpWIqKTC-*W%h`_N2rvGSiPL&@2@Om0uZ015kLioYP-wiVgJW2nSugTr6 zSgjlgID%hNkWcgfl^|b2qiV2YA9x0t2uj^-PmNZ;W}3@(9{A_+>8s(5o0r~vP_JoL z3|*qn{5ouR+UR`r(SND5D5c^~ZJ;vv>jiS|58;n_zc9&54|HEOZyRA|qel-}_R2WBk)uG4|dj z9L6CEH7IZcCIz>a{2iFp4rtYgj@D{Kx7Io;M0xhms#w@S#jVRR%vdV41&eq+uZAg9 z8}auBUm6&GAI6J~Si-9b6i2!m<~=Drl$>M-)|>S607j;5g+HumcPlE5F|PzZf6O!z zINhbYP;rTlTJxI+s-ztovDzBgxLr}?yBa6P5tQhA6|Y1y!3d||N3wuN^7(k*rBzjC zb+Qe9pdnqhMC<+K9oWd!CYbRw9Riyb=M^E$;uH)~QnMa`(ufNo_#b+HyHD4VjbIM; zhw(X=u&k-t5!RI{9@y_Ix${mMLB%YXB&sv(#pLg*E`&P6IeK_5lU4RDL8BrXRecLq z?1|pK6W*R8U+e9{$*Fy4!U-c-q5|I!HuJ6=mUUqb$y*L^!i#iIVA@Qm+g{HnzVz}} z-|W4evp9%LC3>P-g^LBVm4M$IS#?4j&qaR;jjQ~E z1!jNlAZJ~h?>+u6SHQ@XUe-=f*i0udvI?rLl=vH#cJ5D11atJx5dL`Xy0OO-VwNxW z3d=SZyR32-IAVnDXke4_9jBhdHNINvJ+R>Wf`tj&e*@JqQ-kO0 zEqc>s!wvj2=_Yx6h)y6za6knsUxez@9nx!AFNX|se-JUEe5%8+m7UOb!rf1bZHJrU zXH(XyqKJoVbE?;BjQG2`cFM_UwEDuvP>u?)s%cJG$%%~fJrfcCtsyL(En-B|PCN26 ze|Nlmeu^O*W`#jnn7#Y9??qh(t&&Z#5j?)>6a}4mu|9(c&G3J+VBgw`9vLQoE9v>B z+#&fjH05)!#enV2>gJwXYda@z%Jo+au|j>&tRr7VlkBT<rDFBtY}1K1Dx@S?WCCxZa}hd!)m#NZ=^CLVkkrh~q)Ba4QQvG)I#_J2kE lUtj#6UBHz1|2juj*zf~l=QW$!{LpOEJ8r1+;;7@*{{aBbyo~?= diff --git a/docs/_static/llama-stack-spec.html b/docs/_static/llama-stack-spec.html deleted file mode 100644 index 9ddb070d7..000000000 --- a/docs/_static/llama-stack-spec.html +++ /dev/null @@ -1,18124 +0,0 @@ - - - - - - - OpenAPI specification - - - - - - - - - - - - - diff --git a/docs/_static/llama-stack-spec.yaml b/docs/_static/llama-stack-spec.yaml deleted file mode 100644 index 94dc5c0f9..000000000 --- a/docs/_static/llama-stack-spec.yaml +++ /dev/null @@ -1,13450 +0,0 @@ -openapi: 3.1.0 -info: - title: Llama Stack Specification - version: v1 - description: >- - This is the specification of the Llama Stack that provides - a set of endpoints and their corresponding interfaces that are - tailored to - best leverage Llama Models. -servers: - - url: http://any-hosted-llama-stack.com -paths: - /v1/datasetio/append-rows/{dataset_id}: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - DatasetIO - description: Append rows to a dataset. - parameters: - - name: dataset_id - in: path - description: >- - The ID of the dataset to append the rows to. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AppendRowsRequest' - required: true - /v1/inference/batch-chat-completion: - post: - responses: - '200': - description: >- - A BatchChatCompletionResponse with the full completions. - content: - application/json: - schema: - $ref: '#/components/schemas/BatchChatCompletionResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Generate chat completions for a batch of messages using the specified model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BatchChatCompletionRequest' - required: true - /v1/inference/batch-completion: - post: - responses: - '200': - description: >- - A BatchCompletionResponse with the full completions. - content: - application/json: - schema: - $ref: '#/components/schemas/BatchCompletionResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Generate completions for a batch of content using the specified model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BatchCompletionRequest' - required: true - /v1/post-training/job/cancel: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - PostTraining (Coming Soon) - description: Cancel a training job. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CancelTrainingJobRequest' - required: true - /v1/inference/chat-completion: - post: - responses: - '200': - description: >- - If stream=False, returns a ChatCompletionResponse with the full completion. - If stream=True, returns an SSE event stream of ChatCompletionResponseStreamChunk. - content: - application/json: - schema: - $ref: '#/components/schemas/ChatCompletionResponse' - text/event-stream: - schema: - $ref: '#/components/schemas/ChatCompletionResponseStreamChunk' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - BatchInference (Coming Soon) - description: >- - Generate a chat completion for the given messages using the specified model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ChatCompletionRequest' - required: true - /v1/inference/completion: - post: - responses: - '200': - description: >- - If stream=False, returns a CompletionResponse with the full completion. - If stream=True, returns an SSE event stream of CompletionResponseStreamChunk. - content: - application/json: - schema: - $ref: '#/components/schemas/CompletionResponse' - text/event-stream: - schema: - $ref: '#/components/schemas/CompletionResponseStreamChunk' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - BatchInference (Coming Soon) - description: >- - Generate a completion for the given content using the specified model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CompletionRequest' - required: true - /v1/agents: - get: - responses: - '200': - description: A PaginatedResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: List all agents. - parameters: - - name: start_index - in: query - description: The index to start the pagination from. - required: false - schema: - type: integer - - name: limit - in: query - description: The number of agents to return. - required: false - schema: - type: integer - post: - responses: - '200': - description: >- - An AgentCreateResponse with the agent ID. - content: - application/json: - schema: - $ref: '#/components/schemas/AgentCreateResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: >- - Create an agent with the given configuration. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAgentRequest' - required: true - /v1/agents/{agent_id}/session: - post: - responses: - '200': - description: An AgentSessionCreateResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/AgentSessionCreateResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Create a new session for an agent. - parameters: - - name: agent_id - in: path - description: >- - The ID of the agent to create the session for. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAgentSessionRequest' - required: true - /v1/agents/{agent_id}/session/{session_id}/turn: - post: - responses: - '200': - description: >- - If stream=False, returns a Turn object. If stream=True, returns an SSE - event stream of AgentTurnResponseStreamChunk. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - text/event-stream: - schema: - $ref: '#/components/schemas/AgentTurnResponseStreamChunk' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Create a new turn for an agent. - parameters: - - name: agent_id - in: path - description: >- - The ID of the agent to create the turn for. - required: true - schema: - type: string - - name: session_id - in: path - description: >- - The ID of the session to create the turn for. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAgentTurnRequest' - required: true - /v1/openai/v1/responses: - get: - responses: - '200': - description: A ListOpenAIResponseObject. - content: - application/json: - schema: - $ref: '#/components/schemas/ListOpenAIResponseObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: List all OpenAI responses. - parameters: - - name: after - in: query - description: The ID of the last response to return. - required: false - schema: - type: string - - name: limit - in: query - description: The number of responses to return. - required: false - schema: - type: integer - - name: model - in: query - description: The model to filter responses by. - required: false - schema: - type: string - - name: order - in: query - description: >- - The order to sort responses by when sorted by created_at ('asc' or 'desc'). - required: false - schema: - $ref: '#/components/schemas/Order' - post: - responses: - '200': - description: An OpenAIResponseObject. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIResponseObject' - text/event-stream: - schema: - $ref: '#/components/schemas/OpenAIResponseObjectStream' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Create a new OpenAI response. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateOpenaiResponseRequest' - required: true - /v1/prompts: - get: - responses: - '200': - description: >- - A ListPromptsResponse containing all prompts. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: List all prompts. - parameters: [] - post: - responses: - '200': - description: The created Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: Create a new prompt. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreatePromptRequest' - required: true - /v1/agents/{agent_id}: - get: - responses: - '200': - description: An Agent of the agent. - content: - application/json: - schema: - $ref: '#/components/schemas/Agent' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Describe an agent by its ID. - parameters: - - name: agent_id - in: path - description: ID of the agent. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: >- - Delete an agent by its ID and its associated sessions and turns. - parameters: - - name: agent_id - in: path - description: The ID of the agent to delete. - required: true - schema: - type: string - /v1/agents/{agent_id}/session/{session_id}: - get: - responses: - '200': - description: A Session. - content: - application/json: - schema: - $ref: '#/components/schemas/Session' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Retrieve an agent session by its ID. - parameters: - - name: session_id - in: path - description: The ID of the session to get. - required: true - schema: - type: string - - name: agent_id - in: path - description: >- - The ID of the agent to get the session for. - required: true - schema: - type: string - - name: turn_ids - in: query - description: >- - (Optional) List of turn IDs to filter the session by. - required: false - schema: - type: array - items: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: >- - Delete an agent session by its ID and its associated turns. - parameters: - - name: session_id - in: path - description: The ID of the session to delete. - required: true - schema: - type: string - - name: agent_id - in: path - description: >- - The ID of the agent to delete the session for. - required: true - schema: - type: string - /v1/openai/v1/responses/{response_id}: - get: - responses: - '200': - description: An OpenAIResponseObject. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIResponseObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Retrieve an OpenAI response by its ID. - parameters: - - name: response_id - in: path - description: >- - The ID of the OpenAI response to retrieve. - required: true - schema: - type: string - delete: - responses: - '200': - description: An OpenAIDeleteResponseObject - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIDeleteResponseObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Delete an OpenAI response by its ID. - parameters: - - name: response_id - in: path - description: The ID of the OpenAI response to delete. - required: true - schema: - type: string - /v1/prompts/{prompt_id}: - get: - responses: - '200': - description: A Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: >- - Get a prompt by its identifier and optional version. - parameters: - - name: prompt_id - in: path - description: The identifier of the prompt to get. - required: true - schema: - type: string - - name: version - in: query - description: >- - The version of the prompt to get (defaults to latest). - required: false - schema: - type: integer - post: - responses: - '200': - description: >- - The updated Prompt resource with incremented version. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: >- - Update an existing prompt (increments version). - parameters: - - name: prompt_id - in: path - description: The identifier of the prompt to update. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdatePromptRequest' - required: true - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: Delete a prompt. - parameters: - - name: prompt_id - in: path - description: The identifier of the prompt to delete. - required: true - schema: - type: string - /v1/inference/embeddings: - post: - responses: - '200': - description: >- - An array of embeddings, one for each content. Each embedding is a list - of floats. The dimensionality of the embedding is model-specific; you - can check model metadata using /models/{model_id}. - content: - application/json: - schema: - $ref: '#/components/schemas/EmbeddingsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Generate embeddings for content pieces using the specified model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/EmbeddingsRequest' - required: true - /v1/eval/benchmarks/{benchmark_id}/evaluations: - post: - responses: - '200': - description: >- - EvaluateResponse object containing generations and scores. - content: - application/json: - schema: - $ref: '#/components/schemas/EvaluateResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Eval - description: Evaluate a list of rows on a benchmark. - parameters: - - name: benchmark_id - in: path - description: >- - The ID of the benchmark to run the evaluation on. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/EvaluateRowsRequest' - required: true - /v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}: - get: - responses: - '200': - description: An AgentStepResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/AgentStepResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Retrieve an agent step by its ID. - parameters: - - name: agent_id - in: path - description: The ID of the agent to get the step for. - required: true - schema: - type: string - - name: session_id - in: path - description: >- - The ID of the session to get the step for. - required: true - schema: - type: string - - name: turn_id - in: path - description: The ID of the turn to get the step for. - required: true - schema: - type: string - - name: step_id - in: path - description: The ID of the step to get. - required: true - schema: - type: string - /v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}: - get: - responses: - '200': - description: A Turn. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: Retrieve an agent turn by its ID. - parameters: - - name: agent_id - in: path - description: The ID of the agent to get the turn for. - required: true - schema: - type: string - - name: session_id - in: path - description: >- - The ID of the session to get the turn for. - required: true - schema: - type: string - - name: turn_id - in: path - description: The ID of the turn to get. - required: true - schema: - type: string - /v1/eval/benchmarks/{benchmark_id}: - get: - responses: - '200': - description: A Benchmark. - content: - application/json: - schema: - $ref: '#/components/schemas/Benchmark' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Benchmarks - description: Get a benchmark by its ID. - parameters: - - name: benchmark_id - in: path - description: The ID of the benchmark to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Benchmarks - description: Unregister a benchmark. - parameters: - - name: benchmark_id - in: path - description: The ID of the benchmark to unregister. - required: true - schema: - type: string - /v1/openai/v1/chat/completions/{completion_id}: - get: - responses: - '200': - description: A OpenAICompletionWithInputMessages. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAICompletionWithInputMessages' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: Describe a chat completion by its ID. - parameters: - - name: completion_id - in: path - description: ID of the chat completion. - required: true - schema: - type: string - /v1/datasets/{dataset_id}: - get: - responses: - '200': - description: A Dataset. - content: - application/json: - schema: - $ref: '#/components/schemas/Dataset' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Datasets - description: Get a dataset by its ID. - parameters: - - name: dataset_id - in: path - description: The ID of the dataset to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Datasets - description: Unregister a dataset by its ID. - parameters: - - name: dataset_id - in: path - description: The ID of the dataset to unregister. - required: true - schema: - type: string - /v1/models/{model_id}: - get: - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - description: Get a model by its identifier. - parameters: - - name: model_id - in: path - description: The identifier of the model to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - description: Unregister a model. - parameters: - - name: model_id - in: path - description: >- - The identifier of the model to unregister. - required: true - schema: - type: string - /v1/scoring-functions/{scoring_fn_id}: - get: - responses: - '200': - description: A ScoringFn. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoringFn' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - description: Get a scoring function by its ID. - parameters: - - name: scoring_fn_id - in: path - description: The ID of the scoring function to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - description: Unregister a scoring function. - parameters: - - name: scoring_fn_id - in: path - description: >- - The ID of the scoring function to unregister. - required: true - schema: - type: string - /v1/shields/{identifier}: - get: - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - description: Get a shield by its identifier. - parameters: - - name: identifier - in: path - description: The identifier of the shield to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - description: Unregister a shield. - parameters: - - name: identifier - in: path - description: >- - The identifier of the shield to unregister. - required: true - schema: - type: string - /v1/telemetry/traces/{trace_id}/spans/{span_id}: - get: - responses: - '200': - description: A Span. - content: - application/json: - schema: - $ref: '#/components/schemas/Span' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Get a span by its ID. - parameters: - - name: trace_id - in: path - description: >- - The ID of the trace to get the span from. - required: true - schema: - type: string - - name: span_id - in: path - description: The ID of the span to get. - required: true - schema: - type: string - /v1/telemetry/spans/{span_id}/tree: - post: - responses: - '200': - description: A QuerySpanTreeResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QuerySpanTreeResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Get a span tree by its ID. - parameters: - - name: span_id - in: path - description: The ID of the span to get the tree from. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GetSpanTreeRequest' - required: true - /v1/tools/{tool_name}: - get: - responses: - '200': - description: A Tool. - content: - application/json: - schema: - $ref: '#/components/schemas/Tool' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - description: Get a tool by its name. - parameters: - - name: tool_name - in: path - description: The name of the tool to get. - required: true - schema: - type: string - /v1/toolgroups/{toolgroup_id}: - get: - responses: - '200': - description: A ToolGroup. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolGroup' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - description: Get a tool group by its ID. - parameters: - - name: toolgroup_id - in: path - description: The ID of the tool group to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - description: Unregister a tool group. - parameters: - - name: toolgroup_id - in: path - description: The ID of the tool group to unregister. - required: true - schema: - type: string - /v1/telemetry/traces/{trace_id}: - get: - responses: - '200': - description: A Trace. - content: - application/json: - schema: - $ref: '#/components/schemas/Trace' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Get a trace by its ID. - parameters: - - name: trace_id - in: path - description: The ID of the trace to get. - required: true - schema: - type: string - /v1/post-training/job/artifacts: - get: - responses: - '200': - description: A PostTrainingJobArtifactsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - PostTraining (Coming Soon) - description: Get the artifacts of a training job. - parameters: - - name: job_uuid - in: query - description: >- - The UUID of the job to get the artifacts of. - required: true - schema: - type: string - /v1/post-training/job/status: - get: - responses: - '200': - description: A PostTrainingJobStatusResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJobStatusResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - PostTraining (Coming Soon) - description: Get the status of a training job. - parameters: - - name: job_uuid - in: query - description: >- - The UUID of the job to get the status of. - required: true - schema: - type: string - /v1/post-training/jobs: - get: - responses: - '200': - description: A ListPostTrainingJobsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPostTrainingJobsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - PostTraining (Coming Soon) - description: Get all training jobs. - parameters: [] - /v1/vector-dbs/{vector_db_id}: - get: - responses: - '200': - description: A VectorDB. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorDB' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorDBs - description: Get a vector database by its identifier. - parameters: - - name: vector_db_id - in: path - description: >- - The identifier of the vector database to get. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorDBs - description: Unregister a vector database. - parameters: - - name: vector_db_id - in: path - description: >- - The identifier of the vector database to unregister. - required: true - schema: - type: string - /v1/health: - get: - responses: - '200': - description: >- - Health information indicating if the service is operational. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - description: >- - Get the current health status of the service. - parameters: [] - /v1/tool-runtime/rag-tool/insert: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - description: >- - Index documents so they can be used by the RAG system. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InsertRequest' - required: true - /v1/vector-io/insert: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Insert chunks into a vector database. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InsertChunksRequest' - required: true - /v1/providers/{provider_id}: - get: - responses: - '200': - description: >- - A ProviderInfo object containing the provider's details. - content: - application/json: - schema: - $ref: '#/components/schemas/ProviderInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Providers - description: >- - Get detailed information about a specific provider. - parameters: - - name: provider_id - in: path - description: The ID of the provider to inspect. - required: true - schema: - type: string - /v1/tool-runtime/invoke: - post: - responses: - '200': - description: A ToolInvocationResult. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolInvocationResult' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - description: Run a tool with the given arguments. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InvokeToolRequest' - required: true - /v1/datasetio/iterrows/{dataset_id}: - get: - responses: - '200': - description: A PaginatedResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - DatasetIO - description: >- - Get a paginated list of rows from a dataset. - - Uses offset-based pagination where: - - - start_index: The starting index (0-based). If None, starts from beginning. - - - limit: Number of items to return. If None or -1, returns all items. - - - The response includes: - - - data: List of items for the current page. - - - has_more: Whether there are more items available after this set. - parameters: - - name: dataset_id - in: path - description: >- - The ID of the dataset to get the rows from. - required: true - schema: - type: string - - name: start_index - in: query - description: >- - Index into dataset for the first row to get. Get all rows if None. - required: false - schema: - type: integer - - name: limit - in: query - description: The number of rows to get. - required: false - schema: - type: integer - /v1/eval/benchmarks/{benchmark_id}/jobs/{job_id}: - get: - responses: - '200': - description: The status of the evaluation job. - content: - application/json: - schema: - $ref: '#/components/schemas/Job' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Eval - description: Get the status of a job. - parameters: - - name: benchmark_id - in: path - description: >- - The ID of the benchmark to run the evaluation on. - required: true - schema: - type: string - - name: job_id - in: path - description: The ID of the job to get the status of. - required: true - schema: - type: string - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Eval - description: Cancel a job. - parameters: - - name: benchmark_id - in: path - description: >- - The ID of the benchmark to run the evaluation on. - required: true - schema: - type: string - - name: job_id - in: path - description: The ID of the job to cancel. - required: true - schema: - type: string - /v1/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result: - get: - responses: - '200': - description: The result of the job. - content: - application/json: - schema: - $ref: '#/components/schemas/EvaluateResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Eval - description: Get the result of a job. - parameters: - - name: benchmark_id - in: path - description: >- - The ID of the benchmark to run the evaluation on. - required: true - schema: - type: string - - name: job_id - in: path - description: The ID of the job to get the result of. - required: true - schema: - type: string - /v1/agents/{agent_id}/sessions: - get: - responses: - '200': - description: A PaginatedResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: List all session(s) of a given agent. - parameters: - - name: agent_id - in: path - description: >- - The ID of the agent to list sessions for. - required: true - schema: - type: string - - name: start_index - in: query - description: The index to start the pagination from. - required: false - schema: - type: integer - - name: limit - in: query - description: The number of sessions to return. - required: false - schema: - type: integer - /v1/eval/benchmarks: - get: - responses: - '200': - description: A ListBenchmarksResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListBenchmarksResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Benchmarks - description: List all benchmarks. - parameters: [] - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Benchmarks - description: Register a benchmark. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterBenchmarkRequest' - required: true - /v1/openai/v1/chat/completions: - get: - responses: - '200': - description: A ListOpenAIChatCompletionResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListOpenAIChatCompletionResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: List all chat completions. - parameters: - - name: after - in: query - description: >- - The ID of the last chat completion to return. - required: false - schema: - type: string - - name: limit - in: query - description: >- - The maximum number of chat completions to return. - required: false - schema: - type: integer - - name: model - in: query - description: The model to filter by. - required: false - schema: - type: string - - name: order - in: query - description: >- - The order to sort the chat completions by: "asc" or "desc". Defaults to - "desc". - required: false - schema: - $ref: '#/components/schemas/Order' - post: - responses: - '200': - description: An OpenAIChatCompletion. - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/OpenAIChatCompletion' - - $ref: '#/components/schemas/OpenAIChatCompletionChunk' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Generate an OpenAI-compatible chat completion for the given messages using - the specified model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiChatCompletionRequest' - required: true - /v1/datasets: - get: - responses: - '200': - description: A ListDatasetsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListDatasetsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Datasets - description: List all datasets. - parameters: [] - post: - responses: - '200': - description: A Dataset. - content: - application/json: - schema: - $ref: '#/components/schemas/Dataset' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Datasets - description: Register a new dataset. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterDatasetRequest' - required: true - /v1/models: - get: - responses: - '200': - description: A ListModelsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListModelsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - description: List all models. - parameters: [] - post: - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - description: Register a model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterModelRequest' - required: true - /v1/openai/v1/responses/{response_id}/input_items: - get: - responses: - '200': - description: An ListOpenAIResponseInputItem. - content: - application/json: - schema: - $ref: '#/components/schemas/ListOpenAIResponseInputItem' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: >- - List input items for a given OpenAI response. - parameters: - - name: response_id - in: path - description: >- - The ID of the response to retrieve input items for. - required: true - schema: - type: string - - name: after - in: query - description: >- - An item ID to list items after, used for pagination. - required: false - schema: - type: string - - name: before - in: query - description: >- - An item ID to list items before, used for pagination. - required: false - schema: - type: string - - name: include - in: query - description: >- - Additional fields to include in the response. - required: false - schema: - type: array - items: - type: string - - name: limit - in: query - description: >- - A limit on the number of objects to be returned. Limit can range between - 1 and 100, and the default is 20. - required: false - schema: - type: integer - - name: order - in: query - description: >- - The order to return the input items in. Default is desc. - required: false - schema: - $ref: '#/components/schemas/Order' - /v1/prompts/{prompt_id}/versions: - get: - responses: - '200': - description: >- - A ListPromptsResponse containing all versions of the prompt. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: List all versions of a specific prompt. - parameters: - - name: prompt_id - in: path - description: >- - The identifier of the prompt to list versions for. - required: true - schema: - type: string - /v1/providers: - get: - responses: - '200': - description: >- - A ListProvidersResponse containing information about all providers. - content: - application/json: - schema: - $ref: '#/components/schemas/ListProvidersResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Providers - description: List all available providers. - parameters: [] - /v1/inspect/routes: - get: - responses: - '200': - description: >- - Response containing information about all available routes. - content: - application/json: - schema: - $ref: '#/components/schemas/ListRoutesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - description: >- - List all available API routes with their methods and implementing providers. - parameters: [] - /v1/tool-runtime/list-tools: - get: - responses: - '200': - description: A ListToolDefsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolDefsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - description: List all tools in the runtime. - parameters: - - name: tool_group_id - in: query - description: >- - The ID of the tool group to list tools for. - required: false - schema: - type: string - - name: mcp_endpoint - in: query - description: >- - The MCP endpoint to use for the tool group. - required: false - schema: - $ref: '#/components/schemas/URL' - /v1/scoring-functions: - get: - responses: - '200': - description: A ListScoringFunctionsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListScoringFunctionsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - description: List all scoring functions. - parameters: [] - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - description: Register a scoring function. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterScoringFunctionRequest' - required: true - /v1/shields: - get: - responses: - '200': - description: A ListShieldsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListShieldsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - description: List all shields. - parameters: [] - post: - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - description: Register a shield. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterShieldRequest' - required: true - /v1/toolgroups: - get: - responses: - '200': - description: A ListToolGroupsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolGroupsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - description: List tool groups with optional provider. - parameters: [] - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - description: Register a tool group. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterToolGroupRequest' - required: true - /v1/tools: - get: - responses: - '200': - description: A ListToolsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - description: List tools with optional tool group. - parameters: - - name: toolgroup_id - in: query - description: >- - The ID of the tool group to list tools for. - required: false - schema: - type: string - /v1/vector-dbs: - get: - responses: - '200': - description: A ListVectorDBsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListVectorDBsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorDBs - description: List all vector databases. - parameters: [] - post: - responses: - '200': - description: A VectorDB. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorDB' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorDBs - description: Register a vector database. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterVectorDbRequest' - required: true - /v1/telemetry/events: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Log an event. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/LogEventRequest' - required: true - /v1/openai/v1/vector_stores/{vector_store_id}/files: - get: - responses: - '200': - description: >- - A VectorStoreListFilesResponse containing the list of files. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreListFilesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: List files in a vector store. - parameters: - - name: vector_store_id - in: path - description: >- - The ID of the vector store to list files from. - required: true - schema: - type: string - - name: limit - in: query - description: >- - (Optional) A limit on the number of objects to be returned. Limit can - range between 1 and 100, and the default is 20. - required: false - schema: - type: integer - - name: order - in: query - description: >- - (Optional) Sort order by the `created_at` timestamp of the objects. `asc` - for ascending order and `desc` for descending order. - required: false - schema: - type: string - - name: after - in: query - description: >- - (Optional) A cursor for use in pagination. `after` is an object ID that - defines your place in the list. - required: false - schema: - type: string - - name: before - in: query - description: >- - (Optional) A cursor for use in pagination. `before` is an object ID that - defines your place in the list. - required: false - schema: - type: string - - name: filter - in: query - description: >- - (Optional) Filter by file status to only return files with the specified - status. - required: false - schema: - $ref: '#/components/schemas/VectorStoreFileStatus' - post: - responses: - '200': - description: >- - A VectorStoreFileObject representing the attached file. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Attach a file to a vector store. - parameters: - - name: vector_store_id - in: path - description: >- - The ID of the vector store to attach the file to. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiAttachFileToVectorStoreRequest' - required: true - /v1/openai/v1/completions: - post: - responses: - '200': - description: An OpenAICompletion. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAICompletion' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Generate an OpenAI-compatible completion for the given prompt using the specified - model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiCompletionRequest' - required: true - /v1/openai/v1/vector_stores: - get: - responses: - '200': - description: >- - A VectorStoreListResponse containing the list of vector stores. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreListResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Returns a list of vector stores. - parameters: - - name: limit - in: query - description: >- - A limit on the number of objects to be returned. Limit can range between - 1 and 100, and the default is 20. - required: false - schema: - type: integer - - name: order - in: query - description: >- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending - order and `desc` for descending order. - required: false - schema: - type: string - - name: after - in: query - description: >- - A cursor for use in pagination. `after` is an object ID that defines your - place in the list. - required: false - schema: - type: string - - name: before - in: query - description: >- - A cursor for use in pagination. `before` is an object ID that defines - your place in the list. - required: false - schema: - type: string - post: - responses: - '200': - description: >- - A VectorStoreObject representing the created vector store. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Creates a vector store. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiCreateVectorStoreRequest' - required: true - /v1/openai/v1/files/{file_id}: - get: - responses: - '200': - description: >- - An OpenAIFileObject containing file information. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Files - description: >- - Returns information about a specific file. - parameters: - - name: file_id - in: path - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - delete: - responses: - '200': - description: >- - An OpenAIFileDeleteResponse indicating successful deletion. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFileDeleteResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Files - description: Delete a file. - parameters: - - name: file_id - in: path - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - /v1/openai/v1/vector_stores/{vector_store_id}: - get: - responses: - '200': - description: >- - A VectorStoreObject representing the vector store. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Retrieves a vector store. - parameters: - - name: vector_store_id - in: path - description: The ID of the vector store to retrieve. - required: true - schema: - type: string - post: - responses: - '200': - description: >- - A VectorStoreObject representing the updated vector store. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Updates a vector store. - parameters: - - name: vector_store_id - in: path - description: The ID of the vector store to update. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiUpdateVectorStoreRequest' - required: true - delete: - responses: - '200': - description: >- - A VectorStoreDeleteResponse indicating the deletion status. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreDeleteResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Delete a vector store. - parameters: - - name: vector_store_id - in: path - description: The ID of the vector store to delete. - required: true - schema: - type: string - /v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}: - get: - responses: - '200': - description: >- - A VectorStoreFileObject representing the file. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Retrieves a vector store file. - parameters: - - name: vector_store_id - in: path - description: >- - The ID of the vector store containing the file to retrieve. - required: true - schema: - type: string - - name: file_id - in: path - description: The ID of the file to retrieve. - required: true - schema: - type: string - post: - responses: - '200': - description: >- - A VectorStoreFileObject representing the updated file. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Updates a vector store file. - parameters: - - name: vector_store_id - in: path - description: >- - The ID of the vector store containing the file to update. - required: true - schema: - type: string - - name: file_id - in: path - description: The ID of the file to update. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiUpdateVectorStoreFileRequest' - required: true - delete: - responses: - '200': - description: >- - A VectorStoreFileDeleteResponse indicating the deletion status. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileDeleteResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Delete a vector store file. - parameters: - - name: vector_store_id - in: path - description: >- - The ID of the vector store containing the file to delete. - required: true - schema: - type: string - - name: file_id - in: path - description: The ID of the file to delete. - required: true - schema: - type: string - /v1/openai/v1/embeddings: - post: - responses: - '200': - description: >- - An OpenAIEmbeddingsResponse containing the embeddings. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIEmbeddingsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Generate OpenAI-compatible embeddings for the given input using the specified - model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiEmbeddingsRequest' - required: true - /v1/openai/v1/files: - get: - responses: - '200': - description: >- - An ListOpenAIFileResponse containing the list of files. - content: - application/json: - schema: - $ref: '#/components/schemas/ListOpenAIFileResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Files - description: >- - Returns a list of files that belong to the user's organization. - parameters: - - name: after - in: query - description: >- - A cursor for use in pagination. `after` is an object ID that defines your - place in the list. For instance, if you make a list request and receive - 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo - in order to fetch the next page of the list. - required: false - schema: - type: string - - name: limit - in: query - description: >- - A limit on the number of objects to be returned. Limit can range between - 1 and 10,000, and the default is 10,000. - required: false - schema: - type: integer - - name: order - in: query - description: >- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending - order and `desc` for descending order. - required: false - schema: - $ref: '#/components/schemas/Order' - - name: purpose - in: query - description: >- - Only return files with the given purpose. - required: false - schema: - $ref: '#/components/schemas/OpenAIFilePurpose' - post: - responses: - '200': - description: >- - An OpenAIFileObject representing the uploaded file. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Files - description: >- - Upload a file that can be used across various endpoints. - - The file upload should be a multipart form request with: - - - file: The File object (not file name) to be uploaded. - - - purpose: The intended purpose of the uploaded file. - - - expires_after: Optional form values describing expiration for the file. - Expected expires_after[anchor] = "created_at", expires_after[seconds] = . - Seconds must be between 3600 and 2592000 (1 hour to 30 days). - parameters: [] - requestBody: - content: - multipart/form-data: - schema: - type: object - properties: - file: - type: string - format: binary - purpose: - $ref: '#/components/schemas/OpenAIFilePurpose' - expires_after_anchor: - oneOf: - - type: string - - type: 'null' - expires_after_seconds: - oneOf: - - type: integer - - type: 'null' - required: - - file - - purpose - - expires_after_anchor - - expires_after_seconds - required: true - /v1/openai/v1/models: - get: - responses: - '200': - description: A OpenAIListModelsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIListModelsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - description: List models using the OpenAI API. - parameters: [] - /v1/openai/v1/files/{file_id}/content: - get: - responses: - '200': - description: >- - The raw file content as a binary response. - content: - application/json: - schema: - $ref: '#/components/schemas/Response' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Files - description: >- - Returns the contents of the specified file. - parameters: - - name: file_id - in: path - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - /v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}/content: - get: - responses: - '200': - description: >- - A list of InterleavedContent representing the file contents. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileContentsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: >- - Retrieves the contents of a vector store file. - parameters: - - name: vector_store_id - in: path - description: >- - The ID of the vector store containing the file to retrieve. - required: true - schema: - type: string - - name: file_id - in: path - description: The ID of the file to retrieve. - required: true - schema: - type: string - /v1/openai/v1/vector_stores/{vector_store_id}/search: - post: - responses: - '200': - description: >- - A VectorStoreSearchResponse containing the search results. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreSearchResponsePage' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: >- - Search for chunks in a vector store. - - Searches a vector store for relevant chunks based on a query and optional - file attribute filters. - parameters: - - name: vector_store_id - in: path - description: The ID of the vector store to search. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiSearchVectorStoreRequest' - required: true - /v1/post-training/preference-optimize: - post: - responses: - '200': - description: A PostTrainingJob. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJob' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - PostTraining (Coming Soon) - description: Run preference optimization of a model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PreferenceOptimizeRequest' - required: true - /v1/tool-runtime/rag-tool/query: - post: - responses: - '200': - description: >- - RAGQueryResult containing the retrieved content and metadata - content: - application/json: - schema: - $ref: '#/components/schemas/RAGQueryResult' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - description: >- - Query the RAG system for context; typically invoked by the agent. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryRequest' - required: true - /v1/vector-io/query: - post: - responses: - '200': - description: A QueryChunksResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QueryChunksResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - description: Query chunks from a vector database. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryChunksRequest' - required: true - /v1/telemetry/metrics/{metric_name}: - post: - responses: - '200': - description: A QueryMetricsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QueryMetricsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Query metrics. - parameters: - - name: metric_name - in: path - description: The name of the metric to query. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryMetricsRequest' - required: true - /v1/telemetry/spans: - post: - responses: - '200': - description: A QuerySpansResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QuerySpansResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Query spans. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QuerySpansRequest' - required: true - /v1/telemetry/traces: - post: - responses: - '200': - description: A QueryTracesResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QueryTracesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Query traces. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryTracesRequest' - required: true - /v1/inference/rerank: - post: - responses: - '200': - description: >- - RerankResponse with indices sorted by relevance score (descending). - content: - application/json: - schema: - $ref: '#/components/schemas/RerankResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - description: >- - Rerank a list of documents based on their relevance to a query. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RerankRequest' - required: true - /v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume: - post: - responses: - '200': - description: >- - A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk - objects. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - text/event-stream: - schema: - $ref: '#/components/schemas/AgentTurnResponseStreamChunk' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Agents - description: >- - Resume an agent turn with executed tool call responses. - - When a Turn has the status `awaiting_input` due to pending input from client - side tool calls, this endpoint can be used to submit the outputs from the - tool calls once they are ready. - parameters: - - name: agent_id - in: path - description: The ID of the agent to resume. - required: true - schema: - type: string - - name: session_id - in: path - description: The ID of the session to resume. - required: true - schema: - type: string - - name: turn_id - in: path - description: The ID of the turn to resume. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ResumeAgentTurnRequest' - required: true - /v1/eval/benchmarks/{benchmark_id}/jobs: - post: - responses: - '200': - description: >- - The job that was created to run the evaluation. - content: - application/json: - schema: - $ref: '#/components/schemas/Job' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Eval - description: Run an evaluation on a benchmark. - parameters: - - name: benchmark_id - in: path - description: >- - The ID of the benchmark to run the evaluation on. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunEvalRequest' - required: true - /v1/openai/v1/moderations: - post: - responses: - '200': - description: A moderation object. - content: - application/json: - schema: - $ref: '#/components/schemas/ModerationObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Safety - description: >- - Classifies if text and/or image inputs are potentially harmful. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunModerationRequest' - required: true - /v1/safety/run-shield: - post: - responses: - '200': - description: A RunShieldResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/RunShieldResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Safety - description: Run a shield. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunShieldRequest' - required: true - /v1/telemetry/spans/export: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Telemetry - description: Save spans to a dataset. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SaveSpansToDatasetRequest' - required: true - /v1/scoring/score: - post: - responses: - '200': - description: >- - A ScoreResponse object containing rows and aggregated results. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Scoring - description: Score a list of rows. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreRequest' - required: true - /v1/scoring/score-batch: - post: - responses: - '200': - description: A ScoreBatchResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Scoring - description: Score a batch of rows. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchRequest' - required: true - /v1/prompts/{prompt_id}/set-default-version: - post: - responses: - '200': - description: >- - The prompt with the specified version now set as default. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - description: >- - Set which version of a prompt should be the default in get_prompt (latest). - parameters: - - name: prompt_id - in: path - description: The identifier of the prompt. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SetDefaultVersionRequest' - required: true - /v1/post-training/supervised-fine-tune: - post: - responses: - '200': - description: A PostTrainingJob. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJob' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - PostTraining (Coming Soon) - description: Run supervised fine-tuning of a model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SupervisedFineTuneRequest' - required: true - /v1/synthetic-data-generation/generate: - post: - responses: - '200': - description: >- - Response containing filtered synthetic data samples and optional statistics - content: - application/json: - schema: - $ref: '#/components/schemas/SyntheticDataGenerationResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - SyntheticDataGeneration (Coming Soon) - description: >- - Generate synthetic data based on input dialogs and apply filtering. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SyntheticDataGenerateRequest' - required: true - /v1/version: - get: - responses: - '200': - description: >- - Version information containing the service version number. - content: - application/json: - schema: - $ref: '#/components/schemas/VersionInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - description: Get the version of the service. - parameters: [] -jsonSchemaDialect: >- - https://json-schema.org/draft/2020-12/schema -components: - schemas: - Error: - type: object - properties: - status: - type: integer - description: HTTP status code - title: - type: string - description: >- - Error title, a short summary of the error which is invariant for an error - type - detail: - type: string - description: >- - Error detail, a longer human-readable description of the error - instance: - type: string - description: >- - (Optional) A URL which can be used to retrieve more information about - the specific occurrence of the error - additionalProperties: false - required: - - status - - title - - detail - title: Error - description: >- - Error response from the API. Roughly follows RFC 7807. - AppendRowsRequest: - type: object - properties: - rows: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The rows to append to the dataset. - additionalProperties: false - required: - - rows - title: AppendRowsRequest - CompletionMessage: - type: object - properties: - role: - type: string - const: assistant - default: assistant - description: >- - Must be "assistant" to identify this as the model's response - content: - $ref: '#/components/schemas/InterleavedContent' - description: The content of the model's response - stop_reason: - type: string - enum: - - end_of_turn - - end_of_message - - out_of_tokens - description: >- - Reason why the model stopped generating. Options are: - `StopReason.end_of_turn`: - The model finished generating the entire response. - `StopReason.end_of_message`: - The model finished generating but generated a partial response -- usually, - a tool call. The user may call the tool and continue the conversation - with the tool's response. - `StopReason.out_of_tokens`: The model ran - out of token budget. - tool_calls: - type: array - items: - $ref: '#/components/schemas/ToolCall' - description: >- - List of tool calls. Each tool call is a ToolCall object. - additionalProperties: false - required: - - role - - content - - stop_reason - title: CompletionMessage - description: >- - A message containing the model's (assistant) response in a chat conversation. - GrammarResponseFormat: - type: object - properties: - type: - type: string - enum: - - json_schema - - grammar - description: >- - Must be "grammar" to identify this format type - const: grammar - default: grammar - bnf: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The BNF grammar specification the response should conform to - additionalProperties: false - required: - - type - - bnf - title: GrammarResponseFormat - description: >- - Configuration for grammar-guided response generation. - GreedySamplingStrategy: - type: object - properties: - type: - type: string - const: greedy - default: greedy - description: >- - Must be "greedy" to identify this sampling strategy - additionalProperties: false - required: - - type - title: GreedySamplingStrategy - description: >- - Greedy sampling strategy that selects the highest probability token at each - step. - ImageContentItem: - type: object - properties: - type: - type: string - const: image - default: image - description: >- - Discriminator type of the content item. Always "image" - image: - type: object - properties: - url: - $ref: '#/components/schemas/URL' - description: >- - A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - data: - type: string - contentEncoding: base64 - description: base64 encoded image data as string - additionalProperties: false - description: >- - Image as a base64 encoded string or an URL - additionalProperties: false - required: - - type - - image - title: ImageContentItem - description: A image content item - InterleavedContent: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - InterleavedContentItem: - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - discriminator: - propertyName: type - mapping: - image: '#/components/schemas/ImageContentItem' - text: '#/components/schemas/TextContentItem' - JsonSchemaResponseFormat: - type: object - properties: - type: - type: string - enum: - - json_schema - - grammar - description: >- - Must be "json_schema" to identify this format type - const: json_schema - default: json_schema - json_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The JSON schema the response should conform to. In a Python SDK, this - is often a `pydantic` model. - additionalProperties: false - required: - - type - - json_schema - title: JsonSchemaResponseFormat - description: >- - Configuration for JSON schema-guided response generation. - Message: - oneOf: - - $ref: '#/components/schemas/UserMessage' - - $ref: '#/components/schemas/SystemMessage' - - $ref: '#/components/schemas/ToolResponseMessage' - - $ref: '#/components/schemas/CompletionMessage' - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/UserMessage' - system: '#/components/schemas/SystemMessage' - tool: '#/components/schemas/ToolResponseMessage' - assistant: '#/components/schemas/CompletionMessage' - ResponseFormat: - oneOf: - - $ref: '#/components/schemas/JsonSchemaResponseFormat' - - $ref: '#/components/schemas/GrammarResponseFormat' - discriminator: - propertyName: type - mapping: - json_schema: '#/components/schemas/JsonSchemaResponseFormat' - grammar: '#/components/schemas/GrammarResponseFormat' - SamplingParams: - type: object - properties: - strategy: - $ref: '#/components/schemas/SamplingStrategy' - description: The sampling strategy. - max_tokens: - type: integer - default: 0 - description: >- - The maximum number of tokens that can be generated in the completion. - The token count of your prompt plus max_tokens cannot exceed the model's - context length. - repetition_penalty: - type: number - default: 1.0 - description: >- - Number between -2.0 and 2.0. Positive values penalize new tokens based - on whether they appear in the text so far, increasing the model's likelihood - to talk about new topics. - stop: - type: array - items: - type: string - description: >- - Up to 4 sequences where the API will stop generating further tokens. The - returned text will not contain the stop sequence. - additionalProperties: false - required: - - strategy - title: SamplingParams - description: Sampling parameters. - SamplingStrategy: - oneOf: - - $ref: '#/components/schemas/GreedySamplingStrategy' - - $ref: '#/components/schemas/TopPSamplingStrategy' - - $ref: '#/components/schemas/TopKSamplingStrategy' - discriminator: - propertyName: type - mapping: - greedy: '#/components/schemas/GreedySamplingStrategy' - top_p: '#/components/schemas/TopPSamplingStrategy' - top_k: '#/components/schemas/TopKSamplingStrategy' - SystemMessage: - type: object - properties: - role: - type: string - const: system - default: system - description: >- - Must be "system" to identify this as a system message - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the "system prompt". If multiple system messages are provided, - they are concatenated. The underlying Llama Stack code may also add other - system messages (for example, for formatting tool definitions). - additionalProperties: false - required: - - role - - content - title: SystemMessage - description: >- - A system message providing instructions or context to the model. - TextContentItem: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Discriminator type of the content item. Always "text" - text: - type: string - description: Text content - additionalProperties: false - required: - - type - - text - title: TextContentItem - description: A text content item - ToolCall: - type: object - properties: - call_id: - type: string - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - arguments: - oneOf: - - type: string - - type: object - additionalProperties: - oneOf: - - type: string - - type: integer - - type: number - - type: boolean - - type: 'null' - - type: array - items: - oneOf: - - type: string - - type: integer - - type: number - - type: boolean - - type: 'null' - - type: object - additionalProperties: - oneOf: - - type: string - - type: integer - - type: number - - type: boolean - - type: 'null' - arguments_json: - type: string - additionalProperties: false - required: - - call_id - - tool_name - - arguments - title: ToolCall - ToolConfig: - type: object - properties: - tool_choice: - oneOf: - - type: string - enum: - - auto - - required - - none - title: ToolChoice - description: >- - Whether tool use is required or automatic. This is a hint to the model - which may not be followed. It depends on the Instruction Following - capabilities of the model. - - type: string - default: auto - description: >- - (Optional) Whether tool use is automatic, required, or none. Can also - specify a tool name to use a specific tool. Defaults to ToolChoice.auto. - tool_prompt_format: - type: string - enum: - - json - - function_tag - - python_list - description: >- - (Optional) Instructs the model how to format tool calls. By default, Llama - Stack will attempt to use a format that is best adapted to the model. - - `ToolPromptFormat.json`: The tool calls are formatted as a JSON object. - - `ToolPromptFormat.function_tag`: The tool calls are enclosed in a - tag. - `ToolPromptFormat.python_list`: The tool calls are output as Python - syntax -- a list of function calls. - system_message_behavior: - type: string - enum: - - append - - replace - description: >- - (Optional) Config for how to override the default system prompt. - `SystemMessageBehavior.append`: - Appends the provided system message to the default system prompt. - `SystemMessageBehavior.replace`: - Replaces the default system prompt with the provided system message. The - system message can include the string '{{function_definitions}}' to indicate - where the function definitions should be inserted. - default: append - additionalProperties: false - title: ToolConfig - description: Configuration for tool use. - ToolDefinition: - type: object - properties: - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - description: - type: string - parameters: - type: object - additionalProperties: - $ref: '#/components/schemas/ToolParamDefinition' - additionalProperties: false - required: - - tool_name - title: ToolDefinition - ToolParamDefinition: - type: object - properties: - param_type: - type: string - description: - type: string - required: - type: boolean - default: true - default: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - param_type - title: ToolParamDefinition - ToolResponseMessage: - type: object - properties: - role: - type: string - const: tool - default: tool - description: >- - Must be "tool" to identify this as a tool response - call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - content: - $ref: '#/components/schemas/InterleavedContent' - description: The response content from the tool - additionalProperties: false - required: - - role - - call_id - - content - title: ToolResponseMessage - description: >- - A message representing the result of a tool invocation. - TopKSamplingStrategy: - type: object - properties: - type: - type: string - const: top_k - default: top_k - description: >- - Must be "top_k" to identify this sampling strategy - top_k: - type: integer - description: >- - Number of top tokens to consider for sampling. Must be at least 1 - additionalProperties: false - required: - - type - - top_k - title: TopKSamplingStrategy - description: >- - Top-k sampling strategy that restricts sampling to the k most likely tokens. - TopPSamplingStrategy: - type: object - properties: - type: - type: string - const: top_p - default: top_p - description: >- - Must be "top_p" to identify this sampling strategy - temperature: - type: number - description: >- - Controls randomness in sampling. Higher values increase randomness - top_p: - type: number - default: 0.95 - description: >- - Cumulative probability threshold for nucleus sampling. Defaults to 0.95 - additionalProperties: false - required: - - type - title: TopPSamplingStrategy - description: >- - Top-p (nucleus) sampling strategy that samples from the smallest set of tokens - with cumulative probability >= p. - URL: - type: object - properties: - uri: - type: string - description: The URL string pointing to the resource - additionalProperties: false - required: - - uri - title: URL - description: A URL reference to external content. - UserMessage: - type: object - properties: - role: - type: string - const: user - default: user - description: >- - Must be "user" to identify this as a user message - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the message, which can include text and other media - context: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) This field is used internally by Llama Stack to pass RAG context. - This field may be removed in the API in the future. - additionalProperties: false - required: - - role - - content - title: UserMessage - description: >- - A message from the user in a chat conversation. - BatchChatCompletionRequest: - type: object - properties: - model_id: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - messages_batch: - type: array - items: - type: array - items: - $ref: '#/components/schemas/Message' - description: >- - The messages to generate completions for. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: >- - (Optional) Parameters to control the sampling strategy. - tools: - type: array - items: - $ref: '#/components/schemas/ToolDefinition' - description: >- - (Optional) List of tool definitions available to the model. - tool_config: - $ref: '#/components/schemas/ToolConfig' - description: (Optional) Configuration for tool use. - response_format: - $ref: '#/components/schemas/ResponseFormat' - description: >- - (Optional) Grammar specification for guided (structured) decoding. - logprobs: - type: object - properties: - top_k: - type: integer - default: 0 - description: >- - How many tokens (for each position) to return log probabilities for. - additionalProperties: false - description: >- - (Optional) If specified, log probabilities for each token position will - be returned. - additionalProperties: false - required: - - model_id - - messages_batch - title: BatchChatCompletionRequest - BatchChatCompletionResponse: - type: object - properties: - batch: - type: array - items: - $ref: '#/components/schemas/ChatCompletionResponse' - description: >- - List of chat completion responses, one for each conversation in the batch - additionalProperties: false - required: - - batch - title: BatchChatCompletionResponse - description: >- - Response from a batch chat completion request. - ChatCompletionResponse: - type: object - properties: - metrics: - type: array - items: - $ref: '#/components/schemas/MetricInResponse' - description: >- - (Optional) List of metrics associated with the API response - completion_message: - $ref: '#/components/schemas/CompletionMessage' - description: The complete response message - logprobs: - type: array - items: - $ref: '#/components/schemas/TokenLogProbs' - description: >- - Optional log probabilities for generated tokens - additionalProperties: false - required: - - completion_message - title: ChatCompletionResponse - description: Response from a chat completion request. - MetricInResponse: - type: object - properties: - metric: - type: string - description: The name of the metric - value: - oneOf: - - type: integer - - type: number - description: The numeric value of the metric - unit: - type: string - description: >- - (Optional) The unit of measurement for the metric value - additionalProperties: false - required: - - metric - - value - title: MetricInResponse - description: >- - A metric value included in API responses. - TokenLogProbs: - type: object - properties: - logprobs_by_token: - type: object - additionalProperties: - type: number - description: >- - Dictionary mapping tokens to their log probabilities - additionalProperties: false - required: - - logprobs_by_token - title: TokenLogProbs - description: Log probabilities for generated tokens. - BatchCompletionRequest: - type: object - properties: - model_id: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - content_batch: - type: array - items: - $ref: '#/components/schemas/InterleavedContent' - description: The content to generate completions for. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: >- - (Optional) Parameters to control the sampling strategy. - response_format: - $ref: '#/components/schemas/ResponseFormat' - description: >- - (Optional) Grammar specification for guided (structured) decoding. - logprobs: - type: object - properties: - top_k: - type: integer - default: 0 - description: >- - How many tokens (for each position) to return log probabilities for. - additionalProperties: false - description: >- - (Optional) If specified, log probabilities for each token position will - be returned. - additionalProperties: false - required: - - model_id - - content_batch - title: BatchCompletionRequest - BatchCompletionResponse: - type: object - properties: - batch: - type: array - items: - $ref: '#/components/schemas/CompletionResponse' - description: >- - List of completion responses, one for each input in the batch - additionalProperties: false - required: - - batch - title: BatchCompletionResponse - description: >- - Response from a batch completion request. - CompletionResponse: - type: object - properties: - metrics: - type: array - items: - $ref: '#/components/schemas/MetricInResponse' - description: >- - (Optional) List of metrics associated with the API response - content: - type: string - description: The generated completion text - stop_reason: - type: string - enum: - - end_of_turn - - end_of_message - - out_of_tokens - description: Reason why generation stopped - logprobs: - type: array - items: - $ref: '#/components/schemas/TokenLogProbs' - description: >- - Optional log probabilities for generated tokens - additionalProperties: false - required: - - content - - stop_reason - title: CompletionResponse - description: Response from a completion request. - CancelTrainingJobRequest: - type: object - properties: - job_uuid: - type: string - description: The UUID of the job to cancel. - additionalProperties: false - required: - - job_uuid - title: CancelTrainingJobRequest - ChatCompletionRequest: - type: object - properties: - model_id: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - messages: - type: array - items: - $ref: '#/components/schemas/Message' - description: List of messages in the conversation. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: >- - Parameters to control the sampling strategy. - tools: - type: array - items: - $ref: '#/components/schemas/ToolDefinition' - description: >- - (Optional) List of tool definitions available to the model. - tool_choice: - type: string - enum: - - auto - - required - - none - description: >- - (Optional) Whether tool use is required or automatic. Defaults to ToolChoice.auto. - .. deprecated:: Use tool_config instead. - tool_prompt_format: - type: string - enum: - - json - - function_tag - - python_list - description: >- - (Optional) Instructs the model how to format tool calls. By default, Llama - Stack will attempt to use a format that is best adapted to the model. - - `ToolPromptFormat.json`: The tool calls are formatted as a JSON object. - - `ToolPromptFormat.function_tag`: The tool calls are enclosed in a - tag. - `ToolPromptFormat.python_list`: The tool calls are output as Python - syntax -- a list of function calls. .. deprecated:: Use tool_config instead. - response_format: - $ref: '#/components/schemas/ResponseFormat' - description: >- - (Optional) Grammar specification for guided (structured) decoding. There - are two options: - `ResponseFormat.json_schema`: The grammar is a JSON - schema. Most providers support this format. - `ResponseFormat.grammar`: - The grammar is a BNF grammar. This format is more flexible, but not all - providers support it. - stream: - type: boolean - description: >- - (Optional) If True, generate an SSE event stream of the response. Defaults - to False. - logprobs: - type: object - properties: - top_k: - type: integer - default: 0 - description: >- - How many tokens (for each position) to return log probabilities for. - additionalProperties: false - description: >- - (Optional) If specified, log probabilities for each token position will - be returned. - tool_config: - $ref: '#/components/schemas/ToolConfig' - description: (Optional) Configuration for tool use. - additionalProperties: false - required: - - model_id - - messages - title: ChatCompletionRequest - ChatCompletionResponseEvent: - type: object - properties: - event_type: - type: string - enum: - - start - - complete - - progress - description: Type of the event - delta: - $ref: '#/components/schemas/ContentDelta' - description: >- - Content generated since last event. This can be one or more tokens, or - a tool call. - logprobs: - type: array - items: - $ref: '#/components/schemas/TokenLogProbs' - description: >- - Optional log probabilities for generated tokens - stop_reason: - type: string - enum: - - end_of_turn - - end_of_message - - out_of_tokens - description: >- - Optional reason why generation stopped, if complete - additionalProperties: false - required: - - event_type - - delta - title: ChatCompletionResponseEvent - description: >- - An event during chat completion generation. - ChatCompletionResponseStreamChunk: - type: object - properties: - metrics: - type: array - items: - $ref: '#/components/schemas/MetricInResponse' - description: >- - (Optional) List of metrics associated with the API response - event: - $ref: '#/components/schemas/ChatCompletionResponseEvent' - description: The event containing the new content - additionalProperties: false - required: - - event - title: ChatCompletionResponseStreamChunk - description: >- - A chunk of a streamed chat completion response. - ContentDelta: - oneOf: - - $ref: '#/components/schemas/TextDelta' - - $ref: '#/components/schemas/ImageDelta' - - $ref: '#/components/schemas/ToolCallDelta' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/TextDelta' - image: '#/components/schemas/ImageDelta' - tool_call: '#/components/schemas/ToolCallDelta' - ImageDelta: - type: object - properties: - type: - type: string - const: image - default: image - description: >- - Discriminator type of the delta. Always "image" - image: - type: string - contentEncoding: base64 - description: The incremental image data as bytes - additionalProperties: false - required: - - type - - image - title: ImageDelta - description: >- - An image content delta for streaming responses. - TextDelta: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Discriminator type of the delta. Always "text" - text: - type: string - description: The incremental text content - additionalProperties: false - required: - - type - - text - title: TextDelta - description: >- - A text content delta for streaming responses. - ToolCallDelta: - type: object - properties: - type: - type: string - const: tool_call - default: tool_call - description: >- - Discriminator type of the delta. Always "tool_call" - tool_call: - oneOf: - - type: string - - $ref: '#/components/schemas/ToolCall' - description: >- - Either an in-progress tool call string or the final parsed tool call - parse_status: - type: string - enum: - - started - - in_progress - - failed - - succeeded - description: Current parsing status of the tool call - additionalProperties: false - required: - - type - - tool_call - - parse_status - title: ToolCallDelta - description: >- - A tool call content delta for streaming responses. - CompletionRequest: - type: object - properties: - model_id: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content to generate a completion for. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: >- - (Optional) Parameters to control the sampling strategy. - response_format: - $ref: '#/components/schemas/ResponseFormat' - description: >- - (Optional) Grammar specification for guided (structured) decoding. - stream: - type: boolean - description: >- - (Optional) If True, generate an SSE event stream of the response. Defaults - to False. - logprobs: - type: object - properties: - top_k: - type: integer - default: 0 - description: >- - How many tokens (for each position) to return log probabilities for. - additionalProperties: false - description: >- - (Optional) If specified, log probabilities for each token position will - be returned. - additionalProperties: false - required: - - model_id - - content - title: CompletionRequest - CompletionResponseStreamChunk: - type: object - properties: - metrics: - type: array - items: - $ref: '#/components/schemas/MetricInResponse' - description: >- - (Optional) List of metrics associated with the API response - delta: - type: string - description: >- - New content generated since last chunk. This can be one or more tokens. - stop_reason: - type: string - enum: - - end_of_turn - - end_of_message - - out_of_tokens - description: >- - Optional reason why generation stopped, if complete - logprobs: - type: array - items: - $ref: '#/components/schemas/TokenLogProbs' - description: >- - Optional log probabilities for generated tokens - additionalProperties: false - required: - - delta - title: CompletionResponseStreamChunk - description: >- - A chunk of a streamed completion response. - AgentConfig: - type: object - properties: - sampling_params: - $ref: '#/components/schemas/SamplingParams' - input_shields: - type: array - items: - type: string - output_shields: - type: array - items: - type: string - toolgroups: - type: array - items: - $ref: '#/components/schemas/AgentTool' - client_tools: - type: array - items: - $ref: '#/components/schemas/ToolDef' - tool_choice: - type: string - enum: - - auto - - required - - none - title: ToolChoice - description: >- - Whether tool use is required or automatic. This is a hint to the model - which may not be followed. It depends on the Instruction Following capabilities - of the model. - deprecated: true - tool_prompt_format: - type: string - enum: - - json - - function_tag - - python_list - title: ToolPromptFormat - description: >- - Prompt format for calling custom / zero shot tools. - deprecated: true - tool_config: - $ref: '#/components/schemas/ToolConfig' - max_infer_iters: - type: integer - default: 10 - model: - type: string - description: >- - The model identifier to use for the agent - instructions: - type: string - description: The system instructions for the agent - name: - type: string - description: >- - Optional name for the agent, used in telemetry and identification - enable_session_persistence: - type: boolean - default: false - description: >- - Optional flag indicating whether session data has to be persisted - response_format: - $ref: '#/components/schemas/ResponseFormat' - description: Optional response format configuration - additionalProperties: false - required: - - model - - instructions - title: AgentConfig - description: Configuration for an agent. - AgentTool: - oneOf: - - type: string - - type: object - properties: - name: - type: string - args: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - name - - args - title: AgentToolGroupWithArgs - ToolDef: - type: object - properties: - name: - type: string - description: Name of the tool - description: - type: string - description: >- - (Optional) Human-readable description of what the tool does - parameters: - type: array - items: - $ref: '#/components/schemas/ToolParameter' - description: >- - (Optional) List of parameters this tool accepts - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool - additionalProperties: false - required: - - name - title: ToolDef - description: >- - Tool definition used in runtime contexts. - ToolParameter: - type: object - properties: - name: - type: string - description: Name of the parameter - parameter_type: - type: string - description: >- - Type of the parameter (e.g., string, integer) - description: - type: string - description: >- - Human-readable description of what the parameter does - required: - type: boolean - default: true - description: >- - Whether this parameter is required for tool invocation - default: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Default value for the parameter if not provided - additionalProperties: false - required: - - name - - parameter_type - - description - - required - title: ToolParameter - description: Parameter definition for a tool. - CreateAgentRequest: - type: object - properties: - agent_config: - $ref: '#/components/schemas/AgentConfig' - description: The configuration for the agent. - additionalProperties: false - required: - - agent_config - title: CreateAgentRequest - AgentCreateResponse: - type: object - properties: - agent_id: - type: string - description: Unique identifier for the created agent - additionalProperties: false - required: - - agent_id - title: AgentCreateResponse - description: >- - Response returned when creating a new agent. - CreateAgentSessionRequest: - type: object - properties: - session_name: - type: string - description: The name of the session to create. - additionalProperties: false - required: - - session_name - title: CreateAgentSessionRequest - AgentSessionCreateResponse: - type: object - properties: - session_id: - type: string - description: >- - Unique identifier for the created session - additionalProperties: false - required: - - session_id - title: AgentSessionCreateResponse - description: >- - Response returned when creating a new agent session. - CreateAgentTurnRequest: - type: object - properties: - messages: - type: array - items: - oneOf: - - $ref: '#/components/schemas/UserMessage' - - $ref: '#/components/schemas/ToolResponseMessage' - description: List of messages to start the turn with. - stream: - type: boolean - description: >- - (Optional) If True, generate an SSE event stream of the response. Defaults - to False. - documents: - type: array - items: - type: object - properties: - content: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - - $ref: '#/components/schemas/URL' - description: The content of the document. - mime_type: - type: string - description: The MIME type of the document. - additionalProperties: false - required: - - content - - mime_type - title: Document - description: A document to be used by an agent. - description: >- - (Optional) List of documents to create the turn with. - toolgroups: - type: array - items: - $ref: '#/components/schemas/AgentTool' - description: >- - (Optional) List of toolgroups to create the turn with, will be used in - addition to the agent's config toolgroups for the request. - tool_config: - $ref: '#/components/schemas/ToolConfig' - description: >- - (Optional) The tool configuration to create the turn with, will be used - to override the agent's tool_config. - additionalProperties: false - required: - - messages - title: CreateAgentTurnRequest - InferenceStep: - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: inference - default: inference - model_response: - $ref: '#/components/schemas/CompletionMessage' - description: The response from the LLM. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - - model_response - title: InferenceStep - description: An inference step in an agent turn. - MemoryRetrievalStep: - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: memory_retrieval - default: memory_retrieval - vector_db_ids: - type: string - description: >- - The IDs of the vector databases to retrieve context from. - inserted_context: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The context retrieved from the vector databases. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - - vector_db_ids - - inserted_context - title: MemoryRetrievalStep - description: >- - A memory retrieval step in an agent turn. - SafetyViolation: - type: object - properties: - violation_level: - $ref: '#/components/schemas/ViolationLevel' - description: Severity level of the violation - user_message: - type: string - description: >- - (Optional) Message to convey to the user about the violation - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Additional metadata including specific violation codes for debugging and - telemetry - additionalProperties: false - required: - - violation_level - - metadata - title: SafetyViolation - description: >- - Details of a safety violation detected by content moderation. - ShieldCallStep: - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: shield_call - default: shield_call - violation: - $ref: '#/components/schemas/SafetyViolation' - description: The violation from the shield call. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - title: ShieldCallStep - description: A shield call step in an agent turn. - ToolExecutionStep: - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: tool_execution - default: tool_execution - tool_calls: - type: array - items: - $ref: '#/components/schemas/ToolCall' - description: The tool calls to execute. - tool_responses: - type: array - items: - $ref: '#/components/schemas/ToolResponse' - description: The tool responses from the tool calls. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - - tool_calls - - tool_responses - title: ToolExecutionStep - description: A tool execution step in an agent turn. - ToolResponse: - type: object - properties: - call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - description: Name of the tool that was invoked - content: - $ref: '#/components/schemas/InterleavedContent' - description: The response content from the tool - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool response - additionalProperties: false - required: - - call_id - - tool_name - - content - title: ToolResponse - description: Response from a tool invocation. - Turn: - type: object - properties: - turn_id: - type: string - description: >- - Unique identifier for the turn within a session - session_id: - type: string - description: >- - Unique identifier for the conversation session - input_messages: - type: array - items: - oneOf: - - $ref: '#/components/schemas/UserMessage' - - $ref: '#/components/schemas/ToolResponseMessage' - description: >- - List of messages that initiated this turn - steps: - type: array - items: - oneOf: - - $ref: '#/components/schemas/InferenceStep' - - $ref: '#/components/schemas/ToolExecutionStep' - - $ref: '#/components/schemas/ShieldCallStep' - - $ref: '#/components/schemas/MemoryRetrievalStep' - discriminator: - propertyName: step_type - mapping: - inference: '#/components/schemas/InferenceStep' - tool_execution: '#/components/schemas/ToolExecutionStep' - shield_call: '#/components/schemas/ShieldCallStep' - memory_retrieval: '#/components/schemas/MemoryRetrievalStep' - description: >- - Ordered list of processing steps executed during this turn - output_message: - $ref: '#/components/schemas/CompletionMessage' - description: >- - The model's generated response containing content and metadata - output_attachments: - type: array - items: - type: object - properties: - content: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - - $ref: '#/components/schemas/URL' - description: The content of the attachment. - mime_type: - type: string - description: The MIME type of the attachment. - additionalProperties: false - required: - - content - - mime_type - title: Attachment - description: An attachment to an agent turn. - description: >- - (Optional) Files or media attached to the agent's response - started_at: - type: string - format: date-time - description: Timestamp when the turn began - completed_at: - type: string - format: date-time - description: >- - (Optional) Timestamp when the turn finished, if completed - additionalProperties: false - required: - - turn_id - - session_id - - input_messages - - steps - - output_message - - started_at - title: Turn - description: >- - A single turn in an interaction with an Agentic System. - ViolationLevel: - type: string - enum: - - info - - warn - - error - title: ViolationLevel - description: Severity level of a safety violation. - AgentTurnResponseEvent: - type: object - properties: - payload: - $ref: '#/components/schemas/AgentTurnResponseEventPayload' - description: >- - Event-specific payload containing event data - additionalProperties: false - required: - - payload - title: AgentTurnResponseEvent - description: >- - An event in an agent turn response stream. - AgentTurnResponseEventPayload: - oneOf: - - $ref: '#/components/schemas/AgentTurnResponseStepStartPayload' - - $ref: '#/components/schemas/AgentTurnResponseStepProgressPayload' - - $ref: '#/components/schemas/AgentTurnResponseStepCompletePayload' - - $ref: '#/components/schemas/AgentTurnResponseTurnStartPayload' - - $ref: '#/components/schemas/AgentTurnResponseTurnCompletePayload' - - $ref: '#/components/schemas/AgentTurnResponseTurnAwaitingInputPayload' - discriminator: - propertyName: event_type - mapping: - step_start: '#/components/schemas/AgentTurnResponseStepStartPayload' - step_progress: '#/components/schemas/AgentTurnResponseStepProgressPayload' - step_complete: '#/components/schemas/AgentTurnResponseStepCompletePayload' - turn_start: '#/components/schemas/AgentTurnResponseTurnStartPayload' - turn_complete: '#/components/schemas/AgentTurnResponseTurnCompletePayload' - turn_awaiting_input: '#/components/schemas/AgentTurnResponseTurnAwaitingInputPayload' - AgentTurnResponseStepCompletePayload: - type: object - properties: - event_type: - type: string - enum: - - step_start - - step_complete - - step_progress - - turn_start - - turn_complete - - turn_awaiting_input - const: step_complete - default: step_complete - description: Type of event being reported - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - description: Type of step being executed - step_id: - type: string - description: >- - Unique identifier for the step within a turn - step_details: - oneOf: - - $ref: '#/components/schemas/InferenceStep' - - $ref: '#/components/schemas/ToolExecutionStep' - - $ref: '#/components/schemas/ShieldCallStep' - - $ref: '#/components/schemas/MemoryRetrievalStep' - discriminator: - propertyName: step_type - mapping: - inference: '#/components/schemas/InferenceStep' - tool_execution: '#/components/schemas/ToolExecutionStep' - shield_call: '#/components/schemas/ShieldCallStep' - memory_retrieval: '#/components/schemas/MemoryRetrievalStep' - description: Complete details of the executed step - additionalProperties: false - required: - - event_type - - step_type - - step_id - - step_details - title: AgentTurnResponseStepCompletePayload - description: >- - Payload for step completion events in agent turn responses. - AgentTurnResponseStepProgressPayload: - type: object - properties: - event_type: - type: string - enum: - - step_start - - step_complete - - step_progress - - turn_start - - turn_complete - - turn_awaiting_input - const: step_progress - default: step_progress - description: Type of event being reported - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - description: Type of step being executed - step_id: - type: string - description: >- - Unique identifier for the step within a turn - delta: - $ref: '#/components/schemas/ContentDelta' - description: >- - Incremental content changes during step execution - additionalProperties: false - required: - - event_type - - step_type - - step_id - - delta - title: AgentTurnResponseStepProgressPayload - description: >- - Payload for step progress events in agent turn responses. - AgentTurnResponseStepStartPayload: - type: object - properties: - event_type: - type: string - enum: - - step_start - - step_complete - - step_progress - - turn_start - - turn_complete - - turn_awaiting_input - const: step_start - default: step_start - description: Type of event being reported - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - description: Type of step being executed - step_id: - type: string - description: >- - Unique identifier for the step within a turn - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata for the step - additionalProperties: false - required: - - event_type - - step_type - - step_id - title: AgentTurnResponseStepStartPayload - description: >- - Payload for step start events in agent turn responses. - AgentTurnResponseStreamChunk: - type: object - properties: - event: - $ref: '#/components/schemas/AgentTurnResponseEvent' - description: >- - Individual event in the agent turn response stream - additionalProperties: false - required: - - event - title: AgentTurnResponseStreamChunk - description: Streamed agent turn completion response. - "AgentTurnResponseTurnAwaitingInputPayload": - type: object - properties: - event_type: - type: string - enum: - - step_start - - step_complete - - step_progress - - turn_start - - turn_complete - - turn_awaiting_input - const: turn_awaiting_input - default: turn_awaiting_input - description: Type of event being reported - turn: - $ref: '#/components/schemas/Turn' - description: >- - Turn data when waiting for external tool responses - additionalProperties: false - required: - - event_type - - turn - title: >- - AgentTurnResponseTurnAwaitingInputPayload - description: >- - Payload for turn awaiting input events in agent turn responses. - AgentTurnResponseTurnCompletePayload: - type: object - properties: - event_type: - type: string - enum: - - step_start - - step_complete - - step_progress - - turn_start - - turn_complete - - turn_awaiting_input - const: turn_complete - default: turn_complete - description: Type of event being reported - turn: - $ref: '#/components/schemas/Turn' - description: >- - Complete turn data including all steps and results - additionalProperties: false - required: - - event_type - - turn - title: AgentTurnResponseTurnCompletePayload - description: >- - Payload for turn completion events in agent turn responses. - AgentTurnResponseTurnStartPayload: - type: object - properties: - event_type: - type: string - enum: - - step_start - - step_complete - - step_progress - - turn_start - - turn_complete - - turn_awaiting_input - const: turn_start - default: turn_start - description: Type of event being reported - turn_id: - type: string - description: >- - Unique identifier for the turn within a session - additionalProperties: false - required: - - event_type - - turn_id - title: AgentTurnResponseTurnStartPayload - description: >- - Payload for turn start events in agent turn responses. - OpenAIResponseAnnotationCitation: - type: object - properties: - type: - type: string - const: url_citation - default: url_citation - description: >- - Annotation type identifier, always "url_citation" - end_index: - type: integer - description: >- - End position of the citation span in the content - start_index: - type: integer - description: >- - Start position of the citation span in the content - title: - type: string - description: Title of the referenced web resource - url: - type: string - description: URL of the referenced web resource - additionalProperties: false - required: - - type - - end_index - - start_index - - title - - url - title: OpenAIResponseAnnotationCitation - description: >- - URL citation annotation for referencing external web resources. - "OpenAIResponseAnnotationContainerFileCitation": - type: object - properties: - type: - type: string - const: container_file_citation - default: container_file_citation - container_id: - type: string - end_index: - type: integer - file_id: - type: string - filename: - type: string - start_index: - type: integer - additionalProperties: false - required: - - type - - container_id - - end_index - - file_id - - filename - - start_index - title: >- - OpenAIResponseAnnotationContainerFileCitation - OpenAIResponseAnnotationFileCitation: - type: object - properties: - type: - type: string - const: file_citation - default: file_citation - description: >- - Annotation type identifier, always "file_citation" - file_id: - type: string - description: Unique identifier of the referenced file - filename: - type: string - description: Name of the referenced file - index: - type: integer - description: >- - Position index of the citation within the content - additionalProperties: false - required: - - type - - file_id - - filename - - index - title: OpenAIResponseAnnotationFileCitation - description: >- - File citation annotation for referencing specific files in response content. - OpenAIResponseAnnotationFilePath: - type: object - properties: - type: - type: string - const: file_path - default: file_path - file_id: - type: string - index: - type: integer - additionalProperties: false - required: - - type - - file_id - - index - title: OpenAIResponseAnnotationFilePath - OpenAIResponseAnnotations: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' - discriminator: - propertyName: type - mapping: - file_citation: '#/components/schemas/OpenAIResponseAnnotationFileCitation' - url_citation: '#/components/schemas/OpenAIResponseAnnotationCitation' - container_file_citation: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' - file_path: '#/components/schemas/OpenAIResponseAnnotationFilePath' - OpenAIResponseInput: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMessage' - "OpenAIResponseInputFunctionToolCallOutput": - type: object - properties: - call_id: - type: string - output: - type: string - type: - type: string - const: function_call_output - default: function_call_output - id: - type: string - status: - type: string - additionalProperties: false - required: - - call_id - - output - - type - title: >- - OpenAIResponseInputFunctionToolCallOutput - description: >- - This represents the output of a function call that gets passed back to the - model. - OpenAIResponseInputMessageContent: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - discriminator: - propertyName: type - mapping: - input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' - input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' - OpenAIResponseInputMessageContentImage: - type: object - properties: - detail: - oneOf: - - type: string - const: low - - type: string - const: high - - type: string - const: auto - default: auto - description: >- - Level of detail for image processing, can be "low", "high", or "auto" - type: - type: string - const: input_image - default: input_image - description: >- - Content type identifier, always "input_image" - image_url: - type: string - description: (Optional) URL of the image content - additionalProperties: false - required: - - detail - - type - title: OpenAIResponseInputMessageContentImage - description: >- - Image content for input messages in OpenAI response format. - OpenAIResponseInputMessageContentText: - type: object - properties: - text: - type: string - description: The text content of the input message - type: - type: string - const: input_text - default: input_text - description: >- - Content type identifier, always "input_text" - additionalProperties: false - required: - - text - - type - title: OpenAIResponseInputMessageContentText - description: >- - Text content for input messages in OpenAI response format. - OpenAIResponseInputTool: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' - discriminator: - propertyName: type - mapping: - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseInputToolMCP' - OpenAIResponseInputToolFileSearch: - type: object - properties: - type: - type: string - const: file_search - default: file_search - description: >- - Tool type identifier, always "file_search" - vector_store_ids: - type: array - items: - type: string - description: >- - List of vector store identifiers to search within - filters: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional filters to apply to the search - max_num_results: - type: integer - default: 10 - description: >- - (Optional) Maximum number of search results to return (1-50) - ranking_options: - type: object - properties: - ranker: - type: string - description: >- - (Optional) Name of the ranking algorithm to use - score_threshold: - type: number - default: 0.0 - description: >- - (Optional) Minimum relevance score threshold for results - additionalProperties: false - description: >- - (Optional) Options for ranking and scoring search results - additionalProperties: false - required: - - type - - vector_store_ids - title: OpenAIResponseInputToolFileSearch - description: >- - File search tool configuration for OpenAI response inputs. - OpenAIResponseInputToolFunction: - type: object - properties: - type: - type: string - const: function - default: function - description: Tool type identifier, always "function" - name: - type: string - description: Name of the function that can be called - description: - type: string - description: >- - (Optional) Description of what the function does - parameters: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON schema defining the function's parameters - strict: - type: boolean - description: >- - (Optional) Whether to enforce strict parameter validation - additionalProperties: false - required: - - type - - name - title: OpenAIResponseInputToolFunction - description: >- - Function tool configuration for OpenAI response inputs. - OpenAIResponseInputToolMCP: - type: object - properties: - type: - type: string - const: mcp - default: mcp - description: Tool type identifier, always "mcp" - server_label: - type: string - description: Label to identify this MCP server - server_url: - type: string - description: URL endpoint of the MCP server - headers: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) HTTP headers to include when connecting to the server - require_approval: - oneOf: - - type: string - const: always - - type: string - const: never - - type: object - properties: - always: - type: array - items: - type: string - description: >- - (Optional) List of tool names that always require approval - never: - type: array - items: - type: string - description: >- - (Optional) List of tool names that never require approval - additionalProperties: false - title: ApprovalFilter - description: >- - Filter configuration for MCP tool approval requirements. - default: never - description: >- - Approval requirement for tool calls ("always", "never", or filter) - allowed_tools: - oneOf: - - type: array - items: - type: string - - type: object - properties: - tool_names: - type: array - items: - type: string - description: >- - (Optional) List of specific tool names that are allowed - additionalProperties: false - title: AllowedToolsFilter - description: >- - Filter configuration for restricting which MCP tools can be used. - description: >- - (Optional) Restriction on which tools can be used from this server - additionalProperties: false - required: - - type - - server_label - - server_url - - require_approval - title: OpenAIResponseInputToolMCP - description: >- - Model Context Protocol (MCP) tool configuration for OpenAI response inputs. - OpenAIResponseInputToolWebSearch: - type: object - properties: - type: - oneOf: - - type: string - const: web_search - - type: string - const: web_search_preview - - type: string - const: web_search_preview_2025_03_11 - default: web_search - description: Web search tool type variant to use - search_context_size: - type: string - default: medium - description: >- - (Optional) Size of search context, must be "low", "medium", or "high" - additionalProperties: false - required: - - type - title: OpenAIResponseInputToolWebSearch - description: >- - Web search tool configuration for OpenAI response inputs. - OpenAIResponseMessage: - type: object - properties: - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInputMessageContent' - - type: array - items: - $ref: '#/components/schemas/OpenAIResponseOutputMessageContent' - role: - oneOf: - - type: string - const: system - - type: string - const: developer - - type: string - const: user - - type: string - const: assistant - type: - type: string - const: message - default: message - id: - type: string - status: - type: string - additionalProperties: false - required: - - content - - role - - type - title: OpenAIResponseMessage - description: >- - Corresponds to the various Message types in the Responses API. They are all - under one type because the Responses API gives them all the same "type" value, - and there is no way to tell them apart in certain scenarios. - OpenAIResponseOutputMessageContent: - type: object - properties: - text: - type: string - type: - type: string - const: output_text - default: output_text - annotations: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseAnnotations' - additionalProperties: false - required: - - text - - type - - annotations - title: >- - OpenAIResponseOutputMessageContentOutputText - "OpenAIResponseOutputMessageFileSearchToolCall": - type: object - properties: - id: - type: string - description: Unique identifier for this tool call - queries: - type: array - items: - type: string - description: List of search queries executed - status: - type: string - description: >- - Current status of the file search operation - type: - type: string - const: file_search_call - default: file_search_call - description: >- - Tool call type identifier, always "file_search_call" - results: - type: array - items: - type: object - properties: - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Key-value attributes associated with the file - file_id: - type: string - description: >- - Unique identifier of the file containing the result - filename: - type: string - description: Name of the file containing the result - score: - type: number - description: >- - Relevance score for this search result (between 0 and 1) - text: - type: string - description: Text content of the search result - additionalProperties: false - required: - - attributes - - file_id - - filename - - score - - text - title: >- - OpenAIResponseOutputMessageFileSearchToolCallResults - description: >- - Search results returned by the file search operation. - description: >- - (Optional) Search results returned by the file search operation - additionalProperties: false - required: - - id - - queries - - status - - type - title: >- - OpenAIResponseOutputMessageFileSearchToolCall - description: >- - File search tool call output message for OpenAI responses. - "OpenAIResponseOutputMessageFunctionToolCall": - type: object - properties: - call_id: - type: string - description: Unique identifier for the function call - name: - type: string - description: Name of the function being called - arguments: - type: string - description: >- - JSON string containing the function arguments - type: - type: string - const: function_call - default: function_call - description: >- - Tool call type identifier, always "function_call" - id: - type: string - description: >- - (Optional) Additional identifier for the tool call - status: - type: string - description: >- - (Optional) Current status of the function call execution - additionalProperties: false - required: - - call_id - - name - - arguments - - type - title: >- - OpenAIResponseOutputMessageFunctionToolCall - description: >- - Function tool call output message for OpenAI responses. - "OpenAIResponseOutputMessageWebSearchToolCall": - type: object - properties: - id: - type: string - description: Unique identifier for this tool call - status: - type: string - description: >- - Current status of the web search operation - type: - type: string - const: web_search_call - default: web_search_call - description: >- - Tool call type identifier, always "web_search_call" - additionalProperties: false - required: - - id - - status - - type - title: >- - OpenAIResponseOutputMessageWebSearchToolCall - description: >- - Web search tool call output message for OpenAI responses. - OpenAIResponseText: - type: object - properties: - format: - type: object - properties: - type: - oneOf: - - type: string - const: text - - type: string - const: json_schema - - type: string - const: json_object - description: >- - Must be "text", "json_schema", or "json_object" to identify the format - type - name: - type: string - description: >- - The name of the response format. Only used for json_schema. - schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The JSON schema the response should conform to. In a Python SDK, this - is often a `pydantic` model. Only used for json_schema. - description: - type: string - description: >- - (Optional) A description of the response format. Only used for json_schema. - strict: - type: boolean - description: >- - (Optional) Whether to strictly enforce the JSON schema. If true, the - response must match the schema exactly. Only used for json_schema. - additionalProperties: false - required: - - type - description: >- - (Optional) Text format configuration specifying output format requirements - additionalProperties: false - title: OpenAIResponseText - description: >- - Text response configuration for OpenAI responses. - CreateOpenaiResponseRequest: - type: object - properties: - input: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInput' - description: Input message(s) to create the response. - model: - type: string - description: The underlying LLM used for completions. - instructions: - type: string - previous_response_id: - type: string - description: >- - (Optional) if specified, the new response will be a continuation of the - previous response. This can be used to easily fork-off new responses from - existing responses. - store: - type: boolean - stream: - type: boolean - temperature: - type: number - text: - $ref: '#/components/schemas/OpenAIResponseText' - tools: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInputTool' - include: - type: array - items: - type: string - description: >- - (Optional) Additional fields to include in the response. - max_infer_iters: - type: integer - additionalProperties: false - required: - - input - - model - title: CreateOpenaiResponseRequest - OpenAIResponseError: - type: object - properties: - code: - type: string - description: >- - Error code identifying the type of failure - message: - type: string - description: >- - Human-readable error message describing the failure - additionalProperties: false - required: - - code - - message - title: OpenAIResponseError - description: >- - Error details for failed OpenAI response requests. - OpenAIResponseObject: - type: object - properties: - created_at: - type: integer - description: >- - Unix timestamp when the response was created - error: - $ref: '#/components/schemas/OpenAIResponseError' - description: >- - (Optional) Error details if the response generation failed - id: - type: string - description: Unique identifier for this response - model: - type: string - description: Model identifier used for generation - object: - type: string - const: response - default: response - description: >- - Object type identifier, always "response" - output: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseOutput' - description: >- - List of generated output items (messages, tool calls, etc.) - parallel_tool_calls: - type: boolean - default: false - description: >- - Whether tool calls can be executed in parallel - previous_response_id: - type: string - description: >- - (Optional) ID of the previous response in a conversation - status: - type: string - description: >- - Current status of the response generation - temperature: - type: number - description: >- - (Optional) Sampling temperature used for generation - text: - $ref: '#/components/schemas/OpenAIResponseText' - description: >- - Text formatting configuration for the response - top_p: - type: number - description: >- - (Optional) Nucleus sampling parameter used for generation - truncation: - type: string - description: >- - (Optional) Truncation strategy applied to the response - user: - type: string - description: >- - (Optional) User identifier associated with the request - additionalProperties: false - required: - - created_at - - id - - model - - object - - output - - parallel_tool_calls - - status - - text - title: OpenAIResponseObject - description: >- - Complete OpenAI response object containing generation results and metadata. - OpenAIResponseOutput: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - discriminator: - propertyName: type - mapping: - message: '#/components/schemas/OpenAIResponseMessage' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - OpenAIResponseOutputMessageMCPCall: - type: object - properties: - id: - type: string - description: Unique identifier for this MCP call - type: - type: string - const: mcp_call - default: mcp_call - description: >- - Tool call type identifier, always "mcp_call" - arguments: - type: string - description: >- - JSON string containing the MCP call arguments - name: - type: string - description: Name of the MCP method being called - server_label: - type: string - description: >- - Label identifying the MCP server handling the call - error: - type: string - description: >- - (Optional) Error message if the MCP call failed - output: - type: string - description: >- - (Optional) Output result from the successful MCP call - additionalProperties: false - required: - - id - - type - - arguments - - name - - server_label - title: OpenAIResponseOutputMessageMCPCall - description: >- - Model Context Protocol (MCP) call output message for OpenAI responses. - OpenAIResponseOutputMessageMCPListTools: - type: object - properties: - id: - type: string - description: >- - Unique identifier for this MCP list tools operation - type: - type: string - const: mcp_list_tools - default: mcp_list_tools - description: >- - Tool call type identifier, always "mcp_list_tools" - server_label: - type: string - description: >- - Label identifying the MCP server providing the tools - tools: - type: array - items: - type: object - properties: - input_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - JSON schema defining the tool's input parameters - name: - type: string - description: Name of the tool - description: - type: string - description: >- - (Optional) Description of what the tool does - additionalProperties: false - required: - - input_schema - - name - title: MCPListToolsTool - description: >- - Tool definition returned by MCP list tools operation. - description: >- - List of available tools provided by the MCP server - additionalProperties: false - required: - - id - - type - - server_label - - tools - title: OpenAIResponseOutputMessageMCPListTools - description: >- - MCP list tools output message containing available tools from an MCP server. - OpenAIResponseContentPart: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseContentPartOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - discriminator: - propertyName: type - mapping: - output_text: '#/components/schemas/OpenAIResponseContentPartOutputText' - refusal: '#/components/schemas/OpenAIResponseContentPartRefusal' - OpenAIResponseContentPartOutputText: - type: object - properties: - type: - type: string - const: output_text - default: output_text - text: - type: string - additionalProperties: false - required: - - type - - text - title: OpenAIResponseContentPartOutputText - OpenAIResponseContentPartRefusal: - type: object - properties: - type: - type: string - const: refusal - default: refusal - refusal: - type: string - additionalProperties: false - required: - - type - - refusal - title: OpenAIResponseContentPartRefusal - OpenAIResponseObjectStream: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseCreated' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemAdded' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallSearching' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsFailed' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallFailed' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartAdded' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseCompleted' - discriminator: - propertyName: type - mapping: - response.created: '#/components/schemas/OpenAIResponseObjectStreamResponseCreated' - response.output_item.added: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemAdded' - response.output_item.done: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemDone' - response.output_text.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDelta' - response.output_text.done: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDone' - response.function_call_arguments.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta' - response.function_call_arguments.done: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone' - response.web_search_call.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallInProgress' - response.web_search_call.searching: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallSearching' - response.web_search_call.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallCompleted' - response.mcp_list_tools.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsInProgress' - response.mcp_list_tools.failed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsFailed' - response.mcp_list_tools.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsCompleted' - response.mcp_call.arguments.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta' - response.mcp_call.arguments.done: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDone' - response.mcp_call.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallInProgress' - response.mcp_call.failed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallFailed' - response.mcp_call.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallCompleted' - response.content_part.added: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartAdded' - response.content_part.done: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartDone' - response.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseCompleted' - "OpenAIResponseObjectStreamResponseCompleted": - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: The completed response object - type: - type: string - const: response.completed - default: response.completed - description: >- - Event type identifier, always "response.completed" - additionalProperties: false - required: - - response - - type - title: >- - OpenAIResponseObjectStreamResponseCompleted - description: >- - Streaming event indicating a response has been completed. - "OpenAIResponseObjectStreamResponseContentPartAdded": - type: object - properties: - response_id: - type: string - description: >- - Unique identifier of the response containing this content - item_id: - type: string - description: >- - Unique identifier of the output item containing this content part - part: - $ref: '#/components/schemas/OpenAIResponseContentPart' - description: The content part that was added - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.content_part.added - default: response.content_part.added - description: >- - Event type identifier, always "response.content_part.added" - additionalProperties: false - required: - - response_id - - item_id - - part - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseContentPartAdded - description: >- - Streaming event for when a new content part is added to a response item. - "OpenAIResponseObjectStreamResponseContentPartDone": - type: object - properties: - response_id: - type: string - description: >- - Unique identifier of the response containing this content - item_id: - type: string - description: >- - Unique identifier of the output item containing this content part - part: - $ref: '#/components/schemas/OpenAIResponseContentPart' - description: The completed content part - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.content_part.done - default: response.content_part.done - description: >- - Event type identifier, always "response.content_part.done" - additionalProperties: false - required: - - response_id - - item_id - - part - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseContentPartDone - description: >- - Streaming event for when a content part is completed. - "OpenAIResponseObjectStreamResponseCreated": - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: The newly created response object - type: - type: string - const: response.created - default: response.created - description: >- - Event type identifier, always "response.created" - additionalProperties: false - required: - - response - - type - title: >- - OpenAIResponseObjectStreamResponseCreated - description: >- - Streaming event indicating a new response has been created. - "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta": - type: object - properties: - delta: - type: string - description: >- - Incremental function call arguments being added - item_id: - type: string - description: >- - Unique identifier of the function call being updated - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.function_call_arguments.delta - default: response.function_call_arguments.delta - description: >- - Event type identifier, always "response.function_call_arguments.delta" - additionalProperties: false - required: - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta - description: >- - Streaming event for incremental function call argument updates. - "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone": - type: object - properties: - arguments: - type: string - description: >- - Final complete arguments JSON string for the function call - item_id: - type: string - description: >- - Unique identifier of the completed function call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.function_call_arguments.done - default: response.function_call_arguments.done - description: >- - Event type identifier, always "response.function_call_arguments.done" - additionalProperties: false - required: - - arguments - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone - description: >- - Streaming event for when function call arguments are completed. - "OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta": - type: object - properties: - delta: - type: string - item_id: - type: string - output_index: - type: integer - sequence_number: - type: integer - type: - type: string - const: response.mcp_call.arguments.delta - default: response.mcp_call.arguments.delta - additionalProperties: false - required: - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta - "OpenAIResponseObjectStreamResponseMcpCallArgumentsDone": - type: object - properties: - arguments: - type: string - item_id: - type: string - output_index: - type: integer - sequence_number: - type: integer - type: - type: string - const: response.mcp_call.arguments.done - default: response.mcp_call.arguments.done - additionalProperties: false - required: - - arguments - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallArgumentsDone - "OpenAIResponseObjectStreamResponseMcpCallCompleted": - type: object - properties: - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.mcp_call.completed - default: response.mcp_call.completed - description: >- - Event type identifier, always "response.mcp_call.completed" - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallCompleted - description: Streaming event for completed MCP calls. - "OpenAIResponseObjectStreamResponseMcpCallFailed": - type: object - properties: - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.mcp_call.failed - default: response.mcp_call.failed - description: >- - Event type identifier, always "response.mcp_call.failed" - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallFailed - description: Streaming event for failed MCP calls. - "OpenAIResponseObjectStreamResponseMcpCallInProgress": - type: object - properties: - item_id: - type: string - description: Unique identifier of the MCP call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.mcp_call.in_progress - default: response.mcp_call.in_progress - description: >- - Event type identifier, always "response.mcp_call.in_progress" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallInProgress - description: >- - Streaming event for MCP calls in progress. - "OpenAIResponseObjectStreamResponseMcpListToolsCompleted": - type: object - properties: - sequence_number: - type: integer - type: - type: string - const: response.mcp_list_tools.completed - default: response.mcp_list_tools.completed - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpListToolsCompleted - "OpenAIResponseObjectStreamResponseMcpListToolsFailed": - type: object - properties: - sequence_number: - type: integer - type: - type: string - const: response.mcp_list_tools.failed - default: response.mcp_list_tools.failed - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpListToolsFailed - "OpenAIResponseObjectStreamResponseMcpListToolsInProgress": - type: object - properties: - sequence_number: - type: integer - type: - type: string - const: response.mcp_list_tools.in_progress - default: response.mcp_list_tools.in_progress - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpListToolsInProgress - "OpenAIResponseObjectStreamResponseOutputItemAdded": - type: object - properties: - response_id: - type: string - description: >- - Unique identifier of the response containing this output - item: - $ref: '#/components/schemas/OpenAIResponseOutput' - description: >- - The output item that was added (message, tool call, etc.) - output_index: - type: integer - description: >- - Index position of this item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_item.added - default: response.output_item.added - description: >- - Event type identifier, always "response.output_item.added" - additionalProperties: false - required: - - response_id - - item - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputItemAdded - description: >- - Streaming event for when a new output item is added to the response. - "OpenAIResponseObjectStreamResponseOutputItemDone": - type: object - properties: - response_id: - type: string - description: >- - Unique identifier of the response containing this output - item: - $ref: '#/components/schemas/OpenAIResponseOutput' - description: >- - The completed output item (message, tool call, etc.) - output_index: - type: integer - description: >- - Index position of this item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_item.done - default: response.output_item.done - description: >- - Event type identifier, always "response.output_item.done" - additionalProperties: false - required: - - response_id - - item - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputItemDone - description: >- - Streaming event for when an output item is completed. - "OpenAIResponseObjectStreamResponseOutputTextDelta": - type: object - properties: - content_index: - type: integer - description: Index position within the text content - delta: - type: string - description: Incremental text content being added - item_id: - type: string - description: >- - Unique identifier of the output item being updated - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_text.delta - default: response.output_text.delta - description: >- - Event type identifier, always "response.output_text.delta" - additionalProperties: false - required: - - content_index - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputTextDelta - description: >- - Streaming event for incremental text content updates. - "OpenAIResponseObjectStreamResponseOutputTextDone": - type: object - properties: - content_index: - type: integer - description: Index position within the text content - text: - type: string - description: >- - Final complete text content of the output item - item_id: - type: string - description: >- - Unique identifier of the completed output item - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_text.done - default: response.output_text.done - description: >- - Event type identifier, always "response.output_text.done" - additionalProperties: false - required: - - content_index - - text - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputTextDone - description: >- - Streaming event for when text output is completed. - "OpenAIResponseObjectStreamResponseWebSearchCallCompleted": - type: object - properties: - item_id: - type: string - description: >- - Unique identifier of the completed web search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.web_search_call.completed - default: response.web_search_call.completed - description: >- - Event type identifier, always "response.web_search_call.completed" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseWebSearchCallCompleted - description: >- - Streaming event for completed web search calls. - "OpenAIResponseObjectStreamResponseWebSearchCallInProgress": - type: object - properties: - item_id: - type: string - description: Unique identifier of the web search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.web_search_call.in_progress - default: response.web_search_call.in_progress - description: >- - Event type identifier, always "response.web_search_call.in_progress" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseWebSearchCallInProgress - description: >- - Streaming event for web search calls in progress. - "OpenAIResponseObjectStreamResponseWebSearchCallSearching": - type: object - properties: - item_id: - type: string - output_index: - type: integer - sequence_number: - type: integer - type: - type: string - const: response.web_search_call.searching - default: response.web_search_call.searching - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseWebSearchCallSearching - CreatePromptRequest: - type: object - properties: - prompt: - type: string - description: >- - The prompt text content with variable placeholders. - variables: - type: array - items: - type: string - description: >- - List of variable names that can be used in the prompt template. - additionalProperties: false - required: - - prompt - title: CreatePromptRequest - Prompt: - type: object - properties: - prompt: - type: string - description: >- - The system prompt text with variable placeholders. Variables are only - supported when using the Responses API. - version: - type: integer - description: >- - Version (integer starting at 1, incremented on save) - prompt_id: - type: string - description: >- - Unique identifier formatted as 'pmpt_<48-digit-hash>' - variables: - type: array - items: - type: string - description: >- - List of prompt variable names that can be used in the prompt template - is_default: - type: boolean - default: false - description: >- - Boolean indicating whether this version is the default version for this - prompt - additionalProperties: false - required: - - version - - prompt_id - - variables - - is_default - title: Prompt - description: >- - A prompt resource representing a stored OpenAI Compatible prompt template - in Llama Stack. - OpenAIDeleteResponseObject: - type: object - properties: - id: - type: string - description: >- - Unique identifier of the deleted response - object: - type: string - const: response - default: response - description: >- - Object type identifier, always "response" - deleted: - type: boolean - default: true - description: Deletion confirmation flag, always True - additionalProperties: false - required: - - id - - object - - deleted - title: OpenAIDeleteResponseObject - description: >- - Response object confirming deletion of an OpenAI response. - EmbeddingsRequest: - type: object - properties: - model_id: - type: string - description: >- - The identifier of the model to use. The model must be an embedding model - registered with Llama Stack and available via the /models endpoint. - contents: - oneOf: - - type: array - items: - type: string - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - description: >- - List of contents to generate embeddings for. Each content can be a string - or an InterleavedContentItem (and hence can be multimodal). The behavior - depends on the model and provider. Some models may only support text. - text_truncation: - type: string - enum: - - none - - start - - end - description: >- - (Optional) Config for how to truncate text for embedding when text is - longer than the model's max sequence length. - output_dimension: - type: integer - description: >- - (Optional) Output dimensionality for the embeddings. Only supported by - Matryoshka models. - task_type: - type: string - enum: - - query - - document - description: >- - (Optional) How is the embedding being used? This is only supported by - asymmetric embedding models. - additionalProperties: false - required: - - model_id - - contents - title: EmbeddingsRequest - EmbeddingsResponse: - type: object - properties: - embeddings: - type: array - items: - type: array - items: - type: number - description: >- - List of embedding vectors, one per input content. Each embedding is a - list of floats. The dimensionality of the embedding is model-specific; - you can check model metadata using /models/{model_id} - additionalProperties: false - required: - - embeddings - title: EmbeddingsResponse - description: >- - Response containing generated embeddings. - AgentCandidate: - type: object - properties: - type: - type: string - const: agent - default: agent - config: - $ref: '#/components/schemas/AgentConfig' - description: >- - The configuration for the agent candidate. - additionalProperties: false - required: - - type - - config - title: AgentCandidate - description: An agent candidate for evaluation. - AggregationFunctionType: - type: string - enum: - - average - - weighted_average - - median - - categorical_count - - accuracy - title: AggregationFunctionType - description: >- - Types of aggregation functions for scoring results. - BasicScoringFnParams: - type: object - properties: - type: - $ref: '#/components/schemas/ScoringFnParamsType' - const: basic - default: basic - description: >- - The type of scoring function parameters, always basic - aggregation_functions: - type: array - items: - $ref: '#/components/schemas/AggregationFunctionType' - description: >- - Aggregation functions to apply to the scores of each row - additionalProperties: false - required: - - type - - aggregation_functions - title: BasicScoringFnParams - description: >- - Parameters for basic scoring function configuration. - BenchmarkConfig: - type: object - properties: - eval_candidate: - $ref: '#/components/schemas/EvalCandidate' - description: The candidate to evaluate. - scoring_params: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringFnParams' - description: >- - Map between scoring function id and parameters for each scoring function - you want to run - num_examples: - type: integer - description: >- - (Optional) The number of examples to evaluate. If not provided, all examples - in the dataset will be evaluated - additionalProperties: false - required: - - eval_candidate - - scoring_params - title: BenchmarkConfig - description: >- - A benchmark configuration for evaluation. - EvalCandidate: - oneOf: - - $ref: '#/components/schemas/ModelCandidate' - - $ref: '#/components/schemas/AgentCandidate' - discriminator: - propertyName: type - mapping: - model: '#/components/schemas/ModelCandidate' - agent: '#/components/schemas/AgentCandidate' - LLMAsJudgeScoringFnParams: - type: object - properties: - type: - $ref: '#/components/schemas/ScoringFnParamsType' - const: llm_as_judge - default: llm_as_judge - description: >- - The type of scoring function parameters, always llm_as_judge - judge_model: - type: string - description: >- - Identifier of the LLM model to use as a judge for scoring - prompt_template: - type: string - description: >- - (Optional) Custom prompt template for the judge model - judge_score_regexes: - type: array - items: - type: string - description: >- - Regexes to extract the answer from generated response - aggregation_functions: - type: array - items: - $ref: '#/components/schemas/AggregationFunctionType' - description: >- - Aggregation functions to apply to the scores of each row - additionalProperties: false - required: - - type - - judge_model - - judge_score_regexes - - aggregation_functions - title: LLMAsJudgeScoringFnParams - description: >- - Parameters for LLM-as-judge scoring function configuration. - ModelCandidate: - type: object - properties: - type: - type: string - const: model - default: model - model: - type: string - description: The model ID to evaluate. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: The sampling parameters for the model. - system_message: - $ref: '#/components/schemas/SystemMessage' - description: >- - (Optional) The system message providing instructions or context to the - model. - additionalProperties: false - required: - - type - - model - - sampling_params - title: ModelCandidate - description: A model candidate for evaluation. - RegexParserScoringFnParams: - type: object - properties: - type: - $ref: '#/components/schemas/ScoringFnParamsType' - const: regex_parser - default: regex_parser - description: >- - The type of scoring function parameters, always regex_parser - parsing_regexes: - type: array - items: - type: string - description: >- - Regex to extract the answer from generated response - aggregation_functions: - type: array - items: - $ref: '#/components/schemas/AggregationFunctionType' - description: >- - Aggregation functions to apply to the scores of each row - additionalProperties: false - required: - - type - - parsing_regexes - - aggregation_functions - title: RegexParserScoringFnParams - description: >- - Parameters for regex parser scoring function configuration. - ScoringFnParams: - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - discriminator: - propertyName: type - mapping: - llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' - regex_parser: '#/components/schemas/RegexParserScoringFnParams' - basic: '#/components/schemas/BasicScoringFnParams' - ScoringFnParamsType: - type: string - enum: - - llm_as_judge - - regex_parser - - basic - title: ScoringFnParamsType - description: >- - Types of scoring function parameter configurations. - EvaluateRowsRequest: - type: object - properties: - input_rows: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The rows to evaluate. - scoring_functions: - type: array - items: - type: string - description: >- - The scoring functions to use for the evaluation. - benchmark_config: - $ref: '#/components/schemas/BenchmarkConfig' - description: The configuration for the benchmark. - additionalProperties: false - required: - - input_rows - - scoring_functions - - benchmark_config - title: EvaluateRowsRequest - EvaluateResponse: - type: object - properties: - generations: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The generations from the evaluation. - scores: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringResult' - description: The scores from the evaluation. - additionalProperties: false - required: - - generations - - scores - title: EvaluateResponse - description: The response from an evaluation. - ScoringResult: - type: object - properties: - score_rows: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The scoring result for each row. Each row is a map of column name to value. - aggregated_results: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Map of metric name to aggregated value - additionalProperties: false - required: - - score_rows - - aggregated_results - title: ScoringResult - description: A scoring result for a single row. - Agent: - type: object - properties: - agent_id: - type: string - description: Unique identifier for the agent - agent_config: - $ref: '#/components/schemas/AgentConfig' - description: Configuration settings for the agent - created_at: - type: string - format: date-time - description: Timestamp when the agent was created - additionalProperties: false - required: - - agent_id - - agent_config - - created_at - title: Agent - description: >- - An agent instance with configuration and metadata. - Session: - type: object - properties: - session_id: - type: string - description: >- - Unique identifier for the conversation session - session_name: - type: string - description: Human-readable name for the session - turns: - type: array - items: - $ref: '#/components/schemas/Turn' - description: >- - List of all turns that have occurred in this session - started_at: - type: string - format: date-time - description: Timestamp when the session was created - additionalProperties: false - required: - - session_id - - session_name - - turns - - started_at - title: Session - description: >- - A single session of an interaction with an Agentic System. - AgentStepResponse: - type: object - properties: - step: - oneOf: - - $ref: '#/components/schemas/InferenceStep' - - $ref: '#/components/schemas/ToolExecutionStep' - - $ref: '#/components/schemas/ShieldCallStep' - - $ref: '#/components/schemas/MemoryRetrievalStep' - discriminator: - propertyName: step_type - mapping: - inference: '#/components/schemas/InferenceStep' - tool_execution: '#/components/schemas/ToolExecutionStep' - shield_call: '#/components/schemas/ShieldCallStep' - memory_retrieval: '#/components/schemas/MemoryRetrievalStep' - description: >- - The complete step data and execution details - additionalProperties: false - required: - - step - title: AgentStepResponse - description: >- - Response containing details of a specific agent step. - Benchmark: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: benchmark - default: benchmark - description: The resource type, always benchmark - dataset_id: - type: string - description: >- - Identifier of the dataset to use for the benchmark evaluation - scoring_functions: - type: array - items: - type: string - description: >- - List of scoring function identifiers to apply during evaluation - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Metadata for this evaluation task - additionalProperties: false - required: - - identifier - - provider_id - - type - - dataset_id - - scoring_functions - - metadata - title: Benchmark - description: >- - A benchmark resource for evaluating model performance. - OpenAIAssistantMessageParam: - type: object - properties: - role: - type: string - const: assistant - default: assistant - description: >- - Must be "assistant" to identify this as the model's response - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: The content of the model's response - name: - type: string - description: >- - (Optional) The name of the assistant message participant. - tool_calls: - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - description: >- - List of tool calls. Each tool call is an OpenAIChatCompletionToolCall - object. - additionalProperties: false - required: - - role - title: OpenAIAssistantMessageParam - description: >- - A message containing the model's (assistant) response in an OpenAI-compatible - chat completion request. - "OpenAIChatCompletionContentPartImageParam": - type: object - properties: - type: - type: string - const: image_url - default: image_url - description: >- - Must be "image_url" to identify this as image content - image_url: - $ref: '#/components/schemas/OpenAIImageURL' - description: >- - Image URL specification and processing details - additionalProperties: false - required: - - type - - image_url - title: >- - OpenAIChatCompletionContentPartImageParam - description: >- - Image content part for OpenAI-compatible chat completion messages. - OpenAIChatCompletionContentPartParam: - oneOf: - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - - $ref: '#/components/schemas/OpenAIFile' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - image_url: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - file: '#/components/schemas/OpenAIFile' - OpenAIChatCompletionContentPartTextParam: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Must be "text" to identify this as text content - text: - type: string - description: The text content of the message - additionalProperties: false - required: - - type - - text - title: OpenAIChatCompletionContentPartTextParam - description: >- - Text content part for OpenAI-compatible chat completion messages. - OpenAIChatCompletionToolCall: - type: object - properties: - index: - type: integer - description: >- - (Optional) Index of the tool call in the list - id: - type: string - description: >- - (Optional) Unique identifier for the tool call - type: - type: string - const: function - default: function - description: >- - Must be "function" to identify this as a function call - function: - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' - description: (Optional) Function call details - additionalProperties: false - required: - - type - title: OpenAIChatCompletionToolCall - description: >- - Tool call specification for OpenAI-compatible chat completion responses. - OpenAIChatCompletionToolCallFunction: - type: object - properties: - name: - type: string - description: (Optional) Name of the function to call - arguments: - type: string - description: >- - (Optional) Arguments to pass to the function as a JSON string - additionalProperties: false - title: OpenAIChatCompletionToolCallFunction - description: >- - Function call details for OpenAI-compatible tool calls. - OpenAIChoice: - type: object - properties: - message: - $ref: '#/components/schemas/OpenAIMessageParam' - description: The message from the model - finish_reason: - type: string - description: The reason the model stopped generating - index: - type: integer - description: The index of the choice - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - description: >- - (Optional) The log probabilities for the tokens in the message - additionalProperties: false - required: - - message - - finish_reason - - index - title: OpenAIChoice - description: >- - A choice from an OpenAI-compatible chat completion response. - OpenAIChoiceLogprobs: - type: object - properties: - content: - type: array - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - description: >- - (Optional) The log probabilities for the tokens in the message - refusal: - type: array - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - description: >- - (Optional) The log probabilities for the tokens in the message - additionalProperties: false - title: OpenAIChoiceLogprobs - description: >- - The log probabilities for the tokens in the message from an OpenAI-compatible - chat completion response. - OpenAIDeveloperMessageParam: - type: object - properties: - role: - type: string - const: developer - default: developer - description: >- - Must be "developer" to identify this as a developer message - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: The content of the developer message - name: - type: string - description: >- - (Optional) The name of the developer message participant. - additionalProperties: false - required: - - role - - content - title: OpenAIDeveloperMessageParam - description: >- - A message from the developer in an OpenAI-compatible chat completion request. - OpenAIFile: - type: object - properties: - type: - type: string - const: file - default: file - file: - $ref: '#/components/schemas/OpenAIFileFile' - additionalProperties: false - required: - - type - - file - title: OpenAIFile - OpenAIFileFile: - type: object - properties: - file_data: - type: string - file_id: - type: string - filename: - type: string - additionalProperties: false - title: OpenAIFileFile - OpenAIImageURL: - type: object - properties: - url: - type: string - description: >- - URL of the image to include in the message - detail: - type: string - description: >- - (Optional) Level of detail for image processing. Can be "low", "high", - or "auto" - additionalProperties: false - required: - - url - title: OpenAIImageURL - description: >- - Image URL specification for OpenAI-compatible chat completion messages. - OpenAIMessageParam: - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAIUserMessageParam' - system: '#/components/schemas/OpenAISystemMessageParam' - assistant: '#/components/schemas/OpenAIAssistantMessageParam' - tool: '#/components/schemas/OpenAIToolMessageParam' - developer: '#/components/schemas/OpenAIDeveloperMessageParam' - OpenAISystemMessageParam: - type: object - properties: - role: - type: string - const: system - default: system - description: >- - Must be "system" to identify this as a system message - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: >- - The content of the "system prompt". If multiple system messages are provided, - they are concatenated. The underlying Llama Stack code may also add other - system messages (for example, for formatting tool definitions). - name: - type: string - description: >- - (Optional) The name of the system message participant. - additionalProperties: false - required: - - role - - content - title: OpenAISystemMessageParam - description: >- - A system message providing instructions or context to the model. - OpenAITokenLogProb: - type: object - properties: - token: - type: string - bytes: - type: array - items: - type: integer - logprob: - type: number - top_logprobs: - type: array - items: - $ref: '#/components/schemas/OpenAITopLogProb' - additionalProperties: false - required: - - token - - logprob - - top_logprobs - title: OpenAITokenLogProb - description: >- - The log probability for a token from an OpenAI-compatible chat completion - response. - OpenAIToolMessageParam: - type: object - properties: - role: - type: string - const: tool - default: tool - description: >- - Must be "tool" to identify this as a tool response - tool_call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: The response content from the tool - additionalProperties: false - required: - - role - - tool_call_id - - content - title: OpenAIToolMessageParam - description: >- - A message representing the result of a tool invocation in an OpenAI-compatible - chat completion request. - OpenAITopLogProb: - type: object - properties: - token: - type: string - bytes: - type: array - items: - type: integer - logprob: - type: number - additionalProperties: false - required: - - token - - logprob - title: OpenAITopLogProb - description: >- - The top log probability for a token from an OpenAI-compatible chat completion - response. - OpenAIUserMessageParam: - type: object - properties: - role: - type: string - const: user - default: user - description: >- - Must be "user" to identify this as a user message - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartParam' - description: >- - The content of the message, which can include text and other media - name: - type: string - description: >- - (Optional) The name of the user message participant. - additionalProperties: false - required: - - role - - content - title: OpenAIUserMessageParam - description: >- - A message from the user in an OpenAI-compatible chat completion request. - OpenAICompletionWithInputMessages: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChoice' - description: List of choices - object: - type: string - const: chat.completion - default: chat.completion - description: >- - The object type, which will be "chat.completion" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - input_messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - additionalProperties: false - required: - - id - - choices - - object - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - DataSource: - oneOf: - - $ref: '#/components/schemas/URIDataSource' - - $ref: '#/components/schemas/RowsDataSource' - discriminator: - propertyName: type - mapping: - uri: '#/components/schemas/URIDataSource' - rows: '#/components/schemas/RowsDataSource' - Dataset: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: dataset - default: dataset - description: >- - Type of resource, always 'dataset' for datasets - purpose: - type: string - enum: - - post-training/messages - - eval/question-answer - - eval/messages-answer - description: >- - Purpose of the dataset indicating its intended use - source: - $ref: '#/components/schemas/DataSource' - description: >- - Data source configuration for the dataset - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Additional metadata for the dataset - additionalProperties: false - required: - - identifier - - provider_id - - type - - purpose - - source - - metadata - title: Dataset - description: >- - Dataset resource for storing and accessing training or evaluation data. - RowsDataSource: - type: object - properties: - type: - type: string - const: rows - default: rows - rows: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The dataset is stored in rows. E.g. - [ {"messages": [{"role": "user", - "content": "Hello, world!"}, {"role": "assistant", "content": "Hello, - world!"}]} ] - additionalProperties: false - required: - - type - - rows - title: RowsDataSource - description: A dataset stored in rows. - URIDataSource: - type: object - properties: - type: - type: string - const: uri - default: uri - uri: - type: string - description: >- - The dataset can be obtained from a URI. E.g. - "https://mywebsite.com/mydata.jsonl" - - "lsfs://mydata.jsonl" - "data:csv;base64,{base64_content}" - additionalProperties: false - required: - - type - - uri - title: URIDataSource - description: >- - A dataset that can be obtained from a URI. - Model: - type: object - properties: - identifier: - type: string - description: >- - Unique identifier for this resource in llama stack - provider_resource_id: - type: string - description: >- - Unique identifier for this resource in the provider - provider_id: - type: string - description: >- - ID of the provider that owns this resource - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: model - default: model - description: >- - The resource type, always 'model' for model resources - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model - model_type: - $ref: '#/components/schemas/ModelType' - default: llm - description: >- - The type of model (LLM or embedding model) - additionalProperties: false - required: - - identifier - - provider_id - - type - - metadata - - model_type - title: Model - description: >- - A model resource representing an AI model registered in Llama Stack. - ModelType: - type: string - enum: - - llm - - embedding - title: ModelType - description: >- - Enumeration of supported model types in Llama Stack. - AgentTurnInputType: - type: object - properties: - type: - type: string - const: agent_turn_input - default: agent_turn_input - description: >- - Discriminator type. Always "agent_turn_input" - additionalProperties: false - required: - - type - title: AgentTurnInputType - description: Parameter type for agent turn input. - ArrayType: - type: object - properties: - type: - type: string - const: array - default: array - description: Discriminator type. Always "array" - additionalProperties: false - required: - - type - title: ArrayType - description: Parameter type for array values. - BooleanType: - type: object - properties: - type: - type: string - const: boolean - default: boolean - description: Discriminator type. Always "boolean" - additionalProperties: false - required: - - type - title: BooleanType - description: Parameter type for boolean values. - ChatCompletionInputType: - type: object - properties: - type: - type: string - const: chat_completion_input - default: chat_completion_input - description: >- - Discriminator type. Always "chat_completion_input" - additionalProperties: false - required: - - type - title: ChatCompletionInputType - description: >- - Parameter type for chat completion input. - CompletionInputType: - type: object - properties: - type: - type: string - const: completion_input - default: completion_input - description: >- - Discriminator type. Always "completion_input" - additionalProperties: false - required: - - type - title: CompletionInputType - description: Parameter type for completion input. - JsonType: - type: object - properties: - type: - type: string - const: json - default: json - description: Discriminator type. Always "json" - additionalProperties: false - required: - - type - title: JsonType - description: Parameter type for JSON values. - NumberType: - type: object - properties: - type: - type: string - const: number - default: number - description: Discriminator type. Always "number" - additionalProperties: false - required: - - type - title: NumberType - description: Parameter type for numeric values. - ObjectType: - type: object - properties: - type: - type: string - const: object - default: object - description: Discriminator type. Always "object" - additionalProperties: false - required: - - type - title: ObjectType - description: Parameter type for object values. - ParamType: - oneOf: - - $ref: '#/components/schemas/StringType' - - $ref: '#/components/schemas/NumberType' - - $ref: '#/components/schemas/BooleanType' - - $ref: '#/components/schemas/ArrayType' - - $ref: '#/components/schemas/ObjectType' - - $ref: '#/components/schemas/JsonType' - - $ref: '#/components/schemas/UnionType' - - $ref: '#/components/schemas/ChatCompletionInputType' - - $ref: '#/components/schemas/CompletionInputType' - - $ref: '#/components/schemas/AgentTurnInputType' - discriminator: - propertyName: type - mapping: - string: '#/components/schemas/StringType' - number: '#/components/schemas/NumberType' - boolean: '#/components/schemas/BooleanType' - array: '#/components/schemas/ArrayType' - object: '#/components/schemas/ObjectType' - json: '#/components/schemas/JsonType' - union: '#/components/schemas/UnionType' - chat_completion_input: '#/components/schemas/ChatCompletionInputType' - completion_input: '#/components/schemas/CompletionInputType' - agent_turn_input: '#/components/schemas/AgentTurnInputType' - ScoringFn: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: scoring_function - default: scoring_function - description: >- - The resource type, always scoring_function - description: - type: string - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - return_type: - $ref: '#/components/schemas/ParamType' - params: - $ref: '#/components/schemas/ScoringFnParams' - additionalProperties: false - required: - - identifier - - provider_id - - type - - metadata - - return_type - title: ScoringFn - description: >- - A scoring function resource for evaluating model outputs. - StringType: - type: object - properties: - type: - type: string - const: string - default: string - description: Discriminator type. Always "string" - additionalProperties: false - required: - - type - title: StringType - description: Parameter type for string values. - UnionType: - type: object - properties: - type: - type: string - const: union - default: union - description: Discriminator type. Always "union" - additionalProperties: false - required: - - type - title: UnionType - description: Parameter type for union values. - Shield: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: shield - default: shield - description: The resource type, always shield - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Configuration parameters for the shield - additionalProperties: false - required: - - identifier - - provider_id - - type - title: Shield - description: >- - A safety shield resource that can be used to check content. - Span: - type: object - properties: - span_id: - type: string - description: Unique identifier for the span - trace_id: - type: string - description: >- - Unique identifier for the trace this span belongs to - parent_span_id: - type: string - description: >- - (Optional) Unique identifier for the parent span, if this is a child span - name: - type: string - description: >- - Human-readable name describing the operation this span represents - start_time: - type: string - format: date-time - description: Timestamp when the operation began - end_time: - type: string - format: date-time - description: >- - (Optional) Timestamp when the operation finished, if completed - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Key-value pairs containing additional metadata about the span - additionalProperties: false - required: - - span_id - - trace_id - - name - - start_time - title: Span - description: >- - A span representing a single operation within a trace. - GetSpanTreeRequest: - type: object - properties: - attributes_to_return: - type: array - items: - type: string - description: The attributes to return in the tree. - max_depth: - type: integer - description: The maximum depth of the tree. - additionalProperties: false - title: GetSpanTreeRequest - SpanStatus: - type: string - enum: - - ok - - error - title: SpanStatus - description: >- - The status of a span indicating whether it completed successfully or with - an error. - SpanWithStatus: - type: object - properties: - span_id: - type: string - description: Unique identifier for the span - trace_id: - type: string - description: >- - Unique identifier for the trace this span belongs to - parent_span_id: - type: string - description: >- - (Optional) Unique identifier for the parent span, if this is a child span - name: - type: string - description: >- - Human-readable name describing the operation this span represents - start_time: - type: string - format: date-time - description: Timestamp when the operation began - end_time: - type: string - format: date-time - description: >- - (Optional) Timestamp when the operation finished, if completed - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Key-value pairs containing additional metadata about the span - status: - $ref: '#/components/schemas/SpanStatus' - description: >- - (Optional) The current status of the span - additionalProperties: false - required: - - span_id - - trace_id - - name - - start_time - title: SpanWithStatus - description: A span that includes status information. - QuerySpanTreeResponse: - type: object - properties: - data: - type: object - additionalProperties: - $ref: '#/components/schemas/SpanWithStatus' - description: >- - Dictionary mapping span IDs to spans with status information - additionalProperties: false - required: - - data - title: QuerySpanTreeResponse - description: >- - Response containing a tree structure of spans. - Tool: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: tool - default: tool - description: Type of resource, always 'tool' - toolgroup_id: - type: string - description: >- - ID of the tool group this tool belongs to - description: - type: string - description: >- - Human-readable description of what the tool does - parameters: - type: array - items: - $ref: '#/components/schemas/ToolParameter' - description: List of parameters this tool accepts - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool - additionalProperties: false - required: - - identifier - - provider_id - - type - - toolgroup_id - - description - - parameters - title: Tool - description: A tool that can be invoked by agents. - ToolGroup: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: tool_group - default: tool_group - description: Type of resource, always 'tool_group' - mcp_endpoint: - $ref: '#/components/schemas/URL' - description: >- - (Optional) Model Context Protocol endpoint for remote tools - args: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional arguments for the tool group - additionalProperties: false - required: - - identifier - - provider_id - - type - title: ToolGroup - description: >- - A group of related tools managed together. - Trace: - type: object - properties: - trace_id: - type: string - description: Unique identifier for the trace - root_span_id: - type: string - description: >- - Unique identifier for the root span that started this trace - start_time: - type: string - format: date-time - description: Timestamp when the trace began - end_time: - type: string - format: date-time - description: >- - (Optional) Timestamp when the trace finished, if completed - additionalProperties: false - required: - - trace_id - - root_span_id - - start_time - title: Trace - description: >- - A trace representing the complete execution path of a request across multiple - operations. - Checkpoint: - type: object - properties: - identifier: - type: string - description: Unique identifier for the checkpoint - created_at: - type: string - format: date-time - description: >- - Timestamp when the checkpoint was created - epoch: - type: integer - description: >- - Training epoch when the checkpoint was saved - post_training_job_id: - type: string - description: >- - Identifier of the training job that created this checkpoint - path: - type: string - description: >- - File system path where the checkpoint is stored - training_metrics: - $ref: '#/components/schemas/PostTrainingMetric' - description: >- - (Optional) Training metrics associated with this checkpoint - additionalProperties: false - required: - - identifier - - created_at - - epoch - - post_training_job_id - - path - title: Checkpoint - description: Checkpoint created during training runs. - PostTrainingJobArtifactsResponse: - type: object - properties: - job_uuid: - type: string - description: Unique identifier for the training job - checkpoints: - type: array - items: - $ref: '#/components/schemas/Checkpoint' - description: >- - List of model checkpoints created during training - additionalProperties: false - required: - - job_uuid - - checkpoints - title: PostTrainingJobArtifactsResponse - description: Artifacts of a finetuning job. - PostTrainingMetric: - type: object - properties: - epoch: - type: integer - description: Training epoch number - train_loss: - type: number - description: Loss value on the training dataset - validation_loss: - type: number - description: Loss value on the validation dataset - perplexity: - type: number - description: >- - Perplexity metric indicating model confidence - additionalProperties: false - required: - - epoch - - train_loss - - validation_loss - - perplexity - title: PostTrainingMetric - description: >- - Training metrics captured during post-training jobs. - PostTrainingJobStatusResponse: - type: object - properties: - job_uuid: - type: string - description: Unique identifier for the training job - status: - type: string - enum: - - completed - - in_progress - - failed - - scheduled - - cancelled - description: Current status of the training job - scheduled_at: - type: string - format: date-time - description: >- - (Optional) Timestamp when the job was scheduled - started_at: - type: string - format: date-time - description: >- - (Optional) Timestamp when the job execution began - completed_at: - type: string - format: date-time - description: >- - (Optional) Timestamp when the job finished, if completed - resources_allocated: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Information about computational resources allocated to the - job - checkpoints: - type: array - items: - $ref: '#/components/schemas/Checkpoint' - description: >- - List of model checkpoints created during training - additionalProperties: false - required: - - job_uuid - - status - - checkpoints - title: PostTrainingJobStatusResponse - description: Status of a finetuning job. - ListPostTrainingJobsResponse: - type: object - properties: - data: - type: array - items: - type: object - properties: - job_uuid: - type: string - additionalProperties: false - required: - - job_uuid - title: PostTrainingJob - additionalProperties: false - required: - - data - title: ListPostTrainingJobsResponse - VectorDB: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_db - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: vector_db - default: vector_db - description: >- - Type of resource, always 'vector_db' for vector databases - embedding_model: - type: string - description: >- - Name of the embedding model to use for vector generation - embedding_dimension: - type: integer - description: Dimension of the embedding vectors - vector_db_name: - type: string - additionalProperties: false - required: - - identifier - - provider_id - - type - - embedding_model - - embedding_dimension - title: VectorDB - description: >- - Vector database resource for storing and querying vector embeddings. - HealthInfo: - type: object - properties: - status: - type: string - enum: - - OK - - Error - - Not Implemented - description: Current health status of the service - additionalProperties: false - required: - - status - title: HealthInfo - description: >- - Health status information for the service. - RAGDocument: - type: object - properties: - document_id: - type: string - description: The unique identifier for the document. - content: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - - $ref: '#/components/schemas/URL' - description: The content of the document. - mime_type: - type: string - description: The MIME type of the document. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Additional metadata for the document. - additionalProperties: false - required: - - document_id - - content - - metadata - title: RAGDocument - description: >- - A document to be used for document ingestion in the RAG Tool. - InsertRequest: - type: object - properties: - documents: - type: array - items: - $ref: '#/components/schemas/RAGDocument' - description: >- - List of documents to index in the RAG system - vector_db_id: - type: string - description: >- - ID of the vector database to store the document embeddings - chunk_size_in_tokens: - type: integer - description: >- - (Optional) Size in tokens for document chunking during indexing - additionalProperties: false - required: - - documents - - vector_db_id - - chunk_size_in_tokens - title: InsertRequest - Chunk: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the chunk, which can be interleaved text, images, or other - types. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Metadata associated with the chunk that will be used in the model context - during inference. - embedding: - type: array - items: - type: number - description: >- - Optional embedding for the chunk. If not provided, it will be computed - later. - stored_chunk_id: - type: string - description: >- - The chunk ID that is stored in the vector database. Used for backend functionality. - chunk_metadata: - $ref: '#/components/schemas/ChunkMetadata' - description: >- - Metadata for the chunk that will NOT be used in the context during inference. - The `chunk_metadata` is required backend functionality. - additionalProperties: false - required: - - content - - metadata - title: Chunk - description: >- - A chunk of content that can be inserted into a vector database. - ChunkMetadata: - type: object - properties: - chunk_id: - type: string - description: >- - The ID of the chunk. If not set, it will be generated based on the document - ID and content. - document_id: - type: string - description: >- - The ID of the document this chunk belongs to. - source: - type: string - description: >- - The source of the content, such as a URL, file path, or other identifier. - created_timestamp: - type: integer - description: >- - An optional timestamp indicating when the chunk was created. - updated_timestamp: - type: integer - description: >- - An optional timestamp indicating when the chunk was last updated. - chunk_window: - type: string - description: >- - The window of the chunk, which can be used to group related chunks together. - chunk_tokenizer: - type: string - description: >- - The tokenizer used to create the chunk. Default is Tiktoken. - chunk_embedding_model: - type: string - description: >- - The embedding model used to create the chunk's embedding. - chunk_embedding_dimension: - type: integer - description: >- - The dimension of the embedding vector for the chunk. - content_token_count: - type: integer - description: >- - The number of tokens in the content of the chunk. - metadata_token_count: - type: integer - description: >- - The number of tokens in the metadata of the chunk. - additionalProperties: false - title: ChunkMetadata - description: >- - `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional - information about the chunk that will not be used in the context during - inference, but is required for backend functionality. The `ChunkMetadata` is - set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not - expected to change after. Use `Chunk.metadata` for metadata that will - be used in the context during inference. - InsertChunksRequest: - type: object - properties: - vector_db_id: - type: string - description: >- - The identifier of the vector database to insert the chunks into. - chunks: - type: array - items: - $ref: '#/components/schemas/Chunk' - description: >- - The chunks to insert. Each `Chunk` should contain content which can be - interleaved text, images, or other types. `metadata`: `dict[str, Any]` - and `embedding`: `List[float]` are optional. If `metadata` is provided, - you configure how Llama Stack formats the chunk during generation. If - `embedding` is not provided, it will be computed later. - ttl_seconds: - type: integer - description: The time to live of the chunks. - additionalProperties: false - required: - - vector_db_id - - chunks - title: InsertChunksRequest - ProviderInfo: - type: object - properties: - api: - type: string - description: The API name this provider implements - provider_id: - type: string - description: Unique identifier for the provider - provider_type: - type: string - description: The type of provider implementation - config: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Configuration parameters for the provider - health: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Current health status of the provider - additionalProperties: false - required: - - api - - provider_id - - provider_type - - config - - health - title: ProviderInfo - description: >- - Information about a registered provider including its configuration and health - status. - InvokeToolRequest: - type: object - properties: - tool_name: - type: string - description: The name of the tool to invoke. - kwargs: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - A dictionary of arguments to pass to the tool. - additionalProperties: false - required: - - tool_name - - kwargs - title: InvokeToolRequest - ToolInvocationResult: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) The output content from the tool execution - error_message: - type: string - description: >- - (Optional) Error message if the tool execution failed - error_code: - type: integer - description: >- - (Optional) Numeric error code if the tool execution failed - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool execution - additionalProperties: false - title: ToolInvocationResult - description: Result of a tool invocation. - PaginatedResponse: - type: object - properties: - data: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The list of items for the current page - has_more: - type: boolean - description: >- - Whether there are more items available after this set - url: - type: string - description: The URL for accessing this list - additionalProperties: false - required: - - data - - has_more - title: PaginatedResponse - description: >- - A generic paginated response that follows a simple format. - Job: - type: object - properties: - job_id: - type: string - description: Unique identifier for the job - status: - type: string - enum: - - completed - - in_progress - - failed - - scheduled - - cancelled - description: Current execution status of the job - additionalProperties: false - required: - - job_id - - status - title: Job - description: >- - A job execution instance with status tracking. - ListBenchmarksResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Benchmark' - additionalProperties: false - required: - - data - title: ListBenchmarksResponse - Order: - type: string - enum: - - asc - - desc - title: Order - description: Sort order for paginated responses. - ListOpenAIChatCompletionResponse: - type: object - properties: - data: - type: array - items: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChoice' - description: List of choices - object: - type: string - const: chat.completion - default: chat.completion - description: >- - The object type, which will be "chat.completion" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - input_messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - additionalProperties: false - required: - - id - - choices - - object - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - description: >- - List of chat completion objects with their input messages - has_more: - type: boolean - description: >- - Whether there are more completions available beyond this list - first_id: - type: string - description: ID of the first completion in this list - last_id: - type: string - description: ID of the last completion in this list - object: - type: string - const: list - default: list - description: >- - Must be "list" to identify this as a list response - additionalProperties: false - required: - - data - - has_more - - first_id - - last_id - - object - title: ListOpenAIChatCompletionResponse - description: >- - Response from listing OpenAI-compatible chat completions. - ListDatasetsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Dataset' - description: List of datasets - additionalProperties: false - required: - - data - title: ListDatasetsResponse - description: Response from listing datasets. - ListModelsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Model' - additionalProperties: false - required: - - data - title: ListModelsResponse - ListOpenAIResponseInputItem: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInput' - description: List of input items - object: - type: string - const: list - default: list - description: Object type identifier, always "list" - additionalProperties: false - required: - - data - - object - title: ListOpenAIResponseInputItem - description: >- - List container for OpenAI response input items. - ListOpenAIResponseObject: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseObjectWithInput' - description: >- - List of response objects with their input context - has_more: - type: boolean - description: >- - Whether there are more results available beyond this page - first_id: - type: string - description: >- - Identifier of the first item in this page - last_id: - type: string - description: Identifier of the last item in this page - object: - type: string - const: list - default: list - description: Object type identifier, always "list" - additionalProperties: false - required: - - data - - has_more - - first_id - - last_id - - object - title: ListOpenAIResponseObject - description: >- - Paginated list of OpenAI response objects with navigation metadata. - OpenAIResponseObjectWithInput: - type: object - properties: - created_at: - type: integer - description: >- - Unix timestamp when the response was created - error: - $ref: '#/components/schemas/OpenAIResponseError' - description: >- - (Optional) Error details if the response generation failed - id: - type: string - description: Unique identifier for this response - model: - type: string - description: Model identifier used for generation - object: - type: string - const: response - default: response - description: >- - Object type identifier, always "response" - output: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseOutput' - description: >- - List of generated output items (messages, tool calls, etc.) - parallel_tool_calls: - type: boolean - default: false - description: >- - Whether tool calls can be executed in parallel - previous_response_id: - type: string - description: >- - (Optional) ID of the previous response in a conversation - status: - type: string - description: >- - Current status of the response generation - temperature: - type: number - description: >- - (Optional) Sampling temperature used for generation - text: - $ref: '#/components/schemas/OpenAIResponseText' - description: >- - Text formatting configuration for the response - top_p: - type: number - description: >- - (Optional) Nucleus sampling parameter used for generation - truncation: - type: string - description: >- - (Optional) Truncation strategy applied to the response - user: - type: string - description: >- - (Optional) User identifier associated with the request - input: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInput' - description: >- - List of input items that led to this response - additionalProperties: false - required: - - created_at - - id - - model - - object - - output - - parallel_tool_calls - - status - - text - - input - title: OpenAIResponseObjectWithInput - description: >- - OpenAI response object extended with input context information. - ListPromptsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Prompt' - additionalProperties: false - required: - - data - title: ListPromptsResponse - description: Response model to list prompts. - ListProvidersResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ProviderInfo' - description: List of provider information objects - additionalProperties: false - required: - - data - title: ListProvidersResponse - description: >- - Response containing a list of all available providers. - RouteInfo: - type: object - properties: - route: - type: string - description: The API endpoint path - method: - type: string - description: HTTP method for the route - provider_types: - type: array - items: - type: string - description: >- - List of provider types that implement this route - additionalProperties: false - required: - - route - - method - - provider_types - title: RouteInfo - description: >- - Information about an API route including its path, method, and implementing - providers. - ListRoutesResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/RouteInfo' - description: >- - List of available route information objects - additionalProperties: false - required: - - data - title: ListRoutesResponse - description: >- - Response containing a list of all available API routes. - ListToolDefsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ToolDef' - description: List of tool definitions - additionalProperties: false - required: - - data - title: ListToolDefsResponse - description: >- - Response containing a list of tool definitions. - ListScoringFunctionsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ScoringFn' - additionalProperties: false - required: - - data - title: ListScoringFunctionsResponse - ListShieldsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Shield' - additionalProperties: false - required: - - data - title: ListShieldsResponse - ListToolGroupsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ToolGroup' - description: List of tool groups - additionalProperties: false - required: - - data - title: ListToolGroupsResponse - description: >- - Response containing a list of tool groups. - ListToolsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Tool' - description: List of tools - additionalProperties: false - required: - - data - title: ListToolsResponse - description: Response containing a list of tools. - ListVectorDBsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/VectorDB' - description: List of vector databases - additionalProperties: false - required: - - data - title: ListVectorDBsResponse - description: Response from listing vector databases. - Event: - oneOf: - - $ref: '#/components/schemas/UnstructuredLogEvent' - - $ref: '#/components/schemas/MetricEvent' - - $ref: '#/components/schemas/StructuredLogEvent' - discriminator: - propertyName: type - mapping: - unstructured_log: '#/components/schemas/UnstructuredLogEvent' - metric: '#/components/schemas/MetricEvent' - structured_log: '#/components/schemas/StructuredLogEvent' - EventType: - type: string - enum: - - unstructured_log - - structured_log - - metric - title: EventType - description: >- - The type of telemetry event being logged. - LogSeverity: - type: string - enum: - - verbose - - debug - - info - - warn - - error - - critical - title: LogSeverity - description: The severity level of a log message. - MetricEvent: - type: object - properties: - trace_id: - type: string - description: >- - Unique identifier for the trace this event belongs to - span_id: - type: string - description: >- - Unique identifier for the span this event belongs to - timestamp: - type: string - format: date-time - description: Timestamp when the event occurred - attributes: - type: object - additionalProperties: - oneOf: - - type: string - - type: integer - - type: number - - type: boolean - - type: 'null' - description: >- - (Optional) Key-value pairs containing additional metadata about the event - type: - $ref: '#/components/schemas/EventType' - const: metric - default: metric - description: Event type identifier set to METRIC - metric: - type: string - description: The name of the metric being measured - value: - oneOf: - - type: integer - - type: number - description: >- - The numeric value of the metric measurement - unit: - type: string - description: >- - The unit of measurement for the metric value - additionalProperties: false - required: - - trace_id - - span_id - - timestamp - - type - - metric - - value - - unit - title: MetricEvent - description: >- - A metric event containing a measured value. - SpanEndPayload: - type: object - properties: - type: - $ref: '#/components/schemas/StructuredLogType' - const: span_end - default: span_end - description: Payload type identifier set to SPAN_END - status: - $ref: '#/components/schemas/SpanStatus' - description: >- - The final status of the span indicating success or failure - additionalProperties: false - required: - - type - - status - title: SpanEndPayload - description: Payload for a span end event. - SpanStartPayload: - type: object - properties: - type: - $ref: '#/components/schemas/StructuredLogType' - const: span_start - default: span_start - description: >- - Payload type identifier set to SPAN_START - name: - type: string - description: >- - Human-readable name describing the operation this span represents - parent_span_id: - type: string - description: >- - (Optional) Unique identifier for the parent span, if this is a child span - additionalProperties: false - required: - - type - - name - title: SpanStartPayload - description: Payload for a span start event. - StructuredLogEvent: - type: object - properties: - trace_id: - type: string - description: >- - Unique identifier for the trace this event belongs to - span_id: - type: string - description: >- - Unique identifier for the span this event belongs to - timestamp: - type: string - format: date-time - description: Timestamp when the event occurred - attributes: - type: object - additionalProperties: - oneOf: - - type: string - - type: integer - - type: number - - type: boolean - - type: 'null' - description: >- - (Optional) Key-value pairs containing additional metadata about the event - type: - $ref: '#/components/schemas/EventType' - const: structured_log - default: structured_log - description: >- - Event type identifier set to STRUCTURED_LOG - payload: - $ref: '#/components/schemas/StructuredLogPayload' - description: >- - The structured payload data for the log event - additionalProperties: false - required: - - trace_id - - span_id - - timestamp - - type - - payload - title: StructuredLogEvent - description: >- - A structured log event containing typed payload data. - StructuredLogPayload: - oneOf: - - $ref: '#/components/schemas/SpanStartPayload' - - $ref: '#/components/schemas/SpanEndPayload' - discriminator: - propertyName: type - mapping: - span_start: '#/components/schemas/SpanStartPayload' - span_end: '#/components/schemas/SpanEndPayload' - StructuredLogType: - type: string - enum: - - span_start - - span_end - title: StructuredLogType - description: >- - The type of structured log event payload. - UnstructuredLogEvent: - type: object - properties: - trace_id: - type: string - description: >- - Unique identifier for the trace this event belongs to - span_id: - type: string - description: >- - Unique identifier for the span this event belongs to - timestamp: - type: string - format: date-time - description: Timestamp when the event occurred - attributes: - type: object - additionalProperties: - oneOf: - - type: string - - type: integer - - type: number - - type: boolean - - type: 'null' - description: >- - (Optional) Key-value pairs containing additional metadata about the event - type: - $ref: '#/components/schemas/EventType' - const: unstructured_log - default: unstructured_log - description: >- - Event type identifier set to UNSTRUCTURED_LOG - message: - type: string - description: The log message text - severity: - $ref: '#/components/schemas/LogSeverity' - description: The severity level of the log message - additionalProperties: false - required: - - trace_id - - span_id - - timestamp - - type - - message - - severity - title: UnstructuredLogEvent - description: >- - An unstructured log event containing a simple text message. - LogEventRequest: - type: object - properties: - event: - $ref: '#/components/schemas/Event' - description: The event to log. - ttl_seconds: - type: integer - description: The time to live of the event. - additionalProperties: false - required: - - event - - ttl_seconds - title: LogEventRequest - VectorStoreChunkingStrategy: - oneOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - discriminator: - propertyName: type - mapping: - auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' - static: '#/components/schemas/VectorStoreChunkingStrategyStatic' - VectorStoreChunkingStrategyAuto: - type: object - properties: - type: - type: string - const: auto - default: auto - description: >- - Strategy type, always "auto" for automatic chunking - additionalProperties: false - required: - - type - title: VectorStoreChunkingStrategyAuto - description: >- - Automatic chunking strategy for vector store files. - VectorStoreChunkingStrategyStatic: - type: object - properties: - type: - type: string - const: static - default: static - description: >- - Strategy type, always "static" for static chunking - static: - $ref: '#/components/schemas/VectorStoreChunkingStrategyStaticConfig' - description: >- - Configuration parameters for the static chunking strategy - additionalProperties: false - required: - - type - - static - title: VectorStoreChunkingStrategyStatic - description: >- - Static chunking strategy with configurable parameters. - VectorStoreChunkingStrategyStaticConfig: - type: object - properties: - chunk_overlap_tokens: - type: integer - default: 400 - description: >- - Number of tokens to overlap between adjacent chunks - max_chunk_size_tokens: - type: integer - default: 800 - description: >- - Maximum number of tokens per chunk, must be between 100 and 4096 - additionalProperties: false - required: - - chunk_overlap_tokens - - max_chunk_size_tokens - title: VectorStoreChunkingStrategyStaticConfig - description: >- - Configuration for static chunking strategy. - OpenaiAttachFileToVectorStoreRequest: - type: object - properties: - file_id: - type: string - description: >- - The ID of the file to attach to the vector store. - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The key-value attributes stored with the file, which can be used for filtering. - chunking_strategy: - $ref: '#/components/schemas/VectorStoreChunkingStrategy' - description: >- - The chunking strategy to use for the file. - additionalProperties: false - required: - - file_id - title: OpenaiAttachFileToVectorStoreRequest - VectorStoreFileLastError: - type: object - properties: - code: - oneOf: - - type: string - const: server_error - - type: string - const: rate_limit_exceeded - description: >- - Error code indicating the type of failure - message: - type: string - description: >- - Human-readable error message describing the failure - additionalProperties: false - required: - - code - - message - title: VectorStoreFileLastError - description: >- - Error information for failed vector store file processing. - VectorStoreFileObject: - type: object - properties: - id: - type: string - description: Unique identifier for the file - object: - type: string - default: vector_store.file - description: >- - Object type identifier, always "vector_store.file" - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Key-value attributes associated with the file - chunking_strategy: - $ref: '#/components/schemas/VectorStoreChunkingStrategy' - description: >- - Strategy used for splitting the file into chunks - created_at: - type: integer - description: >- - Timestamp when the file was added to the vector store - last_error: - $ref: '#/components/schemas/VectorStoreFileLastError' - description: >- - (Optional) Error information if file processing failed - status: - $ref: '#/components/schemas/VectorStoreFileStatus' - description: Current processing status of the file - usage_bytes: - type: integer - default: 0 - description: Storage space used by this file in bytes - vector_store_id: - type: string - description: >- - ID of the vector store containing this file - additionalProperties: false - required: - - id - - object - - attributes - - chunking_strategy - - created_at - - status - - usage_bytes - - vector_store_id - title: VectorStoreFileObject - description: OpenAI Vector Store File object. - VectorStoreFileStatus: - oneOf: - - type: string - const: completed - - type: string - const: in_progress - - type: string - const: cancelled - - type: string - const: failed - OpenAIJSONSchema: - type: object - properties: - name: - type: string - description: Name of the schema - description: - type: string - description: (Optional) Description of the schema - strict: - type: boolean - description: >- - (Optional) Whether to enforce strict adherence to the schema - schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The JSON schema definition - additionalProperties: false - required: - - name - title: OpenAIJSONSchema - description: >- - JSON schema specification for OpenAI-compatible structured response format. - OpenAIResponseFormatJSONObject: - type: object - properties: - type: - type: string - const: json_object - default: json_object - description: >- - Must be "json_object" to indicate generic JSON object response format - additionalProperties: false - required: - - type - title: OpenAIResponseFormatJSONObject - description: >- - JSON object response format for OpenAI-compatible chat completion requests. - OpenAIResponseFormatJSONSchema: - type: object - properties: - type: - type: string - const: json_schema - default: json_schema - description: >- - Must be "json_schema" to indicate structured JSON response format - json_schema: - $ref: '#/components/schemas/OpenAIJSONSchema' - description: >- - The JSON schema specification for the response - additionalProperties: false - required: - - type - - json_schema - title: OpenAIResponseFormatJSONSchema - description: >- - JSON schema response format for OpenAI-compatible chat completion requests. - OpenAIResponseFormatParam: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseFormatText' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAIResponseFormatText' - json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' - json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' - OpenAIResponseFormatText: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Must be "text" to indicate plain text response format - additionalProperties: false - required: - - type - title: OpenAIResponseFormatText - description: >- - Text response format for OpenAI-compatible chat completion requests. - OpenaiChatCompletionRequest: - type: object - properties: - model: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - description: List of messages in the conversation. - frequency_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - function_call: - oneOf: - - type: string - - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The function call to use. - functions: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) List of functions to use. - logit_bias: - type: object - additionalProperties: - type: number - description: (Optional) The logit bias to use. - logprobs: - type: boolean - description: (Optional) The log probabilities to use. - max_completion_tokens: - type: integer - description: >- - (Optional) The maximum number of tokens to generate. - max_tokens: - type: integer - description: >- - (Optional) The maximum number of tokens to generate. - n: - type: integer - description: >- - (Optional) The number of completions to generate. - parallel_tool_calls: - type: boolean - description: >- - (Optional) Whether to parallelize tool calls. - presence_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - response_format: - $ref: '#/components/schemas/OpenAIResponseFormatParam' - description: (Optional) The response format to use. - seed: - type: integer - description: (Optional) The seed to use. - stop: - oneOf: - - type: string - - type: array - items: - type: string - description: (Optional) The stop tokens to use. - stream: - type: boolean - description: >- - (Optional) Whether to stream the response. - stream_options: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The stream options to use. - temperature: - type: number - description: (Optional) The temperature to use. - tool_choice: - oneOf: - - type: string - - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The tool choice to use. - tools: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The tools to use. - top_logprobs: - type: integer - description: >- - (Optional) The top log probabilities to use. - top_p: - type: number - description: (Optional) The top p to use. - user: - type: string - description: (Optional) The user to use. - additionalProperties: false - required: - - model - - messages - title: OpenaiChatCompletionRequest - OpenAIChatCompletion: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChoice' - description: List of choices - object: - type: string - const: chat.completion - default: chat.completion - description: >- - The object type, which will be "chat.completion" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - additionalProperties: false - required: - - id - - choices - - object - - created - - model - title: OpenAIChatCompletion - description: >- - Response from an OpenAI-compatible chat completion request. - OpenAIChatCompletionChunk: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChunkChoice' - description: List of choices - object: - type: string - const: chat.completion.chunk - default: chat.completion.chunk - description: >- - The object type, which will be "chat.completion.chunk" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - additionalProperties: false - required: - - id - - choices - - object - - created - - model - title: OpenAIChatCompletionChunk - description: >- - Chunk from a streaming response to an OpenAI-compatible chat completion request. - OpenAIChoiceDelta: - type: object - properties: - content: - type: string - description: (Optional) The content of the delta - refusal: - type: string - description: (Optional) The refusal of the delta - role: - type: string - description: (Optional) The role of the delta - tool_calls: - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - description: (Optional) The tool calls of the delta - additionalProperties: false - title: OpenAIChoiceDelta - description: >- - A delta from an OpenAI-compatible chat completion streaming response. - OpenAIChunkChoice: - type: object - properties: - delta: - $ref: '#/components/schemas/OpenAIChoiceDelta' - description: The delta from the chunk - finish_reason: - type: string - description: The reason the model stopped generating - index: - type: integer - description: The index of the choice - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - description: >- - (Optional) The log probabilities for the tokens in the message - additionalProperties: false - required: - - delta - - finish_reason - - index - title: OpenAIChunkChoice - description: >- - A chunk choice from an OpenAI-compatible chat completion streaming response. - OpenaiCompletionRequest: - type: object - properties: - model: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - prompt: - oneOf: - - type: string - - type: array - items: - type: string - - type: array - items: - type: integer - - type: array - items: - type: array - items: - type: integer - description: The prompt to generate a completion for. - best_of: - type: integer - description: >- - (Optional) The number of completions to generate. - echo: - type: boolean - description: (Optional) Whether to echo the prompt. - frequency_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - logit_bias: - type: object - additionalProperties: - type: number - description: (Optional) The logit bias to use. - logprobs: - type: boolean - description: (Optional) The log probabilities to use. - max_tokens: - type: integer - description: >- - (Optional) The maximum number of tokens to generate. - n: - type: integer - description: >- - (Optional) The number of completions to generate. - presence_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - seed: - type: integer - description: (Optional) The seed to use. - stop: - oneOf: - - type: string - - type: array - items: - type: string - description: (Optional) The stop tokens to use. - stream: - type: boolean - description: >- - (Optional) Whether to stream the response. - stream_options: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The stream options to use. - temperature: - type: number - description: (Optional) The temperature to use. - top_p: - type: number - description: (Optional) The top p to use. - user: - type: string - description: (Optional) The user to use. - guided_choice: - type: array - items: - type: string - prompt_logprobs: - type: integer - suffix: - type: string - description: >- - (Optional) The suffix that should be appended to the completion. - additionalProperties: false - required: - - model - - prompt - title: OpenaiCompletionRequest - OpenAICompletion: - type: object - properties: - id: - type: string - choices: - type: array - items: - $ref: '#/components/schemas/OpenAICompletionChoice' - created: - type: integer - model: - type: string - object: - type: string - const: text_completion - default: text_completion - additionalProperties: false - required: - - id - - choices - - created - - model - - object - title: OpenAICompletion - description: >- - Response from an OpenAI-compatible completion request. - OpenAICompletionChoice: - type: object - properties: - finish_reason: - type: string - text: - type: string - index: - type: integer - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - additionalProperties: false - required: - - finish_reason - - text - - index - title: OpenAICompletionChoice - description: >- - A choice from an OpenAI-compatible completion response. - OpenaiCreateVectorStoreRequest: - type: object - properties: - name: - type: string - description: A name for the vector store. - file_ids: - type: array - items: - type: string - description: >- - A list of File IDs that the vector store should use. Useful for tools - like `file_search` that can access files. - expires_after: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The expiration policy for a vector store. - chunking_strategy: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The chunking strategy used to chunk the file(s). If not set, will use - the `auto` strategy. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Set of 16 key-value pairs that can be attached to an object. - embedding_model: - type: string - description: >- - The embedding model to use for this vector store. - embedding_dimension: - type: integer - description: >- - The dimension of the embedding vectors (default: 384). - provider_id: - type: string - description: >- - The ID of the provider to use for this vector store. - additionalProperties: false - title: OpenaiCreateVectorStoreRequest - VectorStoreFileCounts: - type: object - properties: - completed: - type: integer - description: >- - Number of files that have been successfully processed - cancelled: - type: integer - description: >- - Number of files that had their processing cancelled - failed: - type: integer - description: Number of files that failed to process - in_progress: - type: integer - description: >- - Number of files currently being processed - total: - type: integer - description: >- - Total number of files in the vector store - additionalProperties: false - required: - - completed - - cancelled - - failed - - in_progress - - total - title: VectorStoreFileCounts - description: >- - File processing status counts for a vector store. - VectorStoreObject: - type: object - properties: - id: - type: string - description: Unique identifier for the vector store - object: - type: string - default: vector_store - description: >- - Object type identifier, always "vector_store" - created_at: - type: integer - description: >- - Timestamp when the vector store was created - name: - type: string - description: (Optional) Name of the vector store - usage_bytes: - type: integer - default: 0 - description: >- - Storage space used by the vector store in bytes - file_counts: - $ref: '#/components/schemas/VectorStoreFileCounts' - description: >- - File processing status counts for the vector store - status: - type: string - default: completed - description: Current status of the vector store - expires_after: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Expiration policy for the vector store - expires_at: - type: integer - description: >- - (Optional) Timestamp when the vector store will expire - last_active_at: - type: integer - description: >- - (Optional) Timestamp of last activity on the vector store - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Set of key-value pairs that can be attached to the vector store - additionalProperties: false - required: - - id - - object - - created_at - - usage_bytes - - file_counts - - status - - metadata - title: VectorStoreObject - description: OpenAI Vector Store object. - OpenAIFileDeleteResponse: - type: object - properties: - id: - type: string - description: The file identifier that was deleted - object: - type: string - const: file - default: file - description: The object type, which is always "file" - deleted: - type: boolean - description: >- - Whether the file was successfully deleted - additionalProperties: false - required: - - id - - object - - deleted - title: OpenAIFileDeleteResponse - description: >- - Response for deleting a file in OpenAI Files API. - VectorStoreDeleteResponse: - type: object - properties: - id: - type: string - description: >- - Unique identifier of the deleted vector store - object: - type: string - default: vector_store.deleted - description: >- - Object type identifier for the deletion response - deleted: - type: boolean - default: true - description: >- - Whether the deletion operation was successful - additionalProperties: false - required: - - id - - object - - deleted - title: VectorStoreDeleteResponse - description: Response from deleting a vector store. - VectorStoreFileDeleteResponse: - type: object - properties: - id: - type: string - description: Unique identifier of the deleted file - object: - type: string - default: vector_store.file.deleted - description: >- - Object type identifier for the deletion response - deleted: - type: boolean - default: true - description: >- - Whether the deletion operation was successful - additionalProperties: false - required: - - id - - object - - deleted - title: VectorStoreFileDeleteResponse - description: >- - Response from deleting a vector store file. - OpenaiEmbeddingsRequest: - type: object - properties: - model: - type: string - description: >- - The identifier of the model to use. The model must be an embedding model - registered with Llama Stack and available via the /models endpoint. - input: - oneOf: - - type: string - - type: array - items: - type: string - description: >- - Input text to embed, encoded as a string or array of strings. To embed - multiple inputs in a single request, pass an array of strings. - encoding_format: - type: string - description: >- - (Optional) The format to return the embeddings in. Can be either "float" - or "base64". Defaults to "float". - dimensions: - type: integer - description: >- - (Optional) The number of dimensions the resulting output embeddings should - have. Only supported in text-embedding-3 and later models. - user: - type: string - description: >- - (Optional) A unique identifier representing your end-user, which can help - OpenAI to monitor and detect abuse. - additionalProperties: false - required: - - model - - input - title: OpenaiEmbeddingsRequest - OpenAIEmbeddingData: - type: object - properties: - object: - type: string - const: embedding - default: embedding - description: >- - The object type, which will be "embedding" - embedding: - oneOf: - - type: array - items: - type: number - - type: string - description: >- - The embedding vector as a list of floats (when encoding_format="float") - or as a base64-encoded string (when encoding_format="base64") - index: - type: integer - description: >- - The index of the embedding in the input list - additionalProperties: false - required: - - object - - embedding - - index - title: OpenAIEmbeddingData - description: >- - A single embedding data object from an OpenAI-compatible embeddings response. - OpenAIEmbeddingUsage: - type: object - properties: - prompt_tokens: - type: integer - description: The number of tokens in the input - total_tokens: - type: integer - description: The total number of tokens used - additionalProperties: false - required: - - prompt_tokens - - total_tokens - title: OpenAIEmbeddingUsage - description: >- - Usage information for an OpenAI-compatible embeddings response. - OpenAIEmbeddingsResponse: - type: object - properties: - object: - type: string - const: list - default: list - description: The object type, which will be "list" - data: - type: array - items: - $ref: '#/components/schemas/OpenAIEmbeddingData' - description: List of embedding data objects - model: - type: string - description: >- - The model that was used to generate the embeddings - usage: - $ref: '#/components/schemas/OpenAIEmbeddingUsage' - description: Usage information - additionalProperties: false - required: - - object - - data - - model - - usage - title: OpenAIEmbeddingsResponse - description: >- - Response from an OpenAI-compatible embeddings request. - OpenAIFilePurpose: - type: string - enum: - - assistants - - batch - title: OpenAIFilePurpose - description: >- - Valid purpose values for OpenAI Files API. - ListOpenAIFileResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIFileObject' - description: List of file objects - has_more: - type: boolean - description: >- - Whether there are more files available beyond this page - first_id: - type: string - description: >- - ID of the first file in the list for pagination - last_id: - type: string - description: >- - ID of the last file in the list for pagination - object: - type: string - const: list - default: list - description: The object type, which is always "list" - additionalProperties: false - required: - - data - - has_more - - first_id - - last_id - - object - title: ListOpenAIFileResponse - description: >- - Response for listing files in OpenAI Files API. - OpenAIFileObject: - type: object - properties: - object: - type: string - const: file - default: file - description: The object type, which is always "file" - id: - type: string - description: >- - The file identifier, which can be referenced in the API endpoints - bytes: - type: integer - description: The size of the file, in bytes - created_at: - type: integer - description: >- - The Unix timestamp (in seconds) for when the file was created - expires_at: - type: integer - description: >- - The Unix timestamp (in seconds) for when the file expires - filename: - type: string - description: The name of the file - purpose: - type: string - enum: - - assistants - - batch - description: The intended purpose of the file - additionalProperties: false - required: - - object - - id - - bytes - - created_at - - expires_at - - filename - - purpose - title: OpenAIFileObject - description: >- - OpenAI File object as defined in the OpenAI Files API. - VectorStoreListFilesResponse: - type: object - properties: - object: - type: string - default: list - description: Object type identifier, always "list" - data: - type: array - items: - $ref: '#/components/schemas/VectorStoreFileObject' - description: List of vector store file objects - first_id: - type: string - description: >- - (Optional) ID of the first file in the list for pagination - last_id: - type: string - description: >- - (Optional) ID of the last file in the list for pagination - has_more: - type: boolean - default: false - description: >- - Whether there are more files available beyond this page - additionalProperties: false - required: - - object - - data - - has_more - title: VectorStoreListFilesResponse - description: >- - Response from listing files in a vector store. - OpenAIModel: - type: object - properties: - id: - type: string - object: - type: string - const: model - default: model - created: - type: integer - owned_by: - type: string - additionalProperties: false - required: - - id - - object - - created - - owned_by - title: OpenAIModel - description: A model from OpenAI. - OpenAIListModelsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIModel' - additionalProperties: false - required: - - data - title: OpenAIListModelsResponse - VectorStoreListResponse: - type: object - properties: - object: - type: string - default: list - description: Object type identifier, always "list" - data: - type: array - items: - $ref: '#/components/schemas/VectorStoreObject' - description: List of vector store objects - first_id: - type: string - description: >- - (Optional) ID of the first vector store in the list for pagination - last_id: - type: string - description: >- - (Optional) ID of the last vector store in the list for pagination - has_more: - type: boolean - default: false - description: >- - Whether there are more vector stores available beyond this page - additionalProperties: false - required: - - object - - data - - has_more - title: VectorStoreListResponse - description: Response from listing vector stores. - Response: - type: object - title: Response - VectorStoreContent: - type: object - properties: - type: - type: string - const: text - description: >- - Content type, currently only "text" is supported - text: - type: string - description: The actual text content - additionalProperties: false - required: - - type - - text - title: VectorStoreContent - description: >- - Content item from a vector store file or search result. - VectorStoreFileContentsResponse: - type: object - properties: - file_id: - type: string - description: Unique identifier for the file - filename: - type: string - description: Name of the file - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Key-value attributes associated with the file - content: - type: array - items: - $ref: '#/components/schemas/VectorStoreContent' - description: List of content items from the file - additionalProperties: false - required: - - file_id - - filename - - attributes - - content - title: VectorStoreFileContentsResponse - description: >- - Response from retrieving the contents of a vector store file. - OpenaiSearchVectorStoreRequest: - type: object - properties: - query: - oneOf: - - type: string - - type: array - items: - type: string - description: >- - The query string or array for performing the search. - filters: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Filters based on file attributes to narrow the search results. - max_num_results: - type: integer - description: >- - Maximum number of results to return (1 to 50 inclusive, default 10). - ranking_options: - type: object - properties: - ranker: - type: string - description: >- - (Optional) Name of the ranking algorithm to use - score_threshold: - type: number - default: 0.0 - description: >- - (Optional) Minimum relevance score threshold for results - additionalProperties: false - description: >- - Ranking options for fine-tuning the search results. - rewrite_query: - type: boolean - description: >- - Whether to rewrite the natural language query for vector search (default - false) - search_mode: - type: string - description: >- - The search mode to use - "keyword", "vector", or "hybrid" (default "vector") - additionalProperties: false - required: - - query - title: OpenaiSearchVectorStoreRequest - VectorStoreSearchResponse: - type: object - properties: - file_id: - type: string - description: >- - Unique identifier of the file containing the result - filename: - type: string - description: Name of the file containing the result - score: - type: number - description: Relevance score for this search result - attributes: - type: object - additionalProperties: - oneOf: - - type: string - - type: number - - type: boolean - description: >- - (Optional) Key-value attributes associated with the file - content: - type: array - items: - $ref: '#/components/schemas/VectorStoreContent' - description: >- - List of content items matching the search query - additionalProperties: false - required: - - file_id - - filename - - score - - content - title: VectorStoreSearchResponse - description: Response from searching a vector store. - VectorStoreSearchResponsePage: - type: object - properties: - object: - type: string - default: vector_store.search_results.page - description: >- - Object type identifier for the search results page - search_query: - type: string - description: >- - The original search query that was executed - data: - type: array - items: - $ref: '#/components/schemas/VectorStoreSearchResponse' - description: List of search result objects - has_more: - type: boolean - default: false - description: >- - Whether there are more results available beyond this page - next_page: - type: string - description: >- - (Optional) Token for retrieving the next page of results - additionalProperties: false - required: - - object - - search_query - - data - - has_more - title: VectorStoreSearchResponsePage - description: >- - Paginated response from searching a vector store. - OpenaiUpdateVectorStoreRequest: - type: object - properties: - name: - type: string - description: The name of the vector store. - expires_after: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The expiration policy for a vector store. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Set of 16 key-value pairs that can be attached to an object. - additionalProperties: false - title: OpenaiUpdateVectorStoreRequest - OpenaiUpdateVectorStoreFileRequest: - type: object - properties: - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The updated key-value attributes to store with the file. - additionalProperties: false - required: - - attributes - title: OpenaiUpdateVectorStoreFileRequest - DPOAlignmentConfig: - type: object - properties: - beta: - type: number - description: Temperature parameter for the DPO loss - loss_type: - $ref: '#/components/schemas/DPOLossType' - default: sigmoid - description: The type of loss function to use for DPO - additionalProperties: false - required: - - beta - - loss_type - title: DPOAlignmentConfig - description: >- - Configuration for Direct Preference Optimization (DPO) alignment. - DPOLossType: - type: string - enum: - - sigmoid - - hinge - - ipo - - kto_pair - title: DPOLossType - DataConfig: - type: object - properties: - dataset_id: - type: string - description: >- - Unique identifier for the training dataset - batch_size: - type: integer - description: Number of samples per training batch - shuffle: - type: boolean - description: >- - Whether to shuffle the dataset during training - data_format: - $ref: '#/components/schemas/DatasetFormat' - description: >- - Format of the dataset (instruct or dialog) - validation_dataset_id: - type: string - description: >- - (Optional) Unique identifier for the validation dataset - packed: - type: boolean - default: false - description: >- - (Optional) Whether to pack multiple samples into a single sequence for - efficiency - train_on_input: - type: boolean - default: false - description: >- - (Optional) Whether to compute loss on input tokens as well as output tokens - additionalProperties: false - required: - - dataset_id - - batch_size - - shuffle - - data_format - title: DataConfig - description: >- - Configuration for training data and data loading. - DatasetFormat: - type: string - enum: - - instruct - - dialog - title: DatasetFormat - description: Format of the training dataset. - EfficiencyConfig: - type: object - properties: - enable_activation_checkpointing: - type: boolean - default: false - description: >- - (Optional) Whether to use activation checkpointing to reduce memory usage - enable_activation_offloading: - type: boolean - default: false - description: >- - (Optional) Whether to offload activations to CPU to save GPU memory - memory_efficient_fsdp_wrap: - type: boolean - default: false - description: >- - (Optional) Whether to use memory-efficient FSDP wrapping - fsdp_cpu_offload: - type: boolean - default: false - description: >- - (Optional) Whether to offload FSDP parameters to CPU - additionalProperties: false - title: EfficiencyConfig - description: >- - Configuration for memory and compute efficiency optimizations. - OptimizerConfig: - type: object - properties: - optimizer_type: - $ref: '#/components/schemas/OptimizerType' - description: >- - Type of optimizer to use (adam, adamw, or sgd) - lr: - type: number - description: Learning rate for the optimizer - weight_decay: - type: number - description: >- - Weight decay coefficient for regularization - num_warmup_steps: - type: integer - description: Number of steps for learning rate warmup - additionalProperties: false - required: - - optimizer_type - - lr - - weight_decay - - num_warmup_steps - title: OptimizerConfig - description: >- - Configuration parameters for the optimization algorithm. - OptimizerType: - type: string - enum: - - adam - - adamw - - sgd - title: OptimizerType - description: >- - Available optimizer algorithms for training. - TrainingConfig: - type: object - properties: - n_epochs: - type: integer - description: Number of training epochs to run - max_steps_per_epoch: - type: integer - default: 1 - description: Maximum number of steps to run per epoch - gradient_accumulation_steps: - type: integer - default: 1 - description: >- - Number of steps to accumulate gradients before updating - max_validation_steps: - type: integer - default: 1 - description: >- - (Optional) Maximum number of validation steps per epoch - data_config: - $ref: '#/components/schemas/DataConfig' - description: >- - (Optional) Configuration for data loading and formatting - optimizer_config: - $ref: '#/components/schemas/OptimizerConfig' - description: >- - (Optional) Configuration for the optimization algorithm - efficiency_config: - $ref: '#/components/schemas/EfficiencyConfig' - description: >- - (Optional) Configuration for memory and compute optimizations - dtype: - type: string - default: bf16 - description: >- - (Optional) Data type for model parameters (bf16, fp16, fp32) - additionalProperties: false - required: - - n_epochs - - max_steps_per_epoch - - gradient_accumulation_steps - title: TrainingConfig - description: >- - Comprehensive configuration for the training process. - PreferenceOptimizeRequest: - type: object - properties: - job_uuid: - type: string - description: The UUID of the job to create. - finetuned_model: - type: string - description: The model to fine-tune. - algorithm_config: - $ref: '#/components/schemas/DPOAlignmentConfig' - description: The algorithm configuration. - training_config: - $ref: '#/components/schemas/TrainingConfig' - description: The training configuration. - hyperparam_search_config: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The hyperparam search configuration. - logger_config: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The logger configuration. - additionalProperties: false - required: - - job_uuid - - finetuned_model - - algorithm_config - - training_config - - hyperparam_search_config - - logger_config - title: PreferenceOptimizeRequest - PostTrainingJob: - type: object - properties: - job_uuid: - type: string - additionalProperties: false - required: - - job_uuid - title: PostTrainingJob - DefaultRAGQueryGeneratorConfig: - type: object - properties: - type: - type: string - const: default - default: default - description: >- - Type of query generator, always 'default' - separator: - type: string - default: ' ' - description: >- - String separator used to join query terms - additionalProperties: false - required: - - type - - separator - title: DefaultRAGQueryGeneratorConfig - description: >- - Configuration for the default RAG query generator. - LLMRAGQueryGeneratorConfig: - type: object - properties: - type: - type: string - const: llm - default: llm - description: Type of query generator, always 'llm' - model: - type: string - description: >- - Name of the language model to use for query generation - template: - type: string - description: >- - Template string for formatting the query generation prompt - additionalProperties: false - required: - - type - - model - - template - title: LLMRAGQueryGeneratorConfig - description: >- - Configuration for the LLM-based RAG query generator. - RAGQueryConfig: - type: object - properties: - query_generator_config: - $ref: '#/components/schemas/RAGQueryGeneratorConfig' - description: Configuration for the query generator. - max_tokens_in_context: - type: integer - default: 4096 - description: Maximum number of tokens in the context. - max_chunks: - type: integer - default: 5 - description: Maximum number of chunks to retrieve. - chunk_template: - type: string - default: > - Result {index} - - Content: {chunk.content} - - Metadata: {metadata} - description: >- - Template for formatting each retrieved chunk in the context. Available - placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk - content string), {metadata} (chunk metadata dict). Default: "Result {index}\nContent: - {chunk.content}\nMetadata: {metadata}\n" - mode: - $ref: '#/components/schemas/RAGSearchMode' - default: vector - description: >- - Search mode for retrieval—either "vector", "keyword", or "hybrid". Default - "vector". - ranker: - $ref: '#/components/schemas/Ranker' - description: >- - Configuration for the ranker to use in hybrid search. Defaults to RRF - ranker. - additionalProperties: false - required: - - query_generator_config - - max_tokens_in_context - - max_chunks - - chunk_template - title: RAGQueryConfig - description: >- - Configuration for the RAG query generation. - RAGQueryGeneratorConfig: - oneOf: - - $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig' - - $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig' - discriminator: - propertyName: type - mapping: - default: '#/components/schemas/DefaultRAGQueryGeneratorConfig' - llm: '#/components/schemas/LLMRAGQueryGeneratorConfig' - RAGSearchMode: - type: string - enum: - - vector - - keyword - - hybrid - title: RAGSearchMode - description: >- - Search modes for RAG query retrieval: - VECTOR: Uses vector similarity search - for semantic matching - KEYWORD: Uses keyword-based search for exact matching - - HYBRID: Combines both vector and keyword search for better results - RRFRanker: - type: object - properties: - type: - type: string - const: rrf - default: rrf - description: The type of ranker, always "rrf" - impact_factor: - type: number - default: 60.0 - description: >- - The impact factor for RRF scoring. Higher values give more weight to higher-ranked - results. Must be greater than 0 - additionalProperties: false - required: - - type - - impact_factor - title: RRFRanker - description: >- - Reciprocal Rank Fusion (RRF) ranker configuration. - Ranker: - oneOf: - - $ref: '#/components/schemas/RRFRanker' - - $ref: '#/components/schemas/WeightedRanker' - discriminator: - propertyName: type - mapping: - rrf: '#/components/schemas/RRFRanker' - weighted: '#/components/schemas/WeightedRanker' - WeightedRanker: - type: object - properties: - type: - type: string - const: weighted - default: weighted - description: The type of ranker, always "weighted" - alpha: - type: number - default: 0.5 - description: >- - Weight factor between 0 and 1. 0 means only use keyword scores, 1 means - only use vector scores, values in between blend both scores. - additionalProperties: false - required: - - type - - alpha - title: WeightedRanker - description: >- - Weighted ranker configuration that combines vector and keyword scores. - QueryRequest: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The query content to search for in the indexed documents - vector_db_ids: - type: array - items: - type: string - description: >- - List of vector database IDs to search within - query_config: - $ref: '#/components/schemas/RAGQueryConfig' - description: >- - (Optional) Configuration parameters for the query operation - additionalProperties: false - required: - - content - - vector_db_ids - title: QueryRequest - RAGQueryResult: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) The retrieved content from the query - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Additional metadata about the query result - additionalProperties: false - required: - - metadata - title: RAGQueryResult - description: >- - Result of a RAG query containing retrieved content and metadata. - QueryChunksRequest: - type: object - properties: - vector_db_id: - type: string - description: >- - The identifier of the vector database to query. - query: - $ref: '#/components/schemas/InterleavedContent' - description: The query to search for. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the query. - additionalProperties: false - required: - - vector_db_id - - query - title: QueryChunksRequest - QueryChunksResponse: - type: object - properties: - chunks: - type: array - items: - $ref: '#/components/schemas/Chunk' - description: >- - List of content chunks returned from the query - scores: - type: array - items: - type: number - description: >- - Relevance scores corresponding to each returned chunk - additionalProperties: false - required: - - chunks - - scores - title: QueryChunksResponse - description: >- - Response from querying chunks in a vector database. - QueryMetricsRequest: - type: object - properties: - start_time: - type: integer - description: The start time of the metric to query. - end_time: - type: integer - description: The end time of the metric to query. - granularity: - type: string - description: The granularity of the metric to query. - query_type: - type: string - enum: - - range - - instant - description: The type of query to perform. - label_matchers: - type: array - items: - type: object - properties: - name: - type: string - description: The name of the label to match - value: - type: string - description: The value to match against - operator: - type: string - enum: - - '=' - - '!=' - - =~ - - '!~' - description: >- - The comparison operator to use for matching - default: '=' - additionalProperties: false - required: - - name - - value - - operator - title: MetricLabelMatcher - description: >- - A matcher for filtering metrics by label values. - description: >- - The label matchers to apply to the metric. - additionalProperties: false - required: - - start_time - - query_type - title: QueryMetricsRequest - MetricDataPoint: - type: object - properties: - timestamp: - type: integer - description: >- - Unix timestamp when the metric value was recorded - value: - type: number - description: >- - The numeric value of the metric at this timestamp - unit: - type: string - additionalProperties: false - required: - - timestamp - - value - - unit - title: MetricDataPoint - description: >- - A single data point in a metric time series. - MetricLabel: - type: object - properties: - name: - type: string - description: The name of the label - value: - type: string - description: The value of the label - additionalProperties: false - required: - - name - - value - title: MetricLabel - description: A label associated with a metric. - MetricSeries: - type: object - properties: - metric: - type: string - description: The name of the metric - labels: - type: array - items: - $ref: '#/components/schemas/MetricLabel' - description: >- - List of labels associated with this metric series - values: - type: array - items: - $ref: '#/components/schemas/MetricDataPoint' - description: >- - List of data points in chronological order - additionalProperties: false - required: - - metric - - labels - - values - title: MetricSeries - description: A time series of metric data points. - QueryMetricsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/MetricSeries' - description: >- - List of metric series matching the query criteria - additionalProperties: false - required: - - data - title: QueryMetricsResponse - description: >- - Response containing metric time series data. - QueryCondition: - type: object - properties: - key: - type: string - description: The attribute key to filter on - op: - $ref: '#/components/schemas/QueryConditionOp' - description: The comparison operator to apply - value: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The value to compare against - additionalProperties: false - required: - - key - - op - - value - title: QueryCondition - description: A condition for filtering query results. - QueryConditionOp: - type: string - enum: - - eq - - ne - - gt - - lt - title: QueryConditionOp - description: >- - Comparison operators for query conditions. - QuerySpansRequest: - type: object - properties: - attribute_filters: - type: array - items: - $ref: '#/components/schemas/QueryCondition' - description: >- - The attribute filters to apply to the spans. - attributes_to_return: - type: array - items: - type: string - description: The attributes to return in the spans. - max_depth: - type: integer - description: The maximum depth of the tree. - additionalProperties: false - required: - - attribute_filters - - attributes_to_return - title: QuerySpansRequest - QuerySpansResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Span' - description: >- - List of spans matching the query criteria - additionalProperties: false - required: - - data - title: QuerySpansResponse - description: Response containing a list of spans. - QueryTracesRequest: - type: object - properties: - attribute_filters: - type: array - items: - $ref: '#/components/schemas/QueryCondition' - description: >- - The attribute filters to apply to the traces. - limit: - type: integer - description: The limit of traces to return. - offset: - type: integer - description: The offset of the traces to return. - order_by: - type: array - items: - type: string - description: The order by of the traces to return. - additionalProperties: false - title: QueryTracesRequest - QueryTracesResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Trace' - description: >- - List of traces matching the query criteria - additionalProperties: false - required: - - data - title: QueryTracesResponse - description: Response containing a list of traces. - RegisterBenchmarkRequest: - type: object - properties: - benchmark_id: - type: string - description: The ID of the benchmark to register. - dataset_id: - type: string - description: >- - The ID of the dataset to use for the benchmark. - scoring_functions: - type: array - items: - type: string - description: >- - The scoring functions to use for the benchmark. - provider_benchmark_id: - type: string - description: >- - The ID of the provider benchmark to use for the benchmark. - provider_id: - type: string - description: >- - The ID of the provider to use for the benchmark. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The metadata to use for the benchmark. - additionalProperties: false - required: - - benchmark_id - - dataset_id - - scoring_functions - title: RegisterBenchmarkRequest - RegisterDatasetRequest: - type: object - properties: - purpose: - type: string - enum: - - post-training/messages - - eval/question-answer - - eval/messages-answer - description: >- - The purpose of the dataset. One of: - "post-training/messages": The dataset - contains a messages column with list of messages for post-training. { - "messages": [ {"role": "user", "content": "Hello, world!"}, {"role": "assistant", - "content": "Hello, world!"}, ] } - "eval/question-answer": The dataset - contains a question column and an answer column for evaluation. { "question": - "What is the capital of France?", "answer": "Paris" } - "eval/messages-answer": - The dataset contains a messages column with list of messages and an answer - column for evaluation. { "messages": [ {"role": "user", "content": "Hello, - my name is John Doe."}, {"role": "assistant", "content": "Hello, John - Doe. How can I help you today?"}, {"role": "user", "content": "What's - my name?"}, ], "answer": "John Doe" } - source: - $ref: '#/components/schemas/DataSource' - description: >- - The data source of the dataset. Ensure that the data source schema is - compatible with the purpose of the dataset. Examples: - { "type": "uri", - "uri": "https://mywebsite.com/mydata.jsonl" } - { "type": "uri", "uri": - "lsfs://mydata.jsonl" } - { "type": "uri", "uri": "data:csv;base64,{base64_content}" - } - { "type": "uri", "uri": "huggingface://llamastack/simpleqa?split=train" - } - { "type": "rows", "rows": [ { "messages": [ {"role": "user", "content": - "Hello, world!"}, {"role": "assistant", "content": "Hello, world!"}, ] - } ] } - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The metadata for the dataset. - E.g. {"description": "My dataset"}. - dataset_id: - type: string - description: >- - The ID of the dataset. If not provided, an ID will be generated. - additionalProperties: false - required: - - purpose - - source - title: RegisterDatasetRequest - RegisterModelRequest: - type: object - properties: - model_id: - type: string - description: The identifier of the model to register. - provider_model_id: - type: string - description: >- - The identifier of the model in the provider. - provider_id: - type: string - description: The identifier of the provider. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model. - model_type: - $ref: '#/components/schemas/ModelType' - description: The type of model to register. - additionalProperties: false - required: - - model_id - title: RegisterModelRequest - RegisterScoringFunctionRequest: - type: object - properties: - scoring_fn_id: - type: string - description: >- - The ID of the scoring function to register. - description: - type: string - description: The description of the scoring function. - return_type: - $ref: '#/components/schemas/ParamType' - description: The return type of the scoring function. - provider_scoring_fn_id: - type: string - description: >- - The ID of the provider scoring function to use for the scoring function. - provider_id: - type: string - description: >- - The ID of the provider to use for the scoring function. - params: - $ref: '#/components/schemas/ScoringFnParams' - description: >- - The parameters for the scoring function for benchmark eval, these can - be overridden for app eval. - additionalProperties: false - required: - - scoring_fn_id - - description - - return_type - title: RegisterScoringFunctionRequest - RegisterShieldRequest: - type: object - properties: - shield_id: - type: string - description: >- - The identifier of the shield to register. - provider_shield_id: - type: string - description: >- - The identifier of the shield in the provider. - provider_id: - type: string - description: The identifier of the provider. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the shield. - additionalProperties: false - required: - - shield_id - title: RegisterShieldRequest - RegisterToolGroupRequest: - type: object - properties: - toolgroup_id: - type: string - description: The ID of the tool group to register. - provider_id: - type: string - description: >- - The ID of the provider to use for the tool group. - mcp_endpoint: - $ref: '#/components/schemas/URL' - description: >- - The MCP endpoint to use for the tool group. - args: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - A dictionary of arguments to pass to the tool group. - additionalProperties: false - required: - - toolgroup_id - - provider_id - title: RegisterToolGroupRequest - RegisterVectorDbRequest: - type: object - properties: - vector_db_id: - type: string - description: >- - The identifier of the vector database to register. - embedding_model: - type: string - description: The embedding model to use. - embedding_dimension: - type: integer - description: The dimension of the embedding model. - provider_id: - type: string - description: The identifier of the provider. - vector_db_name: - type: string - description: The name of the vector database. - provider_vector_db_id: - type: string - description: >- - The identifier of the vector database in the provider. - additionalProperties: false - required: - - vector_db_id - - embedding_model - title: RegisterVectorDbRequest - RerankRequest: - type: object - properties: - model: - type: string - description: >- - The identifier of the reranking model to use. - query: - oneOf: - - type: string - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - description: >- - The search query to rank items against. Can be a string, text content - part, or image content part. The input must not exceed the model's max - input token length. - items: - type: array - items: - oneOf: - - type: string - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - description: >- - List of items to rerank. Each item can be a string, text content part, - or image content part. Each input must not exceed the model's max input - token length. - max_num_results: - type: integer - description: >- - (Optional) Maximum number of results to return. Default: returns all. - additionalProperties: false - required: - - model - - query - - items - title: RerankRequest - RerankData: - type: object - properties: - index: - type: integer - description: >- - The original index of the document in the input list - relevance_score: - type: number - description: >- - The relevance score from the model output. Values are inverted when applicable - so that higher scores indicate greater relevance. - additionalProperties: false - required: - - index - - relevance_score - title: RerankData - description: >- - A single rerank result from a reranking response. - RerankResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/RerankData' - description: >- - List of rerank result objects, sorted by relevance score (descending) - additionalProperties: false - required: - - data - title: RerankResponse - description: Response from a reranking request. - ResumeAgentTurnRequest: - type: object - properties: - tool_responses: - type: array - items: - $ref: '#/components/schemas/ToolResponse' - description: >- - The tool call responses to resume the turn with. - stream: - type: boolean - description: Whether to stream the response. - additionalProperties: false - required: - - tool_responses - title: ResumeAgentTurnRequest - RunEvalRequest: - type: object - properties: - benchmark_config: - $ref: '#/components/schemas/BenchmarkConfig' - description: The configuration for the benchmark. - additionalProperties: false - required: - - benchmark_config - title: RunEvalRequest - RunModerationRequest: - type: object - properties: - input: - oneOf: - - type: string - - type: array - items: - type: string - description: >- - Input (or inputs) to classify. Can be a single string, an array of strings, - or an array of multi-modal input objects similar to other models. - model: - type: string - description: >- - The content moderation model you would like to use. - additionalProperties: false - required: - - input - - model - title: RunModerationRequest - ModerationObject: - type: object - properties: - id: - type: string - description: >- - The unique identifier for the moderation request. - model: - type: string - description: >- - The model used to generate the moderation results. - results: - type: array - items: - $ref: '#/components/schemas/ModerationObjectResults' - description: A list of moderation objects - additionalProperties: false - required: - - id - - model - - results - title: ModerationObject - description: A moderation object. - ModerationObjectResults: - type: object - properties: - flagged: - type: boolean - description: >- - Whether any of the below categories are flagged. - categories: - type: object - additionalProperties: - type: boolean - description: >- - A list of the categories, and whether they are flagged or not. - category_applied_input_types: - type: object - additionalProperties: - type: array - items: - type: string - description: >- - A list of the categories along with the input type(s) that the score applies - to. - category_scores: - type: object - additionalProperties: - type: number - description: >- - A list of the categories along with their scores as predicted by model. - user_message: - type: string - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - flagged - - metadata - title: ModerationObjectResults - description: A moderation object. - RunShieldRequest: - type: object - properties: - shield_id: - type: string - description: The identifier of the shield to run. - messages: - type: array - items: - $ref: '#/components/schemas/Message' - description: The messages to run the shield on. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the shield. - additionalProperties: false - required: - - shield_id - - messages - - params - title: RunShieldRequest - RunShieldResponse: - type: object - properties: - violation: - $ref: '#/components/schemas/SafetyViolation' - description: >- - (Optional) Safety violation detected by the shield, if any - additionalProperties: false - title: RunShieldResponse - description: Response from running a safety shield. - SaveSpansToDatasetRequest: - type: object - properties: - attribute_filters: - type: array - items: - $ref: '#/components/schemas/QueryCondition' - description: >- - The attribute filters to apply to the spans. - attributes_to_save: - type: array - items: - type: string - description: The attributes to save to the dataset. - dataset_id: - type: string - description: >- - The ID of the dataset to save the spans to. - max_depth: - type: integer - description: The maximum depth of the tree. - additionalProperties: false - required: - - attribute_filters - - attributes_to_save - - dataset_id - title: SaveSpansToDatasetRequest - ScoreRequest: - type: object - properties: - input_rows: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The rows to score. - scoring_functions: - type: object - additionalProperties: - oneOf: - - $ref: '#/components/schemas/ScoringFnParams' - - type: 'null' - description: >- - The scoring functions to use for the scoring. - additionalProperties: false - required: - - input_rows - - scoring_functions - title: ScoreRequest - ScoreResponse: - type: object - properties: - results: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringResult' - description: >- - A map of scoring function name to ScoringResult. - additionalProperties: false - required: - - results - title: ScoreResponse - description: The response from scoring. - ScoreBatchRequest: - type: object - properties: - dataset_id: - type: string - description: The ID of the dataset to score. - scoring_functions: - type: object - additionalProperties: - oneOf: - - $ref: '#/components/schemas/ScoringFnParams' - - type: 'null' - description: >- - The scoring functions to use for the scoring. - save_results_dataset: - type: boolean - description: >- - Whether to save the results to a dataset. - additionalProperties: false - required: - - dataset_id - - scoring_functions - - save_results_dataset - title: ScoreBatchRequest - ScoreBatchResponse: - type: object - properties: - dataset_id: - type: string - description: >- - (Optional) The identifier of the dataset that was scored - results: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringResult' - description: >- - A map of scoring function name to ScoringResult - additionalProperties: false - required: - - results - title: ScoreBatchResponse - description: >- - Response from batch scoring operations on datasets. - SetDefaultVersionRequest: - type: object - properties: - version: - type: integer - description: The version to set as default. - additionalProperties: false - required: - - version - title: SetDefaultVersionRequest - AlgorithmConfig: - oneOf: - - $ref: '#/components/schemas/LoraFinetuningConfig' - - $ref: '#/components/schemas/QATFinetuningConfig' - discriminator: - propertyName: type - mapping: - LoRA: '#/components/schemas/LoraFinetuningConfig' - QAT: '#/components/schemas/QATFinetuningConfig' - LoraFinetuningConfig: - type: object - properties: - type: - type: string - const: LoRA - default: LoRA - description: Algorithm type identifier, always "LoRA" - lora_attn_modules: - type: array - items: - type: string - description: >- - List of attention module names to apply LoRA to - apply_lora_to_mlp: - type: boolean - description: Whether to apply LoRA to MLP layers - apply_lora_to_output: - type: boolean - description: >- - Whether to apply LoRA to output projection layers - rank: - type: integer - description: >- - Rank of the LoRA adaptation (lower rank = fewer parameters) - alpha: - type: integer - description: >- - LoRA scaling parameter that controls adaptation strength - use_dora: - type: boolean - default: false - description: >- - (Optional) Whether to use DoRA (Weight-Decomposed Low-Rank Adaptation) - quantize_base: - type: boolean - default: false - description: >- - (Optional) Whether to quantize the base model weights - additionalProperties: false - required: - - type - - lora_attn_modules - - apply_lora_to_mlp - - apply_lora_to_output - - rank - - alpha - title: LoraFinetuningConfig - description: >- - Configuration for Low-Rank Adaptation (LoRA) fine-tuning. - QATFinetuningConfig: - type: object - properties: - type: - type: string - const: QAT - default: QAT - description: Algorithm type identifier, always "QAT" - quantizer_name: - type: string - description: >- - Name of the quantization algorithm to use - group_size: - type: integer - description: Size of groups for grouped quantization - additionalProperties: false - required: - - type - - quantizer_name - - group_size - title: QATFinetuningConfig - description: >- - Configuration for Quantization-Aware Training (QAT) fine-tuning. - SupervisedFineTuneRequest: - type: object - properties: - job_uuid: - type: string - description: The UUID of the job to create. - training_config: - $ref: '#/components/schemas/TrainingConfig' - description: The training configuration. - hyperparam_search_config: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The hyperparam search configuration. - logger_config: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The logger configuration. - model: - type: string - description: The model to fine-tune. - checkpoint_dir: - type: string - description: The directory to save checkpoint(s) to. - algorithm_config: - $ref: '#/components/schemas/AlgorithmConfig' - description: The algorithm configuration. - additionalProperties: false - required: - - job_uuid - - training_config - - hyperparam_search_config - - logger_config - title: SupervisedFineTuneRequest - SyntheticDataGenerateRequest: - type: object - properties: - dialogs: - type: array - items: - $ref: '#/components/schemas/Message' - description: >- - List of conversation messages to use as input for synthetic data generation - filtering_function: - type: string - enum: - - none - - random - - top_k - - top_p - - top_k_top_p - - sigmoid - description: >- - Type of filtering to apply to generated synthetic data samples - model: - type: string - description: >- - (Optional) The identifier of the model to use. The model must be registered - with Llama Stack and available via the /models endpoint - additionalProperties: false - required: - - dialogs - - filtering_function - title: SyntheticDataGenerateRequest - SyntheticDataGenerationResponse: - type: object - properties: - synthetic_data: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - List of generated synthetic data samples that passed the filtering criteria - statistics: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Statistical information about the generation process and filtering - results - additionalProperties: false - required: - - synthetic_data - title: SyntheticDataGenerationResponse - description: >- - Response from the synthetic data generation. Batch of (prompt, response, score) - tuples that pass the threshold. - UpdatePromptRequest: - type: object - properties: - prompt: - type: string - description: The updated prompt text content. - version: - type: integer - description: >- - The current version of the prompt being updated. - variables: - type: array - items: - type: string - description: >- - Updated list of variable names that can be used in the prompt template. - set_as_default: - type: boolean - description: >- - Set the new version as the default (default=True). - additionalProperties: false - required: - - prompt - - version - - set_as_default - title: UpdatePromptRequest - VersionInfo: - type: object - properties: - version: - type: string - description: Version number of the service - additionalProperties: false - required: - - version - title: VersionInfo - description: Version information for the service. - responses: - BadRequest400: - description: The request was invalid or malformed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 400 - title: Bad Request - detail: The request was invalid or malformed - TooManyRequests429: - description: >- - The client has sent too many requests in a given amount of time - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 429 - title: Too Many Requests - detail: >- - You have exceeded the rate limit. Please try again later. - InternalServerError500: - description: >- - The server encountered an unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 500 - title: Internal Server Error - detail: >- - An unexpected error occurred. Our team has been notified. - DefaultError: - description: An unexpected error occurred - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 0 - title: Error - detail: An unexpected error occurred -security: - - Default: [] -tags: - - name: Agents - description: >- - Main functionalities provided by this API: - - - Create agents with specific instructions and ability to use tools. - - - Interactions with agents are grouped into sessions ("threads"), and each interaction - is called a "turn". - - - Agents can be provided with various tools (see the ToolGroups and ToolRuntime - APIs for more details). - - - Agents can be provided with various shields (see the Safety API for more details). - - - Agents can also use Memory to retrieve information from knowledge bases. See - the RAG Tool and Vector IO APIs for more details. - x-displayName: >- - Agents API for creating and interacting with agentic systems. - - name: BatchInference (Coming Soon) - description: >- - This is an asynchronous API. If the request is successful, the response will - be a job which can be polled for completion. - - - NOTE: This API is not yet implemented and is subject to change in concert with - other asynchronous APIs - - including (post-training, evals, etc). - x-displayName: >- - Batch inference API for generating completions and chat completions. - - name: Benchmarks - - name: DatasetIO - - name: Datasets - - name: Eval - x-displayName: >- - Llama Stack Evaluation API for running evaluations on model and agent candidates. - - name: Files - - name: Inference - description: >- - This API provides the raw interface to the underlying models. Two kinds of models - are supported: - - - LLM models: these models generate "raw" and "chat" (conversational) completions. - - - Embedding models: these models generate embeddings to be used for semantic - search. - x-displayName: >- - Llama Stack Inference API for generating completions, chat completions, and - embeddings. - - name: Inspect - - name: Models - - name: PostTraining (Coming Soon) - - name: Prompts - x-displayName: >- - Protocol for prompt management operations. - - name: Providers - x-displayName: >- - Providers API for inspecting, listing, and modifying providers and their configurations. - - name: Safety - - name: Scoring - - name: ScoringFunctions - - name: Shields - - name: SyntheticDataGeneration (Coming Soon) - - name: Telemetry - - name: ToolGroups - - name: ToolRuntime - - name: VectorDBs - - name: VectorIO -x-tagGroups: - - name: Operations - tags: - - Agents - - BatchInference (Coming Soon) - - Benchmarks - - DatasetIO - - Datasets - - Eval - - Files - - Inference - - Inspect - - Models - - PostTraining (Coming Soon) - - Prompts - - Providers - - Safety - - Scoring - - ScoringFunctions - - Shields - - SyntheticDataGeneration (Coming Soon) - - Telemetry - - ToolGroups - - ToolRuntime - - VectorDBs - - VectorIO diff --git a/docs/_static/llama-stack.png b/docs/_static/llama-stack.png deleted file mode 100644 index 5f68c18a8db1bc84ef6e89b8974474afea4c4162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200757 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

m^edY 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 Wwm(P2$EK742s~Z=T-G@yGywo4uNuby diff --git a/docs/_static/providers/vector_io/read_time_comparison_sqlite-vec-faiss.png b/docs/_static/providers/vector_io/read_time_comparison_sqlite-vec-faiss.png deleted file mode 100644 index 00e5fe03a602f888264317cd57174b7768f1c140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34038 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 A#{d8T diff --git a/docs/_static/providers/vector_io/write_time_comparison_sqlite-vec-faiss.png b/docs/_static/providers/vector_io/write_time_comparison_sqlite-vec-faiss.png deleted file mode 100644 index bec7969399d3e2e5a5090dbe79696e94ded4d532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37760 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 B@TLF& diff --git a/docs/_static/providers/vector_io/write_time_sequence_sqlite-vec-faiss.png b/docs/_static/providers/vector_io/write_time_sequence_sqlite-vec-faiss.png deleted file mode 100644 index 192d5e96ebf5b26f304de393d4557a401199d08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56902 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�VGS5a6FHZ7|Ei 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