From 62b2bd502884d920e359e7838cfb50f864fa950e Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 20 Aug 2025 15:19:07 +0800 Subject: [PATCH] bugfix --- llmage/llmclient.py | 15 +++++++++++---- models/historyformat.xlsx | Bin 0 -> 18264 bytes models/llmcatelog.xlsx | Bin 16635 -> 16605 bytes 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 models/historyformat.xlsx diff --git a/llmage/llmclient.py b/llmage/llmclient.py index df9c73d..d5be1cd 100644 --- a/llmage/llmclient.py +++ b/llmage/llmclient.py @@ -26,11 +26,18 @@ async def get_llm(llmid): dbname = get_serverenv('get_module_dbname')('llmage') async with db.sqlorContext(dbname) as sor: sql = """select a.*, -b.input_view, b.output_view, b.system_message, -b.user_message, -b.assisant_message from llm a, llmcatelog b +d.input_fields, +d.input_view, +d.output_view, +c.system_message, +c.user_message, +c.assisant_message +from llm a, llmcatelog b + left join historyformat c on b.hfid = c.id + left join uapiio on b.ioid = d.id where a.catelogid = b.id - and a.id = ${llmid}$""" + and a.id = ${llmid}$ +""" recs = await sor.sqlExe(sql, {'llmid': llmid}) if len(recs) > 0: r = recs[0] diff --git a/models/historyformat.xlsx b/models/historyformat.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5a20f09d4978034244f59b1ef97bb11458fbaf84 GIT binary patch literal 18264 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 JB~T?`FnUox0%*`nSdOOj+z7=)PY%OF(9nh@EF zF(@R&Sh8>5KK=3g{Lbh8anI}A`<(lnbMNci=Xt%zQQ*TUaJ4f8QZn1*JWT}xZQ(Ew zF#s~enU2B`z0(_{CJ#2y>a)~kwAQ3~J)6_RN)b_|3B4}`o!wI_9ZkDJm4ou*vHlsR zn2UYXPdQlC%S}DH`;gIVx2nh@fpz&F2C=es(JH2ek3N5qUz91y^|aDb2U#vtFLa|6 zx-|yubhaOsqahhhC>rHz6l1wemsfER&}}MGO$k4HQBwZuBet?#=MVdMg75i}X6GV| z4kyPb=x)xIai|yaK&Uagl+YY#ZHEFW%tdFLok_%>f9%Iygt{#*{7V^@1vza9?uvN1Y%$iJVzq$XftPKIsjh5n>zfeS@M z3EW^l{=jGyc5c6lEh+IkYIt&v6_u4t1 z!+7tdl85;;YjpN9FwxU6d>vEOx4_l)IFYrhzLVmXSWklQ%gPlh{;#zBb*m+2<2t08 zyAPXt6PRl$T8pOcL&BkE(?jhc(N6uMXp^o|>n-5yYW7YzNHzYoE$KJK;nWxfntWpmy*7 z))~ zNN4ORs^axhzb0o7zW77PV(p1>!DX~W(nbGE2?|sLW@5jK+h$rT3KR@JDLN=%lsNbJ z1Y7d%9l_Lj-vl$?H;j7W5G6n%;n{iwEc=;F88zOPJhthN2TI6nU+kU7Fu2qQ-5Uv# z;!0W^ff0-yqxG}Zut|QZynrwO`_TCQsILHd7+x1LxOuA};53VS{&<7w+hiNQNoK|(; zsCbgF0KMn;7jxQFl@7Bfqb>6t2k-y`*zmyv=8(Mx_%@Z;E!q2qL{+;b}m|K&u8cGYL*EURb>2Fu0{*u@rtv*6d;H@C@&Njm$H@`+QjJkyB}< z8~XRIPojgjqqXki}09EFMK4CO<%?x-q=vuKEB4FQ>WWt_zy1Y;{)fS+Q#i`*FAVi!gG}M}XCj0dUs*|pHKVFkI=FSMEnfS&v9Q_wo>57Y}fG-6xiYA!poX4}|J%Z5y-_G~S~gQ^X4yt+4HVXVn0Qk!RWY4!AMxVR5LbjK(7yhSx`Cz=8Al5)ho|^wc;3{!lAV^A zh2@;J>{F+us+=SgF{#bQows3xC`TD4Tb2^~<%>2FMX^?~B9$dGG26}rs=CSFX;cZ1 zgS(bEm1ty?hO*<*CO6y(p926Z{#bs0?3EPmM6>E)Y)q~_Aq8GMSffQ+05yr@?ezvN z;KuZ>%nt3GKV650lwMU%FrBM6`KlzwH)2}St6y1jy`V*WnMkKN)47v~#_Ch9?X>v5 z4DT9#6tgI|-yqGC(HdIZ)tT`sr1SN|n68HBe&W-|U7kw2)o-X04I2Qh-pt_G$-H~Q zj<*tfAvr;7Y+t@6=BkF4Z6$`kJ}@2?M-oc&uLlJr8;YTuY%|tr2s}0G#ZtguNEW1 zKMyw~KAEmKEqDY+IgtP#`A3A2?h8gL84E|z;v11cl$Er6>)M*&p|7SLXBAAQpRK%m zy7DHBsQPT6*o|G>?(mhmR(-*t6El`=d&$eqaG+R|b|W;!#m(%C?lrl&kAZ64k6Gf` zv8@gt@Sy!-J;cEfcNKw&*+TFKMz51~|AS<7=t%P_MU#W0uNDr_V4%$V0WMD(23&X} zT4xmRA>YZU1y<5#vWp!hmN}lW-A$50KVY#A+*7Ohg%ASOHoaO#A(8Ue$(`mOI94j< zW-PL!wvG_<+?RNh!cr70&DZX8{GjF4V`96K3L(%zA_F)VJXdnH%^=42jHQQZ&?6+`X+t4QUh=?H>(8r=f{yvUo59Z71Nj zLk$8|Gym1eDg+IH$2s_A!#Lw85~~Pwi$#)@S+?ZMNe!FT0i}w=#*lsybd3Tr=gF;Q zU`7GVE;Y=}6?GT(b})iPtDmxCfRj_J^3AcI!{0mIfi)L((p}}zCGiIy zP~}d`O}A!K%C8?X2(yWfY7uPc2a*)zWnk@3uxFIDq<{*=^RpG#6=u}fkTRFDii|F~ z7`)07qE`%sbYv8zuJ?X?9Hk*B%u+}HytN877m@Y!*=&;kikV{SxKaXIx}x2Lv8eOI z#7Jp_xvcW|yT!~DcgniyM)NXua$8ZN@Fj6N!zIZ*DV0k+_f%saLS?{MW>m08!N(>P5#?hcuy{6R!c+AtOHp&8mcYr+N9mati_h ze?<2IYBf0;#umvn!lSL7pQY>CclRx=g80esBR0x5In`w1+_O1oKU4p&kT&KoeICCK zYW&D^CvU=)#8tDu5n7pV2iFw`FVg4IpA%3VIwq2ve@!(1I_e4kw2;b(CmB`FO*sZa z@nxdBy-oIkPIzMK;g2bi0KS2oIQdcF8^o;RT1t11A-~({Q|gmQ7Sc*0hTxG;Cq1Tp zHa#~?oRWAav0@PQG#@skm4~?Y66IP7{oQM_V%N_&m|F6IAGe#M!Is@xwqkl1hf* z$l6}xG-et4XC*Kk8GR_xyLmKm)Da2(KVwpEW#%&nV>^~{{9JYc=zjW;xdyN8%*Yr! zZDW{>#6Gr7Rh^JKrj)4}VV=pY=4-pZ>z6Ui&qoEPG$ zcld7{Ob5WFEfl)8bN1%iAe-8Z7v+d7E!qrqW2Wf%XN;;v(`)S`mPcN#0`PFZ(E@FY zw93UYrGdy)n^6lP?oOw%v8gJEn1Vw^Y2&o!1&Z45;rSi_CS`fE;-i9!Sr473XN;E; zuh(jM6j+ax80S`4SLm$qX?18$lAc~X%vrY}a4BmZ?m2OJC3fqUx-4C{2y#Yn^P*VZ}Zb1(k&ZJ*f z=lo?E$=JKfJuWWxFywHzc-0opDI%}BI6sFs86K;tjFyMldZ*{BotFf4)u(tr%g5HR zJd>Q(c9jk>83bW-+du(&kGbwN7?$4 z%&o$SZ*d!ENMLh%yIFogfTLew3f$o-TA*mPes&@&NpR81AY1}{Y~)}{$YSJ2?T&ln7@`Y`!xvqiBQ#PjnkV0YHh z5R#r|cXSHx8^*)Xms6OvF1Gg(*Q!K=P3Q zZkC;s_)Fs_`2RH>$eK!m|CVSV5bvMM|93br;r!2W{VCdLaE6!J1phkjKUNY8`7aQ~ z`WKjRS)Qt&{crf`vOM?_?&PvISObU9k`ef?4gHtI4Hv7W1Kz{+Xla0T?!P=D(ti)fAh-no70myF1TOvsRUzcThPWAoHaG?+tbIY?ZzlcuHZXsx(X;>3 X|A_){j@nw_BV3NQ2CcB>KU@C;Sp!Zl