From 9221c7c93a790bfdef290b2289a5c784ba2a31a0 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 17 Jun 2025 17:19:48 +0800 Subject: [PATCH] fix: remove default model reference from embedding_model and add export paths for templates --- apps/knowledge/migrations/0001_initial.py | 2 +- apps/knowledge/models/knowledge.py | 6 +----- apps/knowledge/template/csv_template_en.csv | 5 +++++ apps/knowledge/template/csv_template_zh.csv | 8 ++++++++ .../knowledge/template/csv_template_zh_Hant.csv | 8 ++++++++ apps/knowledge/template/excel_template_en.xlsx | Bin 0 -> 10780 bytes apps/knowledge/template/excel_template_zh.xlsx | Bin 0 -> 10795 bytes .../template/excel_template_zh_Hant.xlsx | Bin 0 -> 10791 bytes apps/knowledge/template/table_template_en.csv | 13 +++++++++++++ apps/knowledge/template/table_template_en.xlsx | Bin 0 -> 10071 bytes apps/knowledge/template/table_template_zh.csv | 13 +++++++++++++ apps/knowledge/template/table_template_zh.xlsx | Bin 0 -> 9864 bytes .../template/table_template_zh_Hant.csv | 13 +++++++++++++ .../template/table_template_zh_Hant.xlsx | Bin 0 -> 10051 bytes apps/knowledge/urls.py | 6 ++---- 15 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 apps/knowledge/template/csv_template_en.csv create mode 100644 apps/knowledge/template/csv_template_zh.csv create mode 100644 apps/knowledge/template/csv_template_zh_Hant.csv create mode 100644 apps/knowledge/template/excel_template_en.xlsx create mode 100644 apps/knowledge/template/excel_template_zh.xlsx create mode 100644 apps/knowledge/template/excel_template_zh_Hant.xlsx create mode 100644 apps/knowledge/template/table_template_en.csv create mode 100644 apps/knowledge/template/table_template_en.xlsx create mode 100644 apps/knowledge/template/table_template_zh.csv create mode 100644 apps/knowledge/template/table_template_zh.xlsx create mode 100644 apps/knowledge/template/table_template_zh_Hant.csv create mode 100644 apps/knowledge/template/table_template_zh_Hant.xlsx diff --git a/apps/knowledge/migrations/0001_initial.py b/apps/knowledge/migrations/0001_initial.py index a06218db8..226f83ff7 100644 --- a/apps/knowledge/migrations/0001_initial.py +++ b/apps/knowledge/migrations/0001_initial.py @@ -56,7 +56,7 @@ class Migration(migrations.Migration): ('scope', models.CharField(choices=[('SHARED', '共享'), ('WORKSPACE', '工作空间可用')], default='WORKSPACE', max_length=20, verbose_name='可用范围')), ('file_size_limit', models.IntegerField(default=100, verbose_name='文件大小限制')), ('meta', models.JSONField(default=dict, verbose_name='元数据')), - ('embedding_model', models.ForeignKey(default=knowledge.models.knowledge.default_model, on_delete=django.db.models.deletion.DO_NOTHING, to='models_provider.model', verbose_name='向量模型')), + ('embedding_model', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='models_provider.model', verbose_name='向量模型')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='所属用户')), ], options={ diff --git a/apps/knowledge/models/knowledge.py b/apps/knowledge/models/knowledge.py index cfbb28e5c..58620b7ec 100644 --- a/apps/knowledge/models/knowledge.py +++ b/apps/knowledge/models/knowledge.py @@ -95,9 +95,6 @@ def default_status_meta(): return {"state_time": {}} -def default_model(): - # todo : 这里需要从数据库中获取默认的模型 - return uuid.UUID('42f63a3d-427e-11ef-b3ec-a8a1595801ab') class KnowledgeFolder(MPTTModel, AppModelMixin): @@ -128,8 +125,7 @@ class Knowledge(AppModelMixin): scope = models.CharField(max_length=20, verbose_name='可用范围', choices=KnowledgeScope.choices, default=KnowledgeScope.WORKSPACE) folder = models.ForeignKey(KnowledgeFolder, on_delete=models.DO_NOTHING, verbose_name="文件夹id", default='default') - embedding_model = models.ForeignKey(Model, on_delete=models.DO_NOTHING, verbose_name="向量模型", - default=default_model) + embedding_model = models.ForeignKey(Model, on_delete=models.DO_NOTHING, verbose_name="向量模型") file_size_limit = models.IntegerField(verbose_name="文件大小限制", default=100) file_count_limit = models.IntegerField(verbose_name="文件数量限制", default=50) meta = models.JSONField(verbose_name="元数据", default=dict) diff --git a/apps/knowledge/template/csv_template_en.csv b/apps/knowledge/template/csv_template_en.csv new file mode 100644 index 000000000..7a036c37e --- /dev/null +++ b/apps/knowledge/template/csv_template_en.csv @@ -0,0 +1,5 @@ +Section title (optional), Section content (required,question answer), Question (optional,one per line in the cell) +MaxKB product introduction,"MaxKB is a knowledge base question-answering system based on the LLM large language model. MaxKB = Max Knowledge Base,aims to become the most powerful brain of the enterprise。Out-of-the-box: supports direct document upload、automatic crawling of online documents、automatic text splitting and vectorization、and good intelligent question-answering interactive experience;Seamless embedding: supports zero-coding and rapid embedding into third-party business systems;Multi-model support: supports docking with mainstream large models,including Ollama local private large models (such as Llama 2、Llama 3、qwen)、Tongyi Qianwen、OpenAI、Azure OpenAI、Kimi、Zhipu AI、iFlytek Spark and Baidu Qianfan large models、etc.","What is MaxKB? +MaxKB product introduction +Large language model supported by MaxKB +MaxKB advantages" \ No newline at end of file diff --git a/apps/knowledge/template/csv_template_zh.csv b/apps/knowledge/template/csv_template_zh.csv new file mode 100644 index 000000000..e9d9d8c3d --- /dev/null +++ b/apps/knowledge/template/csv_template_zh.csv @@ -0,0 +1,8 @@ +分段标题(选填),分段内容(必填,问题答案)),问题(选填,单元格内一行一个) +MaxKB产品介绍,"MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB = Max Knowledge Base,旨在成为企业的最强大脑。 +开箱即用:支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化,智能问答交互体验好; +无缝嵌入:支持零编码快速嵌入到第三方业务系统; +多模型支持:支持对接主流的大模型,包括 Ollama 本地私有大模型(如 Llama 2、Llama 3、qwen)、通义千问、OpenAI、Azure OpenAI、Kimi、智谱 AI、讯飞星火和百度千帆大模型等。","MaxKB是什么? +MaxKB产品介绍 +MaxKB支持的大语言模型 +MaxKB优势" diff --git a/apps/knowledge/template/csv_template_zh_Hant.csv b/apps/knowledge/template/csv_template_zh_Hant.csv new file mode 100644 index 000000000..62eadb994 --- /dev/null +++ b/apps/knowledge/template/csv_template_zh_Hant.csv @@ -0,0 +1,8 @@ +分段標題(選填),分段內容(必填,問題答案)),問題(選填,單元格內一行一個) +MaxKB產品介紹,"MaxKB 是一款基於 LLM 大語言模型的知識庫問答系統。MaxKB = Max Knowledge Base,旨在成為企業的最強大大腦。 +開箱即用:支援直接上傳文檔、自動爬取線上文檔,支援文字自動分割、向量化,智慧問答互動體驗好; +無縫嵌入:支援零編碼快速嵌入到第三方業務系統; +多模型支援:支持對接主流的大模型,包括Ollama 本地私有大模型(如Llama 2、Llama 3、qwen)、通義千問、OpenAI、Azure OpenAI、Kimi、智譜AI、訊飛星火和百度千帆大模型等。 ","MaxKB是什麼? +MaxKB產品介紹 +MaxKB支援的大語言模型 +MaxKB優勢" \ No newline at end of file diff --git a/apps/knowledge/template/excel_template_en.xlsx b/apps/knowledge/template/excel_template_en.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..26800ea069272eb6b23f2de743bc66037041bb9a GIT binary patch literal 10780 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 Gz5fTr#=uzs literal 0 HcmV?d00001 diff --git a/apps/knowledge/template/excel_template_zh.xlsx b/apps/knowledge/template/excel_template_zh.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fd896c18b67e31667cd2c77e8e4ec7c843ff0053 GIT binary patch literal 10795 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

&E&pQ0KHOsivUQx^}4%xqzt(P@PAm_*b` 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 Wk&}l0x#Us7P{CwC+6Ks<`Th@h0?7>k literal 0 HcmV?d00001 diff --git a/apps/knowledge/template/excel_template_zh_Hant.xlsx b/apps/knowledge/template/excel_template_zh_Hant.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5227b6963d0127fcc0706ad0ad32e8cac3c828ca GIT binary patch literal 10791 zcma)iWmp|s(lzdKaCdhOZo%CNPJrO@wHql`jXyYH3J^NyAIZB4@^^1{dk2*pQ#&&V`j0+H+J9Of}kp-xLNsZ9Mo3AV|opuz4Ma%HJ@?_v5AJvRDml{M|%6A!nLk(9%``#pded`{+a-)A~ea$v+yi~?l{OcKtuWi-4} z+#ltt-Pqi*fAroX+8DjRs)!#mQyz(`Qip8SKum^Y58+gU4MAnKlQ1Wze}vQqer{wR z&rQKU8hx9M*`R*$DBRQb00&?>dE> zX3rAyvGQ?5 zNiJS~X*W6d!VPJ4b~Cyzx99?d9p`Y&xjA&h9xO!`Ry)Luzbw9obqirk0&AF!@W4DQCAgJ> z>ae!zW!HYSWR>_P;3-TbTh!Yv4Vnx$h8pK8lvi-ho#-*_2=AXk05;Ck&^!kL@EioR ze+0qV(aF~OB@BgeIx;=X=)otDPa;EJ=`j^Ltc%g!h`sQT&JC}po#@!4q^9=)Pc1l( z;aIC*cQ#(}@ttt*->F8f`dPA4r-I@WuiFo)a1QD~Wf5|EgYg-@`BIl3&j&7H)5+7( zE`3s$)>seDnI$5b;MZ0+11H>btzAoLSM4NKS!-5~cZF2aPJ~^Fkq-GD6E)Ca(8Mt5 zw3rE>>p~6sUfrm8VQAcnC?;WMY)0Yx)L{@oGeYaElIlE4xaaib@Bqwve#HH030UC* z^4Va_G2YXn85YnitDsVEWov>%J@u_igR*h^L}D#+>=4NA*-w(2a&^>OTvp*QXp4MI zc5of@%5GENixu5an!OqwU$vxuaUkrs8M#6h@F(3I0Hp*)LJc3ZWjS>!yP&&3enIxX zGY|MPvTjyCIp@C%ApH_>wRNy`G&44K`jelKh$JNZo0S~`)P+@>i z2V5bQVk^zf*{QU$xER0 zWX8cndWgd4+xq^>mlJ)R3{aB7ffo+|>#g8jDKQEaC#F%Y@QzkCXQ5qtereO0+p2ib zbCK(}z9$v|!$m-(@@2fPH{YS40dAVHKc<5-=7P0S(6O=SKWtnh#(v0^$j(7d+dJEK z;lWvnF2<=yfp^^DGar^GUnS__a{Y0=`fB8yD;@Gnjq8d8mFthJWvUCV0!w9|kymHj zjd_cdmC4fADEuI@{mJCWy19}IvC)gJ=?vlvoF-E@Fb$ZfxiR90`bmrl;Ps)I0AxbH zAxKe|Fpall=f0APYLmg_6*}hBU+*^oF`HG)B$w0x-dkisAiqc?6Uw1wFF7$|uRgXq z7x~4Q_bg`ryn1s!?|1px=ms8C#oR`=EPd%=g?s_*FHOxhgIJM)Tx{&X~B zc7l(KE7loP!SDi0vp)Z17dp1pih^f$5qW+9{*PtL@^jh7ciAj4BLts-UnBW{tIM#F zN$Yk2lEc*Z_!=zC)fmjw1Eem=i)_}sYjuiorbU?Qsl$mLvyEJCw#(cC0f=|njPWXP zrxa@aoJ~I-EM1++#K@27tfxd6vq^?qHn&2`2JAu^Kwv4qr;H?jXi=q2X5b<~JL+^S z>R)HG$Hv8I0cpmK$WWa(Z&s1VW1{M|c0&d~TuiL$JOA1_0|BeYUj4X`#yDPEe4x`x z`!%a={M|UYP4Q@0!*|cziBuN7-n4ks%(McXX6@1|AATKo(0BQo@*zFdEe3W2yVw1= z?+A~_{e5-0z1FC_uo9*_K5$u18Wj3+3`l;hPphT>WDj;DgrRBN7}4`p%$Mi=Tda7d zflDHAFFxJ~{Z)_Np4jiYJ1hi(db#*KOl(ht`rvcX=qOKFptE5bMwNT1?RcEq{Go6b zUbVGC_jGWjF7Ru@p@MH<52zaU06zDfc=1AMEzBuX<)TCo^Mf z<3ILQfp_-^-=8_F{WeB`!b97JlQ6t##7?H)x<8B;#-*nqx!-P$v`}`Pw(UMgb&xrvrAyb0`o(3-P)87 z2x}d`qe5Cye<&=%u2FdxmYj1R>AF!WtVAw_JLn!fUG-YWCtp_mvNB>$}J89~(6nAp%(f@0=b_q4P&j_(b=6 zF+Fd`ihVqc)Ts1_#sH0S188R?sk4yL&enoW4pnY$YUKE zAJNJ!n_L5e^HkF=f?_=#DbkXg@N_=m>p&dRmFhOV5*)W&N7)08j7vtozXhLoW@BKb#P?a zl(=9qZ0syEXXwMkAqT&6oFX9fUF3=3LEsr~npEOjR_ZfGZ?-!To-xHIfCXn`?19Jf33f>3HIUkw^~*cSP2Zjy7%rva%KgC+Fg~ zROBm*tz!r$i!Nk*>%DLILg>ccp?&jN$XhZ?&eHo3enoMh6XHFe+tbi4Vq3D~)6T^7 z2Iyp7hr_mH-F7Sg!{Y>)TT8WvP6XTbfLV1H+06VQ@KOj33%Z&6!xhJaRGc=EkP4vL7n`Vi6z8TPuKfXKgU2_=!M@E(8(J;q+UBkS1P#O3D zJu*P&buLQsp*W#Dbm(Rr3-Eo_LsjUg`f#rMH% zI4J}Qxtx7h2?-`NL+#*A!O^Vp_8ufH9)Ot(= z({=fH;GvxQZAo%0XlQ5ALnK5y&pL2HGe5&?tEF2SQSP&8%=wqP{QV zGPJMMNAWg-TAg=Q`FtH0N=}M4R~I(B&x{#Mu3pzkitRfX>FQEpT+e2PgK!lK8=Hdp zD<%5+9S&mcT8#vxzt7MJ2-AYI#^pKGRk935#G4;D79PfHyonc|GEOp?L4k}Purdmk zdABlbS&{OFcXzbvD?QyuhW!+bkqrajO1H~MiCC!qRYN&T2E<~gTckMGjS#!t7C8Nx z3=!#Uc`JXTW$RQ)5~B;4OQJehea0wIPO}xJz9Q@P#~WGB>3?nv#%u(Nm}Gl5{h^%KND zcM5f8=umyn8(eG%5RjM8^5++YqnW;gv5~TqgSm~VYPACVci^JN~NN^T6sTlWBd6pmD!AIjfbSDce;OsYo6??#f< zpZMNu*|!Hcc{lnfiT+7x?wJ?_d&QMp9ZLeeZ-!k$+==069_E7A%P z{%F{nk#XeWpd-tKL<+6gCW@~uL7xGY4m(bo8%(Y zLq&Zi5kGJnG=-A39CTt)ic`Gz{we$u2*MYBak$s*{+5wL!2WlJ9Q5 zaDh3ieU-sWxiGSzT-&!2Z%&(0rrE|WCD&KI&Sr&u0L~!1xdWRWb8~?(ltkhxjI0tL zapjv=MMPKw0=|%G-6m>jqYF60o@7ZvXyXa26SG2Jfo;9txG_WUfrW(JT_w1>Yx|C2 zI$g0%FZkvyyN}6`OI8WR!lc<99PYhN*4=pQ^wI2LkZWBG%H5-^B9kAw{8R$z#i zgayl@5>}^1)^np3VJgw*Lk-WfO^WNGJt57ZI&>~~ zr~RLN?TtLBj!H0I>j<@nnoQLRUw<$Psn|j+CtOOEu`WTg#<)2v&f$c~7@xFs7U8sV zUdf$-^Y?C;O%KXkg?Dw~KMBf4zF5-i+a3Zq64HD$Hdu@sm3q}dRl1HOd6lMAqgth( zU|-Jh$*fT#M(;Ja$Hb#Fv(~s3-TnL%*=lF7X&DK(HYa)3TL!g=;N_9qgB9zAL_Qse z8gs`-r>2Z{ov}6i*Rejh(t5j9Ng+cCJqoXG!T(8)k@w~?$p|1IHhLf+i2ou-CwD93 zpRBl|V;!?3N#GOH>ss}?3tp7NdpO{RIXdIKeBx;viJ7q zcJkZlR%##Owh+@Oj71owu5-4WGrNRpE>{jsnv~+j{n)>1Rd80N7aDq~G`Bv?R$4{* z8_u`8m@WB1&_m^$>@&jzrzZ`6a5TFqp9YUK~QS zvU~Y~8*yEx1rRli%6Uf~7h#b?wX@@Nr1NN{#Z}zMdlLa{DFRzQm^6x4-V|}Rt4G~3 zh2$vtZ*;LfHwL;zyM*(Q40G&Gx{r zK5zL*k;_tg)yqEjzTXyOq^Q-T5dMgF9_e)nIq-14V?}nQ`3P%VeM9;!%vOX~xnn}H z2vywGqjV3^ELIgGFLKq&HflB5MvGAe4N~mGR#O%eq_0aTi#Kc49S04N`*t?M6xr^h z$Ow@T1xa99^y&sJYVr{;h{ok7VWU`|r4OHn3ydYfp5xX1PIL7GDLahZJCzmo3)JM&?~w^DQZ@Ekl*BhxsclZ3N<*VCH;ChAv@Cp`t1+=iB6< z4K3wY=%tjeD|JC(}K&8Jmml0;RW(zXZs981(xS1V<{zs)PlLVCEBRf9kzl z)>Xm+!Bn2Z{g=>!Cyln8Fud&c>~*r`4H&k>-FO$t9iE#ATgjzA zNODPiLvytAIwCz5Asvd?C6-cmI05}QyG$1eeTCRX=LWH}x>&~t&<{Czxse&@8boFC z@?eU5)4WuWK!^4yJ>NmzxWx7q=l+L*--4+r=}#uDi0lWDofZmFIsoS zTtbBHFBS(Cw`<}^2F=Mt&Pq63+JN-Z18%aiJ`rUZ zG6}VgjA5PAO>FMgnaUJ>4zg%-E2p*G1)nZH%jnB(9Nc@RH*IQK1ny(TyAHUlSW=I9 zcVL;?5fq;06V{j^FVRf;GcIEJ66)u%c#`j@c`mGe(%#dXY=EwkwYvA45sDZk_->Yv zw2{Ax@P>e?XJU&^vnSWX%HNYd(-REiYq8EU*wh4X9O31x>Kgo!yl+Fupx!E7X}J0& zQ((zt_XM&UFeCgXMH{C0z-?(bNHOVS*$3}1I=Zl@hJlCr<8(J$v~s%L5<0AWV2KHq zj3Ffnn7ElRgw>Wx(xxF}CIg8+kUwa@5q?)WMYCBCw}*TPat6EqUN{Q0SF>@)p~t~K z0+&UJkvcjUPWg5tPR(1g71G|IBs|B~219+a%itX2NG1{-Il4eMsGme+XUAVjh`<*R zl>@B`_v!F1(E!&?{$t%cxIl?4usuZuA+@*J#nZS#lFK;KsdTcg(psg^sm;{1EMxd) zG9u}jvM%oh_zh>EXFmD0L#oD`FAJ_2(0(MX4CY3@WcUy-Yw3sE0-r-+rme`3>YERB z0%kVk3=n*Xlx=F6W-IvAxQ)BlZ820g7c?E;XRMD$$e}|UWbMwSjoGlTZ>eCvLJ3Huen?wGW)5~8aZNQv;I|Ca-X%wLMYbrKXvprOFg36 z;879Tv+R?NIa(|z^K+}$Dhp!npF}6h#?>e4xR?m8##^LgJkb~*S!2`1w0pA=ItMLY zp%3%`O-$5=bUohN+|HdgdqK!N7_o{OOmrTaT^x)&MzWbaa%LZwCe;HJ47Wk&QoKlh zRK#MZqVj03(#vJ>zw-LQxU7JZCu0#qfOV~oTGl0>2GRAv%apZ}{bO^_^yGsy^1^*jn8L7{PW{S4K)9XCI{cL>^QMYUgq)v2L-#Bg^fW$IRMVy7y^AC=z=Z z0s%KYU;h4OkB2GI14&-zg#$v^Pig0>eLg-S@tUzE?i4+dSF zfgFr2NR&@p4~EH3QW8Q;gp`mloY{s11syTW%`ru~vQyf~0KyMi&U(U}V zbbHmb8l4b@`4TNI9dHmUk zF+^Y6VHZB{)@%SFALu~w{J8DgRNVEthRi_&R4RL|?5I+~g0)dt-t50_6aI2~D~Yzr zI7^p^$OpXAMC$>DC2^hk;&DL zQ&qQs@C_PmaB9!jYO3xPIw@bw#Aq*^(CQ@|B&8rW`XSaajz)u33d%})1TbD0bQZw_ z)5D*Q4U{qVTK#40qi(KMr$CvK@HSj47y!NvtV{z+c=VV1Hy8#SKg}+e0GeI|-L}<$ z4*Q{~&DSer&9iuST;KbaOQ}sxY(pE;1_ne~kZSj6>04Fvz=n0PA@ySsiUYgprtRbu zw97G9qx;k9tY}%bx-(tUxVr%%(DBNU*({+khCAx$`TWg45U&x8v@PSqDPoB-FSeaf zS2*J*%Mx~v20=ec40CB-$S2qbB~Yn12FPn`cAZ6Cc28|YiA=bzLIrBrT;IkvV#1AI zs#2rv<`5iqI0n;UHYb)41w}P(vX91irXqi?gxz3@Qg~g829KZ7@>-^X#{c6TIom{1 zDH&bPqe%esc$PaL0?rhyCe}IrN^b*Wbge4ymCc@crJC}WJuoIUk;EU4oV=;pEV*~a z_D)&vJP4U`wZI>~fvoIBPH6Qz9x!JeEWWZlf|}oAN~gH5j&`!g^8P7MZA|%cF4$yFmCF&=$+qm3a@Keqf_=xM#QWv~PtL`kq zba?M^zmu7^Og-W-vQU}!$^642FLQE^__r3jd}e$|#8Xw52BcT>{nK4AEI+#Q2Wrnl z?0V{teFj=Eum%k0YB&9$b;#@42uX{RzHvWNo4J2$M1JoQvbdh>j_YShF}!83s^v}( z^0^7~`}kzE@j8hPC8Cl=aHLZ?4Z-0KbHzS!EHeR~Ivb7xc z^41v(8e>Br3E)klc>dzz5S$f@BC|4LIiBi!XkpUV(k6N{e5su6tQ9IOJ&{2=cnt|W zCgL7OuB}4qlAHpYFce!H=cLQ33UU61S-T>nin3u;z-gF}IX`Qj`lU95I%`+-h#qAs z$FO$OCc{QfffAtGVv+F2$#vkkLF|bh#?3H{c<-q??mZHD+`~$9b;EP+FSvDy`Y=t0 z0dIEY)gVpzO53ZMSk2!CygF$p>56ox5u$Q=A z^YlQXikx(5yGhy{4h?i1C7iw|rOxXo(Eqy@3ibQ}^VY%G>dz9V2bW9h)AN68&siY& zzhoF+B+KI`qfZcXER}7RdPE4dnaz(a{v@{xAs~wdjY=9q$ zSegLW2(p7GERwi#K%fkF?Z9_8Q)KyDhJmiGf74sE;4QojcZ`I@nN$Ygwk3;alU)vG z+ys6x>d?morY@r=1joh5*6)vfKZ{wvyMMZF$PjFvvoJ}|m8zF2)f*988z*BMr?)EZ zcE*l6FPWI~#1WhB7m$+fkmDLu4fK>$G5o}cMle5Kf@^yS({G0G1$VExqUN9`f+;PC zIvh3ajb9mZ>88?Z3JV@vjo)d;Q0NsZFOEB0b9>1VY4|H?P|%u^m|6;Q5U#8u6k8&v zDAx65BmwUv#+8!wAWX&s3RAlw$w(1KNy^U z%3H&u0;M$?nlaHI8%{lKpMEXsF#KMPKyjLZB!AchF?n%|;EUc5>fEebqN;L_Vl#iW zSXt3f+wNGzii`}1y|{$jquODV^a|=)h-nS%aN>YwV@TR7a##|J?^mAj3_8Bor#j-! z&X${C`K-sO(1;`AyTac~HZ{UQ4#=Q*;ucb)`F#~Nz(kdeJr-N?9q6wYCA8J;oWY~M z;y4t@K(^jq^FmJ!W`KIPFh4oitm3$&a1>_YAZL=--R*7P>Z)mq8 z`1pN&ET8A@nLR+k(0}HEf3;`*8KCDFfq;S#KOZT`|7*B@8TjwL7B2+!YrJ%N1(W=y zqklU6laO9?emO1qOXueU^uL_FJfXkFi?f&Uw+^&_`unp7?M3*PKdQg0{i`GGPl*2P zruwa&{=BmPa{BMysz25L>;w9(PW((Dzt#Wh3i@9+{nGC8YrNd_yXV~IGyD86g@2+n zP5L*w`g5Xx^4g1^Unt%FUF|@0nU&Ec}(D z`~Sapjb|vHRsUT}|K|$%vzq?fqtD;fe%IFjobsRP=HCXgQGfdVJ8b`J(l7l=zs5_1 z(|<+yAKgp;ocW*qOE0>=qBig!y1%=b{+#}w?Igdgctig+{eSgO{XG3_E>V<${Q1bE Pf}n!PJ$vh=c+vZRCE2eX literal 0 HcmV?d00001 diff --git a/apps/knowledge/template/table_template_en.csv b/apps/knowledge/template/table_template_en.csv new file mode 100644 index 000000000..bce374cd7 --- /dev/null +++ b/apps/knowledge/template/table_template_en.csv @@ -0,0 +1,13 @@ +Position, Reimbursement type, First-tier city reimbursement standard (yuan), Second-tier city reimbursement standard (yuan), Third-tier city reimbursement standard (yuan) +Ordinary employees, Accommodation expenses, 500, 400, 300 +Department head, Accommodation fee, 600, 500, 400 +Department director, Accommodation fee, 700, 600, 500 +Regional general manager, Accommodation fee, 800, 700, 600 +Ordinary employees, Food expenses, 50, 40, 30 +Department head, Food expenses, 50, 40, 30 +Department director, Food expenses, 50, 40, 30 +Regional general manager, Food expenses, 50, 40, 30 +Ordinary employees, Transportation expenses, 50, 40, 30 +Department head, Transportation expenses, 50, 40, 30 +Department director, Transportation expenses, 50, 40, 30 +Regional general manager, Transportation expenses, 50, 40, 30 \ No newline at end of file diff --git a/apps/knowledge/template/table_template_en.xlsx b/apps/knowledge/template/table_template_en.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1e4458226643e294f138d029c7b74f148762d6aa GIT binary patch literal 10071 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 JQIb93{tw62bUgq7 literal 0 HcmV?d00001 diff --git a/apps/knowledge/urls.py b/apps/knowledge/urls.py index 4242d0230..43715e529 100644 --- a/apps/knowledge/urls.py +++ b/apps/knowledge/urls.py @@ -4,6 +4,8 @@ from . import views app_name = "knowledge" urlpatterns = [ + path('workspace/knowledge/document/template/export', views.Template.as_view()), + path('workspace/knowledge/document/table_template/export', views.TableTemplate.as_view()), path('workspace//knowledge', views.KnowledgeView.as_view()), path('workspace//knowledge/base', views.KnowledgeBaseView.as_view()), path('workspace//knowledge/web', views.KnowledgeWebView.as_view()), @@ -39,10 +41,6 @@ urlpatterns = [ path('workspace//knowledge//document/table', views.TableDocumentView.as_view()), path('workspace//knowledge//document/batch_hit_handling', views.DocumentView.BatchEditHitHandling.as_view()), - path('workspace//knowledge//document/template/export', - views.Template.as_view()), - path('workspace//knowledge//document/table_template/export', - views.TableTemplate.as_view()), path('workspace//knowledge//document/migrate/', views.DocumentView.Migrate.as_view()), path('workspace//knowledge//document/',