From 934b32fb4649b8bd6cdb9e1e2fecc14fe2d216a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A6=96=E9=83=BD=E7=88=B1=E6=8A=A4=E5=8A=A8=E7=89=A9?= =?UTF-8?q?=E5=8D=8F=E4=BC=9A?= <87239270+1355873789@users.noreply.github.com> Date: Fri, 14 Feb 2025 03:34:31 +0800 Subject: [PATCH] add providers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增服务商: 1.无问芯穹 2Perplexity 3.DMXAPI 补充部分embedding模型信息 --- .../src/assets/images/models/perplexity.png | Bin 0 -> 6096 bytes .../src/assets/images/providers/DMXAPI.png | Bin 0 -> 9284 bytes .../src/assets/images/providers/cohere.png | Bin 0 -> 7220 bytes .../providers/{infini-ai.png => infini.png} | Bin .../assets/images/providers/perplexity.png | Bin 7995 -> 6096 bytes .../assets/images/providers/perplexity.webp | Bin 0 -> 3740 bytes src/renderer/src/config/embedings.ts | 12 ++ src/renderer/src/config/models.ts | 172 ++++++++++++++---- src/renderer/src/config/providers.ts | 49 ++++- src/renderer/src/i18n/locales/en-us.json | 5 +- src/renderer/src/i18n/locales/ja-jp.json | 5 +- src/renderer/src/i18n/locales/ru-ru.json | 5 +- src/renderer/src/i18n/locales/zh-cn.json | 5 +- src/renderer/src/i18n/locales/zh-tw.json | 5 +- src/renderer/src/store/index.ts | 2 +- src/renderer/src/store/llm.ts | 32 +++- src/renderer/src/store/migrate.ts | 45 +++++ 17 files changed, 294 insertions(+), 43 deletions(-) create mode 100644 src/renderer/src/assets/images/models/perplexity.png create mode 100644 src/renderer/src/assets/images/providers/DMXAPI.png create mode 100644 src/renderer/src/assets/images/providers/cohere.png rename src/renderer/src/assets/images/providers/{infini-ai.png => infini.png} (100%) create mode 100644 src/renderer/src/assets/images/providers/perplexity.webp diff --git a/src/renderer/src/assets/images/models/perplexity.png b/src/renderer/src/assets/images/models/perplexity.png new file mode 100644 index 0000000000000000000000000000000000000000..decbd09ccc065edbe01c325f5f0c8d00877e0034 GIT binary patch literal 6096 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/providers/cohere.png b/src/renderer/src/assets/images/providers/cohere.png new file mode 100644 index 0000000000000000000000000000000000000000..e26f46d19930ac7c9dce2f98827425d2a1e24431 GIT binary patch literal 7220 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/providers/infini-ai.png b/src/renderer/src/assets/images/providers/infini.png similarity index 100% rename from src/renderer/src/assets/images/providers/infini-ai.png rename to src/renderer/src/assets/images/providers/infini.png diff --git a/src/renderer/src/assets/images/providers/perplexity.png b/src/renderer/src/assets/images/providers/perplexity.png index 91f0b30f6c86138b980e7aa4de5380ffc6e9e683..decbd09ccc065edbe01c325f5f0c8d00877e0034 100644 GIT binary patch literal 6096 zcmcgwRa8{rw;#H@JEcKVN>U^Q5fFy%?qQIQp-W;2b$|gR6&OlDq)Q1Y>24$>1*GGD zSnL0CAMeAx4`;r$zB7Byp6~4aiyg0{tww}Tj}HQYh&0qy^nkVR;ljlRJ}ZnWbAbg9 zqHgRB0x@?zTxcG@eB?nOng|UQC4GP7{-U3mzGD;4(K6w)$LQ=fIyG2HHLiQAd!!5@ zIvHge;+2nrYGcuYKe~_XnZ=do;b&+n?6OIbNg}Vc_|Zg`s{Z68 z!D2#Z+!@99*&ccg>u|`|8tNu0UFg>uRlRQ)_aV<2NI~28FVsG>zk_&J(*U=;ysOnr zipXzeeJGo#A}M?nK_5T76%#GUID+^BJG#K4qMAW2XO4{a_`##XLJER-ZiNkgCO!4_ zA!~Z~q@tmmK(tVKWocMx8=R<0j)oR?_VtN+ik=N*OIx{NjEiVz0gq0X&B@c1;|;&+ zqs%bS$YB#_ERMAs2}!=G^Xr~}r;2+1qU_aA$Bo{?NkaHBTOB974+d5yQ2pz)gcAogGQcs^Y7cp5WI1p^%f%_Phl z%1Xd0jKK%)n+Ut`$md8~!#YiXDhC^*eBtR9D0Y_|==qPqk>Tb(h( z#K0eoo}E##>lEES zvv38R{VHAQ@ipK~%5S)a-Y^vOC4O!4+s_u}gM zto(hQstn3e70>MSo}5{>@+vx(s2u~z6*e5Qi?d-A8%&ziS8DIWsY@w`UaTxt3aO{) z7reEVtuS#mkWi)&h3uV~1IfLlgj*t;4HMxP;*^H^E|X^aZutp>J*?+nTgm<5LEJ^p z`9?d3!R25xT|E0>`r$=>Y9PDkXqWHGNmw|fz|peB_9pedV6ZwdNf+Y4JZTxhoVc?@ z#Y?6Hyzq&#MP9*YI&OTGa=`*XhDqqh41NQ->^$J;auR0eNz@QkT;5hnX-FX6FXP>p zyW<3ZPi`{#p;hw!Q5^{V8#AyF5S4=7byR&!7qO-<_4Y7*G-o&;fqK`!d*3)Z_`LVALK6eP2z0fuKE!SxWMjrs7&N9P_*VROK zcN~RmG_JHK$|rl=QAq`1;*lnWoh)AupYPS&3-6L~V6S^ydUhJ3XWv41Xyk*1Yni?G zDCHO0Xk74wOg#mi1x+Wzu{(N$NY2q+%w6+H9vvP7mTQbQER~*$nmE3MKJypNMgpDIsDHBt=Vj6B&e$H4d5yOoqF5*V1tvGlJxgswf z+o+&97w>s1tTGu0oj_eaHZuT4x$WfX_=|aAZy)}%hP^?%qDQvOYy(+H)!6hgY};!2 z9YdV@Plx3D^EW=>e4@0>+R4}fo+OTHMXK1{={0f3#)~IZjn|b6!hJ!ScvvcGY93Vb zmUw37g$5^(z&lOU;k%Ajb8|R-C$S|^x|@&e*7^kZagas7c~}D>CEN0w5EQ0wZNsw{ z{_rI*ItlbJ3TUZsB0|dv{Cs3zByt*6V(N&oR9;m+^^byo6W@Gc#m(T#8G~h2m&_lo z2K?uuYDFm#56}XyV5DerYhPL&GnPt9?tNN`2u#CWPym3&*nY+ao9ts)16;7qlg%>Z z2>0hVamx4d?vt(*9+aeV{FnCYqqFS$Nov#%4l_katada(pi>p9AGhfaM>J+;g7@8Y zMKb<6^H`fLkuB;f5`IKAVS7`Id1ci27zm|X=dheZ;mi0e^0clYtv~~$Ebx6_sMz7L zU0`LsQbH4fmo)`OaXYM*%nQW;A*vEkk_Nlcu0)YL?;GRp9Ks%dmfcRGqQ{QtfQ5*)FW!zIPEr;}xpf zK=O@I_kjQmGxdSKGZX5yG4RM<2EC&vOC)2?iS{UbzD+)WJGcSeGiOY;HeWP7KM|$7 zV-jTmm~N+0Y>W~=E_~JqvHt6e(KZ1d&SH;I_+^(!@*ieQnw_*YWpLs z`a}#>G%IksygGuVV?pKlX)Jny<9d+KGw>T+0jW^0`^I}5RKM*jhntF%b4_7)TlAl< zGisEH`>WxAiZIG<$jnZ42O1(J7^fv>rZH65mJwWtcGSBN9DLiIA{aO%`|9UI6tlj( z?bLPq7+LdjPKqzMCv$^G0;qLkfZnGrFNGU=$|UFowEDyUoJNCNeZ2y(N<3x~fLO#o zk74aT*khzLe%y8pdI1g$`IH!zDU*9y+-Omus*ZfI<=vY%HPNw^jfrfx>_Roq&DtEU zK}K_Sgv9aVlI73;^~l;TSxo_OEFAKhU3;nZ(}(l2N>4>aExr>YDG)#`DoX{zr@I?v zAI>=_Nprr(UU@Tb8e6<3sH(C#4XuN=nj}?!*V_9Ai8gM~JrVryy}zElI05?RzbT` zot2I>_03ca5Mq8y>)=)A zZo^9RBV+h}Vc9s%Q6=Ap6UZz;Ew=-078IRC@CWH-J{yv&`oys^e;&Z zlLG(_sHr0pyb)&G)o3%Hk&~NG1n`moiUP{IW;Z9GTCe(pcd+*b=3RA2Rcf=1Y`{6Q zgS)mvu0IxN{OVL0>Q7p+?1F}mn*y*2y97HeesVDf%b{G{$QhGpsO?js4^N}cdoYK? zr@G~2IQ&-4az3T1V_`)->x19TP>N;;XpDUxwR%3~k-mr?+_1;X z&y*6|k-?S2Z|Y1(k@kHeLpW>@*>$5=?%}2asF$yK?QW-SCTo9d`LwQO!cUa!9o2Ax zuPrbaq@H-EZt<|T*UUMhhbnjx)`CBQyFE4W+uFV6zrC#2d+sji;Hllkn_Mh3{A6n8 z+(K&0*Gd^Jp#Q3a4v8}lh;!RNF%`(SST7BHLNGGC_!z(SSO_?~T8A@v#@av}Zy81T zo&W;qK^$N0?iJG&PfF0<8xWp^4S!Xv7`0M@5{nL-*-Z&j;TNg#Nq-nt&)mSU;rhVg zsY?q8y)M*pkV$xrrCU#-qk-yyR=YSzex{9PnNhwImEHe4j^Ll?-^+L#?wv3rUP>M# z`X2$zy^}a8N1KKs1u~m^wIQ)b4Xs#%S%e)j3Z4Rt5)G8A!r&j$CVem~%kP8#(oe4hHL&co&MW)OY4J6aeGKkp{3-eU4ke+6T{5rVu#8JS zS~E6hs+C`zJm`yif8fN{k7?)7zVv`e(rH`me*3OxY}q#6>!TD}OVv~<(gzbn05dN% zY;`WBwPqO)a+1N1RwMt~cf8qD&s9yremm~Vy0anupqGFArb1l(0|WeOKNZv{#R2o8 zHFI-MT*$0eVSz8dVvL-Wr$AUfVW4LqBhQNg)LP=w2i`zE1EM@na!Bb0TkQcLt38+B zDjI(B1zw9(0db##gLY?{7YCv~D+YV;#*bW^lA5lOe;jOJm@=E4?geOJhsDu3{2=P+ ze4t=~Ald>V^;a~GQG`1qD1)gf>#-{-v&{=lUY~z14-y0t`ehE0&A}`1tIr(oSsmKy zoW%LIF;&lvtJr~@{oy;-kx~F0U(AQQa}SH|nx*glP_09=c6M?TpHpY9F=`A_c=8pp z@)e;j#45o^@&i|rcX>5kUlG@t_kUw{ah;q#82(E3;u)!~JV={wbS#@2)V=|z&C7N2 zTDc)#@^#?(cf;`U%%BZ(H+Oiw6>%3uEr4L9phbxxfDWNmx`J1k!^wMeb|t7GOckw7 zVy3W^Pp@naQepXkSFlr!X62K{aZEU1sA=95Ngt?j3m!lpqaJP^si(QSnu0!ol8A@#r?34x)7O*>Xghy(w;^BgVXxGfy3#WJF%meHQEL<$PQt z?jL&bR>%(CIeh$kCq9X>my;o@z7gFLXC%t7>Y(B(piwL4mE+6k?8sI-M?btDoPf*3 zkYD^bJ|b&mytWs6*m}Br@RWCaN5ZrlXqOuATj5`eNyZAM`Y3~DqZ?3FbEC^``#`H| zetIO+-4}0`t<3G14*HiSdb;s27U|Lx*X*ks+jOEh+BZHfu~7kNfa{(plW-BgaGDN1 z{j-9if)mAte&-xv#-;rn0*-~M!@kYTuKCf)>Y95Z_q%-(Yp3({4YK#xO0HCvl?aPq zpOX6$a=QuDUOvO1F5Xu><~_6U^s(iT@9XcLX6z;htfZoz5h-#z!z8jWjJ6|Nu9*!$ z*?l^a>z`$=!jIW7EXh$}48KbGePubxO?#VU&C<%TXvmmo9W8QV(vrd1R zP@pT&ZS=g>N7Jd>4{|l9g*{EVymJk4WKBP_M~ZxnRVxqVx&idG6<4}-(uhj1u(LpI z=mnT9!^@ec^t0Q)Af$kRvXvX(!3Wn@QFZmzie{f#0QoTWXPVoMl9b7qkMdzaVBL)) zvfD@_#39OSy0s+(g6yx_Ui22N{ftyIk%%@+etZ-BfJHLxB$qHCs;>5n^4bl^zx|A_ zw(a*eufWJcQecn!*c6{om7)#`zxVKF5OweTGaK+#`No>Y>f=1D6%+lP%saX-2zUPs zqhKxPtarJVR&X3^s``3FyC6j~tm!98Es-`67*JSuigaX)vtSib1vWRax^^i(ZnIH02UOq&w#yvEQGv(ztH@-SS($RKe;%Cxtv-8fAe6G8~ zFjFpHbGv){X-T56_D!bm+?QB`SCEw9zBuA=phR`A$T)zgmdR;~c&&lgaSaEAnXY0TY72jM&~GuSC6nh0-1 zu2KE%jlBw|ef}5lwUnbIPLQ2S>huNdfOsRBKv4WS246uEr{Dr5E0qtF}D>~&cN`u^Q?6S zvi%K|Q*Q>aHgzd9wX5dvyQd<+OMjy)qR-5wj~THx3}bu)u;@m;SC+JcLSGw%$Q8VX z!o4;NfUsP^*W~#fbkpFZ2=A^31}aj~X+{2#(oqZ*Y4m#qIKQs`xfkVUMP>ACfFt`B zI)9P0({G5?dt~h)fAZzXN7C>ipM(7z%^9^l8m{84)09@o`c={1iInmPgp?T+D)~H4 zw^IbhBr~GZG@Xp?n7}}RUFK1*ldVq_K_-B@K|Jl^c!5h!I6K8l=aYNp{JDZ z?GMIwfe2R@otzmBE>_sQsa3U-ht2fFM;Q@{5Jd|@D4>*HY=h_OO0Xy6-+gAG1W!$^ z?oaGX@pYj1L;^)VAKZ=OUl9Ka{Uf9b@Vt2>J9KRLvJ^1qjUo;C|CvMokEh(x&}>8TW2rArfe}4O==Ka23d*lDpRwW~5AjZPNB7>+Y>jCHCe+MBx@cH#sbv|$+ z@>DbN!NOwc{dZuyPx;CLUk)M4iUt9>hb#WMP{WR^)5)K=4STX8BOv%5T>XV~+;6>t z%FIgRE$od`{B#m$?k{ZIgzsMM5~~r#y?b0-wmuNGU18k%TurKJlm|eL2^+TS$?`C}LCcoo~w~MnVol-^D)oDXOLHEf=;bRe$RW&pKbL*t$CG0BYu9I$+(olSn=@x?&?T)$9t5pnDjHXP*6O z(xKMQLpJz#OdnLwz=iIzF3|W{23|8)Tr51(TAHm?N-R=?*1WkUA8ppw3)MCVx(Sd# zcLk3 znx-?Tg`&oZB7B-K?t285BTiAu-KQfw1Z&yQyV%lkNJ@8~m>YOy4w9y%l-$QRem4be4L?Wl%Hjz1cNZtt zgfXIlR$*&X^NyONwZ^N|ohcNU0o#i@#R?IJ2Sq*43w2$xoQ$I=K$+!P$V;%euD^%l zg7!?!$GkL^%^&ph;1y={*R|%U`|TbaGVXj~HZ&klivHYovV@cvdy7myWqlfSx{F$) zq@)wp+;sen3hy^m$S47wyw$JN*2+m~iC(w*D_F2-p|WzaXr4(+6XxW#a*xlT+73cS z_u&j`CVbDJPCt1LNsNoG?UV+(O!7jNAy!#cmgC|*RY*(V~t5@oA~ zgjgem!hX)t$EZ83h5M47jQo3w#I#Sz;i%hZkUAv?%)WK?^N~ImNR?!WaC~J%`^tv| z^yyuju(zx>X^uv`QiM(~f?VPhF>xlEBWLmv@rlimO1`KNnah@Huzk^$g?ME ztagr$XH%RF3vFL~vbDr%`#m>t(RJFFPz|=b98jBDAnyB9Zdo^5Q0_OPE!Ak0_Dp_KFO=icEW9B=gsCG@v>6@GP3A;&C~oa|ddbFI$c z14&@v77aN>7mh*B&C;ITVghSR$Z8Ate?dlO((x=zEeCt?5X&@l8wLui_MJlm1(Rlj z4#Yc477)D1(5>ez@*}IqmFEaGe zKw%=~2zJu_W5B#lFd?i<=!nXgO>Ii-eqm|S_ZCBcqPpXK)1=EvdtA0z9z(t?P8IQp za7fC82i#T>S0o}`$&Jm+rWoQMh)v5stgP-NgULUbx;c!u5Lhx%8UN3AyzSw&R`sI( z=)@}fOde|OI;uNl%JA)ZK%kOTwWMRGpyB>gD&@NB^ZtFxBU6irM~g@FkSQ_p%YTjb zZAiXBcd9WqD%qH~HfI2!1X|>mPFHB2Tt8Q7U2be=tG>+Cc}uKDD4=!Xk>Gu;w}%s= zSPdd-d->;t?yvul(CR)5snUnPnB%7eEsmt}b$>J~rY2otdmYoj(ks1!;1wu?XH)Yh89h_r?nlU*4#PC&G}9A!tg zzgJ2L?bL_npO~c?#7>Z4eq7Ie$(1VS$ta7^oavgFT+d|W<<`;eb{O%J;BCW-Ejj(q zjj_ue^RZDHbkbZc*XdmrFB<#jpoN`tPk^AN%Yg@NS6Y!%!Sf&X$0$x7B3CF>*()ta z(dX`o=lgEK6GXE3xs?`UU%jW%h(E8{_1KX#jJ+0FB4lj}>?&}rwGau_lPkhFwNe~m z6%9Sg>ye*&_d41PVL5#9STSU90v8?6^B#QU$D8uDuD18F&N{iK9OC)xoX4Zu+aI*3 zLqHOtgBB7jWw1WlYXbk<1XkVSnFz!l zvYfu|D*}!5EzA!*=BnTuf&q8K&8WZuMieeHaJq|R%WiHgC>7WgG4TuN)`_;;3$H1` zR$B)$d5@!B_5+#9+ppapP{m~1wkp?q2GcJd*y0yS!7Nr9q8WeCtT!IeN^$Ko)HL|{ z%;%eiz?b!ft>~6R%2JtS-+%~AV3Lkmt`_Oz=a|tfbW+z2alOg|+ZfP3L$e{jt%fd( ztenX1O!`WwQi!vIScja=3pZFr%*&fyvk&b*7i?q_gWEVKADoM{It*-jp_zGS3#+0; zZy*8GeVeujRu)+{P_WO^r&?~d7Q%?=Uk|2o4QgVT54}N=e2|seOez~_lg6|!`{KOJ z7>DmufbIJV-&?{QN4kyHgEOAnYv>*wgz0-}KCsO&Z)bz+_H8BU-!A4kEVHzVMp|0m zg1u&F9dY-?o`J>rytR0|To@i!^KZQyIJZ9x{?A&Jt;hXP$0H|?FOzmF1?}ZE`x*cD zpPiPaBdbO_Vb9wwa!PV2;Xjn&-D$z7fhYP^%@s6xN_{P2^{KAMPO1DKWvQN+P{wBE z6i2`4mLJzZ?THn;E*a|-j0@HtBJzHl%D8Kxjc~8)&{N7&fFalBNy<8aF zFJ+XuwozS6@3NqcilKPUY;*5bs0?X)8R*@cEB-noLUp!`iJ{mZpFtMr5#KDOo5QgK zoSpN-8=Gs_m~Zt^?WTO_*p#R?CMeu*ANC_hjDj`=nJlVPxl#%`;c=0WwuPLSY&d<| zo9R!?odaYWoh1-tv-xZWT-*o?$Yx;?&*L4c7>F`fseB9LWYw5`M zWjebe%H|5`yN@d$o}^ys7I9O6oU7TmB0p42UqgI@o-JtR)=-Qza~yLqg!}7KJR;g^ z%?ojSeOW~N`>mPPV~rE^gj`#x)H_bB%n~7S62{t{7oz!HRMgl){3Gw?lmU=@bfj0Z zrpAspDoJ>*#3KH)*tbElpV}un1^YLR#W8&9pZcq7S!<2DV-TG*TTW!Q{#| zy1kw|mQG&*b5}-TD^Jtzaj!S>A4&cko6P>MMtJ5aXKxBxWD55)t;HrPeMFbB^-i`C ztcQ>*^yNd9M~v0N<>U)ip`#BOrPWAgghCe^7SliWQYZMhv9{>vNoNX-m8=QY1~Vbv zcDtx|LYI1FedfaXEPy*dVRwzp-|pYIIIxb0Gv=~AN(whiALq;AeU-jj_eTO)9!bRs z0oJ}eMkxb1ZG=p}&y|&A{EZu5-kESts{{L!iJopF>d+9_R!>%>?x&9~78Z4O9K8O% z8&Eh2KI^WqNg$!MJ!$PV=Pz=5s>+VjZ2l0@9K#L;APWii!??Cwfs^OA=g@OAd2PT40M0m_4C!l{6MQn z9XZAl?Ql|ne&%3fuRfIm+GTjgVIhEo_8qN$cIvWk*9X|agT-wFc$QKcwxqwuHuhF) z*QiPj$>%Qi{y*%#GlM%yqRpG(ulwXc0$PP(i=#VGv39>NPb+98V{(XxLBP9mc{q1& zpcH#p_j5MZMnFRg;Lg!k1*xKZzC|+3cbB=vxdoXNumD8igM4FmspWoF=^%&Vq=0|K z=x@Y=zIqx2@m{o)iqT3ibbxnuQQbw-7(+lraS=X8o z?0C2_BP&Cur)D$~ndN;lPnDpGs{>h1-|Q@zJ${jdH?0Kk~g_uoc)d)V^g$WXK44C)-2KeSN~((5%IJ-b=F8xu6RJ`%SD zonP-;*R7Dhbme-?8F_E>uh@VgAu$X~6!9>!eQ{=-j9{N$sOr-YFFKG3+}xCoQ9pYU zKB!AD}M6>xo1`U4i)LdATE-0bz?Zf@4l`n1fXf?O0ahvhOszXL?B zzBK8W$%X9av(T}+tYfdUH-;+dT){i-gL}hXGB+!&8aF5Huy#cTi|?Y5)je*pIoB@6 ze{&IZBb(A}CFy{*`>`f{>xwWW!Wq?A&G|4`GilNr>pjz}hlbg;GJzXQqAQ8f)0k#? zd0n;?LU-`g@RiHYxvEFx*-6NRyoX(TfwkQAobi5oue3kVQXKfkAb!#om&6 zoWlYvj)tmz8glptbpY{c#*70sl#ul7s7Nih!q{CSyNnt1c8 zji4o0)0PnH<+k`m{j!QXhT$8-~wY7TemQ&$gnaYJ@0@rG4|E#)GQfv-Bc| zIy3WcKOv9NE~+^JjbDQ&TykB6=u?c%f&;3{MRxJl0VtB=__&r^Z@a+2r(6k6hC3{L z@Pa~E!bW=qxX9UuVbU%2X8~ht?gO?8_;*}96Q@WUY{I5u!!!o(N-DER)oS6nq&zpa02o+W()dtCh>RB#v6w;on==KThz(Dw z$I*r2c4$?Fhadl!wzUCBGDVM$bboK+p6v%x=4QFH%?Y%q{k+Y&{=^2X_Yx}cM=i49 zplX~aoYSFGEyCzcAaoNp`M;Al%E&nb`>nX_2+flJO1WHR{FE7P-(E+yj&XB`&nPAh zuB#5blZ7grmt`Vkg5ESufq@eJE=W~EfXe!s`B^eT58ArbA*vfcP@Ojm94lzxF z^LEBAC$HO7d&;MDo7y$<`_)eXg+{n+9Z%G`$8nSC>1Y)_>Ss8+Cl=ND4R3u~jGT-XN&_KElS48dyv)Vm zVbW=I$IZjR!3`u$59b=rUW`J_e_kAQD@0DEmUiU085!W+3mv5oQGnkrAZcPu$4=Jm6VxFKMkB1 z&LRKE$B`v7SH{ho%^<{M^ad%490Ki@N86_ej~`v}vcXf1<{$+-we|qxEHwRLwvb00 zR63|mvWV`lD;(^V(xgkoE4E0}y--d0X)ATBp;~8~TvXl9NsI z4sD}79F^~GURlH(_Lp(t^mW%XUDn!J%B~8E8PpQy9@C9l3$tx_!#txWkG>X9vW6t} zIY5q}7Ts_MT9L`a1}G&*%41MlfTJBdMnsRU&glU!p}E^%uexMFa7lg9F3+RpWfR$2 zDiIL)X`#|Q*5Of?WEn2RfXX(m~+Pvd$7bi$m@BZr4 zJ})~A;O^qIj3j(54Peg1fVOgY&O-@dYkYZ2S;XPiEgwniSL=s)*RVWL$>T#xr-E`ht600o8`D(F^cUOMTtj$IxanfI9&XH2L*8D(&uoN0!kE zr<&&n>hfI(Dc@A?t)@1+Bg3z{KnF2@W*ND+#<~YUsGwW0wm$parKNOVk{r*E_N~yU zbv|+=f$@h)hVUQqGXxF#v`}mS$O4++Z>#lvIOSar);}z`i+z^FHBcx4h{h9>N^`$3 zuhTXwB*272C-zJ(3qE1F`aN;pNd%#IU*IDW;0~pKVHNC}&4owK{!gJwFgq8GVhX+? zl2n0(a$$ePmg7HvlGEf)2^+ucX`S?_lYSOIWK5eXN1|0{T*P%UN~ZBDBRdYkAYa5R zX*98kaFYe%;Wut6>G8VQAEUEB>oy&HMV)ll9`bjjM-rU5B=`i{=?_%p*K`VS!~-2b z_qFa_{2qFUi+S;hq=#_@_n&uPk+WHFj<@4wqq2frD+RL_{50%~c)eLiKPbj|L62`) z^J=&`b6kty23Gp!_^bKYZM{BS15rF%?S;MB06>k>^>unfHR&7S}>fY)Wh(&Z6&(`bo*j0#va&01L>Km*5UpjBPeU*$90zfthu&YJ}G!?3rE zo6;AOo|LuC7~J>Z=_!^N;=*L&I5Hyh<}ScJv_ZUnJ~w0)(vnMo57vkq)$)i4H}$rO z^$ejM&U$|fQ~HjJgUHD!eS21hlFrpuh>#G~?eOx5+|PcFi3$D&rf)7<&*FCpui zU!vQ}8;~Q4mdcbeBxB$yjcuK;q3$aQzK)zmddS^PyIlzPQ?eSnC5s1eSY8+G(r0v| z#Q#u&rp7=)dudH#>_e~%z3|v4rG_w`Ru>a&Gh#=TS!4&Fg|pc#-qnHW>pb-@_&{4j8tfQeg3g#{TJs=@nxr+yL{0_%H?#bZ}3Cret~&I}eBXMl6o5zi%5 zdYj5wjk7t2w-WZIhRNAlXYG-@*5W zo;aznXbq~!M!SFd@jU_Ku2>?Sy8wf!`Gcas{?Wfk-SJAdm6nFnQlH!-NpEd?Vx4@b zFrUUe$H3Aaq}@;Z!SSfN-D0&5amwaY;LSCJrCds=I4R{DTQ!cb?W>0OH?EnVHE?{G zBr+z@17zD&?t84`MkQRQXM^4o-qaOWmwmrYEbRi6ih681hglU7-?3)$KvIX&LN zN8^L2!x1YCi&^X#$;awS2eR3)@FP9IbO2MPD!^^jMY*%K)@*%b@9_B*Hnv$GOXu+Or^w-nY~L+}xpoU_F> z6JAiwXXo~kQYlQN3SAwoG)B;$!j=lWn#qhW=F~|%Cyr77)NtF(4PmWp9lO!MMQ98= z=aRtFhXsbi!S(umz?e>BO6=%WT}ntYz)fPQN8bGdzpJvy02`B9CKKSSCFC+|$_?V|(fGtzEB9SS;1j!<2G*L$KJkUzA?xtN$H+qiz2xhGhMB z+RYt0a8%7}KQg6Xklp4ar4<;5rgH`k$DO2B{OHlOkePmiNhIKCF7aCW!ZcG7n6>8` zTo|09LL~6cI^c^K7w#8s5l$|TZ;$Ot{{IKP|ND=^>X$M<-EukNr-k3Nw|5#cKmY&#_oe%H|NsC0!l>E} z{ll|9g)ji~e{k&2p-ccg-`qPh=u-d>H}?+A-9B1{R%g(r03L7ae6d*8^Rj-X!4ROB z<^TjJ*mD}kCVx%Lt)i;V?v0cmYplW8V}qxuxU1I_v>In3&d z2GzY}xx!lYx#XJ!6YE5?+7(%3v{xNN&Hcl(J|DV-FSL@nNvffYuU+X69yh?6&4XH+ zkUJ#BW_=1^0nn(!>>Fb;1kQarX&t&jlJ6>kOn>C3Fw6am0p_h5{ll|2Mzm^Y_*R+E zC9?xkBFK0v>wGrdfZ4B5TB$v{qHFuvm;NeSR!zo>=JxJ^;ZW65l# zXx;S~_)Ukud$U>f#>jyiTv9ovxOS>iherP4wNS=9_VyNsWrHiLMwZkE_BT3Lqce&e z*Xm#G{5(NF2E}H4{C7f<1+*vC4-Ig!TwHh7r_dsHhO$TuLY(hSR56c2m;1GB+Du{3 z+DGT~m8;*#WHcdtq?Pgo9cR|*i=;D~`+op=+@(S4enpVsP`0>xs%FqEF4NFiOGVnO zU^MJ4%iPe#Z&H3x{68U))NR7bn=O??81yNByGl>adPuLf3IvA4)!#58j(?Ym+|iXN zf@^QUYRviZtH_%Zij~BAT$|$Y9I==0Uk{T+Ajy1^T=i4+I;9;)m#?g6W_O$i><3+5 zNvraPEV6e=E>sn8V?z3fb~Om9+w%)q{nC@R59m_>4>#z&EY)od9*+sFH!63l4~nN# z#BUxLR#pklAmI22;pYC~*_>Esjp5$aHd~?gYwkrIzc|v@Sf=$6bw-+pp(k$he{k&0 z=mfHPP;I|D1uY)r5q-S5)ZGUHez%a9a;J$yIls7eXTNaOA-CJ_-O#AYnNKO`2C$e~ zzUBZPZ|)&_TvBh!N@M9MfCroVhh}{WU;*a-;n|-;m;iadxOQjIrRD$t{{6Bu;FoW& zL}lXbEeZWV015nX01DGsH;-As-XT5P?p!f=O`L@iZTA2RjQ1drePVd)*Yik7Rfo&w76OoNdcCew>H%|wi? za)6!x$N0Y6UHg9@Doe#9G>|X`XKWbE^!_+l|>_f(^c* z$%>}HdfH^*3diOdj6E~=AonVIT{c#EKYocB%|<)7Owj5p`d)Zk=a+5&fYbJ{Gg&0a zLEF-Swuv98tRM=+F)ff@wt=;Y&01$fh`gU*BdyuM<2A3=C`$|BkaaS>HugbDdI zreIGG@-t2#+Jw^Q8+>#Ej~3feiUR7yhL|(($3$rwD;{i1o8{|!NSHlltm#qH_0w zRsWZ;^y%FDI^1m0tODh(5rP55_nqNQqy5+iBPR{bU3KVIs?DS8ov`xDPcU&+K9i)L zj}OWdZ)QuiU!=rWp18bh8Kw-p;g+&eho*hd&TsyCZ(cHzY7KgWMloRK0XYQL7^G~n z4A2UuPj$StGM!|dWm$~J3a!MV@6pHQwk2g@QQ!&)rj>rk8QNF8qV4U@D33PXo8F6W zPmm3&yPRM^sR#Urk)`$y`?!cD6)Qe*bJ@TTh7>q^6jFzR3#XyZuPenJ&I~_Ec;*+U z*NlppnV%>fmvX;@oSyA--)gEYs9BMei_A0tQI-_+xx&AuQr#GdsoVQK0$K;=z4iX> zzj)DU7>r9~5#lz-+COGJUH|W!DW;`yTzD7i1$@aS#0N^sX8KQT15Bq*QcRUuU~2_N z9R=U0%7Np%z9MEnVy(Ll2$_kGI}zezB4k-Uvyl1cxi{JfS+T>{lIrb)3Cf;TuVY<) zVu1Q+9P!bft9yRM05GAdTgXMGWm#d}Q-XqBw8z3kZ)9`07a+u!{Y@NALrQup2ga-zgoxbOgyfW7pNK1hBH zerNX=P8sQGBkPU+cB=S|y7Az1ag1a>S#`qF)_6AYVDY8rEv~R$Rlcl5u!G#G>2%py zW=p0^o{O+$N_5Fn?CCjOGhfOnrqCDaY@e9sbBToCVs7y&Q#iqGH9q9!9TORpXil5|I%P7Al z(8r&MeF1cy7F{u^SQs^>*BXQ_5AQ-1iGXzF78djC3C(-gU;zR1EPedxY+$^%1Bi0w zvL@QX^I9J+n_C$S>zML*pqsebWj+Un>Y6-jTG-yyDlN+mEBL-gVguEQQwFON8eq@9 zvaC5g;Eb9<=~gAOtZL^uQpH2}kyshb!ra`7trLzAZi-MfT(DF}Gg?be#rIoavk>MW zzmX}s&?qpTY`@TC0^3wvCF_$K(f2W^?SR}}HAGX*AW`bHgPuyJNcLI4JPZDMkpQ^@ z>vZTRAt%pNqkK5hN=Aeh1zS_OByw$^Psh2q;;qRH4h31&Y~*scadl;foeTxdT>a27vg zTecGb8zsVXaz|s9gXv%v^FhP@)oReymcwrEY2E@ZQHn%lcS4#lGGVjDp-$xTbywKs zT5Y)SbyM}L9oOwt3mzajm#Yh{VjdKxaWQiVDP<3>mu8d#8!;10;{9W$f~{{9$vSP0 zE?`Em3N;Y1x5yJ;RP$D5Lo!}%DU zaAOE$X618)GzPn(-&=d_{s7&gFAFbmrJE9QV_Abf3f}|ko4>pKJ^ST~krzO%Nw&hh zZN+oYd0nWn7VArANH_25IU)J zCrn2P{_e8djf*li*fS%FIVTDot>)~QCbZ_z(8{-U7D77!46fSIDFcS%&4Ju~UQcIE zIhT5#00bax;fkRyZ#&A3msTjg>u@C8#(CSn_y{L)_P$NRCf4Dm-!usv>f&+O27#Jp zO~uh(Kdv@2N3Sgg?~K1fw6feS*RUB;yMGD=O$y#=k$dNP?eAl1&+|mQ=KC-r#kh2g^av zF+o3l{lU4vr2iswBOPeC-ud}GkNu&CSMT2Ekj)4ogz=H1+9Z4>y(u5(9yzaMBNJEX zP3%>_TrOvf3=l8xx zCG+lg3qmr5a=kj`Qi?g-BGW)5xsXdOwODWi@J$RCp3Px<>{TR-3G+bt66iO`PzUZ$ z97(M!7UdlZ^``z;5|9Umo+PUTUPNEN3qkoLJvP)h>Xpz6_hzJDf1x{UN;v1)y{R&g zMNs`6>yHkrN6^>zeBW(nD*5C^FeVxMtYU>d)*Rl)(x$JC0gO}nAe$v#0eA8(^bRYY z!`6AR*LN(Akr4|M?k`|%jnRr03d)+pQDg@S??Dsyw-uJytvO`EXWU&gT*XTpUdWO3 z7B;Yn&?8~i>y6Z07UL8=C@MJl?IZsw;lP}@Ua)19UFuY00000 G0001@u{W#$ literal 0 HcmV?d00001 diff --git a/src/renderer/src/config/embedings.ts b/src/renderer/src/config/embedings.ts index c1bb22dd26..369fd96206 100644 --- a/src/renderer/src/config/embedings.ts +++ b/src/renderer/src/config/embedings.ts @@ -226,6 +226,18 @@ export const EMBEDDING_MODELS = [ { id: 'text-embedding-004', max_context: 2048 + }, + { + id: 'deepset-mxbai-embed-de-large-v1', + max_context: 512 + }, + { + id: 'mxbai-embed-large-v1', + max_context: 512 + }, + { + id: 'mxbai-embed-2d-large-v1', + max_context: 512 } ] diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index 1b71bb5473..3bc3870c6f 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -99,6 +99,8 @@ import NvidiaModelLogo from '@renderer/assets/images/models/nvidia.png' import NvidiaModelLogoDark from '@renderer/assets/images/models/nvidia_dark.png' import PalmModelLogo from '@renderer/assets/images/models/palm.png' import PalmModelLogoDark from '@renderer/assets/images/models/palm_dark.png' +import PerplexityModelLogo from '@renderer/assets/images/models/perplexity.png' +import PerplexityModelLogoDark from '@renderer/assets/images/models/perplexity.png' import PixtralModelLogo from '@renderer/assets/images/models/pixtral.png' import PixtralModelLogoDark from '@renderer/assets/images/models/pixtral_dark.png' import QwenModelLogo from '@renderer/assets/images/models/qwen.png' @@ -184,6 +186,8 @@ export function getModelLogo(modelId: string) { 'babbage-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr, 'sora-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr, 'omni-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr, + 'Embedding-V1': isLight ? WenxinModelLogo : WenxinModelLogoDark, + 'text-embedding-v': isLight ? QwenModelLogo : QwenModelLogoDark, 'text-embedding': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr, 'davinci-': isLight ? ChatGptModelLogo : ChatGptModelLogoDakr, glm: isLight ? ChatGLMModelLogo : ChatGLMModelLogoDark, @@ -265,6 +269,8 @@ export function getModelLogo(modelId: string) { 'google/': isLight ? GoogleModelLogo : GoogleModelLogoDark, hugging: isLight ? HuggingfaceModelLogo : HuggingfaceModelLogoDark, embedding: isLight ? EmbeddingModelLogo : EmbeddingModelLogoDark, + perplexity: isLight ? PerplexityModelLogo : PerplexityModelLogoDark, + sonar: isLight ? PerplexityModelLogo : PerplexityModelLogoDark, 'bge-': BgeModelLogo } @@ -658,6 +664,42 @@ export const SYSTEM_MODELS: Record = { } ], ocoolai: [ + { + id: 'deepseek-chat', + provider: 'ocoolai', + name: 'deepseek-chat', + group: 'DeepSeek' + }, + { + id: 'deepseek-reasoner', + provider: 'ocoolai', + name: 'deepseek-reasoner', + group: 'DeepSeek' + }, + { + id: 'deepseek-ai/DeepSeek-R1', + provider: 'ocoolai', + name: 'deepseek-ai/DeepSeek-R1', + group: 'DeepSeek' + }, + { + id: 'HiSpeed/DeepSeek-R1', + provider: 'ocoolai', + name: 'HiSpeed/DeepSeek-R1', + group: 'DeepSeek' + }, + { + id: 'ocoolAI/DeepSeek-R1', + provider: 'ocoolai', + name: 'ocoolAI/DeepSeek-R1', + group: 'DeepSeek' + }, + { + id: 'Azure/DeepSeek-R1', + provider: 'ocoolai', + name: 'Azure/DeepSeek-R1', + group: 'DeepSeek' + }, { id: 'gpt-4o', provider: 'ocoolai', @@ -670,12 +712,6 @@ export const SYSTEM_MODELS: Record = { name: 'gpt-4o-all', group: 'OpenAI' }, - { - id: 'gpt-4-all', - provider: 'ocoolai', - name: 'gpt-4-all', - group: 'OpenAI' - }, { id: 'gpt-4o-mini', provider: 'ocoolai', @@ -688,12 +724,6 @@ export const SYSTEM_MODELS: Record = { name: 'gpt-4', group: 'OpenAI' }, - { - id: 'gpt-4-turbo', - provider: 'ocoolai', - name: 'gpt-4-turbo', - group: 'OpenAI' - }, { id: 'o1-preview', provider: 'ocoolai', @@ -706,12 +736,6 @@ export const SYSTEM_MODELS: Record = { name: 'o1-mini', group: 'OpenAI' }, - { - id: 'gpt-3.5-turbo', - provider: 'ocoolai', - name: 'gpt-3.5-turbo', - group: 'OpenAI' - }, { id: 'claude-3-5-sonnet-20240620', provider: 'ocoolai', @@ -719,21 +743,9 @@ export const SYSTEM_MODELS: Record = { group: 'Anthropic' }, { - id: 'claude-3-opus-20240229', + id: 'claude-3-5-haiku-20241022', provider: 'ocoolai', - name: 'claude-3-opus-20240229', - group: 'Anthropic' - }, - { - id: 'claude-3-sonnet-20240229', - provider: 'ocoolai', - name: 'claude-3-sonnet-20240229', - group: 'Anthropic' - }, - { - id: 'claude-3-haiku-20240307', - provider: 'ocoolai', - name: 'claude-3-haiku-20240307', + name: 'claude-3-5-haiku-20241022', group: 'Anthropic' }, { @@ -777,6 +789,30 @@ export const SYSTEM_MODELS: Record = { provider: 'ocoolai', name: 'gemma-2-9b-it', group: 'Gemma' + }, + { + id: 'Doubao-embedding', + provider: 'ocoolai', + name: 'Doubao-embedding', + group: 'Doubao' + }, + { + id: 'text-embedding-3-large', + provider: 'ocoolai', + name: 'text-embedding-3-large', + group: 'Embedding' + }, + { + id: 'text-embedding-3-small', + provider: 'ocoolai', + name: 'text-embedding-3-small', + group: 'Embedding' + }, + { + id: 'text-embedding-v2', + provider: 'ocoolai', + name: 'text-embedding-v2', + group: 'Embedding' } ], github: [ @@ -1253,6 +1289,78 @@ export const SYSTEM_MODELS: Record = { name: 'BGE Large EN', group: 'Embedding' } + ], + dmxapi: [ + { + id: 'gpt-3.5-turbo', + provider: 'dmxapi', + name: 'GPT-3.5-Turbo', + group: 'OpenAI' + }, + { + id: 'gpt-4o', + provider: 'dmxapi', + name: 'GPT-4o', + group: 'OpenAI' + }, + { + id: 'gpt-4o-mini', + provider: 'dmxapi', + name: 'GPT-4o-Mini', + group: 'OpenAI' + }, + { + id: 'deepseek-reasoner', + provider: 'dmxapi', + name: 'DeepSeek Reasoner', + group: 'DeepSeek' + }, + { + id: 'deepseek-chat', + provider: 'dmxapi', + name: 'DeepSeek Chat', + group: 'DeepSeek' + } + ], + perplexity: [ + { + id: 'sonar-reasoning-pro', + provider: 'perplexity', + name: 'sonar-reasoning-pro', + group: 'Sonar' + }, + { + id: 'sonar-reasoning', + provider: 'perplexity', + name: 'sonar-reasoning', + group: 'Sonar' + }, + { + id: 'sonar-pro', + provider: 'perplexity', + name: 'sonar-pro', + group: 'Sonar' + }, + { + id: 'sonar', + provider: 'perplexity', + name: 'sonar', + group: 'Sonar' + } + ], + infini: [ + { + id: 'deepseek-r1', + provider: 'infini', + name: 'deepseek-r1', + group: 'Deepseek' + }, + { + id: 'deepseek-v3', + provider: 'infini', + name: 'deepseek-v3', + group: 'Deepseek' + } ] } diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 951b5dbb2a..9fa59ae7c5 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -6,8 +6,8 @@ import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.p import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' import BaiduCloudProviderLogo from '@renderer/assets/images/providers/baidu-cloud.svg' import BailianProviderLogo from '@renderer/assets/images/providers/bailian.png' -import BytedanceProviderLogo from '@renderer/assets/images/providers/bytedance.png' import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png' +import DmxapiProviderLogo from '@renderer/assets/images/providers/DMXAPI.png' import FireworksProviderLogo from '@renderer/assets/images/providers/fireworks.png' import GiteeAIProviderLogo from '@renderer/assets/images/providers/gitee-ai.png' import GithubProviderLogo from '@renderer/assets/images/providers/github.png' @@ -16,6 +16,7 @@ import GraphRagProviderLogo from '@renderer/assets/images/providers/graph-rag.pn import GrokProviderLogo from '@renderer/assets/images/providers/grok.png' import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import HyperbolicProviderLogo from '@renderer/assets/images/providers/hyperbolic.png' +import InfiniProviderLogo from '@renderer/assets/images/providers/infini.png' import JinaProviderLogo from '@renderer/assets/images/providers/jina.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' import MistralProviderLogo from '@renderer/assets/images/providers/mistral.png' @@ -25,13 +26,14 @@ import OcoolAiProviderLogo from '@renderer/assets/images/providers/ocoolai.png' import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png' import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.png' import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png' +import PerplexityProviderLogo from '@renderer/assets/images/providers/perplexity.png' import PPIOProviderLogo from '@renderer/assets/images/providers/ppio.png' import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png' import StepProviderLogo from '@renderer/assets/images/providers/step.png' import TogetherProviderLogo from '@renderer/assets/images/providers/together.png' +import BytedanceProviderLogo from '@renderer/assets/images/providers/volcengine.png' import ZeroOneProviderLogo from '@renderer/assets/images/providers/zero-one.png' import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png' - export function getProviderLogo(providerId: string) { switch (providerId) { case 'openai': @@ -100,6 +102,12 @@ export function getProviderLogo(providerId: string) { return PPIOProviderLogo case 'baidu-cloud': return BaiduCloudProviderLogo + case 'dmxapi': + return DmxapiProviderLogo + case 'perplexity': + return PerplexityProviderLogo + case 'infini': + return InfiniProviderLogo default: return undefined } @@ -181,8 +189,8 @@ export const PROVIDER_CONFIG = { websites: { official: 'https://one.ocoolai.com/', apiKey: 'https://one.ocoolai.com/token', - docs: 'https://docs.ooo.cool/', - models: 'https://docs.ooo.cool/guides/jiage/' + docs: 'https://docs.ocoolai.com/', + models: 'https://api.ocoolai.com/info/models/' } }, together: { @@ -196,6 +204,39 @@ export const PROVIDER_CONFIG = { models: 'https://docs.together.ai/docs/chat-models' } }, + dmxapi: { + api: { + url: 'https://api.dmxapi.com' + }, + websites: { + official: 'https://dmxapi.com/', + apiKey: 'https://www.dmxapi.com/token', + docs: 'https://dmxapi.com/models.html#code-block', + models: 'https://www.dmxapi.com/pricing' + } + }, + perplexity: { + api: { + url: 'https://api.perplexity.ai/' + }, + websites: { + official: 'https://perplexity.ai/', + apiKey: 'https://www.perplexity.ai/settings/api', + docs: 'https://docs.perplexity.ai/home', + models: 'https://docs.perplexity.ai/guides/model-cards' + } + }, + infini: { + api: { + url: 'https://cloud.infini-ai.com' + }, + websites: { + official: 'https://cloud.infini-ai.com/', + apiKey: 'https://cloud.infini-ai.com/iam/secret/key', + docs: 'https://docs.infini-ai.com/gen-studio/api/maas.html#/operations/chatCompletions', + models: 'https://cloud.infini-ai.com/genstudio/model' + } + }, github: { api: { url: 'https://models.inference.ai.azure.com/' diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 6380a0e024..24b723c69d 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -466,6 +466,9 @@ "title": "You are an assistant who is good at conversation. You need to summarize the user's conversation into a title of 10 characters or less, ensuring it matches the user's primary language without using punctuation or other special symbols." }, "provider": { + "infini": "Infini", + "perplexity": "Perplexity", + "dmxapi": "DMXAPI", "aihubmix": "AiHubMix", "anthropic": "Anthropic", "azure-openai": "Azure OpenAI", @@ -473,7 +476,7 @@ "baidu-cloud": "Baidu Cloud", "dashscope": "Alibaba Cloud", "deepseek": "DeepSeek", - "doubao": "Doubao", + "doubao": "Volcengine", "fireworks": "Fireworks", "gemini": "Gemini", "gitee-ai": "Gitee AI", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 25648cd10c..50f4bf8930 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -466,6 +466,9 @@ "title": "あなたは会話を得意とするアシスタントです。ユーザーの会話を10文字以内のタイトルに要約し、ユーザーの主言語と一致していることを確認してください。句読点や特殊記号は使用しないでください。" }, "provider": { + "infini": "Infini", + "perplexity": "Perplexity", + "dmxapi": "DMXAPI", "aihubmix": "AiHubMix", "anthropic": "Anthropic", "azure-openai": "Azure OpenAI", @@ -473,7 +476,7 @@ "baidu-cloud": "Baidu Cloud", "dashscope": "Alibaba Cloud", "deepseek": "DeepSeek", - "doubao": "豆包", + "doubao": "Volcengine", "fireworks": "Fireworks", "gemini": "Gemini", "gitee-ai": "Gitee AI", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 295206ebb2..110aee9cfe 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -466,6 +466,9 @@ "title": "Вы - эксперт в общении, который суммирует разговоры пользователя в 10-символьном заголовке, совпадающем с языком пользователя, без использования знаков препинания и других специальных символов" }, "provider": { + "infini": "Infini", + "perplexity": "Perplexity", + "dmxapi": "DMXAPI", "aihubmix": "AiHubMix", "anthropic": "Anthropic", "azure-openai": "Azure OpenAI", @@ -473,7 +476,7 @@ "baidu-cloud": "Baidu Cloud", "dashscope": "Alibaba Cloud", "deepseek": "DeepSeek", - "doubao": "Doubao", + "doubao": "Volcengine", "fireworks": "Fireworks", "gemini": "Gemini", "gitee-ai": "Gitee AI", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 0415f87452..1e844b9668 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -466,6 +466,9 @@ "title": "你是一名擅长会话的助理,你需要将用户的会话总结为 10 个字以内的标题,标题语言与用户的首要语言一致,不要使用标点符号和其他特殊符号" }, "provider": { + "infini": "无问芯穹", + "perplexity": "Perplexity", + "dmxapi": "DMXAPI", "aihubmix": "AiHubMix", "anthropic": "Anthropic", "azure-openai": "Azure OpenAI", @@ -473,7 +476,7 @@ "baidu-cloud": "百度云千帆", "dashscope": "阿里云百炼", "deepseek": "深度求索", - "doubao": "豆包", + "doubao": "火山引擎", "fireworks": "Fireworks", "gemini": "Gemini", "gitee-ai": "Gitee AI", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index af19184da7..bacf5fcc6b 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -440,6 +440,9 @@ "title": "Ollama" }, "paintings": { + "infini": "無問芯穹", + "perplexity": "Perplexity", + "dmxapi": "DMXAPI", "button.delete.image": "刪除繪圖", "button.delete.image.confirm": "確定要刪除此繪圖嗎?", "button.new.image": "新繪圖", @@ -473,7 +476,7 @@ "baidu-cloud": "百度云千帆", "dashscope": "阿里雲百鍊", "deepseek": "深度求索", - "doubao": "豆包", + "doubao": "火山引擎", "fireworks": "Fireworks", "gemini": "Gemini", "gitee-ai": "Gitee AI", diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index b0690fba25..fa11da9054 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -30,7 +30,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 66, + version: 67, blacklist: ['runtime'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index fc603db68f..cec928cc19 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -58,7 +58,7 @@ const initialState: LlmState = { name: 'ocoolAI', type: 'openai', apiKey: '', - apiHost: 'https://one.ooo.cool', + apiHost: 'https://api.ocoolai.com', models: SYSTEM_MODELS.ocoolai, isSystem: true, enabled: false @@ -134,6 +134,16 @@ const initialState: LlmState = { isSystem: true, enabled: false }, + { + id: 'dmxapi', + name: 'DMXAPI', + type: 'openai', + apiKey: '', + apiHost: 'https://api.dmxapi.com', + models: SYSTEM_MODELS.dmxapi, + isSystem: true, + enabled: false + }, { id: 'yi', name: 'Yi', @@ -343,6 +353,26 @@ const initialState: LlmState = { models: SYSTEM_MODELS.ppio, isSystem: true, enabled: false + }, + { + id: 'perplexity', + name: 'Perplexity', + type: 'openai', + apiKey: '', + apiHost: 'https://api.perplexity.ai/', + models: SYSTEM_MODELS.perplexity, + isSystem: true, + enabled: false + }, + { + id: 'infini', + name: 'Infini', + type: 'openai', + apiKey: '', + apiHost: 'https://cloud.infini-ai.com/maas', + models: SYSTEM_MODELS.infini, + isSystem: true, + enabled: false } ], settings: { diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index ccc8f30f44..e5331d8ea7 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -959,6 +959,51 @@ const migrateConfig = { } } + return state + }, + '67': (state: RootState) => { + state.llm.providers.push( + { + id: 'perplexity', + name: 'Perplexity', + type: 'openai', + apiKey: '', + apiHost: 'https://api.perplexity.ai/', + models: SYSTEM_MODELS.perplexity, + isSystem: true, + enabled: false + }, + { + id: 'infini', + name: 'Infini', + type: 'openai', + apiKey: '', + apiHost: 'https://cloud.infini-ai.com/maas', + models: SYSTEM_MODELS.infini, + isSystem: true, + enabled: false + }, + { + id: 'dmxapi', + name: 'DMXAPI', + type: 'openai', + apiKey: '', + apiHost: 'https://api.dmxapi.com', + models: SYSTEM_MODELS.dmxapi, + isSystem: true, + enabled: false + } + ) + + state.llm.providers = state.llm.providers.filter((provider) => provider.id !== 'graphrag-kylin-mountain') + + if (state.minapps) { + const aistudio = DEFAULT_MIN_APPS.find((app) => app.id === 'aistudio') + if (aistudio) { + state.minapps.enabled.push(aistudio) + } + } + return state } }