From c7d0f441b9f51351469acf7233196094a366b604 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Mon, 17 Mar 2025 11:35:41 +0800 Subject: [PATCH] 'commit' --- AI/Text2Sql/__pycache__/app.cpython-310.pyc | Bin 7902 -> 8084 bytes AI/Text2Sql/app.py | 20 ++++++++++++------ .../65a8f4b0-5f9a-482e-8570-38938a1beaae.xlsx | Bin 0 -> 4884 bytes 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 AI/Text2Sql/static/xlsx/65a8f4b0-5f9a-482e-8570-38938a1beaae.xlsx diff --git a/AI/Text2Sql/__pycache__/app.cpython-310.pyc b/AI/Text2Sql/__pycache__/app.cpython-310.pyc index 4ba9da3cd838869ce9f3f1e21ec15343addbb2d6..79caca5bf796abfeac50f3510717fc34ebaa1fa3 100644 GIT binary patch delta 2316 zcmb7FTWlLe6!om_wVl{*(l~bFB+koCx=E8J&5N|@`w3}MsVRK85@x$Iv7N5H?(AB9 zfJjQpM;|V&ro4(MwB-jX#D|6WL4psE_$wbsNQ;D!DkLg|1mcf^VD2~%H|h_T_UxUR zd(WLY_s;sq?KgG?jX;uPpf_ck6V1p$qKl413vuBf z@ytqi9j>|HT11H$@sJpxmzSaioYiHWZ!6 zfg5r3f+NvETHo))O}7#8;pW9<^pcLnc{J<9EhLU({Anc{=DKEO+=kmPxOw7k5+oam zf;);*qK7Bw#ho~gH>4!oRg^dt!rgcyx2m|M2n#5e8G9-id+{d0xJj_|t+LGjFPeV5 zSk~Y-;R)ffMR;uI9&5Ck=XD18%hJ2>4!lzY42iw&5_?^i83f-gWCm-`inX^w zdbeQP#~JtY=fDbc6+Va$3Fcukf}cJqT|@Le;+|_9#n0eLd>BvR>7t7_44M&-a)cdq ze%`1cJGl4A(V3|X#yUBzQer#Rd|pHB6L$lfaUGJ~yrmz8*lpKcZw)s;bkI0E>>frD zcHZ4S)5WJ0MBzoD`;RFuJD}>iaXM+xOe&Kz?b`BCqXd(jl~Hwb*&|D=w1HQKX`*66 zO%`-@v5(!f8q(2rfDYCpHz{#21#IA!EvJZ;#3#nMZF)IK3t{9%{r}Q|Qcm_uzK4iU zDo#4c7QG31ln>|_d*HoXJqYF&fFX9)*Mi2`o4(fQ8g?JBlQSC8x3O=13Ysqc<-3on zM<5J{>3He8>U#*q*+L-Nv?jP}LeH3%W@Pg_US*#KzCz*BxnMy$3emQg5;Je)OhSkF zPzlkBa{_TcIC-?Rk#2CP*%*QH2~P}L$y)1pMpzFqpe_Bg8E4_^YC)5-9s88*3>1il3_NZ zllyG4z7btwr2ZuzQ1iPGGua>EI`&U}piO9W8A!yD)-Z*HW9`p;{ZE;Lw6I>TlIS%y z9o{Nmfv6(88t$lh4a|yI_GP%f`gfST4#3z?VGWJ4eUW|{(%4b=>eyoN7x0%;7)^c0k0p_~^9{{WzL^Ni(8^xt~Ts*%mz5rTUrB;M}*3^mau^*Z? zwbcPfh=c7pZP1had!>xgEKG_^aMGky+KW)O@BtyYgY}*9>aXb>O-ipbG%* zz8zFCPOduI?yOPBS#$u_TzP}vM{&w11iTC|&GIcB#w)Py<4Ka#C|HDEgr!RW*8mtS zJ9$0mO&Hz+0NLq1SnwuAeUnMsNej7(G71^Qee_Ob4P4O44qiQn`3pm_&X^y`PD$b= YtZ_Ldw46`&$?fDVEb z0BNn1S}BKGD2M5Yq|_yg{`4$0+DfyIj!K$!@;qbzbDs4r!N=(a=`||7CZ5u3l1_nF zjbz8bZ9UC^Tk~|}L7^17kxonEacQyXKP;Z1o2A7DX|V+?R@O?9T(#0wFXM(6hV%D>u5>VX@h)+EqYMmf{BI?`R;k3yO5Q5*AvBOMj8^Ibs~B`{ z0%ThQP|ik)M#lfLh&dDRI<)ULQkoJ;FGE({5VDqE#}= z+$xqUj&`ETY#A>jIs(0k6;b^dm7O$MVOksr=wyGR68N69VHO+@%`=Td!A}So5`VTQ zk}I48+Y5QS0`bZ-HL)S|HHkNV4^@>H(c95Dv&&Y=W-={3!k?@P*U`vl9<%Z$vmGyG zg-VVe!H_#}M`b0`qKpSoGb6s}m=4WKeZeww1)HxGe|5ykxQKO5cke?RSq2lOW=%z| zGeSh;_0CsG+fGz3A{-Y#c4ca_DDFbojo=5+{Y{3$sK7$<41l9H%gFcOhkwzA!qOZh zx)&{~2r^m)CE3PRvW=E`(y%L><%)B#V`CKMtmadpqbdoA3z5xaNqiHz5Pkt2A6I)$ zuCQ!mWoyI@U%CwMheEUS}SfwdphpG&TpzD=~M#>KPSG8ZdKn#`*(yE>z{ZR#TGC4biy`FQx#fnm{y?x zbAAtv&Lh-CHfEAZ@l|Xby7o(~Z+eAq1kYffvMa1;aE3$7O7stKeUL@S4Ov_fyW?9! z7m)BG0Nkj=f(XZY4(dvC`lGGUjfb;u|0_`p)@phmDX$`26TimKhOqfB^Gg^*;itu! zp7@9?*yG6v!V#;*l2OVP*%SQY%br9Rz8DX#aoigw0m830?)DreBqO#Y(<+V=zafq$ z2T4x6nH;P&?=xr}ca;}(pKQL<9444IWA2n;pD6HI^m{zGZRp^&%Y}U9;r!k}i}w+3 zB0S1hPH=N<<#l|EuXKpX)Bw3HUP+Dhbt6XQT48(% zx0VskA=Gi(4UOVg@benNb%fivp&7FBhT*t*we>NT2a{J(+g`M2wZLZZA+sF-&85K& e48jVNu=qUP6;|C*qAH39S`^kinpfOQfBX;MD-?zR diff --git a/AI/Text2Sql/app.py b/AI/Text2Sql/app.py index a005d23d..b87d0ba2 100644 --- a/AI/Text2Sql/app.py +++ b/AI/Text2Sql/app.py @@ -15,14 +15,10 @@ from Text2Sql.Util.EchartsUtil import generate_chart from Text2Sql.Util.MarkdownToDocxUtil import markdown_to_docx from Text2Sql.Util.SaveToExcel import save_to_excel from Text2Sql.Util.VannaUtil import VannaUtil +from fastapi.middleware.cors import CORSMiddleware # 导入跨域中间件 -# 初始化 FastAPI -app = FastAPI() -app.mount("/static", StaticFiles(directory="static"), name="static") vn = VannaUtil() - - # 初始化 FastAPI 应用 @asynccontextmanager async def lifespan(app: FastAPI): @@ -40,16 +36,26 @@ async def lifespan(app: FastAPI): # 关闭时释放连接池 await app.state.pool.close() - +# 初始化 FastAPI app = FastAPI(lifespan=lifespan) +# 添加跨域支持 +app.add_middleware( + CORSMiddleware, # 直接使用 CORSMiddleware 类 + allow_origins=["*"], # 允许所有来源 + allow_credentials=True, # 允许携带凭证(如 cookies) + allow_methods=["*"], # 允许所有 HTTP 方法 + allow_headers=["*"], # 允许所有 HTTP 头 +) + +# 挂载静态文件目录 +app.mount("/static", StaticFiles(directory="static"), name="static") # 依赖注入连接池 async def get_db(): async with app.state.pool.acquire() as connection: yield connection - @app.post("/questions/get_excel") async def get_excel(question_id: str = Form(...), question_str: str = Form(...), db: asyncpg.Connection = Depends(get_db)): diff --git a/AI/Text2Sql/static/xlsx/65a8f4b0-5f9a-482e-8570-38938a1beaae.xlsx b/AI/Text2Sql/static/xlsx/65a8f4b0-5f9a-482e-8570-38938a1beaae.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..581b741f97bebfd437bc99afe4c3bca5cccb2cb5 GIT binary patch literal 4884 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 literal 0 HcmV?d00001