Files
rag_agent/RAG-TEST-TOOLS/__pycache__/main.cpython-313.pyc

219 lines
48 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<00><><EFBFBD>i<EFBFBD><69><00><00><><00>SSKrSSKrSSKrSSKrSSKrSSKJr SSKrSSKr SSK
J r SSK J r SSKJr SSKJr SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$ \r%\r&\r'\r(\r)\r*\r+\r,\r-\r.\R^"\R`S\Rb"S 5\Rd"5/S
9 \Rf"\45r5S r6S r7S r8Sr9Sr:Sr;Sr<Sr=Sr>Sr?Sr@SrASrB\4S:Xa \B"5 gg!\Ca \D"S5 g\Ea=rF\D"S\F35 SSKGrG\GR<47>"5 \5R<35>S\F3SS9 SrFCFgSrFCFff=f)<1E>N)<01>Path)<01>build_rag_database_interactive)<01>FeatureRetriever)<01>run_static_analysis)<01>run_issue_filtering)<12> QWEN_API_KEY<45> QWEN_API_URL<52> PROJECT_ROOT<4F>VECTOR_DB_PATH<54> METADATA_PATH<54>GRAPH_DATA_PATH<54>KNOWLEDGE_GRAPH_PATH<54>Default_PROJECT_ROOT<4F>Default_VECTOR_DB_PATH<54>Default_METADATA_PATH<54>Default_GRAPH_DATA_PATH<54>Default_KNOWLEDGE_GRAPH_PATH<54>MAX_CODE_LENGTH<54>CPP_EXTENSIONS<4E> IGNORE_DIRS<52>TOP_K<5F>MAX_HOPS<50>MIN_SIMILARITY_THRESHOLDz)%(asctime)s - %(levelname)s - %(message)szsatellite_rag_system.log)<03>level<65>format<61>handlerszuser_runtime_config.jsonc<00>:<00>[RR[5(a0[ [SSS9n[
R "U5sSSS5 $0$!,(df  0$=f![a#n[RSU35 SnA0$SnAff=f)u$加载用户运行时保存的配置<E9858D>r<>utf-8<><01>encodingNu#加载运行时配置文件失败: )
<EFBFBD>os<6F>path<74>exists<74>RUNTIME_CONFIG_FILE<4C>open<65>json<6F>load<61> Exception<6F>logger<65>warning)<02>f<>es <20> .\main.py<70>load_runtime_configr/7s<><00><00> <09>w<EFBFBD>w<EFBFBD>~<7E>~<7E>)<29>*<2A>*<2A> F<01><15>)<29>3<EFBFBD><17>A<>Q<EFBFBD><1B>y<EFBFBD>y<EFBFBD><11>|<7C>B<01>A<> <0E>I<EFBFBD> B<01>A<> <0E>I<EFBFBD><49><19> F<01> <12>N<EFBFBD>N<EFBFBD>@<40><11><03>D<> E<> E<> <0A>I<EFBFBD><49> F<01>s4<00>A-<00>A<03> A-<00>
A*<07>%A-<00>*A-<00>-
B<03>7B<03>Bc<00><00>[[SSS9n[R"XSSS9 SSS5 [R S[35 g !,(df  N+=f![ a"n[RS
U35 SnAgSnAff=f) u保存用户运行时配置<E9858D>wrr <00>F<><02>indent<6E> ensure_asciiNu运行时配置已保存至: Tu保存运行时配置失败: )r&r%r'<00>dumpr*<00>infor)<00>error)<03>configr,r-s r.<00>save_runtime_configr:Asu<00><00><15> <11>%<25>s<EFBFBD>W<EFBFBD> =<3D><11> <10>I<EFBFBD>I<EFBFBD>f<EFBFBD><01><05> ><3E>><3E><0E> <0B> <0B>3<>4G<34>3H<33>I<>J<><13>><3E> =<3D><> <15><15><0E> <0C> <0C>4<>Q<EFBFBD>C<EFBFBD>8<>9<><14><><15>s-<00>A<00>A <03>$A<00>
A<07>A<00>
B
<03>(B<03>B
c<00><><00>U(aG[U5R5(a)[U5R5nXTU'[U5nO<>X;aX@(aX@n[U5nO<>U(a*[U5R5(a [U5nOo[U5nUR5(dOUS:waI[ SS[
[ U5nUR5(aXv- nO[R"5U- n[U5R5(d%SSSSS.nX;a[X<>5nO [S5nUR5$! Us$=f)u<>
统一的路径解析函数
优先级: 1.用户本次输入 > 2.已保存的运行时配置 > 3.config.py中的主路径变量 > 4.config.py中的Default_*后备路径
r
<00><00>satellite_rag.faiss<73>satellite_rag_metadata.jsonzcode_knowledge_graph.json<6F>.)r r r r
)
<EFBFBD>str<74>stripr<00> is_absolute<74>get_final_path<74>USER_PROJECT_ROOT<4F>INTERNAL_DEFAULT_PROJECT_ROOTr$<00>cwd<77>resolve) <09>
config_key<EFBFBD>
user_input<EFBFBD>config_user_path<74>internal_default_path<74>runtime_config<69>final_path_str<74>
final_path<EFBFBD> project_root<6F>default_filenamess r.rCrCMsL<00><00> <12>c<EFBFBD>*<2A>o<EFBFBD>+<2B>+<2B>-<2D>-<2D><1C>Z<EFBFBD><1F>.<2E>.<2E>0<><0E>%3<>z<EFBFBD>"<22><19>.<2E>)<29>
<EFBFBD> <13> %<25>.<2E>*D<>'<27>3<><0E><19>.<2E>)<29>
<EFBFBD> <19>c<EFBFBD>"2<>3<>9<>9<>;<3B>;<3B><19>*<2A>+<2B>
<EFBFBD><1A>/<2F>0<>
<EFBFBD><19>%<25>%<25>'<27>'<27>J<EFBFBD>.<2E>,H<>)<29><1E><02>$5<>-<2D>~<7E><0E>L<EFBFBD>
<1C>"<22>"<22>$<24>$<24>)<29>6<>
<EFBFBD>"<22>X<EFBFBD>X<EFBFBD>Z<EFBFBD>*<2A>4<>
<EFBFBD> <0F>z<EFBFBD>?<3F> <20> <20> "<22> "<22>4<>:<3A>:<3A><1F> 
<EFBFBD><19> <16> *<2A><1D>/<2F>;<3B><<3C>J<EFBFBD><1D>c<EFBFBD><19>J<EFBFBD><1A><19>!<21>!<21>#<23>#<23><><1A><19><19>s <00>E!<00>!E'c<00><><00>[RRU5nU(aQ[RRU5(d-[R"USS9 [
R SU35 U$)u!确保文件所在的目录存在T)<01>exist_oku创建目录: )r"r#<00>dirnamer$<00>makedirsr*r7)<02> file_path<74> directorys r.<00>ensure_directory_existsrW<00>sP<00><00><12><07><07><0F><0F> <09>*<2A>I<EFBFBD><10><12><17><17><1E><1E> <09>2<>2<>
<EFBFBD> <0B> <0B>I<EFBFBD><04>-<2D><0E> <0B> <0B>n<EFBFBD>Y<EFBFBD>K<EFBFBD>0<>1<> <14><14>c<00><><00>[S5 [S5 [S5 [(a
[S:Xa<>[S5 [[(a S[SSS3OS5 [S [35 [S
5R 5R 5nUS :wa![S 5 [ R"S 5 g[S[SSS35 [S[35 g)u检查API Key配置<E9858D><============================================================zsk-your-api-key-hereu+⚠ 警告: API Key未配置或为默认值u当前API Key: N<><00>...u空z API URL: u是否继续? (y/n): <20>yu1请先配置 config.py 中的 QWEN_API_KEY 字段<E5AD97>u✓ API Key已配置: u ✓ API URL: T)<08>printrr <00>inputrA<00>lower<65>sys<79>exit)<01>responses r.<00> check_api_keyre<00>s<><00><00> <09>(<28>O<EFBFBD> <09>
<1F> <20> <09>(<28>O<EFBFBD> <17><<3C><<3C>+A<>A<> <0A>;<3B><<3C> <0A>,<2C>,<2C><0F> <0C>S<EFBFBD>b<EFBFBD> 1<>2<>#<23>6<>E<EFBFBD>R<> <0A> <09>,<2C><1E>(<28>)<29><18>0<>1<>7<>7<>9<>?<3F>?<3F>A<><08> <13>s<EFBFBD>?<3F> <11>E<> F<> <0F>H<EFBFBD>H<EFBFBD>Q<EFBFBD>K<EFBFBD>
<10> <0E>&<26>|<7C>C<EFBFBD>R<EFBFBD>'8<>&9<><13>=<3D>><3E> <0A> <0A>l<EFBFBD>^<5E>,<2C>-<2D> rXc<00><00>[S5 [SS[[U5n[SS[[
U5nX/n/n/nUHKn[ RRU5(aURU5 M:URU5 MM U(a/[S[U5S35 UHn[SU35 M U(a/[S[U5S35 UHn[SU35 M [U5S :HXEX4$)
u检查知识库是否已建设<E5BBBA>
检查知识库文件...r r<r u ✓ 找到 u 个知识库文件:<3A> - u ⚠ 缺失 r) r_rC<00>USER_VECTOR_DB_PATH<54>INTERNAL_DEFAULT_VECTOR_DB_PATH<54>USER_METADATA_PATH<54>INTERNAL_DEFAULT_METADATA_PATHr"r#r$<00>append<6E>len)rL<00>vector_db_path<74> metadata_path<74>required_files<65>existing_files<65> missing_filesrU<00>files r.<00>check_knowledge_base_existsru<00>s <00><00> <09>
&<26>'<27>$<24><18>"<22>1<>'<27><1E><06>N<EFBFBD>#<23><17><12>/<2F>&<26><0E><06>M<EFBFBD>
%<25>4<>N<EFBFBD><17>N<EFBFBD><16>M<EFBFBD>#<23> <09> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>)<29> $<24> $<24> <1A> !<21> !<21>)<29> ,<2C> <19> <20> <20><19> +<2B> $<24> <16> <0A> <0B>C<EFBFBD><0E>/<2F>0<>0D<30>E<>F<>"<22>D<EFBFBD> <11>D<EFBFBD><14><06>-<2D> <20>#<23><15> <0A> <0B>C<EFBFBD> <0A>.<2E>/<2F>/C<>D<>E<>!<21>D<EFBFBD> <11>D<EFBFBD><14><06>-<2D> <20>"<22> <0F>}<7D> <1D><11> "<22>N<EFBFBD>><3E> `<60>`rXc<00>z<00>[S5 [S5 [S5 0n[SS[[U5n[SS[[
U5n[ SUS35R5nU(a[U5n[U5US'OUn[ S US35R5nU(a[U5n[U5US'OUn[S
5 S n[RRU5(a>[R"[U55n U Rn
[S US U
S35 O[SU35 Sn[RRU5(aF[#USSS9n [$R&"U 5n SSS5 [SUS[)W 5S35 O[SU35 SnU(ahU(aaUR+U5 [ S5R5R-5nUS:Xa"[/U5(a[S[035 g U(d [S5 g[S5 g ![ an [SU 35 SnSn A GN*Sn A ff=f!,(df  N<>=f![ an [SU 35 SnSn A N<>Sn A ff=f)u!手动配置知识库文件地址<E59CB0>=
============================================================u手动配置知识库文件rZr r<r u3请输入FAISS向量数据库文件路径 (当前: <20>): u(请输入元数据文件路径 (当前: u
验证配置的文件...Tu✓ FAISS索引: u
(维度: <20>)u⚠ 文件不存在: Fu⚠ 加载FAISS索引失败: Nrrr <00>✓ 元数据文件: u (包含 u 个函数)u⚠ 加载元数据失败: u.
是否保存此配置供下次使用? (y/n): r]u'✓ 配置已保存到运行时文件: u.
配置验证失败请检查文件路径。u"
使用现有配置,无更改。)r_rCrirjrkrlr`rArr@r"r#r$<00>faiss<73>
read_index<EFBFBD>dr)r&r'r(rn<00>updaterar:r%)rL<00>config_changes<65>current_vector_db<64>current_metadata<74> vector_input<75> vector_path<74>metadata_inputrp<00> all_valid<69>index<65> dimensionr-r,<00>metadata<74> save_configs r.<00>manual_configure_knowledge_baser<65><00>s<><00><00> <09>/<2F><1A> <09>
'<27>(<28> <09>(<28>O<EFBFBD><17>N<EFBFBD>'<27><18>"<22>1<>'<27><1E><06><15>&<26><17><12>/<2F>&<26><0E><06><14> <19>N<>O`<60>Na<4E>ad<61>e<>f<>l<>l<>n<>L<EFBFBD><13><1A><<3C>(<28> <0B>+.<2E>{<7B>+;<3B><0E>'<27>(<28>'<27> <0B><1B>E<>FV<46>EW<45>WZ<57>[<5B>\<5C>b<>b<>d<>N<EFBFBD><15><1C>^<5E>,<2C> <0A>*-<2D>m<EFBFBD>*<<3C><0E><EFBFBD>'<27>(<28> <0A>
<EFBFBD> &<26>(<28><14>I<EFBFBD>
<1A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> &<26> &<26><19>$<24>$<24>S<EFBFBD><1B>%5<>6<>E<EFBFBD><1D><07><07>I<EFBFBD> <11>%<25>k<EFBFBD>]<5D>*<2A>Y<EFBFBD>K<EFBFBD>q<EFBFBD>I<> J<> <11>)<29>+<2B><1D>7<> 8<><1D>I<EFBFBD>
<1A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>-<2D> (<28> (<28><15>m<EFBFBD>S<EFBFBD>7<EFBFBD>;<3B>q<EFBFBD><1F>9<EFBFBD>9<EFBFBD>Q<EFBFBD><<3C><08><<3C> <11>)<29>-<2D><1F> <09>#<23>h<EFBFBD>-<2D><1F>P[<5B>\<5C> ]<5D> <11>)<29>-<2D><1F>9<> :<3A><1D>I<EFBFBD>
<16>)<29><16><1D><1D>n<EFBFBD>-<2D><1B>M<>N<>T<>T<>V<>\<5C>\<5C>^<5E> <0B> <16>#<23> <1D>"<22>><3E>2<>2<><15>?<3F>@S<>?T<>U<>V<><13> <16> <0A>?<3F>@<40><14> <0A>3<>4<><13><>; <15><1A> <0A>-<2D>a<EFBFBD>S<EFBFBD>1<>2<><19> <09><><1A><> <<3C>;<3B><> <15><1A> <0A>+<2B>A<EFBFBD>3<EFBFBD>/<2F>0<><19> <09><><1A>sU<00> A!I<00>I<00>/J<00>J<03>#J<00>>J<00>
J<03>'I=<03>=J<03>
J<07>J<00>
J:<03> J5<03>5J:c <00><><00>[S5 [S5 [S5 [U5upp4nU(a<>[S5 [U5R5(d![S5 [S5 [ S5n[U5R5(d![S5 [S5 [ S 5n[U5[U5[[ S
S [ [U55S .$[S 5 [U5(aL[U5upp4nU(a6[U5[U5[[ S
S [ [U55S .$g)u加载知识库文件rwu加载知识库rZu
✓ 使用现有知识库配置u*⚠ 错误: 向量数据库路径为空u正在尝试使用默认值...r=u*⚠ 错误: 元数据文件路径为空r>r r<<00>rorp<00>graph_data_pathu+
知识库文件不完整需要配置。N) r_rur@rArrC<00>USER_GRAPH_DATA_PATH<54> INTERNAL_DEFAULT_GRAPH_DATA_PATHr<48>)rL<00> kb_existsrrrsrorps r.<00>load_knowledge_baser<65>sF<00><00> <09>/<2F><1A> <09>
<1B><1C> <09>(<28>O<EFBFBD>Oj<01><16>O<18>K<>I<EFBFBD>}<7D>m<EFBFBD><11> <0A>1<>2<><13>><3E>"<22>(<28>(<28>*<2A>*<2A> <11>><3E> ?<3F> <11>2<> 3<>!<21>"7<>8<>N<EFBFBD><12>=<3D>!<21>'<27>'<27>)<29>)<29> <11>><3E> ?<3F> <11>2<> 3<> <20>!><3E>?<3F>M<EFBFBD>"<22>.<2E>1<> <20><1D>/<2F>"<22>><3E>!<21>2<EFBFBD>';<3B>0<>.<2E>$<0E> <0F>
<EFBFBD>
<EFBFBD> <0E><<3C>=<3D> *<2A>><3E> :<3A> :<3A>Vq<56><1E>W <20> S<>I<EFBFBD>}<7D>m<EFBFBD><18>&)<29>.<2E>&9<>%(<28><1D>%7<>'*<2A>><3E>)<29>2<EFBFBD>/C<>8<>.<2E>,<16>(<17><12><12>rXc <00><><00>[S5 [S5 [S5 [S5 [SS[[U5n[SS[[
U5nSUS 3n[ U5R5nS
US 3n[ U5R5n[SU[[U5n[SU[[
U5n[S 5 S n [RRU5(d[S U35 Sn O[SU35 [RRU5(d[SU35 Sn O[SU35 U (dA[S5 [ S5R5n
U
S:Xa [U5$[S5 g[U5[U5[[SS[[U55S.n U(dU(a[[ S5R5R5n U S:Xa.[!U5(a[S["35 O [S5 [S5 [S5 [S5 [%U 5n U R'5(dO[S5 [ S5R5R5nUS:Xa [U5$[S5 g[S [)U R*5S!35 [S"5 [S#5 [ S$5R5nUR5S%;agU(dM8U R-U5n[S&5 [S'US((aS)OS*35 [S+UR/S,S-5S.35 [S/UR/S0S1535 UR/S25(a"US2n[S3UR/S4535 M<>![0aln[S5U35 [2R5S6U3S S79 [ S85R5R5nUS:Xa[U5 SnAgSnAgSnAff=f)9u9功能需求检索模式主动引导路径输入版rwu功能需求检索分析rZuY请配置知识库路径直接按Enter键将使用括号内显示的默认路径r r<r u3请输入FAISS向量数据库文件路径 (默认: rxu(请输入元数据文件路径 (默认: rgT<>$⚠ 向量数据库文件不存在: F<>✓ 向量数据库: <20>⚠ 元数据文件不存在: rz<00>
知识库文件缺失。<EFBFBD>H请选择: 1. 手动指定其他路径 2. 返回主菜单
选择 (1-2): <20>1u'功能检索取消返回主菜单。Nr r<>uU
是否将此次的路径配置保存,供下次程序启动时默认使用? (y/n): r]<00>✓ 配置已保存至: <20>⚠ 配置保存失败。u'加载知识库并初始化检索器...uB加载知识库失败可能文件格式不正确或已损坏。u!是否重新配置路径? (y/n): u知识库加载成功: <20>
个函数u4
请输入自然语言描述功能需求进行分析u(输入 'quit' 或 'exit' 返回主菜单u
功能需求: )<02>quitrcu
分析结果:u实现状态: <20> implementedu ✅ 已实现u ❌ 未实现u综合评分: <20> total_scorerz.3fu判断理由: <20>reasonu 无理由<E79086>most_relevant_functionu最相关函数: <20>nameu分析失败: u功能检索失败: <20><01>exc_infou:
发生错误,是否重新配置知识库路径? (y/n): )r_rCrirjrkrlr`rAr"r#r$<00>feature_retrieval_moder@r<>r<>rar:r%rr<>rn<00> metadatas<61>!analyze_with_multiple_constraints<74>getr)r*r8)rL<00>default_vector_path<74>default_metadata_path<74> vector_promptr<74><00>metadata_promptr<74><00>final_vector_path<74>final_metadata_path<74> files_exist<73>choicer9<00> save_choice<63> retriever<65>retry<72>query<72>result<6C>rel_funcr-s r.r<>r<>Ds%<00><00> <09>/<2F><1A> <09>
$<24>%<25> <09>(<28>O<EFBFBD>
<EFBFBD>
e<EFBFBD>f<>)<29><18>"<22>1<>'<27><1E><06><17>+<2B><17><12>/<2F>&<26><0E><06><19> J<01>J]<5D>I^<5E>^a<>b<>M<EFBFBD><18><1D>'<27>-<2D>-<2D>/<2F>L<EFBFBD>A<01>AV<41>@W<>WZ<57>[<5B>O<EFBFBD><1A>?<3F>+<2B>1<>1<>3<>N<EFBFBD>'<27><18>,<2C>(;<3B>'<27><1E><06><15>)<29><17><1E>);<3B>&<26><0E><06><17> 
<EFBFBD> &<26>(<28><16>K<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> ,<2C> ,<2C> <0A>4<>5F<35>4G<34>H<>I<><1B> <0B> <0A>%<25>&7<>%8<>9<>:<3A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>-<2D> .<2E> .<2E> <0A>.<2E>/B<>.C<>D<>E<><1B> <0B> <0A>%<25>&9<>%:<3A>;<3B><<3C> <16> <0A>*<2A>+<2B><16>b<>c<>i<>i<>k<><06> <11>S<EFBFBD>=<3D>)<29>.<2E>9<> 9<> <11>;<3B> <<3C> <12><1E>/<2F>0<><1C>0<>1<><1E>~<7E> <1D>r<EFBFBD>#7<> ,<2C>n<EFBFBD>
<EFBFBD> <0B><06>F<EFBFBD><14>~<7E><1B>t<>v<>|<7C>|<7C>~<7E>E<02>E<02>G<02> <0B> <16>#<23> <1D>"<22>><3E>2<>2<><15>0<>1D<31>0E<30>F<>G<><15>1<>2<>
<EFBFBD>/<2F><1A> <09>
3<EFBFBD>4<> <09>(<28>O<EFBFBD>*3<>$<24>V<EFBFBD>,<2C> <09><18>,<2C>,<2C>.<2E>.<2E> <11>V<> W<><19>=<3D>><3E>D<>D<>F<>L<>L<>N<>E<EFBFBD><14><03>|<7C>-<2D>n<EFBFBD>=<3D>=<3D><15>?<3F>@<40><16> <0A>'<27><03>I<EFBFBD>,?<3F>,?<3F>(@<40>'A<><1A>L<>M<> <0A>E<>F<> <0A>8<>9<><12><19>,<2C>-<2D>3<>3<>5<>E<EFBFBD><14>{<7B>{<7B>}<7D> 0<>0<><15><18><18><1F>@<40>@<40><15>G<>F<EFBFBD> <12>O<EFBFBD> %<25> <11>N<EFBFBD>f<EFBFBD>]<5D>6K<36>?<3F>Q`<60>"a<>b<> c<> <11>N<EFBFBD>6<EFBFBD>:<3A>:<3A>m<EFBFBD>Q<EFBFBD>#?<3F><03>"D<>E<> F<> <11>N<EFBFBD>6<EFBFBD>:<3A>:<3A>h<EFBFBD> <0B>#D<>"E<>F<> G<><15>z<EFBFBD>z<EFBFBD>2<>3<>3<>!<21>":<3A>;<3B><08><15>)<29>(<28>,<2C>,<2C>v<EFBFBD>*><3E>)?<3F>@<40>A<>'<13><>* <15>3<> <0A><0E>q<EFBFBD>c<EFBFBD>"<22>#<23><0E> <0C> <0C>+<2B>A<EFBFBD>3<EFBFBD>/<2F>$<24> <0C>?<3F><15>S<>T<>Z<>Z<>\<5C>b<>b<>d<><05> <10>C<EFBFBD><<3C> "<22>><3E> 2<> 2<> <18><> 3<>s.<00>#A"O/<00> O/<00>A&O/<00>9B6O/<00>/
Q%<03>9AQ <03> Q%c <00><><00>[S5 [S5 [S5 [S5 [SS[[U5n[SS[[
U5nSUS 3n[ U5R5n[SU[[U5nU(d[S
U35 S US 3n[ U5R5n[SU[[
U5nU(d[S U35 [S 5 Sn [RRU5(d[SU35 Sn O[SU35 [RRU5(d[SU35 Sn O[SU35 U (d[S5 [S5 g[U5[U5[[SS[[U55S.n
U(dU(aH[ S5R5R5n U S:Xa[U5(a [S5 [S5 [S5 Sn [RRU 5(d[SU S 35 S!U S 3n [ U 5R5nU(dU n[S"U35 [RRU5(d[S#U35 [S$5 gS%nS&US 3n[ U5R5nU(dUn[S'U35 [S(S[ ["U5nS)US 3n[ U5R5n[S(U[ ["U5nU(d[S*U35 [RR%U5(d[S+U35 [S$5 gU(a[U5US('[U5 [S5 [S,5 [S5 [S-U35 [S.U35 [S/U35 [S5 ['UU[U5[U5[U5S09nU(Ga[S1S-5 [S25 [S3U35 [S45 [ S55R5nUS6:XGa/[)US7S8S99n[*R,"U5nSSS5 W(d [S:5 M`[/S;U55n[/S<U55n5U-
U-
n[/S=U55n[/S>U55n[/S?U55n[/S@U55n [/SAU55n![SB5 [SC[1U535 [SDUSEU[1U5- SF-SGSH35 [SIUSEU5- SF-SGSH35 [SJUSEU[1U5- SF-SGSH35 [SK5 [SLUSM35 [SNUSM35 [SOUSM35 [SPUSM35 [SQ5 [SRU!SSU ST35 0n"UH-n#U#R3SUSV5n$U"R3U$SW5SX-U"U$'M/ U"(a7[SY5 U"R55Hun%n&[SRU%SZU&SM35 M GO<>US\:XGawSWSKn(SWSKn)[)US7S8S99n[*R,"U5nSSS5 W(d[S:5 GM<>[S][1U5S^35 [ S_5R5n*U*S6:XavU)R=5S`:Xa[R>"U5 O;U)R=5Sa:XaU(RASbU/5 OU(RAScU/5 [SdU35 GO<>U*Se;GazU*S\:XaDUV#s/sHn#U#SfR3Sg5SLdMU#PM n+n#[Sh[1U+5Si35 OEUV#s/sH n#U#SfR3SjSW5Sk:<3A>dMU#PM" n+n#[Sl[1U+5Si35 [CU+SSmSX5GH5un,n#[S1U,SnU#R3SU5SoU#R3Sp535 [Sq[RREU#R3SrS55SsU#R3St535 [SuU#R3SvS5SSwSx35 [SyU#SfR3Sg535 [SzU#SfR3SjSW535 U#SfR3S{5(dGM[S|S}RGU#SfR3S{/5535 GM8 [1U+5Sm:<3A>a[S~[1U+5Sm-
S35 [ S<>5R5R5n-U-S:XaKURIS<>S<EFBFBD>5n.[)U.S<>S8S99n[*RJ"U+US<>SS<>9 SSS5 [S<>U.35 OUS<>:Xag[S<>5 GM<>[S5 [S<>5 [S45 g!,(df  GN<>=f![6an'[S[U'35 Sn'A'NTSn'A'ff=f!,(df  GN<>=fs sn#fs sn#f!,(df  N<>=f![6an'[S<>U'35 Sn'A'N<>Sn'A'ff=f![6a-n'[S<>U'35 SWSK&n/U/RN"5 Sn'A'gSn'A'ff=f)<29>u6问题单过滤模式修正知识库传递问题rwu问题单过滤模式rZu!第一步配置知识库路径r r<r u_请输入向量数据库文件路径 (FAISS索引文件)
(直接按Enter使用当前默认值: rxu使用默认向量数据库: <20>E请输入元数据文件路径
(直接按Enter使用当前默认值: u使用默认元数据文件: rgTr<54>Fr<46>r<>rzu7
知识库文件缺失无法进行问题单过滤。uL请先使用主菜单选项1创建知识库或确保文件路径正确。Nr r<>u:
是否将此知识库配置保存供下次使用? (y/n): r]u+✓ 配置已保存至运行时配置文件u
✓ 知识库配置完成u(
第二步配置问题单过滤参数u科代问题单样例.xlsxu ⚠ 注意: 默认输入文件 '<27> ' 不存在uP请输入待过滤的问题单Excel文件路径
(直接按Enter使用默认值: u使用默认输入文件: <20>文件不存在: u问题单过滤取消。zfiltered_defects.jsonu@请输入输出JSON文件路径
(直接按Enter使用默认值: u使用默认输出文件: r
ui请输入问题单中代码文件所对应的项目根目录路径
(直接按Enter使用当前默认值: <20>使用默认项目路径: u项目路径无效: u开始问题单过滤分析...u输入文件: u输出文件: <20>项目路径: )<05>input_xlsx_path<74>output_json_path<74>project_path_override<64>kb_vector_path<74>kb_metadata_path<74>
u✓ 问题单过滤完成u结果已保存至: <20>==============================================================u_
请选择操作:
1. 查看统计摘要
2. 打开结果文件
3. 返回主菜单
选择 (1-3): r<>rrr u结果文件为空。c3<00>V# <00>UHoSRS5SLdMSv<00> M! g7f)<05>analysis_result<6C>is_real_defectTr^N<>r<><00><02>.0rs r.<00> <genexpr><3E>$issue_filter_mode.<locals>.<genexpr>s*<00><00><00>,s<><04>1<EFBFBD>BS<42>@T<>@X<>@X<>Yi<59>@j<>nr<6E>@r<>Q<EFBFBD>Q<EFBFBD><04><><00>)<01> )c3<00>V# <00>UHoSRS5SLdMSv<00> M! g7f)r<>r<>Fr^Nr<4E>r<>s r.r<>r<><00>s*<00><00><00>-u<><14>A<EFBFBD>CT<43>AU<41>AY<41>AY<41>Zj<5A>Ak<41>ot<6F>At<41>a<EFBFBD>a<EFBFBD><14>r<EFBFBD>c3<00>Z# <00>UH!oSRSS5S:<3A>dMSv<00> M# g7f)r<><00> urgency_scorer<00>Fr^Nr<4E>r<>s r.r<>r<><00>s-<00><00><00>*q<>d<EFBFBD><11>@Q<>>R<>>V<>>V<>Wf<57>hi<68>>j<>np<6E>>p<>1<EFBFBD>1<EFBFBD>d<EFBFBD><64><00>+<01> +c3<00>r# <00>UH-nSUSRSS5s=::aS:dM%O M)Sv<00> M/ g7f)<07>(r<>r<>rr<>r^Nr<4E>r<>s r.r<>r<><00>s7<00><00><00>,x<><04>1<EFBFBD><02>a<EFBFBD>HY<48>FZ<46>F^<5E>F^<5E>_n<5F>pq<70>Fr<46>@w<>uw<75>@w<>Q<EFBFBD>@w<>Q<EFBFBD><04><> <00>$7<01>7<01> 7c3<00>r# <00>UH-nSUSRSS5s=:aS:dM%O M)Sv<00> M/ g7f)rr<>r<>r<>r^Nr<4E>r<>s r.r<>r<><00>s7<00><00><00>)s<>T<EFBFBD><01>Q<EFBFBD><11>CT<43>AU<41>AY<41>AY<41>Zi<5A>kl<6B>Am<41>=r<>pr<70>=r<>!<21>=r<>!<21>T<EFBFBD>r<EFBFBD>c3<00>^# <00>UH#n[USRS/55v<00> M% g7f)r<><00>affected_functionsN)rnr<>r<>s r.r<>r<><00>s0<00><00><00>,s<>nr<6E>ij<69>S<EFBFBD><11>3D<33>1E<31>1I<31>1I<31>J^<5E>`b<>1c<31>-d<>-d<>nr<6E>s<00>+-c3<00>Z# <00>UH!oSRS5(dMSv<00> M# g7f)r<>r<>r^Nr<4E>r<>s r.r<>r<><00>s$<00><00><00>3v<33>t<EFBFBD>!<21>IZ<49>G[<5B>G_<47>G_<47>`t<>Gu<47>A<EFBFBD>A<EFBFBD>t<EFBFBD>r<EFBFBD>u
统计摘要:u 总缺陷数: u 真实缺陷: u 条 (<28>dz.1fz%)u 误报缺陷: u 未知/错误: u
紧急程度分布:u 高紧急(≥70): u 条u 中紧急(40-69): u 低紧急(1-39): u 零分(非缺陷): u
影响域分析:<3A> u 个缺陷影响了 r<><00>
sheet_name<EFBFBD>unknownrr^u
工作表分布:<3A>: u读取结果文件失败: <20>2u
结果文件包含 u 条记录。u`查看方式:
1. 完整JSON文件
2. 仅真实缺陷
3. 高紧急缺陷(≥70分)
选择 (1-3): <20>Windows<77>Darwinr&<00>xdg-open<65>已使用默认程序打开: )r<><00>3r<33>r<>u
真实缺陷 (u 条):r<>r<>u
高紧急缺陷 (<28>
u . 工作表: u, 行: <20> row_indexu 文件: rU<00>:<3A> line_numberu 描述: <20>defect_description<6F>Pr\u 真实缺陷: u 紧急分数: r<>u 影响函数: z, u
... 还有 u 条未显示u1
是否将筛选结果保存为新文件? (y/n): <20>.jsonz_filtered.jsonr1r2r3u筛选结果已保存至: u#打开或处理结果文件失败: r<>u无效选择请重新输入u"✗ 问题单过滤过程失败。u
问题单过滤执行失败: )(r_rCrirjrkrlr`rAr"r#r$r@r<>r<>rar:rDrE<00>isdirrr&r'r(<00>sumrnr<><00>itemsr)<00>
subprocess<EFBFBD>platform<72>system<65> startfile<6C>run<75> enumerate<74>basename<6D>join<69>replacer6<00> traceback<63> print_exc)0rLr<>r<>r<>r<>r<>r<>r<>r<>r<><00> kb_configr<67><00>default_input_excel<65> input_prompt<70> input_excel<65>default_output_json<6F> output_prompt<70> output_json<6F>default_project_root<6F>project_prompt<70> project_input<75>final_project_root<6F>success<73> view_optionr,<00>data<74>true_positives<65>false_positivesr<73><00> high_urgency<63>medium_urgency<63> low_urgency<63>total_affected<65>defects_with_affected<65> sheet_counts<74>itemr<6D><00>sheet<65>countr-r<>r<><00> view_method<6F> filtered_data<74>i<> save_filtered<65> filtered_filer<65>s0 r.<00>issue_filter_moder<00>s<> <00><00> <09>/<2F><1A> <09>
!<21>"<22> <09>(<28>O<EFBFBD>
<EFBFBD>
-<2D>.<2E>)<29><18>"<22>1<>'<27><1E><06><17>+<2B><17><12>/<2F>&<26><0E><06><19> w<01>xK<02>wL<02>LO<02>P<02>M<EFBFBD><18><1D>'<27>-<2D>-<2D>/<2F>L<EFBFBD>'<27><18>,<2C>(;<3B>'<27><1E><06><15>
<18> <0A>-<2D>.?<3F>-@<40>A<>B<>_<01>_t<5F>^u<>ux<75>y<>O<EFBFBD><1A>?<3F>+<2B>1<>1<>3<>N<EFBFBD>)<29><17><1E>);<3B>&<26><0E><06><17>
<1A> <0A>-<2D>.A<>-B<>C<>D<>
<EFBFBD> &<26>(<28><16>K<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> ,<2C> ,<2C> <0A>4<>5F<35>4G<34>H<>I<><1B> <0B> <0A>%<25>&7<>%8<>9<>:<3A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>-<2D> .<2E> .<2E> <0A>.<2E>/B<>.C<>D<>E<><1B> <0B> <0A>%<25>&9<>%:<3A>;<3B><<3C> <16> <0A>H<>I<> <0A>\<5C>]<5D><0E><1E>/<2F>0<><1C>0<>1<><1E>~<7E> <1D>r<EFBFBD>#7<> ,<2C>n<EFBFBD>
<EFBFBD> <0B><06>I<EFBFBD><14>~<7E><1B>Y<>[<5B>a<>a<>c<>i<>i<>k<> <0B> <16>#<23> <1D>"<22>><3E>2<>2<><15>C<>E<> <09>
'<27>(<28> <09>
5<EFBFBD>6<>7<><17> <0E>7<EFBFBD>7<EFBFBD>><3E>><3E>-<2D> .<2E> .<2E> <0A>0<>1D<31>0E<30>[<5B>Q<>R<>f<>gz<67>f{<7B>{~<7E><>L<EFBFBD><17> <0C>%<25>+<2B>+<2B>-<2D>K<EFBFBD> <17>)<29> <0B> <0A>*<2A>;<3B>-<2D>8<>9<> <0E>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> &<26> &<26> <0A>!<21>+<2B><1D>/<2F>0<> <0A>(<28>)<29><0E>2<><17>W<>Xk<58>Wl<57>lo<6C>p<>M<EFBFBD><17> <0A>&<26>,<2C>,<2C>.<2E>K<EFBFBD> <16>)<29> <0B> <0A>*<2A>;<3B>-<2D>8<>9<>*<2A><16><02>-<2D>%<25>~<7E><06><18>
B<02>CW<02>BX<02>X[<02>\<02>N<EFBFBD><19>.<2E>)<29>/<2F>/<2F>1<>M<EFBFBD>'<27><16> <0A>'8<>%<25>~<7E><06><16>
<19> <0A>*<2A>+=<3D>*><3E>?<3F>@<40> <0A>7<EFBFBD>7<EFBFBD>=<3D>=<3D>+<2B> ,<2C> ,<2C> <0A>$<24>%7<>$8<>9<>:<3A> <0A>(<28>)<29><0E><15>),<2C>-?<3F>)@<40><0E>~<7E>&<26><1B>N<EFBFBD>+<2B> <09>/<2F><1A> <09>
*<2A>+<2B> <09>(<28>O<EFBFBD> <09>N<EFBFBD>;<3B>-<2D>
(<28>)<29> <09>N<EFBFBD>;<3B>-<2D>
(<28>)<29> <09>N<EFBFBD>-<2D>.<2E>
/<2F>0<> <09>(<28>O<EFBFBD>I<1E>%<25>'<27>(<28>"%<25>&8<>"9<><1E>0<>1<> <20>!4<>5<> 
<EFBFBD><07> <13> <11>B<EFBFBD>(<28>"<22> #<23> <11>0<> 1<> <11>(<28><1B> <0A>6<> 7<> <11>.<2E> !<21><17>#<23>z<>|<01>}B<02>}B<02>}D<02><1C><1F>#<23>%<25>*@<01>!<21>+<2B>s<EFBFBD>W<EFBFBD>E<><11>#'<27>9<EFBFBD>9<EFBFBD>Q<EFBFBD><<3C>D<EFBFBD>F<01>#<23>!<21>"9<>:<3A>$<24>),<2C>,s<><04>,s<>)s<><0E>*-<2D>-u<><14>-u<>*u<><0F>"%<25>d<EFBFBD>)<29>n<EFBFBD>"<<3C><EFBFBD>"N<><07>'*<2A>*q<>d<EFBFBD>*q<>'q<> <0C>),<2C>,x<><04>,x<>)x<><0E>&)<29>)s<>T<EFBFBD>)s<>&s<> <0B>),<2C>,s<>nr<6E>,s<>)s<><0E>03<30>3v<33>t<EFBFBD>3v<33>0v<30>-<2D><1D><0F>1<><1D> 0<><13>T<EFBFBD><19> <0B><<3C>=<3D><1D> 0<><1E>0@<40><06>~<7E>X[<5B>\`<60>Xa<58>Ga<47>dg<64>Gg<47>hk<68>Fl<46>ln<6C>o<>p<><1D> 0<><1F>0A<30><16><0F>Z]<5D>^b<>Zc<5A>Hc<48>fi<66>Hi<48>jm<6A>Gn<47>np<6E>q<>r<><1D> 1<>'<27><19>&<26><17>3<EFBFBD>t<EFBFBD>9<EFBFBD>AT<41>WZ<57>AZ<41>[^<5E>@_<>_a<5F>b<>c<><1D> 5<>7<><1D> 4<>\<5C>N<EFBFBD>$<24>G<>H<><1D> 4<>^<5E>4D<34>D<EFBFBD>I<>J<><1D> 3<>K<EFBFBD>=<3D><04>E<>F<><1D> 5<>o<EFBFBD>5F<35>d<EFBFBD>K<>L<><1D> 2<>4<><1D><02>#8<>"9<>9M<39>n<EFBFBD>M]<5D>]g<>h<>i<>')<29> <0C>$(<28>D<EFBFBD>)-<2D><18><18>,<2C> <09>)J<>J<EFBFBD>7C<37>7G<37>7G<37>
<EFBFBD>TU<EFBFBD>7V<EFBFBD>YZ<EFBFBD>7Z<EFBFBD>L<EFBFBD><1A>4<>%)<29>(<28>!<21>$6<>8<>0<<3C>0B<30>0B<30>0D<30> <0C><05>u<EFBFBD> %<25><02>5<EFBFBD>'<27><12>E<EFBFBD>7<EFBFBD>$<24>&?<3F> @<40>1E<01><> !<21>C<EFBFBD>'<27>6I<01>)<29>'<27>!<21>+<2B>s<EFBFBD>W<EFBFBD>E<><11>#'<27>9<EFBFBD>9<EFBFBD>Q<EFBFBD><<3C>D<EFBFBD>F<01>#<23>!<21>"9<>:<3A>$<24><1D> 5<>c<EFBFBD>$<24>i<EFBFBD>[<5B> <0A>N<>O<>&+<2B>C<02>'D<02>EJ<02>EJ<02>EL<02>$<24>'<27>#<23>-<2D>'<27><EFBFBD><EFBFBD>0<>I<EFBFBD>=<3D> "<22> <0C> <0C>[<5B> 9<>!)<29><1F><1F>!2<>h<EFBFBD>!><3E> *<2A><0E><0E><06> <0B>/D<> E<> *<2A><0E><0E>
<EFBFBD>K<EFBFBD>/H<> I<>!<21>$A<>+<2B><1D>"O<>P<>(<28>J<EFBFBD>6<>*<2A>c<EFBFBD>1<>BF<42>1h<01>$<24>$<24>15<31>6G<36>1H<31>1L<31>1L<31>M]<5D>1^<5E>bf<62>1f<31>26<32>$<24> <0A>1h<01> %<25>(8<><13>]<5D>9K<39>8L<38>F<EFBFBD>&S<> T<>BF<42>1h<01>$<24>$<24>15<31>6G<36>1H<31>1L<31>1L<31>_<EFBFBD>^_<>1`<60>df<64>1f<31>26<32>$<24> <0A>1h<01> %<25>(;<3B>C<EFBFBD> <0A><N<>;O<>v<EFBFBD>&V<> W<>+4<>]<5D>3<EFBFBD>B<EFBFBD>5G<35><11>+K<><07><01>4<EFBFBD> %<25><02>1<EFBFBD>#<23>]<5D>4<EFBFBD>8<EFBFBD>8<EFBFBD>L<EFBFBD>;Q<>:R<>RY<52>Z^<5E>Zb<5A>Zb<5A>cn<63>Zo<5A>Yp<59>&q<> r<> %<25>&1<>"<22>'<27>'<27>2B<32>2B<32>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>Y[<5B>C\<5C>2]<5D>1^<5E>^_<>`d<>`h<>`h<>iv<69>`w<>_x<5F>$y<>!{<01> %<25> <0B>D<EFBFBD>H<EFBFBD>H<EFBFBD>=Q<>SU<53>4V<34>WZ<57>XZ<58>4[<5B>3\<5C>\_<>&`<60> a<> %<25>(9<>$<24>?P<>:Q<>:U<>:U<>Vf<56>:g<>9h<39>&i<> j<> %<25>(9<>$<24>?P<>:Q<>:U<>:U<>Ve<56>gh<67>:i<>9j<39>&k<> l<>#'<27>(9<>#:<3A>#><3E>#><3E>?S<>#T<>#T<>$)<29>*;<3B>D<EFBFBD>I<EFBFBD>I<EFBFBD>d<EFBFBD>K\<5C>F]<5D>Fa<46>Fa<46>bv<62>xz<78>F{<7B><|<7C>;}<7D>(~<7E>%@<02>,L<01> #<23>=<3D>1<>B<EFBFBD>6<> %<25> <0A>c<EFBFBD>-<2D>6H<36>2<EFBFBD>6M<36>5N<35>m<EFBFBD>&\<5C> ]<5D>,1<>4f<34>,h<>,n<>,n<>,p<>,v<>,v<>,x<>M<EFBFBD>,<2C><03>3<>0;<3B>0C<30>0C<30>G<EFBFBD>M]<5D>0^<5E> <0A>%)<29>-<2D><13>w<EFBFBD>%O<>ST<53>$(<28>I<EFBFBD>I<EFBFBD>m<EFBFBD>Q<EFBFBD>q<EFBFBD>W\<5C>$]<5D>&P<01> %<25>(B<>=<3D>/<2F>&R<> S<><53>
!<21>C<EFBFBD>'<27><19><19>:<3A>;<3B>[<17>` <12>/<2F> "<22> <11>6<> 7<> <11>.<2E> !<21>YF<01>E<><45>P%<25>@<01><1D> :<3A>1<EFBFBD>#<23>><3E>?<3F>?<3F><>@<01><>F<01>E<><45>*1h<01><>1h<01>*&P<01>%O<><4F>%<25>I<01><1D> C<>A<EFBFBD>3<EFBFBD>G<>H<>H<><48>I<01><> <15><1E> <0A>/<2F><01>s<EFBFBD>3<>4<><18><11><1B><1B><1D><1D><><1E>s <00><Bl,<00> j5<00> j#<03>"j5<00><l,<00>>G.j5<00>, l,<00>6l<00> k<03> l<00>:l,<00>=B+l<00>(l,<00>*l<00>;k,<04>k,<04> l<00>?k1<04> k1<04>&D)l<00>B)l<00>=k6<03>l<00>+l,<00>3/l,<00>#
j2<07>-j5<00>5
k<03>?k<03> l,<00>k<03>l,<00>
k)<07>$l<00>6
l<07>l<00>
l)<03>l$<03>l,<00>$l)<03>)l,<00>,
m#<03>6#m<03>m#c <00>j<00>[S5 [S5 [S5 [S5 [SS[[U5n[SS[[
U5nSUS 3n[ U5R5nS
US 3n[ U5R5n[SU[[U5n[SU[[
U5n[S 5 S n [RRU5(d[S U35 Sn O[SU35 [RRU5(d[SU35 Sn O[SU35 U (dA[S5 [ S5R5n
U
S:Xa [U5$[S5 g[U5[U5[[SS[[U55S.n U(dU(a[[ S5R5R5n U S:Xa.[!U5(a[S["35 O [S5 [S5 [S5 [SS[$[&U5n S U S 3n[ U5R5n[SU[$[&U5nU(d[S!U35 UR5(d<>[S"U35 [ S#5R5R5nUS:wa [S$5 g[ S%5R5nU(d [S&5 M.[SU[$[&U5nUR5(d[S'U35 MjUR)5(d[S(U35 M<>UnUnUR)5(d<>[S)U35 [ S#5R5R5nUS:wa [S$5 g[ S%5R5nU(d [S&5 M.[SU[$[&U5nUR)5(d[S(U35 MjUnUnS*n[RRU5(d[S+US,35 S-US 3n[ U5R5nU(dUn[S.U35 OUn[+U5nUR5(Gd[[S/U35 UU:wa<>[ S05R5R5nUS:Xac[ S15R5nU(d [S&5 M.[+U5nUR5(d[S2U35 M^UnUnO<>[S$5 g[S3US435 [ S55R5R5nUS:wa [S$5 g[ S15R5nU(d [S&5 M.[+U5nUR5(d[S2U35 M^UnUnS6nS7US 3n[ U5R5nU(dUn[S8U35 OUn[S5 [S95 [S5 [S:U35 [S;U35 [S<U35 [S5 [-[U5[U5US=9nU(Ga<>[S5 [S>5 [S?5 U(a$[U5US'[!U5 [S@5 USA3USB3USC3/n/n UH:n![RRU!5(dM)U R/U!5 M< U (a<>[SD5 U Hn![SEU!35 M [ SF5R5R5n"U"S:Xa<>[RRUSA35(a<>SGSKn#SGSKn$USA3n%U$R55SH:Xa[R6"U%5 O;U$R55SI:XaU#R9SJU%/5 OU#R9SKU%/5 [SLU%35 gggg[S5 [SN5 [S?5 g![:an&[SMU&35 Sn&A&gSn&A&ff=f![:a-n&[SOU&35 SGSKn'U'R>"5 Sn&A&gSn&A&ff=f)PuD静态分析模式(遵循"先输入,不输入则默认"原则rwu静态分析模式rZu第一步配置知识库r r<r uP<00>
(直接按Enter使用当前默认值: rxr<>rgTr<54>Fr<46>r<>rzr<>r<>r<>u'静态分析取消返回主菜单。Nr r<>uX
是否将此次的知识库配置保存,供下次程序启动时默认使用? (y/n): r]r<>r<>u✓ 知识库配置成功u
请配置静态分析参数r
uV请输入要分析的C/C++项目根目录路径
(直接按Enter使用当前默认值: r<>u⚠ 路径不存在: u是否重新输入? (y/n): u静态分析取消。u)请输入正确的项目根目录路径: u路径不能为空u路径不存在: u路径不是目录: u⚠ 路径不是目录: u审查规则.xlsxu ⚠ 注意: 默认规则文件 'r<>uG请输入审查规则Excel文件路径
(直接按Enter使用默认值: u使用默认规则文件: u⚠ 规则文件不存在: u3文件不存在,是否重新输入路径? (y/n): u&请输入正确的规则文件路径: r<>u默认规则文件 u 不存在。u'是否手动输入文件路径? (y/n): <20> audit_reportu`请输入输出报告文件的基础名称 (不包含扩展名)
(直接按Enter使用默认值: u 使用默认输出报告名称: u开始静态分析...r<>u规则文件: u输出报告: )<03> project_path<74> rules_excel<65> output_reportu✓ 静态分析执行成功r<EFBC81>u+✓ 项目路径已保存到运行时配置z.htmlz.pdfr<66>u
生成的报告文件:rhu&
是否打开HTML报告文件? (y/n): rr<>r<>r&r<>r<>u打开报告文件失败: u.✗ 静态分析执行过程中遇到问题。u
静态分析执行失败: ) r_rCrirjrkrlr`rAr"r#r$<00>static_analysis_moder@r<>r<>rar:r%rDrE<00>is_dirrrrmr<>r<>r<>r<>r<>r)r<>r<>)(rLr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r9r<>r<>rrrr<><00> new_input<75>new_path<74> default_rules<65> rules_prompt<70> rules_inputr<00>
rules_path<EFBFBD> manual_input<75>default_outputr<74><00> output_input<75> output_baser<00> result_filesrrrtrr<>r<><00> html_filer-r<>s( r.rr<00>s<><00><00> <09>/<2F><1A> <09>
<1E><1F> <09>(<28>O<EFBFBD>
<EFBFBD>
'<27>(<28>)<29><18>"<22>1<>'<27><1E><06><17>+<2B><17><12>/<2F>&<26><0E><06><19> h<01>h{<7B>g|<7C>|<>A<02>M<EFBFBD><18><1D>'<27>-<2D>-<2D>/<2F>L<EFBFBD>_<01>_t<5F>^u<>ux<75>y<>O<EFBFBD><1A>?<3F>+<2B>1<>1<>3<>N<EFBFBD>'<27><18>,<2C>(;<3B>'<27><1E><06><15>)<29><17><1E>);<3B>&<26><0E><06><17> 
<EFBFBD> &<26>(<28><16>K<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>+<2B> ,<2C> ,<2C> <0A>4<>5F<35>4G<34>H<>I<><1B> <0B> <0A>%<25>&7<>%8<>9<>:<3A> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>-<2D> .<2E> .<2E> <0A>.<2E>/B<>.C<>D<>E<><1B> <0B> <0A>%<25>&9<>%:<3A>;<3B><<3C> <16> <0A>*<2A>+<2B><16>b<>c<>i<>i<>k<><06> <11>S<EFBFBD>=<3D>'<27><0E>7<> 7<> <11>;<3B> <<3C> <12><1E>/<2F>0<><1C>0<>1<><1E>~<7E> <1D>r<EFBFBD>#7<> ,<2C>n<EFBFBD>
<EFBFBD> <0B><06>F<EFBFBD><14>~<7E><1B>w<>y<><><>B<02>H<02>H<02>J<02> <0B> <16>#<23> <1D>"<22>><3E>2<>2<><15>0<>1D<31>0E<30>F<>G<><15>1<>2<>
<EFBFBD>
%<25>&<26> <09>
,<2C>-<2D>*<2A><16><02>-<2D>%<25>~<7E><06><18>
o<01>pD<02>oE<02>EH<02>I<02>N<EFBFBD><19>.<2E>)<29>/<2F>/<2F>1<>M<EFBFBD>"<22><16> <0A>'8<>%<25>~<7E><06>L<EFBFBD> <19> <0A>*<2A><<3C>.<2E>9<>:<3A> <18> <1E> <1E> <20> <20> <0A>%<25>l<EFBFBD>^<5E>4<>5<><15>3<>4<>:<3A>:<3A><<3C>B<>B<>D<><05> <10>C<EFBFBD><<3C> <11>)<29> *<2A> <12><13><1D>I<>J<>P<>P<>R<>I<EFBFBD><1C><15>*<2A>+<2B><18>%<25><1E> <09>+<<3C>-<2D>~<7E><0E>H<EFBFBD>
<1C>?<3F>?<3F>$<24>$<24><15>)<29>(<28><1A>4<>5<><18><1B>?<3F>?<3F>$<24>$<24><15>,<2C>X<EFBFBD>J<EFBFBD>7<>8<><18>#<23>L<EFBFBD>%<25>M<EFBFBD> <11> <17> <1E> <1E> <20> <20> <0A>(<28><1C><0E>7<>8<><15>3<>4<>:<3A>:<3A><<3C>B<>B<>D<><05> <10>C<EFBFBD><<3C> <11>)<29> *<2A> <12><13><1D>I<>J<>P<>P<>R<>I<EFBFBD><1C><15>*<2A>+<2B><18>%<25><1E> <09>+<<3C>-<2D>~<7E><0E>H<EFBFBD>
<1C>?<3F>?<3F>$<24>$<24><15>,<2C>X<EFBFBD>J<EFBFBD>7<>8<><18>#<23>L<EFBFBD>%<25>M<EFBFBD> <11>(<28>M<EFBFBD> <0E>7<EFBFBD>7<EFBFBD>><3E>><3E>-<2D> (<28> (<28> <0A>0<><1D><0F>{<7B>K<>L<>]<5D>^k<>]l<>lo<6C>p<>L<EFBFBD><17> <0C>%<25>+<2B>+<2B>-<2D>K<EFBFBD> <17>#<23> <0B> <0A>*<2A>;<3B>-<2D>8<>9<>!<21> <0B><16>k<EFBFBD>"<22>J<EFBFBD> <15> <1C> <1C> <1E> <1E> <0A>+<2B>J<EFBFBD><<3C>8<>9<> <17>-<2D> '<27><19>O<>P<>V<>V<>X<>^<5E>^<5E>`<60>E<EFBFBD><14><03>|<7C><1A> %<25>&N<> O<> U<> U<> W<>I<EFBFBD>$<24><1D>2<>3<> <20>#<23>I<EFBFBD><EFBFBD>H<EFBFBD>#<23>?<3F>?<3F>,<2C>,<2C><1D> 1<>(<28><1A><<3C>=<3D> <20>"+<2B>K<EFBFBD>!)<29>J<EFBFBD><19><15>-<2D>.<2E><16> <11>'<27> <0A><EFBFBD>m<EFBFBD>D<> E<> <20>!J<>K<>Q<>Q<>S<>Y<>Y<>[<5B>L<EFBFBD><1B>s<EFBFBD>"<22><15>-<2D>.<2E><16><16>!<21>"J<>K<>Q<>Q<>S<> <09> <20><19>.<2E>/<2F><1C><1F> <09>?<3F><08><1F><EFBFBD><EFBFBD>(<28>(<28><19>-<2D>h<EFBFBD>Z<EFBFBD>8<>9<><1C>'<27> <0B>%<25>
<EFBFBD><15>$<24>N<EFBFBD>w<>yG<02>xH<02>HK<02>L<02>M<EFBFBD><18><1D>'<27>-<2D>-<2D>/<2F>L<EFBFBD> <18>$<24> <0B> <0A>0<><1B> <0A>><3E>?<3F>"<22> <0B> <09>/<2F><1A> <09>
!<21>"<22> <09>(<28>O<EFBFBD> <09>N<EFBFBD><<3C>.<2E>
)<29>*<2A> <09>N<EFBFBD>:<3A>,<2C>
'<27>(<28> <09>N<EFBFBD>;<3B>-<2D>
(<28>)<29> <09>(<28>O<EFBFBD>;<1E>%<25><1C>\<5C>*<2A><1B>J<EFBFBD><0F>%<25>
<EFBFBD><07> <13> <11>/<2F> "<22> <11>3<> 4<> <11>.<2E> !<21><1D>14<31>\<5C>1B<31><0E>~<7E>.<2E>#<23>N<EFBFBD>3<><15>C<>E<><1F>-<2D>u<EFBFBD>%<25><1E>-<2D>t<EFBFBD>$<24><1E>-<2D>u<EFBFBD>%<25><0E>L<EFBFBD>  <20>N<EFBFBD>$<24><04><15>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>'<27>'<27>"<22>)<29>)<29>$<24>/<2F>%<25><1E><15>0<>2<>*<2A>D<EFBFBD><19>D<EFBFBD><14><06>-<2D>(<28>+<2B>$<24>&M<>O<>U<>U<>W<>]<5D>]<5D>_<> <0B><1E>#<23>%<25>"<22>'<27>'<27>.<2E>.<2E>K<EFBFBD>=<3D><05>9N<39>*O<>*O<> @<01>)<29>'<27>'2<>m<EFBFBD>5<EFBFBD>$9<> <09>#<23>?<3F>?<3F>,<2C> <09>9<><1E>L<EFBFBD>L<EFBFBD><19>3<>%<25>_<EFBFBD>_<EFBFBD>.<2E>(<28>:<3A>&<26>N<EFBFBD>N<EFBFBD>F<EFBFBD>I<EFBFBD>+><3E>?<3F>&<26>N<EFBFBD>N<EFBFBD>J<EFBFBD> <09>+B<>C<><1D> =<3D>i<EFBFBD>[<5B>I<>J<>+P<01>%<25> <1E>, <12>/<2F> "<22> <11>B<> C<> <11>.<2E> !<21><> %<25>@<01><1D> :<3A>1<EFBFBD>#<23>><3E>?<3F>?<3F><>@<01><> <15><1E> <0A>,<2C>Q<EFBFBD>C<EFBFBD>0<>1<><18><11><1B><1B><1D><1D><><1E>sK<00>0B(c;<00>Bc;<00>/Bc<00>4!c;<00>
c8<03> c3<03>.c;<00>3c8<03>8c;<00>;
d2<03>#d-<03>-d2c<00><>
<00>[S5 [S5 [S5 [S5 [S5 [S5 [5nU(a[S[U5S35 [5(dg[S5 [S
5 [S5 [S 5 [S 5 [S 5 [S5 [S5 [S5 [S5 [ S5R 5nUS:Xaz[S5 [S5 [S5 [S5 [ S5R 5R 5nUS:Xa[5nU(a [S5 GO<>GO<>US:Xa[S5 [U5un nU(dO[S5 [ S5R 5R 5nUS:Xa[U5(dGM|OGM<>[U5 GOUS:Xa<>[S5 [U5un nU(dZ[S5 [ S 5R 5R 5nUS:Xa[U5(dGMO[S!5 GM[U5 GOrUS":Xa[S#5 [U5 GOTUS$:XGa[S5 [S%5 [S5 [S&5 [S'5 [S(5 [ S)5R 5nUS:XGa[S*[ S+35 U(a+UR#5Hup<>[S,U S-U
35 M O [S.5 [S/5 [S0[$35 [S1[&35 [S2[(35 [S3[*35 [S4[,35 [S55 [S6[.35 [S7[035 [S8[235 [ S95 O<>US:Xa<>[4R6R9[ 5(ak[ S:[ S;35R 5R 5nUS:Xa5[4R:"[ 5 UR=5 [S<5 OP[S=5 ODUS:XaGMT[S>5 O/US?:Xa[S@5 U(a [?U5 g[SA5 GM<>![a/n[SU35 [RSU3S S9 SnAN7SnAff=f)Bu主菜单界面rwu*卫星星务软件代码RAG知识库系统rZu 版本: 3.0uS功能: 支持代码知识库构建、功能检索、问题单过滤、静态分析u已加载运行时配置 (u 项)NTu 主菜单u1. 创建项目知识库u2. 功能需求检索u3. 问题单过滤u4. 静态分析u5. 管理配置文件u6. 退出系统u
请选择功能 (1-6): r<>u创建项目知识库uE此功能将分析代码项目构建知识图谱和向量数据库u%
确认开始知识库构建? (y/n): r]u
知识库构建完成!u知识库构建失败: r<>r<>u"
进入功能需求检索模式...u!
⚠ 尚未建设项目知识库!u*是否先创建或配置知识库? (y/n): r<>u
进入问题单过滤模式...u*是否配置已有知识库文件? (y/n): u"请先使用选项1创建知识库<E8AF86>4u
进入静态分析模式...<2E>5u配置文件管理u1. 查看当前运行时配置u2. 清除运行时配置u3. 返回主菜单u
请选择操作 (1-3): u
当前运行时配置 (z):r<>r<>u 无运行时配置u0
配置文件 (config.py) 中的主路径变量:z PROJECT_ROOT: z VECTOR_DB_PATH: z METADATA_PATH: z GRAPH_DATA_PATH: z KNOWLEDGE_GRAPH_PATH: u?
配置文件 (config.py) 中的默认后备路径 (Default_*):z Default_PROJECT_ROOT: z Default_VECTOR_DB_PATH: z Default_METADATA_PATH: u
按Enter键继续...u%确定要删除运行时配置文件 u 吗? (y/n): u!运行时配置文件已删除。u!运行时配置文件不存在。u 无效选择<E98089>6u
感谢使用,再见!u!无效的选择,请重新输入) r_r/rnrer`rArarr)r*r8rur<>r<>rrr%r<>r
r r r rrrrr"r#r$<00>remove<76>clearr:) rLr<><00>confirmr<6D>r-r<><00>_rd<00> config_choice<63>key<65>values r.<00> main_menur5&s<><00><00> <09>/<2F><1A> <09>
6<EFBFBD>7<> <09>(<28>O<EFBFBD> <09>-<2D><18> <09>
_<EFBFBD>`<60> <09>(<28>O<EFBFBD>)<29>*<2A>N<EFBFBD><15> <0A>*<2A>3<EFBFBD>~<7E>+><3E>*?<3F>u<EFBFBD>E<>F<> <19>?<3F>?<3F><0E>
<0E> <0A>o<EFBFBD><1E> <0A>k<EFBFBD><1A> <0A>h<EFBFBD><0F> <0A>(<28>)<29> <0A>%<25>&<26> <0A>"<22>#<23> <0A><1F> <20> <0A>%<25>&<26> <0A><1F> <20> <0A>h<EFBFBD><0F><16>2<>3<>9<>9<>;<3B><06> <11>S<EFBFBD>=<3D> <11>/<2F> "<22> <11>)<29> *<2A> <11>(<28>O<EFBFBD> <11>Y<> Z<><1B>D<>E<>K<>K<>M<>S<>S<>U<>G<EFBFBD><16>#<23>~<7E>O<01>;<3B>=<3D>F<EFBFBD><1D><1D>8<>9<><39> <1E><14>s<EFBFBD>]<5D> <11>7<> 8<>$?<3F><0E>$O<> !<21>I<EFBFBD>q<EFBFBD>!<21>Q<EFBFBD><01><1C><15>:<3A>;<3B> <20>!M<>N<>T<>T<>V<>\<5C>\<5C>^<5E><08><1B>s<EFBFBD>?<3F>:<3A>><3E>J<>J<> <20>K<01><1D> "<22>><3E> 2<> <13>s<EFBFBD>]<5D> <11>4<> 5<>$?<3F><0E>$O<> !<21>I<EFBFBD>q<EFBFBD>!<21>Q<EFBFBD><01><1C><15>:<3A>;<3B> <20>!M<>N<>T<>T<>V<>\<5C>\<5C>^<5E><08><1B>s<EFBFBD>?<3F>:<3A>><3E>J<>J<> <20>K<01><1A>><3E>?<3F><1C> <1D>n<EFBFBD> -<2D> <13>s<EFBFBD>]<5D> <11>1<> 2<> <20><1E> 0<> <13>s<EFBFBD>]<5D> <11>/<2F> "<22> <11>&<26> '<27> <11>(<28>O<EFBFBD> <11>2<> 3<> <11>,<2C> -<2D> <11>&<26> '<27>!<21>"=<3D>><3E>D<>D<>F<>M<EFBFBD><1C><03>#<23><15>1<>2E<32>1F<31>b<EFBFBD>I<>J<>!<21>&4<>&:<3A>&:<3A>&<<3C>
<EFBFBD><03><1D><02>3<EFBFBD>%<25>r<EFBFBD>%<25><17>1<>2<>'=<3D><1A>0<>1<><15>I<>K<><15>(<28><1C><0E>7<>8<><15>*<2A>><3E>*:<3A>;<3B><<3C><15>)<29>-<2D><1F>9<>:<3A><15>+<2B>O<EFBFBD>+<<3C>=<3D>><3E><15>0<>1E<31>0F<30>G<>H<><15>X<>Z<><15>0<>1E<31>0F<30>G<>H<><15>2<>3I<33>2J<32>K<>L<><15>1<>2G<32>1H<31>I<>J<><15>.<2E>/<2F><1E>#<23>%<25><15>7<EFBFBD>7<EFBFBD>><3E>><3E>"5<>6<>6<>#<23>&K<>L_<4C>K`<60>`m<>$n<>o<>u<>u<>w<>}<7D>}<7D><>G<EFBFBD><1E>#<23>~<7E><1A> <09> <09>"5<>6<>&<26>,<2C>,<2C>.<2E><1D>A<>B<><42><19>=<3D>><3E><1E>#<23>%<25><18><15>n<EFBFBD>%<25> <13>s<EFBFBD>]<5D> <11>,<2C> -<2D><1D>#<23>N<EFBFBD>3<> <11> <12>5<> 6<>a <0F><>4!<21>O<01><19>3<>A<EFBFBD>3<EFBFBD>7<>8<><1A>L<EFBFBD>L<EFBFBD>#:<3A>1<EFBFBD>#<23>!><3E><14>L<EFBFBD>N<><4E>O<01>s<00>$T<00>
U<03>%U<03>U<03>__main__u
程序被用户中断。u
程序执行出错: u主程序异常: Tr<54>)Jr"rbr'<00>logging<6E>shutil<69>pathlibrr{<00>numpy<70>np<6E> graph_builderr<00>feature_retrieverr<00>static_analyzerr<00> issue_filterrr9rr r
r r r rrrrrrrrrrrrrDrirkr<><00>USER_KNOWLEDGE_GRAPH_PATHrErjrlr<><00>%INTERNAL_DEFAULT_KNOWLEDGE_GRAPH_PATH<54> basicConfig<69>INFO<46> FileHandler<65> StreamHandler<65> getLogger<65>__name__r*r%r/r:rCrWrerur<>r<>r<>rrr5<00>KeyboardInterruptr_r)r-r<>r<>r8<00>rXr.<00><module>rJs<><00><01> <09>
<EFBFBD> <0B><0E> <0A><18> <0C><12>8<>.<2E>/<2F>,<2C> <02><02><02><02><02>!<21><11>$<24><13>"<22><12>&<26><14>0<><19> 4<><1D>"8<><1F>!6<><1E>#:<3A> <20>(D<>%<25><08><13><13>
<11>,<2C>,<2C> 6<><0F><1B><1B>6<>7<><0F><1D><1D><1F><06><02>
<11> <1A> <1A>8<EFBFBD> $<24><06>1<><13><0E> <15>5<1A>n<15><10>*"a<01>HK<14>\/<14>bA3<>Hb<1E>J w<1E>r B7<>H <0C>z<EFBFBD><19>=<3D><11> <0B><1A><> <1D>.<2E> <0A>,<2C>-<2D> <14>=<3D> <0A>&<26>q<EFBFBD>c<EFBFBD>*<2A>+<2B><18><11><1B><1B><1D><0E> <0C> <0C>(<28><11><03>,<2C>t<EFBFBD> <0C><<3C><> =<3D>s<00>3C<<00><E<03> E<03>3E <03> E