From 0c4ae31bab1cdfd8baf165fd10f6827e80604995 Mon Sep 17 00:00:00 2001 From: John Matthews Date: Fri, 26 Jul 2024 16:14:53 -0400 Subject: [PATCH 1/3] Kai Roadmap as of July 2024 Signed-off-by: John Matthews --- src/content/blog/kai-roadmap-2024/header.png | Bin 0 -> 157379 bytes src/content/blog/kai-roadmap-2024/index.mdx | 225 +++++++++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 src/content/blog/kai-roadmap-2024/header.png create mode 100644 src/content/blog/kai-roadmap-2024/index.mdx diff --git a/src/content/blog/kai-roadmap-2024/header.png b/src/content/blog/kai-roadmap-2024/header.png new file mode 100644 index 0000000000000000000000000000000000000000..088121c443719183ef910da18e3e68333438a13d GIT binary patch literal 157379 zcmeFZWmsHW(guo45(rLkLU0Z47Tnz}!L=KA4Iw~q4^D7*2@VMacXtxp-R*A9%;d~> z&fGim=l<({o~Bp#-fOR2YgN@-_14-1E6PitJi&hg1qFp7B`K;51%(W};dzh{fM1^6 zlY~P-Jrl4H5mA&95g}Ey2b)@0n?ONH2FGb2YO3_$r0GOQ3YmYAL2gDSQ-+a5{t~d5 z92NK()O(k3Zry^FYmfs29EhkJ*0 zL9@Zs`U_MjODb+MCB{Njp|o-#LV{fd1$n8Q7bV}T~& zqW=5^U8<7!Wz!EovO_9S&qzVOL4(OY#DK^Lp8no4R8o;i9cqFo*t9n(h~I=5n-aRk zkpr74-cv=Q-+t#sRA&t3#8tO=Xx#{$K6r-7^7Dx}%W709hq2T%as)JyAYoCRd8mu_ z=0jW8Gye%Zvt?qDlS`0-tMn#0ADJ$dBRWU{11rSm6AO%^@Exfb@jbmE^YLm9j`HF}OFciBzZHZ!6kz7!a$V)cb%*i2+qb>p^xCj~aX9wn zSzA42si-dXhV51W)DniJZQd5F(OXpOWzQ5pfjP>f_KA?PS2&I}$rG`R`j_VRhSIy21>0 z<}FtpQCuQ;;_64#{n9uJbQQc06QX#5v5TAr$MG^TQtGob^~+dHXEapI!M5gcIadjC z45y$;QJ1f{DnTYQ96%58OP)ns*V)%2Lcp7V-T z%->M%D7QnUlIDbZhq@+~HP$1Rv$wa`w3oP-xff=wzIP|~f+k(XJO5TmOr=vkAcsX? zEVEM8B(GO0ZjKh5uUd#b5s@U#kinRvuA-nqq9~X@s!F6bQ^+^LU5H(HR;ZzBP#85q zKk?ZTbK=u@?*wY0p7M?gRgq3X)j0Qd)dbym@;JEgx%n`gxRt2Iss;VXbcvmQmPAap zMGjtm&zNpTz1&Ilx)HuOYhH!9?yTpm^DLfr9gb3;c1THFiCS)rMv+L7fsV?Y7_X8? zl5@a0^ByCSY?pLkNla0d?1t|kN~%JGc!R87%f8`)_5xkQ!I}8x)z;CO^x5`l>5kWE z-VWmS#%9?tc(@hpOE8Vs@j{k;+Sv9-2Kd7yQW^R@dd@4<(62^8__KIF@CRSdn@)qc z-WpqDS(CG9gB@q{hcvsUhq&fkYmV$z^f8lyBZAwEYkH7lHXLnuV$x&`B)~Zr$@obh zKTFHjB{_fg=BVP3c}>Sr#M%g!XEyt6_PLA$%zRMyx+19jvxSn8U01YqPkDc(uGNg` z)ne}~ZI9&_HGj2;nl$#ghVF(R*J&sdKc-AS$;Az@>tr%~=jd|I+B4xDADm$9EB&?~ z&2M>N%2d8&zQi5!9c^Puj=lMO4Qe53b2`tioN*5g8&pDvli^f728S$)`f zGler%2HFQ1)@j%2yF9&MyO6#}e#RiqW`w+wg4q6j$tb)_DIy{blm?%M$oFt;f7p98 zyEnl)=}zyndtMRIJkZ3wsMFl&xhY^FpyS!#Dd)xAqSg{|+kfZk&3l{1Y?C01YTi*8i(znr_8LoOl=aC|u1DTSklqx0jr1S)uryp)AT zd$UVdm3pe8nQ~ubBPrvnNEHMZ@G2wzfDhMUE%j*Hxr{#Iq|{XS%<=P9)IYc$GeS-| zxg*i>by#G4Y%TBJQ>srYop_RFc^bJF4qEdy^SFG1iO14{3SHJsi$&Qu0$$x&7;<>Yd!A-7MVX-pIWRFL$auTD6Gb6+6$w zP@2LTqOr<74f)=|dmMF(d=&<-eJIhQXZY$$?6`b5uRQbc`*=qIVxEO8ro2@;h|}xn z)J#lRtaYHx%+{>BpDmRey#8IQUrWdARn?eTT|aYr)m!Vy-<)e48vpgD_L)14PZ=)@*%c$#Z6malKkB(g(r^K^~)==%v@_Ku80z4(F?a(rx z<9VXptKBnO>hyC5e@ds=pyj^rV=>AU-7VcVEeaj3M$1z7oU2L9Qts@4cyb?y&n(%r zy_MDB43h^nIbvau{Dq z?jY^RgYf`mdQNjkv9U%zuhg1knri04(`WXc0P!1YHK8$KF~6}}{_*QQTMK?=!RD6M zmqlNSm~$$sXsQcxW{R#3(Ys#pMkEoJaOHYg&)D@I!FM4lV5Pp`qT!iwp*bH}lTSGja5-(-xXOJR`V<9sfpM~~v6ke1;q2l&5s2t4 zVV;Ry|NQIxJa_HMCH4|sUMYeuzekwY-mkOnom5T?(0l{;z3CLgVoBOueVxGqP1DKM z{=CNrkDQB%g9O3Xo{DFIdn8VJAiXYP1U_pYtc%Tkqx}_Jh2wP3E&apT>+0LYo~mu) zjkK(0;pT+&2#>|PH>bZG40_V>ebig3-P|^rT3cstVs07@f(=kw^pC|K1_tXG!8!<; zh{R2O9v4?$TZnhh8wFSdYQ3bdPj^qonX;L7T4ud%?s3ld7T+!|X9T@k@Aig&tvM3< z3`+k1&Nm4L3MFlbdS!J(P)m5#OdSvA0l9A|sPY$r5W}rc#FoDgCnxlD9T9PBM$4=# zRAvEGhX<5n|L31Pj_NU~bU6V?L(n>gEx8*x{yr+JW`iWZ?(5-|)o>3TZkY0-JnfKq zY^#8T;**J{l&PE?6fMw3f`Ws_hk^%M(7;;&n&5X^9GV&m_K)9Tpr8URpy2*_jy&-B z_=*JHkA42}2^;+p3K95*0lZx^VE%PBvT_FOzuNFTz%eLc6%i>Z;8VrO-oymtU=DU1 zc|w^A{D5pLspS9#g+uZ9hL%z$KLoBnZK0~^s3|AQV+6Kgd}j( z(6ljed`IePV-0fPapfob;|w04{rEEz8R;LVI9l*ih%7+NI4i^GrlGhctT1_ z%4ctE%A+hQ{?G2fH-0j6M@L&8CMFjb7e*IWMzFmZ6EinAH`8ktCKeV3;0y)_H<05y zR|b&7tAAYNU)K>eaWJyCuywQmgGe8*`_2&TG22?GvjNf-`57Z@;&~_qiEr3Vyz`=VFSz=Fopm#D=Qb@A07U7=+7blt*hprU0GPU zIR3rsza9E(S2YI{dl9e=FsP%zp9}WS&i{V!pB?#_9%cWxx%kIK|M4p@(*jTUn0~LC zz>{6W^-*9U2`xkwRDn-G%^qJckIF#(k58Ztjne+U;}%d`At)(PVO3Y?-Pv|@C^R%U zVM8*$dKHQ=3%t#_jsBV;B4TJ5I3zSuAz!Hf@5VP66-n%tmNLx$ekyReL--G>AOGt$ z{}@+DUq~`89k}!V={7#7azHK%nFK&rA(H@^gnzgKh$cWZ0ip@NK^$TZ5OaW-1H>Ev zD}YP_WD@?8Eg5M1YIzZ3?f({UKfS>~e9e!KE?*;@NAm{)=2Z%X9&;f!D zzpdbR1A-2KT^LjN$NcMm0YD}M0+$fDg!l&tTteXTw-x+uK+pk#4iI#Jm;(eI{zr81 z>sr+Fl~JmJCiKZ^lp&{}7lM9@i5`L$6%UGJL>9x(mf^|a&5kW^dn2WUm6Ov*&~j3` z6h}8d?cw5L>b&8TCUMZ*$hwhoHSo^mSLy|+FBA;Y|NT>nOB&gGCISTohb9CC{XhL7 zjr_#?_Y3{yx_^F!jPTbv|8s8sY(ZuTGE4uj1_-gZ|HU~$W(hJ&|Ivv+eCvOlmOsJg zj}~N>AhQHPpg)ZQVh<2|fY<}X9w6E7|Em@Jc>of7Lt^j$2p13({g2b~r(6C1JNEVs zgQ1D0ieII{konbdMB&}^)m|aRgIxI5HJZ%CFiMBaY)CJ0`j>^4G4_h)smmF7Q(Dt}cm*k2vj_*M(&081uB{S-|SyVoPZM&!S$DTU05mPFFa@*UA_@-rMWPd+YazX!##x=29osZ{j-cSrtES zgT0s??OJGzkUGQ9`n*1b_+H}wT~OO5U-^xT9|RGzlS4Xnpq|gn z2Hls)1~Ze0_>aBcOZf^FzMa)M#s2R^GbuG(G`T#f)udze<zPVtl_=fB!nFQlmCF?Of>5ZBf`_XFvsLv<%p#gNOzQxD5^=HK@vl=T?= zxc`+?#H<|=fc_^C{-f2F3WJRKBj!18LYzt-6AwNqD8*xSbEK-${0L#hN&)KtzS2a7 z4zHj6JD1&Vv#IOxs@v60*{emD6bgUk<(3;|nIF$+DAM5ZR8O@x{a~rq0F92<%#lgZ ztu&T;g^bZrmEGKp&+W1wy>WeWw!`^Khn!r0D48=RTRLuBY0iFc)@jIP#1A%)aDs^k z(;eoTyJ~feBbvj8MZ$WXbLp0`WKQqGXY9Wp$y zK8JNseyaC4IRbE=Si?`r4q6Swi5Vgnbg}BYx@J9f?uNgNDVN?V)_dQ51Y>hM+MJcB z?Z6jY4^~C<)mOn3pc3&=$Ryar+pV-X<`XZx`J3`kA;)^$Aa6|{$x%7c^tM!k`1M+} zZaiZ94%cn`c4x+V5Z9C5-QUhwx0<>hF4NE$2$$h~bUy5|@w&LnT`6%X`;z1?!@AD%n98k4R(fY+a2U{?hQcsOSARnvO7=hr~xM!K+dgM7; zxV96$2&c|fkRsqE%mJEzMZ`N01t=_cfz>HR2V9yPWyCXlO|@U0RW91CuP0wg3`#a$ znD&BOiI6;cz=A3{(uUz`i_uhRUkxylx1Pc3$)|8p@wyP7!F|+gcIO`+P!fbe`YP)y zM4PZ@%Q1BYqmTp}`t!ThY+9If4r8LVWLfi~0;7J@FVC-0Z*BMoqE^BZ* ztVc_o@#s76KUs*`Y@-{6`73qy58R8&}S`bJYP#JiS1651H4GkgK_Vn zRh9FMNLlaH&y*_G{j5u;a>3bpN94I_{7BZ0nY!Ve z=!a?StO8MMpc=dJTgKChNl9KDa12MM`(v7W0=T^&7-H7-IeDt@_uV)g4R8 zB3^(4dvx@=0#MVQ8^~C0JazTd%43Aa(@UIk47!!$ZIREi-A_lXS?on^MyfC5={UiQ z(ekOLecSA~ATyQcAccL!wyON|F#tF5^QWP9wt8K`}9K6?XobubR$nP1I z$rVVGgX|XW5b0xPs(gZu+!u>8w4NcNx^|5&dk;j;LW{~8p2f&7b{R97X%m)XPB60?Dv5wiFtnel zpV?%wsXwAx+_!)Omk!t!7tqmcjgMsB#Rl3lcdBPTh@#6e3iv&*o-g4>HW=w_Ex%0f zIo(?N;e2L3H71Gx^sG81P8lrEN<^sxp)|LRo40ELCJsXeNFtv8T=SxuE$I zFH4X#>;+rU1>iXS0y3Q8?wMX2xnuSKE;5TxJVO7~3Y91Ju)sv&)qC>{pC(s3m|6MD z-iuvsO1UK2_*W7`AAJ&+0JrX^i44d=$D#g))D~DS_(63m&{*yV)dF4e^01D|bHN8b zdZ+F16{*jf*A@7GT_zA#ce-GaSyJI@4<`J=dOE*{RACeAn{YyIOh>P}hVO97S`7Q8 z=Z`*JBv3U0@OoOcKY4Oy^JF-r%k)F~MRMZVWk}V03qo**sG2?0u)H#6EY`*go>H#N zssd3Ibe>b#{fF|lempsH1!6OJ<$=VTEM#K?e8n@-;9q@*@7QzRw(mmQYz+2l6i<^i zyEDZDz_oCN*p3di{&*S)+ zfq-)_*aW5cX%U+;#SD&%qm^!-Cc;F0Y^H8$Q<)^AH)mWCAErlt)@q7^j z#kZnzmm^WcasvMqE~9Qmr4~#9Ouk-*5XV)%0!2^cOED;&V7&>AGW`VfR~m?pJXO1fU}|0T|}T?0p=3GcYEHP2sei?Pt-}r7gJKD7rqNb6~_!9R7Eq zFotPjDdnt5uZ~TSX9w=@Zv=DX=I}B(>uI7MmAW3~;F40YdA5pDW@x8H4dZ*w*^)n|(^%?6?oZ3fm)WgrvkRl%;IZ!T{ zBay1JSw-PjuH22fc)0ceyvW0WyXD_(DH}e`=N@`%v7`xZrP}))@A_;FfpXy~6t~?k z&uN+4P$3{3LsE3@F@r|=HolBoL?WQqL^J-<1mkQ(%~dbH;-|KG*0X=GOVE z*i`9a`@Auk^B_*WB)6yjBmvyo4Mx%=f9+&xDb6xyaKiCkAA6vHQsUmJu_%~HC((^q+GRrB3w3-H z_3^4n^d7Bj+$s{Nk)k>HRTynce|f`g*kTAZ_2RW{eSgxK7nIH=c%nd=GAc)APC8Tc z=;21(_aTYJq{NfYFwXoV?W3ngQvrlBr2TP>1g8mv01q&{SMPsS7;R*~%R;UMFCjmG z*lJ$>H5(D?ewr;Ar77;ID?{wwt)+!(2>TG&gRj{9gBs*0<|jd_hQ-x{P3JdTqaR5r zryo4gP@%U4=)7`kJKRizlYw>7p&LI;fhXmy0(@Chw1N9YA!$-vuf^K+8Nq1w7FFfD z@1RF-@m2EeWjVfbwj{BHjUC`)OnzpjGwi7>G>GNcWhF4!s1SHuEJ#(}=jp}Q$@l}p z+&;R!2La=!Zyw{BhrQt`1E%F3acnAi!UwhOyd*Z57K^bS!nUiP7|Xxrh_=aXAxr|B ziIYqgqaTD@w>UwIu^1HBtjz{k9??RD)V8j4KVW96a$*u$lY>l8>MHwFu9~0WH@yKZ zR5I}*0m?qN!lO6y0r`x9L}C#n`~cl&e7;N4q?fXWh7=?ef>S0l;gW`)`fHFT=OpmN zxbqW3yt70rI9I_(!+u>7Y|+T$R4xC~MgvDwhBN*LnowIAAk9@=OfTA@9w5yUN(}=4 zi?RB=5_#-xn}f6W?V)%}ZjD@he_I|Xn1?4FVFVKRiFw!TS+e=DTI;44P!40s7!`m` zqBkB|_QSK;4L8*@kb9gvG8@bUvIAcJ6*etuLI`fzrDDiI5r*ViK$`&vnU@;KSbgrovn&vH}#=9nQ)_ec;5ATa0EDGw ziORJNY6Ew3gSZB_rnPSCtv)AD0hL=01MXsxy5boO&SSpI>m1#I+qZ*sf0zBT)Qcq@{KIj>+7*9Tfbh*+VQrSwXQ^-ZN>Ex_>m z{FL5cQl7S$ zzes<;3<+NNJ|os;__4$77O*n~mi#V`Y0?+(CBL6*L!)y(sCsZ?2=Ya#A!p=SQSl z6&DLYE*Rsu)6#Z>ty@j*r^+}x13f#=Ww(E1T-lc{XyvON)HGYFhub}Bl1ygM_RR$; z`xvFMgCIis<~)Z2Fvu1)EZ-U?-LGVK*9>tceVm9H&V{0+=P*fOmhHFk@rV_RGb;u@ zcRH36#8xsKg@;}i!x^91@*k8h6X>tJ?%$_pE2JwhScHfJ7t|BtWmBgK$RV63Ot9UhIE67)2g z2l7zWLO$J6{pNiuwU>1QeyT6)WEhr6QCd99^k_ybW{T-|rVe6JiOl+DsuGH=IYw)d zvOmRA&TKpTOpPOr0m->8lG8KZLs`P(k`9n0n=_h;-O^K63vIE$k)_UWtMyoaqwT@=u73cZV zYlDSo(=T;f?brJYOu8d2jGN+Jy!1qmB-P;?qH5IGusO4r`Lz z*vdpvoz%wjjh-4S&L*uC6SQ(&QnzDK77Ig>o~T!;Yc^K?PjT+)?{1i!`dgzcC(`2L z8T9Msf6W~@OYTgLtpQjOUnlqI(RCj^`qX`99V1|4wClWp&S$fDYNCu#8K!8emt1#d z=NM2YFc~-)UI4T9R|X0$SO^H0SF<8$WkzsGoR?3TJ06MXcq^9 zFT?N^qJg}=!}_}>{$G?4`1)0Z6fltE&LnvZPEZQ(B66zW#XdiyT#`3g;PZ6U)Uf04 z@qnL26irY+0%)_|uJ2Z#1VSxM>RpdMu~`X-)mqP(nN*F`ijk^Si@Go<)`65P<~P?G z^ufb=@ zZdiKG^2+8l0(dj#wO#{b61^mQMwS}Oe;^UhD`_C5H+nU614)?bv1&VfG33;6-?RFpMRi@HRfhvZQ11&h6L08$afs> zvAPrf0yI~w)jx((j#@>)g8W)E6tmA|X)n_GU?7@Kqm;YC;}rRCOZr~%5AH*MAyatz zWZJ3T<09aAD>|$~hZ}B+ERq(^#nP9vKr)IC@M&RCb@nc2N$5Go1@}N2G10i>*hU8| zY8|HgSs`^xh|OT-n$F4Nbag+`26$kqKQP4KT?b~g+F2#fI8on zN52HzaAZ@|#&l zP+@e)>R~X6ON`Go%Hsyj%$wK62o;(KYm%l2rEpzzkJE&$`62G3Tokgmh7&yGgyNk9 zu!nVKVgtiU6d62F6sX*Y1(Ph*S^UTZ)2z$rHad%F*Cv@(?%!gc#A(4o!x7SCjAvwlRtZKC1gnIh$q?W*{p1VX2>d$)_xoFe6-bIs8~ z5C6_bQtSUJ=5mctsV<(J^Zv)^*Y7;brjXC!BZzpZ29kWpeC|3=y&IU2v!9%!+t@sW z;CM+QoceUlipyDT3>n1N^`gd) zo5$l7g~)qgFs1QpN%8n_DX14u8=g_}Rsty)VZ9FFT!GkA9jSPF3;KhllzPFW8Mt_E zp6&pl!tOw^>(d^SZyyk%uNGB-fme8+;@;DH-7p-NyIaV+NQ2V0fPir1%O(6)5WHTBoOCgAAttq==>iodNf-K=Lm+QrO-jy=Xy*0 zD*pguWc=IX8vZ5JYDY}>2ZazY|$#xz{K;TaeRif`bM zvh9}y%tDA5g-9nBc&Uv(VzHPjvg?qI9PAG)lvyt{3}q*!e-mqNv~YbaO#EMoJh5DV zULoe>^$e$y2lL}K>`ag_0Zdu!v-RsxqP0DH5#yy6OlP*ed=BJn`|*8SN3-=o3r2i; zW2cc&ViM;>CV+IRYuI{GBLNJq`-oM~7ky-;<2`rxIf)K?f#5P5v|v~1F~p2``jHVR zu4TZnMSbf=ud#M>eLGQTGg^VERRB{1F2Mb>Qif^)n9Y5o2PVZQCL-RZt?8Jrtq%e; zK+Of$i|pfnDDqwE2<4s8>73j7XzZwY@j4U6yClm-?=SR*ARJFCT_;<7TTj~h23l+~ zkvIvr05Y$*&9aWC<+RyMId(2HDQBt*x z0FkVF1xn6X3E~QG%i6OY7ioZ66Jtf>Zbp+lTjD?MSh?tXeZrrmRgj`79;W{alhSjo zqjZD{2-kgu;%`Q~hrdiv04X?hKL0i?F5|71`J*Ow~FM^doQ`XdyZ(OT8~!YDu&Ss*LO}-VFFE@TBQj+IwrPF*Bm3!}~0p z^0i@HVkw>2r;bWbE#8s-pU$zz*dKe-_`CMZXPIq)l>f8d&*|`{%U>d+SsvW1DCTea zZl*hBx9Y5~O#9}-d#q;89+96nph;Q(60LIa^!Iod+pcht(ZUHf02hnbYzz*zL;m%@ z0J?I80W(k<+u6sY8n0tmdFObuU$=+Ix3Ue8@*@nrH$X082ou4dq<4K*L~k)lUgg<$ zePKXZwQ>8_t&uGV3T6dZK{cDAhR1}U)rF&U;!a8wQ6uDLFrqOY$QfM&s#;mYZKDD=d&V-~+>|(X&W3Psl5nHZ=Syc$ zsTJoe97=5k=>O0-plB{uM}6?hS19Porc08kc6EdGY_&!b$Bk&IZoR3~Sal#24Cdl31D_CCU0XhlH36=5>=>{9+fMn9|u&}wFOKwtquW#IF0%2WT-JqC-wqe zi1Y(It*Wc^Yz@OpyI&m@j&w}=O=JKXMIE%vy|ZX!11bXlwnS}veyS5if>b;Yb}3wg zA(;*CXARXBydr@1DI`RUw%K@p`*1`q{QfeHln147%-%(4A=PLlJx}R7v2?TDO747v zn@p)*>q{OKXn1Ha{A2oC@9P+W=jamAdbqOxV6>mx9hSWAle;N)N5Fa7O0aGbx3kF6 zV-N6Ouc3!76mMPaBe+qKZwQAO7w;LLJZNPc%nt^k-Fs|4#%>Fq&$lXI0YCLdL`V=5 zgFJ`|2*=pdpI>|)3h)tl4)PJ$bQZtE`_h%q$=~&ilRy2rdrZ)KfVAPcKNUBd9-7UGBx@5p5n^W*jvs%D_daP(Zz1lqtEFBgvlo(7!nPl zlQeaR%KXQYIC$Kd@#JzzuUW|E^jj^$6Y}JAs9wpEmJxR;8Zu>U&;?_5adt)6@lUbc z*Dn@yg}XP4EXgc$w*tXO6uDfqA_kQdsZ_sDngdQ1NvVD#7 zU%`!JS-_@KgikmpI4Et(7KC}@)tQ9;G+RDZ^|1(|Rhb>^>Ic=*0646zu?>}dCivmc zh3H5KfD3*9j%h?f1Nkd=q;z`qF5nb5)<29nH>7>F__VE*HN{n8B|JmYyje(P8jL}4 zIFB}r>B1j81XRRUISaba$Q8g?9h{t1E1e-L^-9>zRiwLlps#7gTRq7L6`KQoDG%)5GQe@$t=Ns`RG^fKBCFVN z6>at3zo-9tc3}2R5Et#CUa6#Y$Lu|V$~OED0E)ZCPnLk~Bj>uV^``F&850j)Hb=>2 zlo>d`iX%mP4Sgp&Oz<>#fZ2-BfiIHT=n0K3S02{uu0nTo4cLdX6XA$g-$>{-kKSCi z6_y(z?Bye7~HA?S5p>t!1;dtI*{ z128G$2Q#zUj(EV{RT#{-qQFUgTdy>Y@G0h^w{0zV$f{f`8=Vd(~_4(zl)3>Q0xm( z_~@spRd!&BQy5>8dmL%_%=Zl69Rm|7XKEJn_MyG}h9&P@cd6T`6ujxGkanAHm2s^o zIn6CIT{CznwKbw%ZbFi0OV0L*;(Rb?i78OPR& zbVB60NxUCyAV@gWpT zI`}=SX7=3+x1+1Mtl!Yzu8e zt-I#_icBua_&C2FS?#MW>JW+&N(PeZ2!RFx$9@!v_oa+;VoWLKIzk7t!^$a8_4TtH zJvb|j(AOPH?s3NTx|Rc{Y)&JeWkL&FkH;<0oSz}=0`cm=SAGJFRXo<*)A`Vri$zuC z^0%mub#E$H4KR|n(&<*eUSoLDLFV0YOg)z;z)_zNInK_fJWCt;a47F?B&bH~0owg| zATfQAwv2_@kKdb)o@4>|fe#M|#{o8tM1m6@e}vRTksN0ZoK;uW!$uh?Kn^TH+%kmu zHkC{)`TF+)wC=_T-gB)Y>vB16hEi$rM(!c#EL;nTH&pjfM7bT3 zDXz^<5ZE7&yXk;#H!oTdcKFYX8Qu2lo6-X1$Qpvz`f3~bvm%(B)ys6MH$_-79(dI` zZ@?aO>ef+%B!f2>2jvE7?zDAOCvwwE>i6R(*MRfw8O=#9ww`3R0V)+h43-~mK5TQK zkG+~`cC5X~gfd#9Z1RE1cIxAvh3 zFxXa#vBb}JYUV`O-4|lkzaH703`+oMEgxQPN_nvRozcm9^YO&g9RJiW_Hu)=;0Er` z2L98ho+?9Id$jn}F4w1>8P}Z7KpC6GLK#+vWfO&dOy>c(%?lD;zLJ_XZdpX(m{$e&Rnvi=G(NSY>#zR)UY?iXh z^Z{+y`SjN`?DKg#v9!UJ`j>@%SkBnZ=H*^D&{uBXK{JLd(AI3i>Oa#@D~k-2YHljs z3TvcdH27xRGPMUkU9dsf1lPaIq*?r438ghsI$^UJ5Z6MYhT$cx%2YnB#YXo@|HZ+g z*E>Z$V`Ns9zFo>7&cG|e;o?B|&>RILo&sz3M9is&>OM@iFIpt$pARzMQsZ~Ob~JbD zaqKzr> zpcMAoyuYq8mV1R?9C;8`oc2sbKyAA#?u^wHDC!({CbahGpUjkx!5LZ#RV0U)LVN6# zbmeGInDHkj!I*r}5^KG`cEMvkf2zPSCsc!}US=BCn|z_qicr-}0Os57;lmcF(werv zzb@!nf<>S|(Qq2aB!%{h{9-j#Cl=AQN9!NxxqhYJT;(+oS>q_BGY6XVzF0^Hs!6fD zjccD;fxNR56n-QwU|#Abn>adsY)v#fa`n{vSk?<`MSia7JppXNDRd?(WtGfKWyD-D ziQS3&K(Shp1*OCKVi2zFRZ)Hacj9Z`{QJC_>U54NZgyT!Io7~p$;=OL-PSRO@GLFw z_glg$K3sw}rBXGZvyU4u4SdFNlX=)k@9LINyStT&_-Dq9R04^1Hc!2IVuB~cNWPWn zt{EvDCQjIl5d*oN$YZXzi|Fpx)(Qi9nmrowb8j}Dh4W+Dn5~UAZnGIdg6lo zcD&I|Ce4SZiS#5_{imMK`BP?C;l)T?OfEJ{@BD+xMjTyMmRJXNSZvbxzzq5&s^UQr|Q*mjH^|(uF-{{+I+4J zy){wwzASmC?#xL$Dmn+j72s1#lmpdH4@E8#Lzcq`$LPEa%R$X{X}eP4TdHhCBX4QE z@KwOlf@i9XU8apq4y*t_$B3_a7J|I5cd>^mVFoi6a+qG?IuygbH@H`R0#3y#QC^Gi zw`_9XVK-M)a|2j}W<9>;zO8`6E!LKppXmh zd93p8dS@xk2&rztb@(n@3#-9}?x1HJYx6GmxyE=g`)mp(A*#8`V_}=K4=cK^7wcS> zn_&3Iy}{Mvj@Yk92HGQ7HkYIsTJLa~ENyf?Dx=Jgzoi(6bTJ$8wH%1e;e^|xcHb{u zx^S0Yt9?TnH+TNkWlraxQTzeU`HFJVmug{u+K@l|uG zByMj{7&VMimH|mdP%yeG4_eGV(G3qG_?CMU&@6MlXM_d?dIFLUB@-08# z$L%n-hWJ9HrjJ@vsGJj2ZJ|eIDv85Tf_{BB5Yuq7UQ(CexojiOlns;xB-xN8#*lWJ zcH4EslM4JeK(nu&;@<8ykT#6wJdpfcMf^+t1azOtn zUx64bd#b+UlfuU>R|cL(Mf7^LGj<9_Cd^tBH_(ZPoVRM|s^NrfZfLQYiZA^sP&iwirZE@XR+0LI z>oTZ`;sBnpEG*Wkd$l_hd0Al8=+jDDYgX_yqCg>((}G3In>7)~|BLx@Eb$5!uvc`` zMW-AW#rkr)XfHDz9n`CwlZfBwLbs9F((%b_x_X8xjV1|pB;FJ)U$r3Uao1~1!02po zGmltjER7Xxh1U3%1a$Me@ih^v!9KF>S_JT90WV`_9bZ`-{ncm39c{+Z3)riV2t460 zDx`B03)JV;0l=6ej_~$~Nw&D7OrnXfN8l=Q73CkX=%Z631`$6C+0-*@U9T0Q^_sTb zjNGm@!3YJh{jm=-X$SR7iWeV`fB6Nw*<&0UPvALvTN_|o{TG?e3}eQOrW13 zPxoqJH-;@_gSAPWWtzn}#UE+ene_7O;>)~9xl9tsZ#_OahaQk7oN;Dio)Yso*Cwnq zVy)a;cY;H^lmNVmI1G^Q+NzMoEp8GrXU2a&Z`<34vvS{_(?PpjIwh@juQAIJ4ek=H zf`XShrvaNV0(EE|In&4jm8l;0lh{y#PjP;#?$Ej_$VFvLVhZ9iarD$R1IQLY$y79b z_Q{XTF>CgL(8mH#OGwmcDmGu_BBM>_F{P?zHn#7_wpgMi$;0Mx zMzAF-)od}CN9Vw5hNNv!V7=_Dc_|gS`kz4%(+NSr@P#F9=7+h*jTPK>ep?<^9$IF znKtZz8ZaeICXk+{ITN!y;N;Dog6)bEVO(~GU%Sj+Umt9NdbrFBu%$ik-tW~4n_^{)o~`gxzTEs(c8dH7QTFcZjA{U|B?h3u5H*I~e14jVh(vLD$Ge;*Qu?OB zuoGwN_Ggo(lMYxE+mk-9-dF#d@teLESa|tOGs8eRAgTE6$=cjON|e%Cz1c}psHhqt zCUt>8S<@`lDr4d1wC!jZ`rc6Kf<%tRn1X24DR%{*1x)2xBQ^1t7 zGg&sbBjTDd4i-`VxD?A8JQLhw8EYCko;!WV6PIoJqBoV-ANfrU)1g5X<51ebIJf-0u4E!haIyYGd;FHn zxL97V&Cn&Hc%cn>KfAQ|k7N)$bw6k5l!rIC{|Y9^T=z2dk4;88r?& z+;@@OifMXvpt!{Z1g*y~!D49T%55lqs!28Gy;NcS@T;NfqwWjw0t0uGI{s^!^{$dv zWkR|R?X6BboU1mh@Bso8J3o%63?#B8hQyBNz=&^Hh6jOJO684^1fK5b;tF{mE||K$ z354l9j0B$q@Ac-J+{R?pj#5Ke61~2UK&Z1s|H`K*X)pW$Dc%&&y~4YVu6R>povJ&w%=FT}a_D zTyXnDgXmrQbD+|23a7cf1fs)t^u^qvfnu~4&WU7sWntgL;8vY=p?9t)`n*sm8wLU=;7>7HG zjaK*5hDL#}If+&lKvHLEjb4E#G9X%9h*A81qSTD(t&Z^96TpN!g2&$+XIgnl_=7vBPti@Ojy2Jix5QZ{D0^=tEf7fN9wXQ~ZP98_>V~QxN#851C6Kq4K-; zYO*!WTb@p=q2=jDi^g&H_3Mg3g$KX&qS3qO3u=3GtXQb)3{GYad&DL z(bFhacaSn)-VX^wMY4^nLq%sQybHzV`u;PlxFIW|jLAILr}VgU_rDIu@wQz*6vuBn%(EuAJnc_UXZtiOzQ-(_;L8-KT%bWWCoMf!8n_u} z-P7Rs!Kbs7xI9rp2XxF39tj;1`e8)o7dC{=lpjD*|v67!e>W?ceb9xvz`%`0C=Ie zMs5IW^dDT>H_}D)?aJkMlz2J*E_cdz1yph1cTjDI{vDt8wz z4s%B23iiqYfZ5ElcjEkUrI|4nz{`Vtsi}Mz6^Ke@evSW4Zbu}j7AnkGAO+aN|KOSB zx{ifKB4pSdfsz!N4?Q87LsFO9VR%iHCIBkRGf>BD1Zm(UI$Kl(nDOd|v+fgBQ{Nt& zqh8f@8Cl2Dt^)Q3QUM$DAcn@eygOQ;#8!3}8DT!OV!GnRe}MHOZ$HYo0i(^n&2D3i z`FShJ;dI$pi`^Gcwq=o}ZL}8KYZTke^OUR@wCW#58~kt2Ho7e&;z-=_rrrP~&z*1X z_*4O?cLo2O&x&q?wQ87%#t$*xA0ON9yWzGzkjmmoGwQu|#lOpUq)mvkI9cSkV!BZK zo$hXb`fHbBOO3}@<-n0Q{a}BD8EQlpDZBKt$v+ZX$pi9*4Vf(rL22>66#`S`kLMjz z8s~v!r9TPXA*d{)iZoWLh+*7&`mPgK#~8n@ z?GV%WC5Bc$z^LTy?R07ieUGK_taqa5zrhEny*5(Um{G_HfI1{j+2H4KDN&Zp45w-KICoQ)$#9)4|d;a2?~Y*t1TMODhL3ukD0vxcuaJu*7NAS9NB)#FLW=C1T5uK zAj~nS{ghFT0O_ZIkUt0@fk1>!w%WLck=I+f<*g{&Me-<%{r%6|6R%QVe*F6Dsyqf%80$`(5s*H=AOb(z=X>fIZ$CO(*=bQKwU2cc!t z^|Yi?A11++>`ylj(ZK&5N1#BE z9B>E12_E010jHJ^O+-bgwnL6KU9rJ4CWuc~ZNJtUzTkDgTPB;q#yT2KX}(@#sev%| zkgc^t^4jD;=yD^(*!rkaE~tWITRz*RuMQ6qY=vtPZP^$JM>c1*!WEP;BN|h6qt2Zw zT?_*{NIZgiRI{HJ*4*d|(|NN5rpEnlf!rTitk|88*I+tevOwG!sWo1@UX2>1s&<&E z&lxlWm^t6z2m;y$i-%x(!DkP?d)0+bCN9S7F;yi1=ANep%-qb!+9&~N$lR|I1stJI zKFS(dK8x6CGN(p!lt)YHM2Kz0GAKY_oz`TpJ<613>TjO?i{Dp+kGWI%eQ--{e#vfM zM3E@K-(PmmD!aED@_o$n-B(JsUP_E*Hiloj$@`}0r#Dw+|~7Qj^GTLrE1pdwF|%5&z-<9-63Fx zrO%G9de{DS*9KQzX5x3QSwI1V$Ag=DM`9N1c7W`P&qkhVl1roF@zd;2LFP`~9K3`y zn%+s`x)L|N!Qw3v|1&vPl<*(98&h$jB%Bm?%RhLW>)N{-BMb}WM@w0bC8?)`w8?Wh zXqoUQ0LZG!DvrwpfFD7hc-M*m7cXif{Z-3rJ!i+nqVue+;@f+>U--hEr-6P#GgA^1 zzvk=On^@z=4v;_NU7bpAe{yGb{u6>X-buWILBgSp?jm~IrEG*?3nCTign=eN9(pDwQOD!RYNPds(66+b_gub@=^M9PZoCXHr{PaH1lwO@EnYzs|ltM^By z1`=>MEwatW<=-HrN3L5sAF$(i+zmA9ssnl=u=)nIv5mEWo>>cM2T2|uEY-jYuaf4I z+Zgh<$}Nw`$0rsrA4c{Yf&Li9>R*LG$?HpsyL0D{A})Nc{AQzmJze(P{o8{S-PhfL zRkRg{R@)eXu`G;jXEZtswF%q=MyxZmtxp)Nu_a~`A;*XHk$6puEJ0vv{6By6A;EM# zE^bOgDRnhFPhv&Whu5!ol|^q(G=@|#pao~%u_bRFAQpUi5vsDvKyW>D0F|35JIg7h z2YsC?N@$YRv0n6-b$w40F8`9S*vIE6pdASJT<8|)%wCUhbVvitdfSime*oZ)4$M37 zL2do)fr;-&m&ACN-=v_sSoLJ~d|zpFoyrz{lAVO_3C!qOpWoyL*bR5;pIXWRL7{)y z{YX|}aW7B)$48~AqpqR%z`n}Sfy4Pa*tZGbrVJRu=aR`NXfbv=Am=LA67{?JQ?Oau zpU!Y0UXRGpL<+D$tVz{qg9caE8ZlWBzs8f)?}$qWuGxST+=Th@F9ks9q}ZYTQd3U* z*kj_$f*}}=p8xmGn9^##Q45Ft*S<6clcpMrDXZ;m$v%3H98CuMNzx-iFE?0P=dNHs z0%_m_n!(WwjdZGLh?OFxz23r^=ScSBP3WJ@cQUA`Ft~gK9hgc2 zX^Onz+Y}lV)HJ>mZ6N4hKzOULUZP%Y^m{<6{+k_wf@9f7r!TUZlk>BNLI{7#te8i7 zSoP|4+VViaz?_FPxuAG`U#IhOQIWbDBS6C~mU^`~eeCS*p@yE>J93ye)$IdtY^51D zo}Rgw5-LDc@I5tSo!vcgl0!Im#)>2?6Kzu!>!Hi?MLu&<0tl~v1ugC5M@{IJuv?qB z5wJUhI!F#b1KAvK&uJa7GNJ#y-?`X)Fi`VDvOHPy1zF7E;BSQ>dYQ$mpa}d&Xj-j8 zu*Lw<{akd3B#yJTtYc`8&GnwVDZ_)-WAr%6;pG#q7ZQ$&7Y-a&wB9}129K=h3FU(?qeMb;Th zHF^Rh{$huk)L_~t*5OKYez+e^4zi0G!^$3V=ybr_NW+`#dsEjQ2a~eju@LlGbI|+l zyD!(`$6fHtsy81(vi50-&%1WJdZyevD-+1Yd;VvG*6{ds|M!B?_}`NF$>8A+`kCG> z%g752jQ7kZK{snl*#Kfoi?KN5e0X1&NdFW_-zR#5D}$U#!9Fid^$}DcpDk4AHQ8S^ zrDGXu^Zg3jdcqw1JJ_VjK|b{=buzCnJn=8=zP*Pbi}j65i2Q~0dor+tfW!6SPnj?6 zO&+`Vd`?8uXzww*j$RckB=LLbIP_S8ozw|hh&)z`F=r%gMdnxfiiB;uS}C8@HB82m zG|*}CVDVr+hM_5o36x55GVT(k?_T$jYe&&#T|k^71&CEd9Ro3|Ovkk)gJ@mFo20P$3Gm8DL>Yyg3E?PsK78{mnTFB2#B{>H9N!gkN*i<*Ye_ zlJ9Nquv5z#7g&1YRx|)^uI$uII@zzEi^FmEj@fSfvVRqE|EO(PS*>z`b4EpgV{~_r z&Cz1bN7`s24}txzr)Bp9KED~jXcFnz1fmJ~UDd>IYHWx1x$>qaVT30R)eozf8VdAwvzO`b~0K&j(&QvKMu-`q$Oyy2OPiryg+tvDiT$O44$;R?LZ4=F;gsZZ-dxq(tdDiOPtk~fEA z-(6CG9GO5e-NN?#tHwkX2ykQO05@hLv2^LrRVShCI#3?P2A+(W(>*m_WRMR?cUO~V zcHTz{K(o_Wp*tb|`BN4EtQVl=YhXnvkOAdTdw4*QIzd~wXv0o(;+WieX*9O7<6*^I zyQY;Nhi9fk7sGu!jxM?3q#lON`(|7}d!Ux6KUCioFuQt#I_lMGB+Y``=J|LDGJM{H ziB9lHl!@=tXWFJhb~Hjgs3gBBXLja0*7UX5Bd{AnbFes#mJKQsCP@*J)b93}{9wW{ z&g)^v*3X>iNBQ@WsP$ao(g-Dgs5;AZK`};$lT~lJAM%+mr6vvbAXPDhYAZlp1#;1? z1$M?md<=m5=_IpWQGjb}Z`gUMZDC5JB7!x%=C-9crfk*8N`5kLuRAzjrK`@$D$CJS;=(9wXO41<p<#_Rpbd$; zC3mkD0WuuydHk6mu}Jlu0WULSUjkpAqU%$Y2_r2D6XTi+8_VwC6$+LatMATSE(>O5 ze`{D`5BuX-vd#wnoD9d4M-AMo$+G@rO&tWDCeP830PvX2eyPuD+oOe#7Kcg8iMeHEFv1vmtQstpDZfS(cUz=&Sc!1*U zJ1m5n)cNxXgh3TMa%ES>m%80^Iit2zAU*d$oJ~Hi^|bl#YCs%Nwt(R9Kak#5FYl$! zQ(B$|O(x*eUA_@eUzrdeEH{{z@8G;+y z|9k8qkm3M-nG&f&8S0aqh?7waO09|u`9cQ8K6CaAG^`ZXK9iuaOp^#joEECgC^k89jVYMqjXm80N* z4H+^tZ;wYOlR#CJ?sJuS#PV5y-yLum>B`5_%v4}K(*NBHWNa~yqP1Cnr@v(38UXdY%6bq+45N z2cKb%A5jIss3t{XpR`2h?Sa`Wqmp?&qt{kCzqaN+kq}J!< zQI-9Uq#S8;P6XlcCp>_ZzV@xE{8V$cT6u}x1i3Y0YQobOa9UIU^SAt?2Zt#U3k`cJ z2MHG&`+*o54w*;5Zf;XFq6N#9@%&Ze?&aWfPsJ}5mOT@f4j+!Y{$pNC#Jwz*n%l+O zn4ct|g}1Mz1UO$HexrhkNFxV2s*OKOh277T-VH>6A+${y9m7_PsBmLb`_?CZV@
TT+KyVcU4 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 literal 0 HcmV?d00001 diff --git a/src/content/blog/kai-roadmap-2024/index.mdx b/src/content/blog/kai-roadmap-2024/index.mdx new file mode 100644 index 0000000..557060c --- /dev/null +++ b/src/content/blog/kai-roadmap-2024/index.mdx @@ -0,0 +1,225 @@ +--- +author: jwmatthews +date: 2024-07-26T07:00:00Z +description: >- + Konveyor AI (Kai) Roadmap 2024 +featured: true +image: header.png +tags: + - Konveyor + - Kai + - GenAI + - AppModernization +title: Konveyor AI (Kai) Roadmap 2024 +--- + +**Author**: [John Matthews](https://github.com/jwmatthews) + +This post shares the roadmap for [Konveyor AI (Kai)](https://github.com/konveyor/kai) as of summer 2024. +_For a recap of what is Konveyor AI (Kai) please see our prior post: [Kai - Generative AI Applied to Application Modernization](/blog/kai-deep-dive-2024/)_ + +The roadmap is organized by themes of functionality, each focusing on a specific aspect of the project's development. + +Roadmap Outline: + +- [Purpose](#purpose) +- [Maturity](#maturity) +- [Guiding Principles](#guiding-principles) +- [Themes](#themes) +- [Milestones](#milestones) +- [Future Areas to Consider](#future-areas-to-consider) +- [Access to Early Builds](#access-to-early-builds) + +## Purpose +**What is the purpose of Konveyor AI?** +Kai intends to improve the economics of re-platforming and refactoring applications to Kubernetes and cloud-native technologies via use of Generative AI leveraging data in Konveyor. + +## Maturity +**Maturity - Early Development - Pre Alpha** +_Kai is in early stages of development and is NOT suitable for production usage at this time._ + +- Please see [docs/Evaluation_Builds.md](docs/Evaluation_Builds.md) to learn more about early access preview builds. +- Contributions are encouraged and most welcome, for more information see [CONTRIBUTING.md](CONTRIBUTING.md) + +## Guiding Principles + +**Model agnostic - Bring Your Own Model** +We recognize the rapid pace of evolving Large Language Models (LLM), for that reason the team is approaching implementation tasks in a manner to allow swappable artifacts to aid the adoption of various LLM providers. + +- An important aspect of the project's mission is to empower the end user to experiment with various LLMs and ultimately choose which model they want to leverage. + +**Embrace a Learning Mindset for Experiments to Solidify Knowledge** +Konveyor AI is committed to a learning mindset in regard to feature development. We recognize that not all features will have an immediate beneficial impact, and the nature of this domain involves making small bets to explore different approaches. The team will focus on experimentation to understand what works and what doesn't, thereby improving the quality of results. + +The development team contributing to Konveyor AI acknowledges that this is a rapidly evolving field. To succeed, we must invest in experiments to solidify our understanding, identify effective strategies, and share knowledge from this learning with the community. + +Our approach includes: + +- Utilizing Jupyter notebooks to prototype and share new feature experiments, allowing others to explore the methodologies. +- Including both successful and failed experiments in our project resources to share knowledge and learnings. +- Implementing feature gates to enable or disable experimental features as needed. +- Providing configuration options to adjust algorithmic choices and parameters as well as prompt templating to allow rapid prototyping. + +## Themes + +The below themes are areas of improvement the team has identified for future work. + +- [Use Konveyor Data to Improve Generated Results](#use-konveyor-data-to-improve-generated-results) +- [Konveyor Integration](#konveyor-integration) +- [Repository Level Understanding and Code Generation](#repository-level-code-generation) +- [IDE Integrations](#ide-integrations) +- [User Experience Improvements](#user-experience-improvements) +- [External Tool Integrations](#external-tool-integrations) +- [Evaluation Tools to Benchmark Results](#external-tool-integrations) +- [Scenario Creation to Showcase Capabilities](#scenario-creation-to-showcase-capabilities) +- [InstructLab Integrations to Aid Fine Tuning](#instructlab-integrations-to-aid-fine-tuning) + +### Use Konveyor Data to improve generated results + +- Improve the Retrieval Augmented Generation (RAG) approach which uses application modernization data inside of Konveyor to aid shaping code generations for better alignment of how an organization has solved that given problem in the past. +- Measure confidence of generated results. + - Track the acceptance | rejection rate of generated results vs known analysis incidents to give end user a sense of confidence for a given generation. + +### Konveyor Integration + +- Sync Konveyor's application modernization data with Kai's database +- Deploy Kai from Konveyor's Operator +- Integrate Kai so it is accessible via Konveyor's endpoint and integrated with Konveyor's Auth + +### Repository Level Code Generation + +- Techniques to overcome limited context windows with LLM requests to facilitate a broader repository level understanding of code flows and modifications + +### IDE Integrations + +- IDE Integrations + - VSCode (1st IDE to Integrate) + - Intelli-J (2nd IDE to Integrate) + - Eclipse (3rd IDE to Integrate) +- Real-time updates of static code analysis + - Integrate [analyzer-lsp](https://github.com/konveyor/analyzer-lsp) into the IDE with the ability to perform updates of static code analysis information as each file is modified. +- Improve UX of IDE Plugin + - For VSCode IDE Plugin move the Kai specifics out of a separate 'Kai' view into the main 'Explorer' view + +### User Experience Improvements + +- Developer Workflow Experience + - Establish a incremental migration experience to aid the scenario of translating an application from one technology to another in a manageable/incremental manner. +- Create a ChatBot interface to provide an additional method of interaction via a conversational experience + +### External Tool integrations + +- Integrate external tools such as linters, compilers, execution of tests in an agent workflow to iterate and improve on a generated code snippet. + +### Evaluation Tools to Benchmark Results + +- Establish a means of evaluating the quality of generated results to aid learning from experiments + +### Scenario Creation to Showcase Capabilities + +- In order to show the capabilities of Kai artifacts are required such as multiple sample applications and [analysis rules](https://github.com/konveyor/rulesets/tree/main/default/generated). For example, Kai has begun with a scenario of showing Java EE to Quarkus, yet other technologies are possible dependent on the availability of sample applications and analysis rules. + +### InstructLab Integrations to aid Fine Tuning + +[InstructLab](https://github.com/instructlab) is an open-source community focused on aiding fine-tuning of LLMs + +- While fine-tuning of a LLM is out of scope for Kai itself and is NOT required, we recognize that the community will benefit from leveraging data inside of Konveyor and Kai to aid fine tuning code models for improved modernization activities. + +## Milestones + +_Kai releases will be considered independent of Konveyor releases for the initial period of functionality development. We expect to see Kai releases tied to Konveyor releases in 2025._ + +- [**August 2024**: Prototype](#2024---august-prototype) +- [**October 2024**: Kai v0.1.0 Release](#october-2024-kai-v010-release) +- [**December 2024**: Kai v0.2.0 Release](#december-2024-kai-v020-release) +- [**February 2025**: Kai v0.3.0 Release](#february-2025-kai-v030-release) + +### 2024 - August: Prototype + +#### Summary + +_The prototype is able to sync data from Konveyor or use existing sample data to aid a scenario of Java EE to Quarkus migration. A minimal workflow is provided to aid early evalations by interested contributors._ + +- Workflow is focused at level of a single file, i.e. lacks awareness of full context of repository +- Minimal IDE integration in VSCode, workflow is functional to show a happy path +- IDE integrates [Kantra](https://github.com/konveyor/kantra) to find modernization issues via static analysis +- Forms a prompt to request an updated code fix via a LLM. +- Augments the prompt with 2 sources of extra data + - Analysis Hints from Kantra + - [Optional] information of how similar problems were solved in past. + +#### Key Deliverables + +- _Konveyor Integration_ + - Add the ability to ingest data from Konveyor Hub, able to pull data from Konveyor 0.5.0 + - A separate process will run that continuously syncs data from Konveyor into Kai +- _Use Konveyor data to improve generated results_ + - Analysis Hints - Contextual information associated with [Analysis Rules](https://github.com/konveyor/analyzer-lsp/blob/main/docs/rules.md) that provide information of a specific incident + - Prior patterns of solved examples similar to a given incident + - Introduce 'Solved Incident Store' component which will allow Kai to see how an organization has solved a similar analysis problem in the past. The component will work with a LLM to summarize the key pieces of how a similar solution was solved by the organization in the past and include that summarization to help the LLM steer the generated solution closer to a desired result +- _IDE Integration_ + - VSCode IDE Integration: Identification of existing modernization issues via static code analyis from [Kantra](https://github.com/konveyor/kantra) in VSCode IDE + - **Limitation**: Analysis will NOT automatically update. Kantra analysis needs to be manually re-run to refresh analysis information. + - Workflow is the minimal needed to show happy-path, more work is needed before this is ready for the end user + +### October 2024: Kai v0.1.0 Release + +#### Summary + +_The v0.1.0 release is focused on improving the user experience from the IDE by providing quicker analysis updates as each file is saved. Additionally, Kai will be integrated into Konveyor, with the ability to be deployed from the Konveyor Operator._ + +#### Key Deliverables + +- _Konveyor Integration_ + - Kai is deployed within Konveyor from the Konveyor Operator, tentative Konveyor 0.6.0 target + - IDE is able to communicate with the remote Kai service which is integrated behind Konveyor's auth +- _IDE Integration_ + - VSCode IDE Integration: Real-time updates of analysis information via replacement of [Kantra](https://github.com/konveyor/kantra) with [analyzer-lsp](https://github.com/konveyor/analyzer-lsp) + - Benefit: Analysis information will be updated automatically as a file is modified. +- _Evaluation Tools to Benchmark Results_ + - Establish a benchmark tool to aid scoring generated results against test data. This is first step to aid a metric driven approach to measure experiments to guide result improvements. + +### December 2024: Kai v0.2.0 Release + +#### Summary + +_The v0.2.0 release is focused on improving the quality of generated results by establishing an agent workflow that incorporates external tools to iterate on improving a code snippet with a LLM._ + +#### Key Deliverables + +- _External Tool integrations_ + - Agent Workflow leveraging tools and iterate with LLM to address errors and improve results + +### February 2025: Kai v0.3.0 Release + +#### Summary + +_The v0.3.0 release is focused on teaching Kai how to understand repercussions of changes that cascade throughout a repository._ + +#### Key Deliverables + +- _Repository Level Code Generation_ + - Agent workflow to develop a plan for how to address edits that span throughout the repository, i.e. code changes that have an impact beyond the scope of a single file. + +## Future Areas to Consider + +The below are additional areas of interest for Konveyor AI, yet are not inline for immediate work. We consider the below as inspirational areas to consider but are not actively working. + +- Code Explanation/Summarization +- Test Generation +- Generation of OpenRewrite Recipes from Analysis Rules +- Generate analysis rules based on documentation and changelogs + +## Access to Early Builds + +Thank you for reading our roadmap plans, please note that Konveyor AI (Kai) is in early development and is not suitable for production usage at this time. + +If you would like to take a peak at early preview builds visit: +https://github.com/konveyor/kai + +For those who are interested in contributing, please see our [CONTRIBUTING.md](https://github.com/konveyor/kai/blob/main/CONTRIBUTING.md) guide. + +Lastly, you may reach us at [slack, email, or attending an open community meeting](https://github.com/konveyor/kai/blob/main/CONTRIBUTING.md#contact-us) for any questions. + + + From 773c827636a3fa145b2bc93e3310464fc4d48899 Mon Sep 17 00:00:00 2001 From: John Matthews Date: Sat, 27 Jul 2024 09:09:15 -0400 Subject: [PATCH 2/3] Fix doc links Signed-off-by: John Matthews --- src/content/blog/kai-roadmap-2024/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/blog/kai-roadmap-2024/index.mdx b/src/content/blog/kai-roadmap-2024/index.mdx index 557060c..bd9cfd6 100644 --- a/src/content/blog/kai-roadmap-2024/index.mdx +++ b/src/content/blog/kai-roadmap-2024/index.mdx @@ -38,8 +38,8 @@ Kai intends to improve the economics of re-platforming and refactoring applicati **Maturity - Early Development - Pre Alpha** _Kai is in early stages of development and is NOT suitable for production usage at this time._ -- Please see [docs/Evaluation_Builds.md](docs/Evaluation_Builds.md) to learn more about early access preview builds. -- Contributions are encouraged and most welcome, for more information see [CONTRIBUTING.md](CONTRIBUTING.md) +- Please see [docs/Evaluation_Builds.md](https://github.com/konveyor/kai/blob/main/docs/Evaluation_Builds.md) to learn more about early access preview builds. +- Contributions are encouraged and most welcome, for more information see [CONTRIBUTING.md](https://github.com/konveyor/kai/blob/main/CONTRIBUTING.md) ## Guiding Principles From 79361113de66e5de8f5c3a4d490b8260ce85a640 Mon Sep 17 00:00:00 2001 From: John Matthews Date: Mon, 29 Jul 2024 10:41:14 -0400 Subject: [PATCH 3/3] Bump date Signed-off-by: John Matthews --- src/content/blog/kai-roadmap-2024/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/blog/kai-roadmap-2024/index.mdx b/src/content/blog/kai-roadmap-2024/index.mdx index bd9cfd6..5127c8a 100644 --- a/src/content/blog/kai-roadmap-2024/index.mdx +++ b/src/content/blog/kai-roadmap-2024/index.mdx @@ -1,6 +1,6 @@ --- author: jwmatthews -date: 2024-07-26T07:00:00Z +date: 2024-07-29T07:00:00Z description: >- Konveyor AI (Kai) Roadmap 2024 featured: true