From 4d95d727b429cf9d8a79ae4465e76ab99871032e Mon Sep 17 00:00:00 2001 From: LiangShiyun Date: Mon, 30 Jun 2025 16:00:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=AF=E5=A2=83/=E7=89=88=E6=9C=AC=E9=80=82?= =?UTF-8?q?=E5=BA=94py39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kv_store_llm_response_cache.json | 11 +++ .../MassageAcupointRAG.cpython-39.pyc | Bin 0 -> 3339 bytes .../custom_rag_processor.cpython-39.pyc | Bin 0 -> 11579 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 330 -> 314 bytes .../lightrag/__pycache__/base.cpython-39.pyc | Bin 21565 -> 21695 bytes .../__pycache__/constants.cpython-39.pyc | Bin 672 -> 656 bytes .../__pycache__/lightrag.cpython-39.pyc | Bin 50276 -> 50233 bytes .../__pycache__/namespace.cpython-39.pyc | Bin 1276 -> 1260 bytes .../__pycache__/operate.cpython-39.pyc | Bin 42368 -> 42352 bytes .../__pycache__/prompt.cpython-39.pyc | Bin 23439 -> 23423 bytes .../lightrag/__pycache__/types.cpython-39.pyc | Bin 1311 -> 1325 bytes .../lightrag/__pycache__/utils.cpython-39.pyc | Bin 44939 -> 44898 bytes .../kg/__pycache__/__init__.cpython-39.pyc | Bin 2460 -> 2497 bytes .../json_doc_status_impl.cpython-39.pyc | Bin 0 -> 6913 bytes .../__pycache__/json_kv_impl.cpython-39.pyc | Bin 7579 -> 7622 bytes .../nano_vector_db_impl.cpython-39.pyc | Bin 0 -> 10450 bytes .../__pycache__/networkx_impl.cpython-39.pyc | Bin 0 -> 12178 bytes .../__pycache__/shared_storage.cpython-39.pyc | Bin 13509 -> 13493 bytes CoreRAG/lightrag/kg/json_doc_status_impl.py | 4 +- CoreRAG/lightrag/kg/nano_vector_db_impl.py | 15 ++-- .../massage_project_1751270415.json | 82 ++++++++++++++++++ .../APF_global_demo.cpython-39.pyc | Bin 0 -> 11000 bytes scripts/__pycache__/planner.cpython-39.pyc | Bin 0 -> 8544 bytes scripts/__pycache__/sorter.cpython-39.pyc | Bin 0 -> 4782 bytes 24 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 CoreRAG/__pycache__/MassageAcupointRAG.cpython-39.pyc create mode 100644 CoreRAG/__pycache__/custom_rag_processor.cpython-39.pyc create mode 100644 CoreRAG/lightrag/kg/__pycache__/json_doc_status_impl.cpython-39.pyc create mode 100644 CoreRAG/lightrag/kg/__pycache__/nano_vector_db_impl.cpython-39.pyc create mode 100644 CoreRAG/lightrag/kg/__pycache__/networkx_impl.cpython-39.pyc create mode 100644 saved_projects/massage_project_1751270415.json create mode 100644 scripts/__pycache__/APF_global_demo.cpython-39.pyc create mode 100644 scripts/__pycache__/planner.cpython-39.pyc create mode 100644 scripts/__pycache__/sorter.cpython-39.pyc diff --git a/CoreRAG/Massage_10216/kv_store_llm_response_cache.json b/CoreRAG/Massage_10216/kv_store_llm_response_cache.json index e631795..cd68b8b 100644 --- a/CoreRAG/Massage_10216/kv_store_llm_response_cache.json +++ b/CoreRAG/Massage_10216/kv_store_llm_response_cache.json @@ -128,5 +128,16 @@ "embedding_max": null, "original_prompt": "我的大腿有些酸痛,请给出一些分布于腿的重点按摩穴位。在回答的最后,将重点穴位罗列为方便python脚本读取的list形式['XX穴','XX穴', ...]" } + }, + "naive": { + "9cd9187dfd3550dc4cc70bc2ca314615": { + "return": "### 针对肩部不适的按摩穴位建议\n\n肩部不适通常是由于肌肉紧张、劳损或血液循环不良引起的。按摩相关穴位可以帮助放松肌肉、缓解疼痛、促进气血流通。以下是一些分布于肩部区域的重点穴位,每个穴位都位于肩部或肩胛骨周围,便于自我按摩。按摩时,建议用拇指或食指以适中的力度(以感到轻微酸胀感为宜)按压或揉按每个穴位2-3分钟,每天重复2-3次。避免用力过猛,以免损伤组织;如果疼痛持续或加重,请及时就医。\n\n#### 重点穴位列表(附位置和按摩方法):\n1. **肩井穴 (Jianjing)** \n - **位置**:在肩部,大椎穴(第七颈椎棘突下)与肩峰(肩部最高点)连线的中点。 \n - **作用**:缓解肩颈酸痛、僵硬,改善肩部血液循环。 \n - **按摩方法**:用拇指垂直按压,或画小圈揉按。\n\n2. **肩髃穴 (Jianyu)** \n - **位置**:在肩部三角肌上,当手臂外展或向前平伸时,肩峰前下方的凹陷处。 \n - **作用**:舒缓肩臂疼痛、肩周炎,减轻运动后的疲劳。 \n - **按摩方法**:用食指指腹按压,配合手臂轻微活动以增强效果。\n\n3. **肩髎穴 (Jianliao)** \n - **位置**:在肩部,肩髃穴后方,当手臂外展时,肩峰后下方的凹陷处。 \n - **作用**:针对肩关节周围疼痛,改善肩部活动受限。 \n - **按摩方法**:用拇指按压,可向肩胛骨方向推揉。\n\n4. **天宗穴 (Tianzong)** \n - **位置**:在肩胛骨冈下窝中央凹陷处,约在肩胛骨中点下方。 \n - **作用**:缓解肩背疼痛、僵硬,尤其适合久坐或伏案工作后的不适。 \n - **按摩方法**:坐姿时,用对侧手的拇指深压,或借助按摩工具滚动。\n\n5. **曲垣穴 (Quyuan)** \n - **位置**:在肩胛骨冈上窝内侧端,约在肩胛骨内侧缘上方。 \n - **作用**:减轻肩胛区酸痛,改善肩部柔韧性。 \n - **按摩方法**:用指尖按压,配合深呼吸以放松。\n\n6. **秉风穴 (Bingfeng)** \n - **位置**:在肩胛骨冈上窝中点,约在肩胛冈上方中央。 \n - **作用**:缓解肩背疲劳和酸痛,促进气血运行。 \n - **按摩方法**:用拇指或肘部轻柔按压,可结合热敷。\n\n7. **巨骨穴 (Jugu)** \n - **位置**:在肩上部,锁骨肩峰端与肩胛冈之间的凹陷处。 \n - **作用**:舒缓肩臂疼痛和紧张,尤其适合肩峰区域的劳损。 \n - **按摩方法**:用食指和中指并拢按压,力度适中。\n\n#### 按摩小贴士:\n- **最佳时间**:工作后或睡前按摩,效果更佳。\n- **增强效果**:按摩前可热敷肩部5分钟(如用热毛巾),以放松肌肉。\n- **注意事项**:孕妇、皮肤损伤或炎症者慎用;如果按摩后不适无改善,建议咨询专业医师。\n\n### 方便Python脚本读取的穴位列表\n以下是上述重点穴位的名称,以Python列表形式呈现,便于您直接复制到脚本中使用(例如用于生成提醒或数据分析):\n```python\n['肩井穴', '肩髃穴', '肩髎穴', '天宗穴', '曲垣穴', '秉风穴', '巨骨穴']\n```\n您可以在Python中直接使用这个列表,例如:\n```python\nshoulder_acupoints = ['肩井穴', '肩髃穴', '肩髎穴', '天宗穴', '曲垣穴', '秉风穴', '巨骨穴']\nprint(\"建议按摩穴位:\", shoulder_acupoints)\n```\n这样就能轻松集成到您的自动化脚本中。希望您的肩部不适早日缓解!", + "cache_type": "query", + "embedding": null, + "embedding_shape": null, + "embedding_min": null, + "embedding_max": null, + "original_prompt": "我昨天工作完肩部有点不舒服,请给出一些分布于肩部的重点按摩穴位。在回答的最后,将重点穴位罗列为方便python脚本读取的list形式['XX穴','XX穴', ...]" + } } } \ No newline at end of file diff --git a/CoreRAG/__pycache__/MassageAcupointRAG.cpython-39.pyc b/CoreRAG/__pycache__/MassageAcupointRAG.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f69b433aa68992d3b37085e14a32e128fac4af69 GIT binary patch literal 3339 zcmbtW>u(g-6`wmZ`|x^q{Q%OU&~_6km~A32RBfbKeSpXVBw{6@E$INA4m;QO!0zn! z&TOeyc7<#cgJkni38-MTc0>xUN=c=N7z5!$KlVSEukk+oiSL!F^mp!f{lb+hbw>Bj zeVlveo^yV`bFP(2B@{f)>!*fpp!F4X);}6L`%%2#p|Ta56%-@SF!g=jHm#AI79#EWf4TQOlIWIs}9FD8v-F=eEf@{VFh?bw83$HrA7%{%P)8C6v6 zHajt)7@b_1?c$x|${fQ=c2vo>FXIeKf0hODBhKKE|G|NG&`!Kx;bQnbOIXFM8l>Jo z%iXt%r?_o9?qJaUCg=HsJLP< zTQO9w*=&Z{s;y1vhR!2A%C(&ekDZR&`iyEv?C69(&Wtw9XpoIzEN-{Sv4k9x@^%8_ z?RHX*x7#T@4Ly@skwTFY1L{u2?toOM-Gx7;?QVM;WIF8a(0@nJ{jTMC)*wHSuarxU zOBR@CLHpT~I0J1>+Yxycr*1veCUp*?c)L-Juo1v+`*FI7|cCy zir(^Y5I0T7b$ruo!$w{jmBOMd&Q!cQ)Bjz4af@}WH8@Pf=fCy6AS$?D5pJH*1}hKg zK)e0}#p_4qE91)dmBWDiA?4=oQ8vP6VaqudjvP}|%;wQz*Nw)m5}`R6@!CbAY1T?9%_H<)O`5itX4Mnh`96cnb()w>@gzaMi-xbvGNQ+vO70Z9;ZoIB z=h&!<8O_#4)H(I2GDsxRE5E{mL}uk#dUPpsn|Sk#Jm>3sahe__hYAUYgpkzUAT#D5K*Ok0gf(3Wz;0`P>RCLMF5@lES>Pjp*!H1*ghQ&o3claBrRoV)iCJ z1kkG`+JkA2ex$JKx3)Oxnk2xHsCY2PuPKd$5RnUMF&+XcK}4Ro4-FsjlM=zS3Qiz; z&Z>x_fCV_NA5umUMQ1f%AJN7cV55hv5q$u#$wn%7u)(Tt>lg1d=cY0UW|{h*K5gFr zr1tQ^2E0h5Bv$47%9P|XYp3nYG_KvPU-+W=VF?wTO3BTzRaH5-=^vxe-5kyr?uPDuVq%yDgTyTT@XZE%lQp|o7h9a-smd1g<;d> z+&1$im(bInjR=YxLV7A{g(mzCMgq zg`h{o^x~+LSdwjLX;yuC3zu$M^nb#x3k=!_I+4KvHXk+a4OM)*bk_X=CR>2pD#f(q z`m>#sqg<=VO*2TClt(KCY9~!V&?xQ4N<5bsRT4d_fha978CW z)z<=n+qtp7S0>4<-e36<{&%o1_cM^z%Nd7{y>&SEW+`7Oa@Y5AbQQ|gu3TN7yj+{Q zzWK6X?%VsleXk43bCn0E>KCqpHMQG!n&+R^XD%)+-daAt(718y+2bkDr}5|ywaLY$ zg>x9MUHGWBFut^S36fZ{JUQJMdsv^kSid?S(&wvlW3`#Ppj6}DH3-ya&eg75!alXn zJ_?0HvBr}dNB~O`nN@c8oao)15id7<@{ z`2oBlFcPb zvb3gttwy%v=9JI{fjiqB#N<`NDIqdcisfOE!?1V}m9cZ>Qr26bdpUl;+K@LtW5;vz zr!2USVu!J-HJ7g-z86h8JT57D?s+94??d5bA?gp8asQJH2mvmQ@G2dG4v6by#a*Y~ dD%6Ac4?~jun6l3b-s8|LiMJDPdM|q0{sSx@p~wIL literal 0 HcmV?d00001 diff --git a/CoreRAG/__pycache__/custom_rag_processor.cpython-39.pyc b/CoreRAG/__pycache__/custom_rag_processor.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bcd780bd8d0466fc4472927b997a3ac77314338a GIT binary patch literal 11579 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 diff --git a/CoreRAG/lightrag/__pycache__/base.cpython-39.pyc b/CoreRAG/lightrag/__pycache__/base.cpython-39.pyc index 057ea67d537cc6b436553c60d6a45318c4da5102..ecc00896abb39acb3c7f6de43d168c6b90b985ff 100644 GIT binary patch delta 4267 zcmZ`+X>1$E73Pp!ilh!o)Io|8C0eo$+Op)>vSds0p;$g*9Tt71Syg2y?n7V+K``#=i ziW^x1Kg_&&*Sz;;=IyV4Ox|82Rf)<nZ8ohOfFy98P2PMD5x&crIv|h z#3tD!hvHT}qDS?LUOsm!TjU9A;s z)jF|GtrzRn2C)Hcz?w($DgiYp2Kl&LX;edEK16J?PpXhArK;!c#CF0a`K0R4+oWo_ ze$^p1$qiD?DiNFI8d&j5wXjmVY6nV~Q|hF8pw!ErRR_>oIITen04*T50M!Z9R!$8{ zjX-VOphh?~l$V--+_XX724<;$m=!sFd1!w5kErPw1uUe} z3w=j3R0d+7l3G~I(!@gFTtbt3mzHUOPssX%qH*wqDPPfxesvUMhk1}6pnBDiiPioow)sq(<0;YRzP0r3>Z5ZXM zoK3{%Q?epyQxv1aQ$vT4t#@{TQq9ckNhd#4}^6FOIk&Iu7z{cEc$pvI#oLVvSw;bAFLD zqoOstX=4U$Y|_l`*B&7z??T=AQr=Hlc=g-$H;I|UxMc~ZMgw~<(7kl(71@C4EG0EPonP9Mc7FDagzS)4wOkU+p9qA7%n2*s%K5l>nS7Ouii+YW%W z<|lr;-EO-d6j((#Kw|u$jfQ_vUyCZvAn>A^!%-5p(aj<)elzGY(u!8Nfq6F3(p`=r zqMtxm;3BWK)R`jIjU!8n{iP*ZbpeJ^D3(j|vR24Oe`|n;Hd?3^6}dOrV+*YVWQ85@ zH@UFXsK{;ox%I;q&h$wOJ5DiT|6zY>3+exjyj7^3t$e!3{?OK0hlhxE13-}oc&VD6 zb?Lj>-S(2KFCph<*J2$L6I&&eC$E^OG|KTb@|4k1HC!PNtHSPdbPz@Nb>1QoOKQ+T zh+J739E@+2a-jPcB_3u=RkyPbx-XDPeKZ;&+tALM!#t2rA>U;y^Rqkp;km->zqjL- zS;ILi&l@`@Kq2WlZYqox6n+Nzp0+YC?iy3ItQmCCLj^E|r|w7YlE>*_9CY_8j}&zII5?-F+h2{aMuQGTnL()pFg%G<^wa zo45Yd;B?Ob5LcQ^W!N4S1KJZ=4}-9jNKuG^{?XtR8GHsLqGhI;ucAscV>pqAZWuG1 zvb0dTm&*rY)!Yt$vdmrS?;bcsc6|;tZi?ropa`f&EAe`I_(J$J+Qqv8ijfE1!!uQQ zkVsFr{^9W5(sJeJgrVH#5d81pNW;d-Fg$22ZfeoT4;{02BJcXMxxq(Yw5ZW<9JyO4 zTkGl3Z$5mxv;x0r5oWKA9U@oY40h@MV=tBRUa|82_V@@imgK~14`^I|bK*$(eh|9z zPY3L@j#ZxQhF2Gw0DbmksB}9oqwen^eBWy2l0JRS5I1k5Y_0>YOOzJl-q!c`U!44bh+8M zmQ&RPv`#_x`^i>d`(UyoUudyY>Fj!oU6EYOr7vmmWG0u+(u1f$kSWbjirpJMh6Fb@ zZdgK5@5j7DCf<4f6h}Wp;EjL_M?Xg>dfn#5Irn{yv8fKS22c2pTwg>gRzNp<{&e&K zRq)Q~<7L-?aiwL91*apf*HH*B#BMe}y|d))k delta 4175 zcmZ`+>vI#=759}TS(f~ejgW0wFJmwk7Jg7;gK-R$VC-N!*bv$-redvKjKZ#D?yf@Z zrgefzATv#3=a!^NfGO=Tt!HRUt7+4jPMc2Kf1sUyXm|RU>4cfmmXG;R@`0XnSGK%c zV~u}v@44sv?z!ij``C|H$uGZ8YQ*YlZyEfpelUEYerlyAOr}>lB8#Lxf-8f700)k*a* zRKMf^NfVcBkpdtI$mL7rAPaHXRw)Rwpd13J6Qs>t+8{N8v~gV;=F%o91k%vDGy=0U zOJR_O<)|RLmz+Y3D@LR!2%~)JIG4nvI7s4hxHwGAWgub#3}`j$WL8u)Ol{+S?Dl@$R&enZ2M>akkW$5jDAUZk}!dmPYv3JOEze;Xf`l z$f-2QEPt+oQT|^-g6xm3HWFZ;xjrTe`-OYETghnp8Hqh`4=nn5Thr;;_{;H$Tvj&9 zGm^FtUR%eR&d$zcJU8>AoYvP>ylPI8mDKrsHvQNOwri$7TwZF9=F~Yo5uzdRhBhOF z0gQ@N3YMHo(N+{i5Oypgwju09Xh#SD7>=A~xMyWu&b~wwDBXq7fsjPN02oemo_1ru z2jO!FdlC8(_8|-)tmnaO#ZcA)u#I(jdPoZsJ=g1l&^IcxqAF{1Vp@J&BeBmsLL-{4 z62qy<%J~gEF{V~(TRHC$WGl@OW1m*O_mq)4-s40nJn}9(pQ7+iZPz(#*vvp3#W{u% zoCwb$j3Jcf-m+08E1h4pe{`pBg9GZ5Zn{BU;u?Ae6Va9zsFblyw{5AZ0vHL{aEs@vCrlP8??StNP^ zf#-}Xl|1Cmy}(Y?@7(pcNm{2bwfIEz7}&2m45uXOA{{NS&BVhL|!j}>7)Sy@`bQYl$SKi_&8)yBI9x@KQB*I>g zd}nJdDo!Bq!bxH491n>ctv7=^W98yBX|@t=_hCTjDFlg|{3jYPP3+4<{t)CW`g&B5IcWjO^F6HiGg{1>?+2s{xvD@`dI z8TM@34w7Ll{z&0k+jmLamJW0fqE(Rv2UF|CO4~oOczMZ6A7e)or^#sHW+F~naIV#I zbF=BFm$xhbbyqK3C|Jz{9ltiKliGD^lVdf2mq9V%GK07XZNp7vEwAVlBX2lS-BPqw zz2k5-2)zTO^D8z}`U(h4JGUgyQrT+xo4u2fO_#Y4;(qF^yRQ{eajH)s-Csp+x9QgF zNXxlPNx6!$jf?(U|B2)t5H2*EWY$n7<7)wM&50R`s~7f7kp8cMMWVu-<~mZo0$?~% zhpta%IAv+px|YB1pY-#2_{C$cs&HuFIkNlf$haY%8-n6O8qMPMM+Z(vj^n&|0zm2U zpjYx7nb!)NPPP}O1|M0AlkbXUwA&bhb3=o{^?hJe;%uoR3*3K&KMzG6ZK%I?0j}%P zcWhLJ$l*uDa<%W5LhQ(&to3)pX3Vx69U^b>dv4+A4Xf^3cHNF+gJgvL{`q#ceC+B| z9vg{~L%v=xeE83DSh1h!BkfQow?+=44dEKXn+R_stROIiZz8;l@E*dq5JI;QOX=b*e&5Wo ze;q$b=HS{2us5c<*_E;3u;4x~W)xYPNOFly7eEIeBEl$KXj5nf9H)-w?!x7p;xjzw=KtFOJ4tI`+p*^62# zoy%u+x*u&_GNn06cOw~oFBl$G)XxmH80{U$~I_YH^)Ai9C*fdTOPm>UPeF0)=#)1Ldlr7c-HT;GgD3E zelhD;{B|zZd~#3eyUe8Eh6P}p+9b;;PqZ4|6nyXKc`CyP3~0gIN}Nek*f^$ZaF%8B zD&-*_#9_CT;~y_>?D#N=X+_jDIHxMg;65;u<<{rtGTB*Li8NSU)Q3=oPz_+X@_I(m zC|>b~3zWeeANBl`kH)cupE2|x!Z<<(VGe=UXp>gQypXOt8rrt42GX3_-!4q6uS delta 90 zcmbQhx`358k(ZZ?0SH#ka?8lx$g9p||J4o1O}2_DElw>ej;YElPtA-;$xklLP0cGQ jjw#PC%8q$DVdBg7{--_DVsbLmGfIjQ(-Dlx$xONcRFWaf diff --git a/CoreRAG/lightrag/__pycache__/lightrag.cpython-39.pyc b/CoreRAG/lightrag/__pycache__/lightrag.cpython-39.pyc index a186db6a4f5810e7c26f86bb2e2f21070da1e43d..d297232fe038ab13cc2b873f477ede894c4e4f98 100644 GIT binary patch delta 9465 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 delta 9504 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 diff --git a/CoreRAG/lightrag/__pycache__/namespace.cpython-39.pyc b/CoreRAG/lightrag/__pycache__/namespace.cpython-39.pyc index c7427ed28ddd17db98bb8f0c05c4b52a02d97249..a7b909485ae44b739f3495a28f2bb9402222fd0f 100644 GIT binary patch delta 76 zcmeyv`G%7(k(ZZ?0SL0qk}|$CZRB%d(*I?tpOK%Ns-IPymZTr#=pOGF;1*wylbDy6 dnU}8boL`g*6x7ejOwTAON=(<^Jdr7z2>^~n81Dc8 delta 92 zcmaFE`G=D)k(ZZ?0SH#ka?226-pJ>|WdGF-$WOM4DJ@PdDvqhjEKkjhNy$$x%}vcK lDUK=6FUpR2I$`3=_Wq|m(_(Tm(=$qn64Mck&5caiOaQOSBGLc= diff --git a/CoreRAG/lightrag/__pycache__/operate.cpython-39.pyc b/CoreRAG/lightrag/__pycache__/operate.cpython-39.pyc index c17b75d6439e0dafb49c69d8c9e170b6596f4d8d..7a785ba9625892a9a4e33df8ad89eaffa1989359 100644 GIT binary patch delta 4597 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 delta 4598 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 delta 109 zcmeyrjj?|_BVQsfFBbz4teoYRu{>rY-yufEsLdA{RU$q3fTBep;;S=|NVbY8Elw>e zj;YElPtA-;$xklLP0cGQjw#PC%8q$DVdBg7{--_DVsbLmGfIjQ(-Dlxy3s)Zz3V6Y diff --git a/CoreRAG/lightrag/__pycache__/types.cpython-39.pyc b/CoreRAG/lightrag/__pycache__/types.cpython-39.pyc index 77f4d9e4c8ad4deac5cedc9473262ecd7f6da50d..f08c356182a4dc33d2be7d4c8b08513633fb3b92 100644 GIT binary patch delta 545 zcmZ`#%Syvg5bbT!vqL--xfF@vrS~$x`Z^<)h8FID~RfY25DyC}yZT7F-I+XE=kAE!exFzan`64u7{SRRa zuq5txRL~jrXF5U=A%jpt*hKib(<0+j7od=b_?}uL8eyol%X;)A9+dGc{62gahTVDn Rk6H97=IMrzOXZ{-{Q{a0zcqs#_i*`%6T-b+R+x2YPthNr^Mj-5VlkeO8i}3mMynl9O zGp|+;xKsNHf{yQsS--;-ut~!fGC(IP;Y##QYFn7=D$Ln)nRp$bUNzVe0iP+tY`b0E z=S|<`f#-?}SD`W<=@$ktmjz^C3+#c`V4el@LexucC>E9sMsreWatOm=z&~cW=tvqN zx%m2{v_{yaT!c57kmolwypI3D4MZM+efb!ofcSp4&nO;m6b`WVYrG7}5RSP@$%yXd Yg>f98=Mb3vV-XptylP2S%2F)#10(WvHUIzs diff --git a/CoreRAG/lightrag/__pycache__/utils.cpython-39.pyc b/CoreRAG/lightrag/__pycache__/utils.cpython-39.pyc index 992141f111acb60a485e889b9de95dcd8bf9468b..bfc514b6efd9ed80ec8e5c925de8df8462d403c7 100644 GIT binary patch delta 9321 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 OFcbc60*R+Dzwy5@KsiDH delta 9455 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 E0X3G88~^|S delta 649 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 literal 0 HcmV?d00001 diff --git a/CoreRAG/lightrag/kg/__pycache__/json_kv_impl.cpython-39.pyc b/CoreRAG/lightrag/kg/__pycache__/json_kv_impl.cpython-39.pyc index 218631d98ace12fefc7e486a535177b32984eb0b..3b40dc6c6bb915bd115e2539559c0eacc6ca8063 100644 GIT binary patch delta 1752 zcmZXU&u<$=6vub=x4r%mCysxlPU6%Ji7CZ2DG5^gBR@(jpiO9#O6{UxZ9Efu$*yh9 zZYnAv<&gXX(Q=~_2QKvNBb<@oh*}9&;)>M20I3{c-fUtgV9B3-GxOe?@4k6E-z@#K zl(Le^xWImU3p=f^#*b4a^!4%O=>u0aRaY}LS2uMxX2y_!Wvn=H*Dwukt4_jAnn^ch zrrfldW^)?Wogp`4X53+O*c~xP+^m^(N6k?;XXf0znMVRqhXEA3~YvTL_3CzNm74L_9c*`6ONkJ@&p9ZH+T ze=V}e<5zzoJ@^r=PREH#G@|c{MFA_E#&Z!TaPmkt4U!;QQ6Pz6Qp^{VB*jOZIK#Y# z@d)!u2OHw#gQ3V5D>%hg^0>fOGPq3Qr}L1T4C5kO9m5xn6mx{{tnoe7=LnbZIE%^R z2|Rfun4`fD;$JuNOzR7QUSy9qw`#49OKM+uyF0aqD|hQFpWdl=9jo28+s)cqhY~hf zbL?izr&hDJ*R1vak!D2$VtE2u3FcIPeh9{sfMGxhPzGcGqkuGE0$>2fgWuIk`E4*0 z454hdcRREQrrIQa*Tz+uP6Z`x_UvZ84ec>P)4})p>f~DxI|H~3I3o#$SAtmVBlK>t z8LJ#{VP!TODo-tEpM+Y=@+{w{k)A5}bII?4brmoN7^qV)+1YP$dGs1AB?04rEJIbI zQ|!U|hP6!{vlgN6!&;u2l;Q>Aac8v$8^$7947L-6;9Fzs3cMuC z&ch%glvr`9VidN_CeFo{6W7t=ciRbcv0n`q{0_vSy%0S;=X{Xdn&s!Q0_%$H6W3#z z!J94vZUT6sO7M5`K?y{hZoSrD<6f1Zm0Ih|R)U{XPv*FEIg+k}JKyY+GfBWcCuu9a zGDyfq15ekc>q86 zsuI-`UdlAA_Om)B4)F;NRorRRZT6(Z+jso4DT9gZZM4{HWS7O6hb%CRefVXAbbWRu zoT}LTuZmxCyAtckt7BV_2U?VdLo7N_LvKJBd=zvZ0N+H^bX#COVF)G9rzg9Fh@6x4 z$Joo6Y38%ePJYnTJm=s*Pfqo>3kxV0q)XEWmmu{5fP3cSXnL`1-YEe<|p#G zG456^(qiyyY36`(Wn2K)0|G*M$MOh`gQ@KMw&O)t3@;&ksA0-$S(MA;&&Fb5C52>>k7pEUo|Uis9$$Gc;6v65p(e%i;fbgEGDF^a>)>pi2emeSXgBM delta 1639 zcmZux%WoS+7~fg%t{-c!AKBK=*iM^}n6?4hDut#!ByCbEk+g`Ygq5Yr@l2d0yS6pn z^uZ-aiNu9hG!loB3o4hM{XZaa;83XtwBlMsPH;gS5QzC^8{4h0r@ET30(d*S@KeW((=xgex-EKHcM!zD79ihbujf6>LQ_f3RU6inXDC0Oz>?>A` z=p>w%h|X@y*?gQN#7-bibFT~@<6Z{)RIaQf17ECSgIlsV$1N#bJw9EONE+w4rGSh3 zs+A$Y85W${A;Kj*&i%)58CUit%VdAZf30MoauOZqk3Zkz(7asV=@Htie`4P!b{%(` zJ1%K^z54wQ-L60X`rzoZubzMYP2I6uTOMt+hKuc1y+5hU$U5W_32B*qsCgH3*cSj2 z09k+{KpY?i02fH}02)A!{i~g>PQfzF!B_0|W`~-v)LO*r+PJ3B5?ct*jFR=e@H#?O z_ETiBG6Aut0A2$akp$ZrHXFT(YV1Muv?hcV*>_R%Vv3q7T#23e|tbtW>w?;5(qh_zdEo9uQL0>xF+cDofondA=?l2h!bd~$8@>?DD ztjIaMEK!0o`=>aEPOyumsoe^sehWZ&iVnO3+YrDz09QEpieq!?>#$!2xB+kzK-56l z=yV)<8}{n}9{~*O9nivAnnRBNdjOFT`=u1gmXxZVQ>qCwTgaX)2$$LkYO=pe)4NvU zc)HAPH25%5d6;hu&UQT8=>>yA6b`;V-{@^MD8YAoUWZR55=;~^dBl_vlLwkZe4)Y6 X0a^d2mpvZO##3@UWU7<8jAZm5_+muK diff --git a/CoreRAG/lightrag/kg/__pycache__/nano_vector_db_impl.cpython-39.pyc b/CoreRAG/lightrag/kg/__pycache__/nano_vector_db_impl.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..035209d32f1f75f0e06cacc1efe113bd2cd2cd07 GIT binary patch literal 10450 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 literal 0 HcmV?d00001 diff --git a/CoreRAG/lightrag/kg/__pycache__/networkx_impl.cpython-39.pyc b/CoreRAG/lightrag/kg/__pycache__/networkx_impl.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c36d59877b2f91e3f85530ec74cd4160e49b763d GIT binary patch literal 12178 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 C#Ry~o literal 0 HcmV?d00001 diff --git a/CoreRAG/lightrag/kg/__pycache__/shared_storage.cpython-39.pyc b/CoreRAG/lightrag/kg/__pycache__/shared_storage.cpython-39.pyc index 5830a488fa7cc2a49a17c888f706db2759dd422d..c1afa989b268ef6e24779a28b6e9d42f9edb727d 100644 GIT binary patch delta 79 zcmX?_xiyn7k(ZZ?0SL0qk}`b5H}a*k82xh8&&bbB)z2zUOVST=bdProaEmX None: + async def upsert(self, data: Dict[str, Dict[str, Any]]) -> None: """ Importance notes: 1. Changes will be persisted to disk during the next index_done_callback @@ -122,8 +121,8 @@ class NanoVectorDBStorage(BaseVectorStorage): ) async def query( - self, query: str, top_k: int, ids: list[str] | None = None - ) -> list[dict[str, Any]]: + self, query: str, top_k: int, ids: Union[List[str],None]= None + ) -> List[Dict[str, Any]]: # Execute embedding outside of lock to avoid improve cocurrent embedding = await self.embedding_func( [query], _priority=5 @@ -259,7 +258,7 @@ class NanoVectorDBStorage(BaseVectorStorage): return True # Return success - async def get_by_id(self, id: str) -> dict[str, Any] | None: + async def get_by_id(self, id: str) -> Union[Dict[str, Any],None]: """Get vector data by its ID Args: @@ -279,7 +278,7 @@ class NanoVectorDBStorage(BaseVectorStorage): } return None - async def get_by_ids(self, ids: list[str]) -> list[dict[str, Any]]: + async def get_by_ids(self, ids: List[str]) -> List[Dict[str, Any]]: """Get multiple vector data by their IDs Args: @@ -302,7 +301,7 @@ class NanoVectorDBStorage(BaseVectorStorage): for dp in results ] - async def drop(self) -> dict[str, str]: + async def drop(self) -> Dict[str, str]: """Drop all vector data from storage and clean up resources This method will: diff --git a/saved_projects/massage_project_1751270415.json b/saved_projects/massage_project_1751270415.json new file mode 100644 index 0000000..bfedd43 --- /dev/null +++ b/saved_projects/massage_project_1751270415.json @@ -0,0 +1,82 @@ +{ + "shoulder-thermotherapy-1751270415": { + "body_part": "shoulder", + "can_delete": true, + "choose_task": "thermotherapy", + "introduction": "shoulder-AI诊断理疗方案", + "task_plan": [ + { + "start_point": "秉风左", + "end_point": "附分左", + "time": null, + "path": "line" + }, + { + "start_point": "附分左", + "end_point": "魄户左", + "time": null, + "path": "line" + }, + { + "start_point": "魄户左", + "end_point": "天宗左", + "time": null, + "path": "line" + }, + { + "start_point": "天宗左", + "end_point": "魄户左", + "time": null, + "path": "line" + }, + { + "start_point": "魄户左", + "end_point": "附分左", + "time": null, + "path": "line" + }, + { + "start_point": "附分左", + "end_point": "曲垣左", + "time": null, + "path": "line" + }, + { + "start_point": "秉风右", + "end_point": "附分右", + "time": null, + "path": "line" + }, + { + "start_point": "附分右", + "end_point": "魄户右", + "time": null, + "path": "line" + }, + { + "start_point": "魄户右", + "end_point": "天宗右", + "time": null, + "path": "line" + }, + { + "start_point": "天宗右", + "end_point": "魄户右", + "time": null, + "path": "line" + }, + { + "start_point": "魄户右", + "end_point": "附分右", + "time": null, + "path": "line" + }, + { + "start_point": "附分右", + "end_point": "曲垣右", + "time": null, + "path": "line" + } + ] + } +} \ No newline at end of file diff --git a/scripts/__pycache__/APF_global_demo.cpython-39.pyc b/scripts/__pycache__/APF_global_demo.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a947dfa3228e3ad9243ab2b131b78d11b99e1848 GIT binary patch literal 11000 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 ZfT=EQ0`PiJc~IF#aR3v#8h453e*uiD-(CO! literal 0 HcmV?d00001 diff --git a/scripts/__pycache__/sorter.cpython-39.pyc b/scripts/__pycache__/sorter.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43bd73a3b8f9a6a51f530e160e62401ba3c1f01a GIT binary patch literal 4782 zcmbstYjfOIRacK)?Rvejou>l@Q^GWxHntm@(sVqAK-w_S@i2rbgA$KM-YeT{?@F61 zscnpwDPA{mm^hwNXh;aDon}bQKw4^;rh%mYLtpE)*Pr>uC(gN&cICuOcxXpg_niAU z?{m*xqq8$Bz%%{)*yM}dg77&4$wvamp54bxzjO zAtr&(&@A9p+5t2>gOp=4*JR!kuxa1sg@ujTPd8TnvUY!A{nEwtw^!CL|FSWErE&Fx zzCa!`iqp{A?qm^pi5~?zD!ku;*ZBoBF33Yg)XIXixW6X3WJ&a;Wm1!W44RbTSC@!j zbv-LM{euGGzn?(s%f6sXpe5xdfu0=d3wnwV@RalHK#Stoie3_A%CyKT;UYZy%ieA+&S*~6&U4t5~(Ld$bRzTQ{;<@98UjV(Urd70Q z$(krgOa?&$)tR)tGBsJCyl#L^3Q{1K&2cwSSZQL?WhlD$6=*_bfz~$e-&wo6(766V zWAVcf*|>DC@!oshA)Iyn59^mMH11rBMqt(_zh8TB`|~${-dJ3P&ieejYjFjp@FgIagRa2#X8)SVJFIV#AsrUcnnjk0IH z#F)*3TykbX31r7CkFzddll4Fo$m6B5sj0EHRs^;i(EmISVlA_qx|Wcg1ORrspn%#LVH zJij0YUCeZT|ec3)}v~<;QApuxgx?;G+Nz>7Co>e;QnL4uP zJj`E@{sVsS$ z-2}sOj0~6~VV(d}6IbjNk}YIE=>i!iJOk!xk}pBl5bGisU79B}Qy1Aa*hi*W*k_h@ z&>XmijIL3Wt$lo?6GpDld~(DU>5l7!@7qPY=W-W?3j)ySfjMflTH%hEY@K@^bKL&aSN8{SzjP z&u+ws#;tcFL+_>?63~gSWYs{aIp~kJ->%aSZ z48azgS1>WfM35?Er>#^&M1tz#YLaRMMN}gwqS~6tsm5a=)x}kYdlve_%|5%*xN|FJ ztU3Em#28L#*6VA3dnX=SpIdCsFT~L1Z&o+%eH=s0`VCl$5UO$gqhGE6^%H<%fk67^ z>{1f((c)GFD4=S ze2N?3c5C4Nby85 zEy>HU4di7D$YD6-w8Z0x@u%z@Cno~vQOR?&%%M!PP!{1`vOc1$n*+fUxZ%bsK^fCkzcec z)#0z>$d{m*c_~V~_}T89&~-T1A>VH|*4~e2pZ|<^AGqJ1clH!8R3PkYTi9k;34H@m z$ZsLdz6>8ta=fu1WmKW&p=<|W0(sgz=kR(YNWqZXHqph-|iXgd(87Y&P+p!hQ#P$!z9AcpL5)#5>>^*pK}ZCUtne@`EVHn@;<1v4&b%-M(E@iH z(uOk<2{(7#$?nZL0vzR3Gff zt+Ou-;5uA6kiF?dAcI*@kWGyGwklRguu~6tNRn!^&TV!Q*PzY*2NvW+F2S0(O`AQ} z0$XPI?zWVWada^*EEc1Xr64t;{-Yk$T^+)>cuH82MnXAp4W|X+HHiJK)B<&=Y*fam zG5kFoL`Vr)W7vUSE znfaQ@9J7!LuSMuRP)55fNKYCLRLv|5;y%C^vh9*OOi;Zo3qPE2wZug(9E0SQ#e1bb z!ECRpb@1C|1a!9t!X2sBlNgV2nW`Igx&A?hqrg_k6dF3nqn_JYA0>4TLLtIo=BG36y$-e-m4OE)| literal 0 HcmV?d00001