From 18d60cae93e380666db6a04220f642253effea03 Mon Sep 17 00:00:00 2001 From: jinye_huang Date: Fri, 11 Jul 2025 16:45:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86refer=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prompt_service.cpython-312.pyc | Bin 29356 -> 29964 bytes api/services/prompt_service.py | 12 +++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/api/services/__pycache__/prompt_service.cpython-312.pyc b/api/services/__pycache__/prompt_service.cpython-312.pyc index 9081add8d26650be88995455bf9f81ad07ee0308..a997d0c3941e77b0842ab3aea82dec5bfb410884 100644 GIT binary patch delta 1942 zcmZvbc~BEq9LL|=WOG4+G~tL4NCea%r&LiIMC7W_lU96GgF-p}aP%mG!#vx&7a(UhYf<_6u-R9>m z27nRR0z9@&>9On*&q>$?2&O3(G|&KeLLMoHmrdnaP#uDLvlTMC*UO|gBSduxiYU9c zXPrZ8rx=l4RK38n>hJk5K5X|^dPYJv!vQb56w|w1*dPVKLACtM2V!8S3P3pp@#Emv zgD?;etgs&YMF8TfW#4vQ5vYe@z!vTi4+m_VLuOlu`YMAdMv9zC%2b(Mb{MqtJ)M!| z4DFEZkR5<6QEsaq)`R~Q3-gG@F+OuL)PH42m;aX0&O^4>hTm{OmbK&FPD7W-SX*vk zs%k58ACT{kU53%XkB*L3H%Qcrt)=EVlaWzBU`SXPp;hCIq=Ax1wvhvz?zuR*|KQZ# zgAbaUr#j9}?%y@tv>SaHt@3x9lW)H@`SFFx6MfTXJCoE}KZJDg1{dE_XRLLJSz{?< zs;V_wT|9H?c6K$^bMZ_#Bc0n7w^YKG+Kes%TUyIl%r1eu8PMr zPUoDD7z`SZ%4y5F8xz-4ak`?{JRXzYmUlN;+hyxrdoH&x*O`zum~_4JPA)T+%Q!2l z$8xKkjX5>W8tV)I+h96{CmYNlQwFt`Ofl=I#{j6-QEfTTA1i?>dL|sqQ#nP!zdecN zsb$anNsCTZ+U&0~5U6mpP|QD+-J0zT%NVS@W*#yRmN++Vau({Hn~Izo!yU!u zuN0eSXLzJ^_P!6gZwN&_tGq2He0Y1pGx?w^JUx*=UX;`oS2oC)a>--rwyJ+fSYvm-hhM@AtJ+oODOW*l!+8ko6+ zH@bw*jN^P$9zj^a!PHKgVvnJ&%qEKML_^_nl$>=LTDaLPwGduF?S*Qj%Uj}g47bPj z6I?`WULov6pXV*tTqc1546PR%Ol04mgL1XoDKhiHes2HxZz>R%Dl>=7J7ab;?>xNN72 zeII)+x}L4F8QGPj_!7ZRf&nyW3PF=)f#P$-{Rji`%ahKBZ!) Ld;$pBP@Me>md+^y delta 1383 zcmZ9Le@vT27{~A4w{P3`Eo~WlyOlzrgjR-%U7f%nE3lPJS;&-j8KYxC-Oy?|fLqx_%ZrNVdvr#)(38_quWa7v=e@k&;59%XKta{K$-mjV z*>Ch3SLf>HRKLk;2td1%1reoBji&Y+(9cC>OkqUr)1#iuG&(1uMp2GW5vat$+Sv#t&{*E8 z=Xdo3K@njwnE|Fvi=C+MCI!H5lm|3W5chUP7-WMGzjgxvtU$82bD>R%IU3U&>XoE= zLU|amuPVazg8@aNI0Q97P`7i(xbDHV7=~eRl&%3`xUNd}`YLvI)$74U9(s|}u6N7j z(3?AEi=_xYPMabxFVE7(Sa9IlD2{tM6{}05R~Ap5UOaVtspG`2r@MZ+^4a1?mzF*q zv`EKrb}zc>v_LKT(dj@Jy-KvNgiqH<={O_3hY{0C;$cy$YX}BHVjv{Fk2*{2D(NW6 zJJ5hT1L;biFqGiO(3+3Y0pdJJee|R@u1rByrEXfi!Gq3~I?&s-DGj!vr^eXNb(eHe zd+GQqlZ}%#b3!!NGjH_tX;*&N19M*71d`2Bb^2e+Hrk?F`NIT^S<3)!@W9)=skgGH zGMc?({J^zCUmO~LcJ9f!`Z-TDtLi)6JsWZmUdOeLxC zaEjk)by3vxb_!3Xoebs-#kz`_8I8@A&&+IHRq`346w@T@WXp5uS*5YuO3zxE@?1H% z^Dcz-a-D0Cp?(vPvZ8~D(amB2y;X4&Hpw-6EGjsJCh|?lSCxd$RM|A=$yd5SFpQ#A z)o=uDaTjD=B*G|0?)~p){s{xT}8El z7I+Qa3^+`aM3^F2b?YFb2W}Z=X_^QQj2I_~{`!DWCp1YCDI(3H7Ml?r2|fn5%e}!B z2){w^ycDiHOLF9=la3Q82|gjXOfZfSQ@juiHcMZV`L_hs1epY8g5(6!kw@y=n8ldS zG{gZ8W83bL5Z{gdk%s9^=@uGk4Wlig=im+WYAA>M9&d!Ww^pMIp>1d(WY*WRFm)La Ht`_(Y95Z-5 diff --git a/api/services/prompt_service.py b/api/services/prompt_service.py index 26b1f9c..d514420 100644 --- a/api/services/prompt_service.py +++ b/api/services/prompt_service.py @@ -17,6 +17,7 @@ from typing import Dict, Any, Optional, List, cast from pathlib import Path import mysql.connector from mysql.connector import pooling +import random from core.config import ConfigManager, ResourceConfig from utils.prompts import BasePromptBuilder, PromptTemplate @@ -341,10 +342,15 @@ class PromptService: full_path = self._get_full_path(path_str) if full_path.exists() and full_path.is_file(): - content = full_path.read_text('utf-8') - refer_content += f"--- {full_path.name} ---\n{content}\n\n" + with open(full_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + if lines: + sample_size = max(1, int(len(lines) * ref_item.sampling_rate)) + sampled_lines = random.sample(lines, sample_size) + sampled_content = ''.join(sampled_lines) + refer_content += f"--- {full_path.name} (sampled {ref_item.sampling_rate * 100}%) ---\n{sampled_content}\n\n" except Exception as e: - logger.error(f"读取参考文件失败 {ref_item.path}: {e}") + logger.error(f"读取或采样参考文件失败 {ref_item.path}: {e}") except Exception as e: logger.error(f"获取参考内容失败: {e}")