Files
assist/src/web/blueprints/__pycache__/knowledge.cpython-311.pyc

62 lines
13 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<00><><EFBFBD>hx<00><00>v<00>dZddlZddlZddlZddlmZmZmZddlm Z ddl
m Z m Z m Z eded<07><08><00>Zd <09>Ze<0F>d
<EFBFBD><00>d <0B><00><00>Ze<0F>d <0C><00>d <0A><00><00>Ze<0F>d
dg<01><0F><00>d<10><00><00>Ze<0F>d<11><00>d<12><00><00>Ze<0F>ddg<01><0F><00>d<14><00><00>Ze<0F>ddg<01><0F><00>d<17><00><00>Ze<0F>ddg<01><0F><00>d<19><00><00>Ze<0F>ddg<01><0F><00>d<1B><00><00>ZdS)u9
知识库管理蓝图
处理知识库相关的API路由
<EFBFBD>N)<03> Blueprint<6E>request<73>jsonify)<01>service_manager)<03>handle_api_errors<72>create_error_response<73>create_success_response<73> knowledgez/api/knowledge)<01>
url_prefixc<00>P<00>dt<00><00>vrddlm}|<00><00>atS)u获取Agent助手实例<EFBC88>_agent_assistantr<00><01>TSPAgentAssistant)<04>globals<6C>src.agent_assistantrr rs <20>5d:\code\tsp-assistant\src\web\blueprints\knowledge.py<70>get_agent_assistantrs:<00><00><1A><17><19><19>*<2A>*<2A>9<>9<>9<>9<>9<>9<>,<2C>,<2C>.<2E>.<2E><18> <1B><1B><00>c<00><><00> tj<00>ddt<00><03><00>}tj<00>ddt<00><03><00>}tj<00>dd<07><00>}tj<00>dd<07><00>}d d
lm}d d lm}|<04><00><00>5}|<06> |<05><00><00>
|j d k<00><00>}|r|<07>
|j |k<00><00>}|rI|d kr|<07>
|j d k<00><00>}n$|dkr|<07>
|j dk<00><00>}|<07>|j<00><00><00><00><00>}|<07><00><00>}|<07>|dz
|z<00><00><00>|<01><00><00><00><00>} g}
| D]<5D>} |
<EFBFBD>| j| j| j| j | j| j| j | j | jr| j<00><00><00>nd| jr| j<00><00><00>ndd<11>
<EFBFBD><00><00><>||zdz
|z} t;|
|||| d<12><05><00>cddd<10><00>S#1swxYwYdS#t<$r*} t;dt?| <0A><00>i<01><00>dfcYd} ~ Sd} ~ wwxYw)u!获取知识库列表分页<E9A1B5>page<67>)<01>type<70>per_page<67>
<00>categoryr<00>verifiedr)<01>
db_manager)<01>KnowledgeEntryT<79>true<75>falseFN)
<EFBFBD>id<69>question<6F>answerr<00>confidence_score<72> usage_count<6E> is_verified<65> is_active<76>
created_at<EFBFBD>
updated_at)r
rr<00>total<61> total_pages<65>error<6F><72>) r<00>args<67>get<65>int<6E>src.core.databaser<00>src.core.modelsr<00> get_session<6F>query<72>filterr(rr'<00>order_byr)<00>desc<73>count<6E>offset<65>limit<69>all<6C>appendr"r#r$r%r&<00> isoformatr*r<00> Exception<6F>str)rr<00>category_filter<65>verified_filterrr<00>sessionr5r+<00>knowledge_entries<65>knowledge_data<74>entryr,<00>es r<00> get_knowledgerHsA<00><00>=/<2F><16>|<7C><1F><1F><06><01><03><1F>4<>4<><04><1A><<3C>#<23>#<23>J<EFBFBD><02><13>#<23>=<3D>=<3D><08>!<21>,<2C>*<2A>*<2A>:<3A>r<EFBFBD>:<3A>:<3A><0F>!<21>,<2C>*<2A>*<2A>:<3A>r<EFBFBD>:<3A>:<3A><0F> 1<>0<>0<>0<>0<>0<>2<>2<>2<>2<>2<>2<> <17> #<23> #<23> %<25> %<25>/ <0F><17><1B>M<EFBFBD>M<EFBFBD>.<2E>1<>1<>8<>8<><1E>9Q<39>UY<55>9Y<39>Z<>Z<>E<EFBFBD><1F> Q<01><1D> <0C> <0C>^<5E>%<<3C><0F>%O<>P<>P<><05><1E> N<01>"<22>f<EFBFBD>,<2C>,<2C>!<21>L<EFBFBD>L<EFBFBD><1E>)C<>t<EFBFBD>)K<>L<>L<>E<EFBFBD>E<EFBFBD>$<24><07>/<2F>/<2F>!<21>L<EFBFBD>L<EFBFBD><1E>)C<>u<EFBFBD>)L<>M<>M<>E<EFBFBD><1A>N<EFBFBD>N<EFBFBD>><3E>#<<3C>#A<>#A<>#C<>#C<>D<>D<>E<EFBFBD><1A>K<EFBFBD>K<EFBFBD>M<EFBFBD>M<EFBFBD>E<EFBFBD>!&<26> <0C> <0C>d<EFBFBD>Q<EFBFBD>h<EFBFBD>(<28>-B<> C<> C<> I<> I<>(<28> S<> S<> W<> W<> Y<> Y<> <1D> <20>N<EFBFBD>*<2A> <13> <13><05><1E>%<25>%<25><1F>(<28> %<25><0E>#<23>l<EFBFBD> %<25><0E>(-<2D>(><3E>#(<28>#4<>#(<28>#4<>!&<26><1F>BG<42>BR<42>"\<5C>%<25>"2<>"<<3C>"<<3C>"><3E>"><3E>"><3E>X\<5C>BG<42>BR<42>"\<5C>%<25>"2<>"<<3C>"<<3C>"><3E>"><3E>"><3E>X\<5C> '<12> '<12> <13> <13> <13> <13>!<21>8<EFBFBD>+<2B>a<EFBFBD>/<2F>H<EFBFBD><<3C>K<EFBFBD><1A>+<2B><1C>$<24><1E>*<2A> <0E><0E><0F><0F>S/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F><><EFBFBD><EFBFBD>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F>/ <0F><>b <15>/<2F>/<2F>/<2F><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>sC<00>B.J<00>0G J<03>; J<00>J <07> J<00>J <07>J<00>
K <03>K<03>>K <03>K z/searchc<00><><00> tj<00>dd<02><00>}ddl}|<01>t
<00><00>}|<02>d|<00>d<06><03><00>|<00><00><00>s$|<02>d<07><00>tg<00><00>Stj
<00><00>}|j <00> |d<08> <09><00>}|<02>d
t|<04><00><00><00><02><00>t|<04><00>S#t$r`}ddl}|<01>t
<00><00>}|<02>d |<05><00><02><00>td t!|<05><00>i<01><00>d fcYd}~Sd}~wwxYw)u搜索知识库<E8AF86>qrrNu搜索查询: '<27>'u查询为空返回空结果<E7BB93>)<01>top_ku搜索结果数量: u搜索知识库失败: r-r.)rr/r0<00>logging<6E> getLogger<65>__name__<5F>info<66>striprr<00> get_assistant<6E>knowledge_manager<65>search_knowledge<67>lenr?r-r@)r5rN<00>logger<65> assistant<6E>resultsrGs rrUrUZsd<00><00>/<2F><17> <0C> <20> <20><13>b<EFBFBD>)<29>)<29><05><16><0E><0E><0E><18>"<22>"<22>8<EFBFBD>,<2C>,<2C><06><0E> <0B> <0B>.<2E>e<EFBFBD>.<2E>.<2E>.<2E>/<2F>/<2F>/<2F><14>{<7B>{<7B>}<7D>}<7D> <1F> <12>K<EFBFBD>K<EFBFBD>8<> 9<> 9<> 9<><1A>2<EFBFBD>;<3B>;<3B> <1E>$<24>1<>3<>3<> <09><1B>-<2D>><3E>><3E>u<EFBFBD>A<EFBFBD>><3E>N<>N<><07><0E> <0B> <0B>9<>3<EFBFBD>w<EFBFBD><<3C><<3C>9<>9<>:<3A>:<3A>:<3A><16>w<EFBFBD><1F><1F><1F><> <14>/<2F>/<2F>/<2F><16><0E><0E><0E><18>"<22>"<22>8<EFBFBD>,<2C>,<2C><06><0E> <0C> <0C>2<>q<EFBFBD>2<>2<>3<>3<>3<><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD> /<2F><><EFBFBD>s&<00>BC4<00>A"C4<00>4
E<03>>AE<03>E<03>E<03>POST)<01>methodsc<00>R<00> tj<00><00>}tj<00><00>j<00>|d|d|d|d<00><05><00>}t ||rdndd<08><02><00>S#t$r*}t d t|<02><00>i<01><00>d
fcYd }~Sd }~wwxYw) u添加知识库条目r#r$rr%)r#r$rr%u知识添加成功u 添加失败<E5A4B1><02>success<73>messager-r.N) r<00>get_jsonrrSrT<00>add_knowledge_entryrr?r@)<03>datar^rGs r<00> add_knowledgercrs<><00><00>
/<2F><16><1F>!<21>!<21><04>!<21>/<2F>1<>1<>C<>W<>W<><19>*<2A>%<25><17><08>><3E><19>*<2A>%<25>!<21>"4<>5<> X<01>
<EFBFBD>
<EFBFBD><07> <17>7<EFBFBD>w<EFBFBD>7j<37>7K<37>7K<37>\j<>k<>k<>l<>l<>l<><6C> <14>/<2F>/<2F>/<2F><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>s<00>A/A2<00>2
B&<03><B!<03>B&<03>!B&z/statsc<00><><00> tj<00><00>j<00><00><00>}t |<00><00>S#t
$r*}t dt |<01><00>i<01><00>dfcYd}~Sd}~wwxYw)u获取知识库统计r-r.N)rrSrT<00>get_knowledge_statsrr?r@)<02>statsrGs rrere<00>s|<00><00>/<2F><1F>-<2D>/<2F>/<2F>A<>U<>U<>W<>W<><05><16>u<EFBFBD>~<7E>~<7E><1D><> <14>/<2F>/<2F>/<2F><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>s<00>8;<00>
A/<03>A*<03>$A/<03>*A/z/uploadc<00><><00> dtjvrtddi<01><00>dfStjd}|jdkrtddi<01><00>dfSddl}ddl}ddl}d |j<00><00><00>|j<00> |j<00><00>d
<00><00>}|j<00>
|j <00><00>|<04><00>} |<00> |<05><00>t<00><00><00>||j<00><00>}t|<06><00> |j<00>|<05><00>r|j|<05><00>SS#t"$r@}ddl}|<08>t(<00><00>} | <09>d |<07><00><02><00>Yd}~Sd}~wwxYw# |j<00>|<05><00>r|j|<05><00>ww#t"$r@}ddl}|<08>t(<00><00>} | <09>d |<07><00><02><00>Yd}~wd}~wwxYwxYw#t"$r`}
ddl}|<08>t(<00><00>} | <09>d |
<EFBFBD><00><02><00>tdt/|
<EFBFBD><00>i<01><00>d fcYd}
~
Sd}
~
wwxYw)u上传文件并生成知识库<E8AF86>filer-u没有上传文件i<E4BBB6>ru没有选择文件rN<>upload_ru清理临时文件失败: u文件上传处理失败: r.)r<00>filesr<00>filename<6D>tempfile<6C>os<6F>uuid<69>uuid4<64>path<74>splitext<78>join<69>
gettempdir<EFBFBD>saver<00>process_file_to_knowledge<67>exists<74>unlinkr?rNrOrP<00>warningr-r@) rhrlrmrn<00> temp_filename<6D> temp_path<74>result<6C> cleanup_errorrNrWrGs r<00>upload_knowledge_filer}<00>s<><00><00>(/<2F> <11><17><1D> &<26> &<26><1A>G<EFBFBD>%9<>:<3A>;<3B>;<3B>S<EFBFBD>@<40> @<40><16>}<7D>V<EFBFBD>$<24><04> <0F>=<3D>B<EFBFBD> <1E> <1E><1A>G<EFBFBD>%9<>:<3A>;<3B>;<3B>S<EFBFBD>@<40> @<40> <18><0F><0F><0F><11> <09> <09> <09><13> <0B> <0B> <0B>U<01>*<2A>$<24>*<2A>,<2C>,<2C>T<><02><07>0@<40>0@<40><14><1D>0O<30>0O<30>PQ<50>0R<30>T<>T<> <0A><16>G<EFBFBD>L<EFBFBD>L<EFBFBD>!4<><18>!4<>!6<>!6<> <0A>F<>F<> <09> M<01> <10>I<EFBFBD>I<EFBFBD>i<EFBFBD> <20> <20> <20>)<29>*<2A>*<2A>D<>D<>Y<EFBFBD>PT<50>P]<5D>^<5E>^<5E>F<EFBFBD><1A>6<EFBFBD>?<3F>?<3F> M<01><15>7<EFBFBD>><3E>><3E>)<29>,<2C>,<2C>)<29><1D>B<EFBFBD>I<EFBFBD>i<EFBFBD>(<28>(<28>(<28>(<28>)<29><><1C> M<01> M<01> M<01><1E><0E><0E><0E> <20>*<2A>*<2A>8<EFBFBD>4<>4<><06><16><0E><0E>K<>M<EFBFBD>K<>K<>L<>L<>L<>L<>L<>L<>L<>L<><4C><EFBFBD><EFBFBD><EFBFBD> M<01><><EFBFBD><EFBFBD><EFBFBD> M<01><15>7<EFBFBD>><3E>><3E>)<29>,<2C>,<2C>)<29><1D>B<EFBFBD>I<EFBFBD>i<EFBFBD>(<28>(<28>(<28>(<28>)<29><><1C> M<01> M<01> M<01><1E><0E><0E><0E> <20>*<2A>*<2A>8<EFBFBD>4<>4<><06><16><0E><0E>K<>M<EFBFBD>K<>K<>L<>L<>L<>L<>L<>L<>L<>L<><4C><EFBFBD><EFBFBD><EFBFBD> M<01><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<15>/<2F>/<2F>/<2F><16><0E><0E><0E><18>"<22>"<22>8<EFBFBD>,<2C>,<2C><06><0E> <0C> <0C>5<>!<21>5<>5<>6<>6<>6<><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD> /<2F><><EFBFBD>s<EFBFBD><00> H<00>/H<00>A+H<00>?A
F<00>
*D6<02>6
F<05>6E;<05>6H<00>;F<05>H<00>G><03>*F1<04>/G><03>1
G;<07>;6G6<07>1G><03>6G;<07>;G><03>>H<00>
I+<03> AI&<03> I+<03>&I+z/delete/<int:knowledge_id><3E>DELETEc<00><><00> tj<00><00>j<00>|<00><00>}t ||rdndd<03><02><00>S#t
$r*}t dt |<02><00>i<01><00>dfcYd}~Sd}~wwxYw)u删除知识库条目u 删除成功u 删除失败r]r-r.N)rrSrT<00>delete_knowledge_entryrr?r@<00><03> knowledge_idr^rGs r<00>delete_knowledger<65><00>s<><00><00>/<2F>!<21>/<2F>1<>1<>C<>Z<>Z<>[g<>h<>h<><07><16>7<EFBFBD><17>7d<37>~<7E>~<7E>Vd<56>e<>e<>f<>f<>f<><66> <14>/<2F>/<2F>/<2F><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><00>AA<00>
A7<03> A2<03>,A7<03>2A7z/verify/<int:knowledge_id>c<00>L<00> tj<00><00>pi}|<01>dd<02><00>}tj<00><00>j<00>||<02><00>}t||rdndd<05><02><00>S#t$r*}tdt|<04><00>i<01><00>dfcYd}~Sd}~wwxYw) u验证知识库条目<E69DA1> verified_by<62>adminu 验证成功u 验证失败r]r-r.N)
rr`r0rrSrT<00>verify_knowledge_entryrr?r@)r<>rbr<>r^rGs r<00>verify_knowledger<65><00>s<><00><00>/<2F><16><1F>!<21>!<21>'<27>R<EFBFBD><04><1A>h<EFBFBD>h<EFBFBD>}<7D>g<EFBFBD>6<>6<> <0B>!<21>/<2F>1<>1<>C<>Z<>Z<>[g<>it<69>u<>u<><07><16>7<EFBFBD><17>7d<37>~<7E>~<7E>Vd<56>e<>e<>f<>f<>f<><66> <14>/<2F>/<2F>/<2F><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>s<00>A,A/<00>/
B#<03>9B<03>B#<03>B#z/unverify/<int:knowledge_id>c<00><><00> tj<00><00>j<00>|<00><00>}t ||rdndd<03><02><00>S#t
$r*}t dt |<02><00>i<01><00>dfcYd}~Sd}~wwxYw)u取消验证知识库条目u取消验证成功u取消验证失败r]r-r.N)rrSrT<00>unverify_knowledge_entryrr?r@r<>s r<00>unverify_knowledger<65><00>s<><00><00>/<2F>!<21>/<2F>1<>1<>C<>\<5C>\<5C>]i<>j<>j<><07><16>7<EFBFBD>w<EFBFBD>7p<37>7K<37>7K<37>\p<>q<>q<>r<>r<>r<><72> <14>/<2F>/<2F>/<2F><16><07><13>Q<EFBFBD><16><16>(<28>)<29>)<29>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>r<EFBFBD>)<1A>__doc__rmrlrn<00>flaskrrr<00>src.web.service_managerr<00>src.web.error_handlersrrr rP<00> knowledge_bpr<00>routerHrUrcrer}r<>r<>r<><00>rr<00><module>r<>s%<00><01><04><04>

<EFBFBD> <09> <09> <09><0F><0F><0F><0F> <0B> <0B> <0B> <0B>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>3<>3<>3<>3<>3<>3<>d<>d<>d<>d<>d<>d<>d<>d<>d<>d<><18>y<EFBFBD><1B>h<EFBFBD>;K<>L<>L<>L<> <0C><1C><1C><1C><0E><13><13>B<EFBFBD><17><17>?/<2F>?/<2F><18><17>?/<2F>B<0E><13><13>I<EFBFBD><1E><1E>/<2F>/<2F><1F><1E>/<2F>.<0E><13><13>B<EFBFBD><16><08><13>)<29>)<29> /<2F> /<2F>*<2A>)<29> /<2F><0E><13><13>H<EFBFBD><1D><1D>/<2F>/<2F><1E><1D>/<2F><0E><13><13>I<EFBFBD><06>x<EFBFBD><13>0<>0<>*/<2F>*/<2F>1<>0<>*/<2F>X<0E><13><13>0<>8<EFBFBD>*<2A><13>E<>E<>/<2F>/<2F>F<01>E<>/<2F><0E><13><13>0<>6<EFBFBD>(<28><13>C<>C<>/<2F>/<2F>D<01>C<>/<2F><0E><13><13>2<>V<EFBFBD>H<EFBFBD><13>E<>E<>/<2F>/<2F>F<01>E<>/<2F>/<2F>/r