Files
aitsc/flask_prompt_master/__pycache__/routes.cpython-312.pyc

180 lines
27 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
<00><><EFBFBD>g<EFBFBD>Z<00><00><00>ddlmZmZmZmZmZmZmZmZddl m
Z
ddl m Z ddl mZmZmZmZmZddlmZmZddlmZddlZddlmZddlZddlZddlZddlZed e<1E>Ze
ej@ejB<00>
<EFBFBD>Z"ejFZ#ejHZ$d-d <0B>Z%d-d <0C>Z&d <0A>Z'ejQdddg<02><11>d<12><00>Z)ejQd<13>d<14><00>Z*ejQdddg<02><11>d<16><00>Z+ejQd<17>d<18><00>Z,ejQddg<01><11>d<1B><00>Z-ejQddg<01><11>d<1D><00>Z.ejQddg<01><11>d<1F><00>Z/ejQd dg<01><11>d!<21><00>Z0ejQd"dg<01><11>d#<23><00>Z1ejQd$dg<01><11>d%<25><00>Z2ejQd&dg<01><11>d'<27><00>Z3ejQd(dg<01><11>d)<29><00>Z4ejQd*dg<01><11>d+<2B><00>Z5ejQd(dg<01><11>d,<2C><00>Z6y).<2E>)<08> Blueprint<6E>render_template<74>request<73>redirect<63>url_for<6F>flash<73>jsonify<66> current_app)<01>OpenAI)<01>db)<05>User<65>Prompt<70>Feedback<63>PromptTemplate<74>WxUser)<02>
PromptForm<EFBFBD> FeedbackForm)<01>ConfigN)<01>datetime<6D>main)<02>api_key<65>base_urlc<00><><00>|r-tjj|<00>}|r |jStjj d<01><02>j <00>}|r |jSy)u获取系统提示词模板T)<01>
is_defaultu<EFBFBD>你是一个专业的提示词工程师,擅长将普通的描述转换为结构化、专业的 Prompt。
你需要:
1. 分析用户的需求和意图
2. 将其转换为清晰、详细的提示词
3. 添加必要的上下文和约束条件
4. 使用专业的术语和格式
5. 确保生成的提示词能够获得最佳的 AI 响应
请直接返回优化后的提示词,不要添加任何解释或其他内容。)r<00>query<72>get<65> system_prompt<70> filter_by<62>first)<03> template_id<69>template<74>default_templates <20>,D:\wxxcx\tsccc\flask_prompt_master\routes.py<70>get_system_promptr$sd<00><00><12>!<21>'<27>'<27>+<2B>+<2B>K<EFBFBD>8<><08> <13><1B>)<29>)<29> )<29>&<26>+<2B>+<2B>5<>5<><14>5<>F<>L<>L<>N<><14><17><1F>-<2D>-<2D>-<2D> U<01>c<00>4<00> t|<01>}td<01>td|<01><00><02>td|<00><00><02>td|<02><00><02>td<05>tjjj dd|d<08>d |d<08>gd
d <0B> <0C>}|j d jjj<00>}td<0E>td|<04><00><02>td<05>|S#t$r5}tjjdt|<05><00><00><02>Yd}~yd}~wwxYw)u!调用大模型API生成提示词u
=== API 调用参数 ===u
模板ID: u输入文本: u系统提示: <20>==================
z deepseek-chat<61>system)<02>role<6C>content<6E>usergffffff<66>?<3F><>)<04>model<65>messages<65> temperature<72>
max_tokensru
=== API 响应结果 ===u生成的提示词: uLLM API调用失败: Nu'提示词生成失败,请稍后重试)r$<00>print<6E>client<6E>chat<61> completions<6E>create<74>choices<65>messager*<00>strip<69> Exceptionr
<00>logger<65>error<6F>str)<06>
input_textr r<00>response<73>generated_text<78>es r#<00>generate_with_llmrA.s<00><00>9<>)<29>+<2B>6<> <0A> <0E>*<2A>+<2B> <0A>
<EFBFBD>;<3B>-<2D>(<28>)<29> <0A><0E>z<EFBFBD>l<EFBFBD>+<2B>,<2C> <0A><0E>}<7D>o<EFBFBD>.<2E>/<2F> <0A>$<24>%<25><19>;<3B>;<3B>*<2A>*<2A>1<>1<>!<21>!<21>m<EFBFBD><<3C><1F>J<EFBFBD>7<><0E><1C><1A>2<>
<EFBFBD><08>"<22>)<29>)<29>!<21>,<2C>4<>4<><<3C><<3C>B<>B<>D<><0E> <0A>*<2A>+<2B> <0A>$<24>^<5E>$4<>5<>6<> <0A>$<24>%<25><1D><1D><> <14>9<><13><1A><1A> <20> <20>#8<><13>Q<EFBFBD><16><08>!A<>B<>8<><38>9<>s<00>CC<00> D<03>"+D<03>Dc <00>@<00>ddddddddd d
d <0B>
}|j|d <0C>S) u3根据分类返回对应的Font Awesome图标类名zfa-magicz fa-pen-fancyz
fa-palettezfa-codez fa-chart-linez fa-briefcasezfa-graduation-capzfa-cityz fa-industryzfa-concierge-bell)
u 通用工具u 内容创作u 设计创意u 技术研发u 商业营销u 专业服务u 教育培训u 智慧城市u 工业制造u 生活服务zfa-star)r)<02>category<72>iconss r#<00>get_template_iconrEOs<<00><00>#<23>&<26>$<24>!<21>'<27>&<26>+<2B>!<21>%<25>+<2B> <06>E<EFBFBD> <11>9<EFBFBD>9<EFBFBD>X<EFBFBD>y<EFBFBD> )<29>)r%<00>/<2F>GET<45>POST)<01>methodsc <00>2<00>t<00>}tjj<00>}t t d<01>|D<00><00><00>}t t d<02>|D<00><00><00>}t t d<03>|D<00><00><00>}t t d<04>|D<00><00><00>}|j <00><00>r,tjjd<05>}t|jj|<06>} tjdddd d
<EFBFBD> <0B>}|j<00>} | j!d <0C>| j#<00>}
|
r|
d } nd} | j%<00>|j%<00>t-|jj|| <0B><10>} t.j0j3| <0A>t.j0j5<00>t7d|| |t8||||<05><12> St7d|d|t8||||<05><12> S#t&$r#} t)dt+| <0C><00><00><02>d} Yd} ~ <0C><>d} ~ wwxYw)Nc3<00>NK<00>|]}|js<01>|j<00><01><00>y<00>w<01>N<><01>industry<72><02>.0<EFBFBD>ts r#<00> <genexpr>zindex.<locals>.<genexpr>e<00><00><00><><00>H<> <09>1<EFBFBD>Q<EFBFBD>Z<EFBFBD>Z<EFBFBD>A<EFBFBD>J<EFBFBD>J<EFBFBD> <09><><00>%<01>%c3<00>NK<00>|]}|js<01>|j<00><01><00>y<00>wrL<00><01>
professionrOs r#rRzindex.<locals>.<genexpr>fs<00><00><><00>M<>9<EFBFBD>a<EFBFBD><01> <0C> <0C>Q<EFBFBD>\<5C>\<5C>9<EFBFBD>rTc3<00>NK<00>|]}|js<01>|j<00><01><00>y<00>wrL<00>rCrOs r#rRzindex.<locals>.<genexpr>grSrTc3<00>NK<00>|]}|js<01>|j<00><01><00>y<00>wrL<00><01> sub_categoryrOs r#rRzindex.<locals>.<genexpr>hs<00><00><><00>T<> <09>1<EFBFBD>Q<EFBFBD>^<5E>^<5E><01><0E><0E> <09>rTr <00> localhost<73>root<6F>123456<35>food_db<64>utf8mb4)<05>hostr+<00>password<72>database<73>charsetz7SELECT uid FROM user WHERE login_name = 'admin' LIMIT 1r<00>u获取用户ID失败: )r=r?<00>user_idz generate.html)<08>form<72>prompt<70> templatesrE<00>
industries<EFBFBD> professions<6E>
categories<EFBFBD>sub_categories)rrr<00>all<6C>sorted<65>set<65>validate_on_submitrrhrrAr=<00>data<74>pymysql<71>connect<63>cursor<6F>execute<74>fetchone<6E>closer9r1r<rr <00>session<6F>add<64>commitrrE)rhrjrkrlrmrnr r?<00>connrv<00>resultrgr@ris r#<00>indexr_s<><00><00> <15><<3C>D<EFBFBD><1E>$<24>$<24>(<28>(<28>*<2A>I<EFBFBD><18><03>H<> <09>H<>H<>I<>J<EFBFBD><18><13>M<>9<EFBFBD>M<>M<>N<>K<EFBFBD><17><03>H<> <09>H<>H<>I<>J<EFBFBD><1B>C<EFBFBD>T<> <09>T<>T<>U<>N<EFBFBD> <0B><1E><1E> <20><1D>l<EFBFBD>l<EFBFBD>&<26>&<26>}<7D>5<> <0B>*<2A>4<EFBFBD>?<3F>?<3F>+?<3F>+?<3F><1B>M<><0E> <18><1A>?<3F>?<3F> <20><1B>!<21>"<22>!<21> <0E>D<EFBFBD><1A>[<5B>[<5B>]<5D>F<EFBFBD> <12>N<EFBFBD>N<EFBFBD>T<> U<><1B>_<EFBFBD>_<EFBFBD>&<26>F<EFBFBD><15> <20><11>)<29><07><1B><07> <12>L<EFBFBD>L<EFBFBD>N<EFBFBD> <10>J<EFBFBD>J<EFBFBD>L<EFBFBD>
<18><1B><EFBFBD><EFBFBD>+<2B>+<2B>)<29><1B>
<EFBFBD><06>
<0B>
<EFBFBD>
<EFBFBD><0E><0E>v<EFBFBD><1E>
<EFBFBD>
<EFBFBD>
<EFBFBD><19><19><1B><1E><EFBFBD>T<EFBFBD>&<26>T]<5D>/@<40>Z<EFBFBD>)4<><1A>,:<3A><<3C> <<3C> <1B>?<3F><14>d<EFBFBD>i<EFBFBD>+<<3C><1A>%0<>Z<EFBFBD>(6<> 8<>8<><38><19> <18> <11>*<2A>3<EFBFBD>q<EFBFBD>6<EFBFBD>(<28>3<> 4<><17>G<EFBFBD><47> <18>s<00>&A5G*<00>* H<03>3H<03>Hz/prompt/<int:prompt_id>c<00>Z<00>tjj|<00>}td|<01><02>S)Nz prompt.html)ri)rr<00>
get_or_404r)<02> prompt_idris r#<00> show_promptr<74><00>s#<00><00> <13>\<5C>\<5C> $<24> $<24>Y<EFBFBD> /<2F>F<EFBFBD> <1A>=<3D><16> 8<>8r%z/feedback/<int:prompt_id>c<00><><00>tjj|<00>}t<00>}|j <00>r<>t |j j|jjd|j<00><02>}tjj|<03>tjj<00>td<03>tt!d|j<00><05><00>St#d||<01><07>S)Nrf)<04>rating<6E>commentrgr<>u感谢您的反馈zmain.show_prompt<70>r<>z feedback.html)rhri)rrr<>rrrrr<>rsr<><00>idr rzr{r|rrrr)r<>rirh<00>feedbacks r#<00>submit_feedbackr<6B><00>s<><00><00> <13>\<5C>\<5C> $<24> $<24>Y<EFBFBD> /<2F>F<EFBFBD> <17>><3E>D<EFBFBD> <0B><1E><1E> <20><1B><17>;<3B>;<3B>#<23>#<23><18>L<EFBFBD>L<EFBFBD>%<25>%<25><15><1C>i<EFBFBD>i<EFBFBD> 
<EFBFBD><08> <0B>
<EFBFBD>
<EFBFBD><0E><0E>x<EFBFBD> <20>
<EFBFBD>
<EFBFBD>
<EFBFBD><19><19><1B> <0A>%<25>&<26><17><07> 2<>f<EFBFBD>i<EFBFBD>i<EFBFBD>H<>I<>I<> <1A>?<3F><14>f<EFBFBD> E<>Er%z/api/template/<int:template_id>c<00><><00>tjj|<00>}t|j|j
|j |jd<01><04>S)N)r<><00>name<6D> descriptionr)rrr<>r r<>r<>r<>r)r r!s r#<00>get_template_detailsr<73><00>sJ<00><00><1D>#<23>#<23>.<2E>.<2E>{<7B>;<3B>H<EFBFBD> <12><16>k<EFBFBD>k<EFBFBD><18> <0A> <0A><1F>+<2B>+<2B>!<21>/<2F>/<2F> <06> <07>r%z /api/templates/<int:template_id><3E>DELETEc<00><><00> tjj|<00>}|jrt ddd<03><02>dfSt
j j|<01>t
j j<00>t ddd<03><02>S#t$rc}t
j j<00>tjjdt|<02><00><00><02>t ddd<03><02>d fcYd}~Sd}~wwxYw)
NFu默认模板不能删除)<02>successr7<00><>Tu模板删除成功u删除模板失败: u$删除模板失败请稍后重试r,)rrr<>rr r rz<00>deleter|r9<00>rollbackr
r:r;r<<00>r r!r@s r#<00>delete_templater<65><00>s<><00><00>#<10>!<21>'<27>'<27>2<>2<>;<3B>?<3F><08> <14> <1E> <1E><1A> <20>5<><0E><0F><14><14> <14> <0B>
<EFBFBD>
<EFBFBD><19><19>(<28>#<23>
<EFBFBD>
<EFBFBD>
<EFBFBD><19><19><1B><16><1B>+<2B>
<EFBFBD> <0B> <0B><>
<15><10>
<EFBFBD>
<EFBFBD>
<EFBFBD><1B><1B><1D><13><1A><1A> <20> <20>#7<><03>A<EFBFBD><06>x<EFBFBD>!@<40>A<><16><1C>=<3D>
<EFBFBD> <0B> <10><10> <10><> <10>s$<00>:B<00>A
B<00> C4<03>AC/<03>)C4<03>/C4z/api/wx/generatec
<00><><00> tj<00>}|rd|vsd|vrtdddd<06><03>S|jd<01>}|jd<07>}|jd<02>}t ||<02>}t |||t j<00><00><08>}tjj|<05>tjj<00>td d
|j|j|j|jj!d <0B>d <0C>d<06><03>S#t"$rM}t$j&j)d t+|<06><00><00><02>tdt+|<06>dd<06><03>cYd}~Sd}~wwxYw)u$微信小程序生成提示词接口r=<00>uid<69><64><00>缺少必要参数N<E695B0><03>coder7rsr )r=r?<00>
wx_user_id<EFBFBD>
created_at<EFBFBD><EFBFBD>r<><00>%Y-%m-%d %H:%M:%S)r<>r=r?r<>u生成提示词失败: r,)r<00>get_jsonr rrArr<00>utcnowr rzr{r|r<>r=r?r<><00>strftimer9r
r:r;r<)rsr=r r<>r?rir@s r#<00>wx_generate_promptr<74><00>sW<00><00>+ <0B><16><1F><1F>!<21><04><13>|<7C>4<EFBFBD>/<2F>5<EFBFBD><04>3D<33><1A><1B>/<2F><1C><0E><0F> <0F> <1A>X<EFBFBD>X<EFBFBD>l<EFBFBD>+<2B>
<EFBFBD><1A>h<EFBFBD>h<EFBFBD>}<7D>-<2D> <0B><19>X<EFBFBD>X<EFBFBD>e<EFBFBD>_<EFBFBD>
<EFBFBD>+<2B>:<3A>{<7B>C<><0E><18>!<21>)<29>!<21><1F><EFBFBD><EFBFBD>(<28> 
<EFBFBD><06> <0B>
<EFBFBD>
<EFBFBD><0E><0E>v<EFBFBD><1E>
<EFBFBD>
<EFBFBD>
<EFBFBD><19><19><1B><16><17> <20>#<23>Y<EFBFBD>Y<EFBFBD>$<24>/<2F>/<2F>"(<28>"7<>"7<>$<24>/<2F>/<2F>8<>8<>9L<39>M<> <0E> 
<EFBFBD>  <0B> <0B><> <15> <0B><13><1A><1A> <20> <20>#:<3A>3<EFBFBD>q<EFBFBD>6<EFBFBD>(<28>!C<>D<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s$<00>,D<00>C'D<00> E-<03> AE(<03>"E-<03>(E-z/api/wx/templatesc<00><><00> tjjd<01>}tjjd<02>}tjjd<03>}tjjd<04>}tj}|r|j |<00><05>}|r|j |<01><06>}|r|j |<02><07>}|r|j |<03><08>}|j <00>}td d
|D<00>cgc]]}|j|j|j|j|j|j|j|jd <0B><08><02>_c}d <0C><03>Scc}w#t $rM}t"j$j'd t)|<07><00><00><02>tdt)|<07>dd <0C><03>cYd}~Sd}~wwxYw)u获取提示词模板列表rNrWrCr\rMrVrYr[r<>r<>)r<>r<>r<>rCrNrWr\rr<>u获取模板列表失败: r,N)r<00>argsrrrrror r<>r<>r<>rCrNrWr\rr9r
r:r;r<)rNrWrCr\rrjrQr@s r#<00>wx_get_templatesr<73>s<><00><00>+ <0B><1A><<3C><<3C>#<23>#<23>J<EFBFBD>/<2F><08><1C>\<5C>\<5C>%<25>%<25>l<EFBFBD>3<>
<EFBFBD><1A><<3C><<3C>#<23>#<23>J<EFBFBD>/<2F><08><1E>|<7C>|<7C>'<27>'<27><0E>7<> <0C><1F>$<24>$<24><05> <13><19>O<EFBFBD>O<EFBFBD>X<EFBFBD>O<EFBFBD>6<>E<EFBFBD> <15><19>O<EFBFBD>O<EFBFBD>z<EFBFBD>O<EFBFBD>:<3A>E<EFBFBD> <13><19>O<EFBFBD>O<EFBFBD>X<EFBFBD>O<EFBFBD>6<>E<EFBFBD> <17><19>O<EFBFBD>O<EFBFBD><1C>O<EFBFBD>><3E>E<EFBFBD><19>I<EFBFBD>I<EFBFBD>K<EFBFBD> <09><17><17> <20>!<21> "<22>!<21>!<21><18>d<EFBFBD>d<EFBFBD><19><06><06> <20>}<7D>}<7D><1D>J<EFBFBD>J<EFBFBD><1D>J<EFBFBD>J<EFBFBD><1F>l<EFBFBD>l<EFBFBD> !<21><0E><0E><1F>l<EFBFBD>l<EFBFBD> <0E>!<21> "<22> 
<EFBFBD>  <0B> <0B><> "<22><> <15> <0B><13><1A><1A> <20> <20>#=<3D>c<EFBFBD>!<21>f<EFBFBD>X<EFBFBD>!F<>G<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s2<00>C7E)<00>9A"E$ <0C>E)<00>$E)<00>) F?<03>2AF:<03>4F?<03>:F?z"/api/wx/template/<int:template_id>c<00><><00> tjj|<00>}tdd|j|j
|j |j|j|j|j|j|jd<03> d<04><03>S#t$rM}tjj!dt#|<02><00><00><02>tdt#|<02>dd<04><03>cYd}~Sd}~wwxYw)u获取模板详情r<E68385>r<>) r<>r<>r<>rCrNrWr\rrr<>u获取模板详情失败: r,N)rrr<>r r<>r<>r<>rCrNrWr\rrr9r
r:r;r<r<>s r#<00>wx_get_template_detailr<6C>>s<><00><00> <0B>!<21>'<27>'<27>2<>2<>;<3B>?<3F><08><16><17> <20><1E>k<EFBFBD>k<EFBFBD> <20> <0A> <0A>'<27>3<>3<>$<24>-<2D>-<2D>$<24>-<2D>-<2D>&<26>1<>1<> (<28> 5<> 5<>!)<29>!7<>!7<>&<26>1<>1<>
<0E>
<EFBFBD> <0B> <0B><> <15> <0B><13><1A><1A> <20> <20>#=<3D>c<EFBFBD>!<21>f<EFBFBD>X<EFBFBD>!F<>G<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s<00>BB<00> C*<03>AC%<03>C*<03>%C*z /api/wx/loginc <00><><00> td<01>tdt<00><00><02>tdt<00><00><02>td<04>tj<00>}|rd|vrt dddd <09><03>S|j d<05>}td
|<01><00><02>d }tt|d d <0A>}tj ||<03><0E>}|j<00>}td|<05><00><02>d|vr!t dd|j d<13><00><00>dd <09><03>S|j d<14>}|j d<15>}tjj|<06><16>j<00>}|sKt||<07><17>}tjj|<08>tjj!<00>n>||_t%j&<00>|_tjj!<00>t+j,|<06>t/t1j0<00><00><00><00>j3<00><00>j5<00>} t dd| ||j6|j6|j8|j:|j<|j>d<1A>d<1B>d <09><03>S#t@$rM}
tBjDjGdtI|
<EFBFBD><00><00><02>t dtI|
<EFBFBD>dd <09><03>cYd}
~
Sd}
~
wwxYw)u微信小程序登录接口u
=== 微信登录配置 ===zAPPID: zSECRET: r'r<>r<>u缺少code参数Nr<4E>u收到的code: z,https://api.weixin.qq.com/sns/jscode2session<6F>authorization_code)<04>appid<69>secret<65>js_code<64>
grant_type)<01>paramsu微信返回数据: <20>errcoder,u微信登录失败<E8B4A5>errmsg<73>openid<69> session_key<65>r<>)r<>r<>r<>r<>)r<><00>nickname<6D>
avatar_url<EFBFBD>gender<65>phone)<04>tokenr<6E>r<><00> user_infou微信登录失败: )%r1<00>WX_APPID<49> WX_SECRETrr<>r r<00>requests<74>jsonrrrrr rzr{r|r<>rr<><00>
last_login<EFBFBD>hashlib<69>md5<64>int<6E>time<6D>encode<64> hexdigestr<74>r<>r<>r<>r<>r9r
r:r;r<) rsr<><00>wx_urlr<6C>r><00>wx_datar<61>r<><00>wx_userr<72>r@s r#<00>wx_loginr<6E>\s<><00><00>Q <0B> <0A>,<2C>-<2D> <0A><07><08>z<EFBFBD>"<22>#<23> <0A><08><19> <0B>$<24>%<25> <0A>$<24>%<25><16><1F><1F>!<21><04><13>v<EFBFBD>T<EFBFBD>)<29><1A><1B>-<2D><1C><0E><0F> <0F> <14>x<EFBFBD>x<EFBFBD><06><1F><04> <0A><0F><04>v<EFBFBD>&<26>'<27>@<01><06><1D><1F><1B>.<2E> 
<EFBFBD><06><1C><<3C><<3C><06>v<EFBFBD>6<><08><1A>-<2D>-<2D>/<2F><07> <0A>$<24>W<EFBFBD>I<EFBFBD>.<2E>/<2F> <14><07> <1F><1A><1B>2<>7<EFBFBD>;<3B>;<3B>x<EFBFBD>3H<33>2I<32>J<><1C><0E><0F> <0F> <19><1B><1B>X<EFBFBD>&<26><06><1D>k<EFBFBD>k<EFBFBD>-<2D>0<> <0B><19>,<2C>,<2C>(<28>(<28><06>(<28>7<>=<3D>=<3D>?<3F><07><16><1C><1D>'<27><0E>G<EFBFBD> <0F>J<EFBFBD>J<EFBFBD>N<EFBFBD>N<EFBFBD>7<EFBFBD> #<23> <0E>J<EFBFBD>J<EFBFBD> <1D> <1D> <1F>"-<2D>G<EFBFBD> <1F>!)<29><1F><1F>!2<>G<EFBFBD> <1E> <0E>J<EFBFBD>J<EFBFBD> <1D> <1D> <1F><18> <0B> <0B>v<EFBFBD>h<EFBFBD>s<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>;<3B>'7<>&8<>9<>@<40>@<40>B<>C<>M<>M<>O<><05><16><17> <20><1E> <20><1E>z<EFBFBD>z<EFBFBD>!<21>*<2A>*<2A> '<27> 0<> 0<>")<29>"4<>"4<>%<25>n<EFBFBD>n<EFBFBD>$<24>]<5D>]<5D> <12> <0E>
<EFBFBD> <0B> <0B><>" <15> <0B><13><1A><1A> <20> <20>#7<><03>A<EFBFBD><06>x<EFBFBD>!@<40>A<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s-<00>A"I0<00>%B I0<00>/FI0<00>0 K<03>9AK<03>;K<03>Kz/api/wx/update_userinfoc<00><><00> tj<00>}|rd|vrtdddd<05><03>S|jd<01>}tj
j |<01><06>j<00>}|stdddd<05><03>Sd |vr
|d |_d
|vr
|d
|_ d |vr
|d |_
d |vr
|d |_ d |vr
|d |_ d|vr
|d|_ d|vr
|d|_tj <00>|_t$j&j)<00>tdd|j*|j|j|j|j|j|j|j|j,d<12> d<05><03>S#t.$rM}t0j2j5dt7|<03><00><00><02>tdt7|<03>dd<05><03>cYd}~Sd}~wwxYw)u更新微信用户信息r<E681AF>r<>r<>Nr<4E>r<>i<>u用户不存在<E5AD98>nickName<6D> avatarUrlr<6C><00>country<72>province<63>city<74>languager<65>r<>) r<>r<>r<>r<>r<>r<>r<>r<>r<>u更新用户信息失败: r,)rr<>r rrrrrr<>r<>r<>r<>r<>r<>r<>rr<><00>
updated_atr rzr|r<>r<>r9r
r:r;r<)rsr<>r<>r@s r#<00>wx_update_userinfor<6F><00>s<><00><00>< <0B><16><1F><1F>!<21><04><13>x<EFBFBD>t<EFBFBD>+<2B><1A><1B>/<2F><1C><0E><0F> <0F> <16><18><18>(<28>#<23><06><18>,<2C>,<2C>(<28>(<28><06>(<28>7<>=<3D>=<3D>?<3F><07><16><1A><1B>,<2C><1C><0E><0F> <0F> <16><14> <1D>#<23>J<EFBFBD>/<2F>G<EFBFBD> <1C> <16>$<24> <1E>!%<25>k<EFBFBD>!2<>G<EFBFBD> <1E> <13>t<EFBFBD> <1B>!<21>(<28>^<5E>G<EFBFBD>N<EFBFBD> <14><04> <1C>"<22>9<EFBFBD>o<EFBFBD>G<EFBFBD>O<EFBFBD> <15><14> <1D>#<23>J<EFBFBD>/<2F>G<EFBFBD> <1C> <11>T<EFBFBD>><3E><1F><06><<3C>G<EFBFBD>L<EFBFBD> <15><14> <1D>#<23>J<EFBFBD>/<2F>G<EFBFBD> <1C>%<25>_<EFBFBD>_<EFBFBD>.<2E><07><1A>
<EFBFBD>
<EFBFBD>
<EFBFBD><19><19><1B><16><17> <20><1D>j<EFBFBD>j<EFBFBD>#<23>,<2C>,<2C>%<25>0<>0<>!<21>.<2E>.<2E>"<22>?<3F>?<3F>#<23>,<2C>,<2C><1F> <0C> <0C>#<23>,<2C>,<2C> <20><1D><1D>
<0E>
<EFBFBD> <0B> <0B><> <15> <0B><13><1A><1A> <20> <20>#=<3D>c<EFBFBD>!<21>f<EFBFBD>X<EFBFBD>!F<>G<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s+<00>(F<00>AF<00>;D F<00> G<03>AG<03>G<03>Gz/api/wx/promptsc <00><><00> tjjd<01>}tjjddt<00><04>}tjjddt<00><04>}|st ddd d
<EFBFBD><03>St
j j|<00> <0B>jt
jj<00><00>}|j||d <0C> <0A>}|j}t dd|D<00>cgc]@}|j|j|j|jj!d<10>d<11><04><02>Bc}|j"|j$|||j&|j(d<12>d<13>d
<EFBFBD><03>Scc}w#t*$rM}t,j.j1dt3|<07><00><00><02>t dt3|<07>d d
<EFBFBD><03>cYd }~Sd }~wwxYw)u$获取用户的提示词历史记录r<E5BD95><00>pagerf)<01>type<70>per_page<67>
r<><00>缺少用户IDNr<4E><00>r<>F)r<>r<><00> error_outr<74>r<>r<>)r<>r=r?r<>)<06>total<61>pages<65> current_pager<65><00>has_next<78>has_prev)<02>prompts<74>
paginationu获取提示词历史失败: r,)rr<>rr<>r rrr<00>order_byr<79><00>desc<73>paginate<74>itemsr<73>r=r?r<>r<>r<>r<>r<>r9r
r:r;r<)r<>r<>r<>rr<>r<><00>pr@s r#<00>wx_get_promptsr<73><00>s<><00><00>1 <0B><15>l<EFBFBD>l<EFBFBD><1E><1E>u<EFBFBD>%<25><03><16>|<7C>|<7C><1F><1F><06><01><03><1F>4<><04><1A><<3C><<3C>#<23>#<23>J<EFBFBD><02><13>#<23>=<3D><08><12><1A><1B>+<2B><1C><0E><0F> <0F><17> <0C> <0C>&<26>&<26>#<23>&<26>6<> <15>X<EFBFBD>f<EFBFBD>'<27>'<27>,<2C>,<2C>.<2E> /<2F> <0E><1B>^<5E>^<5E><14><08>E<EFBFBD>^<5E>R<>
<EFBFBD><1C>"<22>"<22><07><17><17> <20>#<23> $<24>
#<23>a<EFBFBD> <1C>$<24>$<24>"#<23>,<2C>,<2C>&'<27>&6<>&6<>"#<23>,<2C>,<2C>"7<>"7<>8K<38>"L<> <12>
#<23> $<24>(<28>-<2D>-<2D>'<27>-<2D>-<2D>$(<28> (<28> *<2A> 3<> 3<> *<2A> 3<> 3<> <12><0E>
<EFBFBD> <0B> <0B><>$<24><>" <15> <0B><13><1A><1A> <20> <20>#@<40><13>Q<EFBFBD><16><08>!I<>J<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s9<00>A;E9<00>>A6E9<00>4AE4 <0C>9:E9<00>4E9<00>9 G<03>AG
<03>G<03>
Gz/api/wx/prompt/<int:prompt_id>c<00>><00> tjj|<00>}tdd|j|j
|j |jjd<03>|jD<00>cgc]@}|j|j|j|jjd<03>d<04><04><02>Bc}d<05>d<06><03>Scc}w#t$rM}tjjdt!|<03><00><00><02>tdt!|<03>d d<06><03>cYd }~Sd }~wwxYw)
u获取提示词详情r<E68385>r<>r<>)r<>r<>r<>r<>)r<>r=r?r<><00> feedbacksr<73>u获取提示词详情失败: r,N)rrr<>r r<>r=r?r<>r<>r<>r<>r<>r9r
r:r;r<)r<>ri<00>fr@s r#<00>wx_get_prompt_detailr<6C>)s<00><00># <0B><17><1C><1C>(<28>(<28><19>3<><06><17><17> <20><1C>i<EFBFBD>i<EFBFBD>$<24>/<2F>/<2F>"(<28>"7<>"7<>$<24>/<2F>/<2F>8<>8<>9L<39>M<> "<22>+<2B>+<2B> -<2D>
,<2C>a<EFBFBD> <1C>$<24>$<24><1F>h<EFBFBD>h<EFBFBD> <20>y<EFBFBD>y<EFBFBD>"#<23>,<2C>,<2C>"7<>"7<>8K<38>"L<> <12>
,<2C> -<2D> <0E>
<EFBFBD> <0B> <0B><>-<2D><> <15> <0B><13><1A><1A> <20> <20>#@<40><13>Q<EFBFBD><16><08>!I<>J<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s2<00>A/C<00>1AC<14>6
C<00>C<00> D<03>AD<03>D<03>Dz/api/wx/prompts/countc <00><><00> tjjd<01>}|stdddd<05><03>Stj
j |<00><06>j<00>}tj<00>j<00>}tj
j |<00><06>jtjjtj<00>|k(<00>j<00>}|jd<07><08>}tj
j |<00><06>jtjjtj<00>|k\<00>j<00>}td d
||||d <0B>d<05><03>S#t $rM}t"j$j'd t)|<06><00><00><02>td t)|<06>dd<05><03>cYd}~Sd}~wwxYw)u*获取用户的提示词历史记录数量r<E9878F>r<>r<>Nr<4E>r<>rf)<01>dayr<79>r<>)<04> total_count<6E> today_count<6E> month_countr<74>u#获取提示词历史数量失败: r,)rr<>rr rrr<00>countr<00>now<6F>date<74>filterr <00>funcr<63><00>replacer9r
r:r;r<)r<>r<><00>todayr<79><00>
this_monthr<EFBFBD>r@s r#<00>wx_get_prompts_countr<74>Qs<><00><00>+ <0B><15>l<EFBFBD>l<EFBFBD><1E><1E>u<EFBFBD>%<25><03><12><1A><1B>+<2B><1C><0E><0F> <0F><17> <0C> <0C>&<26>&<26>#<23>&<26>6<><<3C><<3C>><3E><05><19> <0C> <0C><0E>#<23>#<23>%<25><05><1C>l<EFBFBD>l<EFBFBD>,<2C>,<2C><03>,<2C><<3C> <13>V<EFBFBD>B<EFBFBD>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><16>!2<>!2<>3<>u<EFBFBD><<3C> =<3D> <12>U<EFBFBD>W<EFBFBD> <14>
<1B>]<5D>]<5D>q<EFBFBD>]<5D>)<29>
<EFBFBD><1C>l<EFBFBD>l<EFBFBD>,<2C>,<2C><03>,<2C><<3C> <13>V<EFBFBD>B<EFBFBD>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><16>!2<>!2<>3<>z<EFBFBD>A<> B<> <12>U<EFBFBD>W<EFBFBD> <14><17><17> <20>$<24>*<2A>*<2A><1A> <0E> 
<EFBFBD>  <0B> <0B><> <15> <0B><13><1A><1A> <20> <20>#F<>s<EFBFBD>1<EFBFBD>v<EFBFBD>h<EFBFBD>!O<>P<><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s$<00>/E><00>E E><00>> G<03>AG<03> G<03>Gc<00>2<00> tjjd<01>xs#tj<00>jd<01>}|st dddd<05><03>St
j j|<00>}t|j<00>t|<01>k7rt dddd<05><03>Stj j|<00><08>j<00>tjj|<02>tjj<00>t d d
d |id<05><03>S#t $rk}t"j$j'd t|<03><00><00><02>tjj)<00>t d t|<03>dd<05><03>cYd}~Sd}~wwxYw)u删除提示词记录r<E5BD95>r<>r<>Nr<4E>r<>u无权删除此记录r<E5BD95>r<>u 删除成功r<E58A9F>u删除提示词记录失败: r,)rr<>rr<>r rrr<>r<r<>rrr<>r rzr|r9r
r:r;r<>)r<>r<>rir@s r#<00>wx_delete_promptr<74><00>sc<00><00>+ <0B><15>l<EFBFBD>l<EFBFBD><1E><1E>u<EFBFBD>%<25>F<><17>)9<>)9<>);<3B>)?<3F>)?<3F><05>)F<><03><12><1A><1B>+<2B><1C><0E><0F> <0F><18><1C><1C>(<28>(<28><19>3<><06> <0F>v<EFBFBD> <20> <20> !<21>S<EFBFBD><13>X<EFBFBD> -<2D><1A><1B>2<><1C><0E><0F> <0F> <11><0E><0E> <20> <20>9<EFBFBD> <20>5<><<3C><<3C>><3E> <0B>
<EFBFBD>
<EFBFBD><19><19>&<26>!<21>
<EFBFBD>
<EFBFBD>
<EFBFBD><19><19><1B><16><17>%<25><14>i<EFBFBD><0E>
<EFBFBD> <0B> <0B><> <15> <0B><13><1A><1A> <20> <20>#@<40><13>Q<EFBFBD><16><08>!I<>J<>
<EFBFBD>
<EFBFBD>
<EFBFBD><1B><1B><1D><16><17><1A>1<EFBFBD>v<EFBFBD><18>
<EFBFBD> <0B> <0B><> <0B>s-<00>AD"<00>AD"<00>&A;D"<00>" F<03>+A F<03> F<03>FrL)7<>flaskrrrrrrr r
<00>openair <00>flask_prompt_masterr <00>flask_prompt_master.modelsr rrrr<00>flask_prompt_master.formsrr<00>configrrtrr<>r<>r<>r<><00>__name__<5F>main_bp<62> LLM_API_KEY<45> LLM_API_URLr2r<>r<>r$rArE<00>routerr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00>r%r#<00><module>r s}<00><01>e<>e<>e<><19>"<22>U<>U<>><3E><19><0E><1D><0F><0E> <0B> <0B>
<13>F<EFBFBD>H<EFBFBD>
%<25><07> <0F><06>*<2A>*<2A>V<EFBFBD>5G<35>5G<35> H<><06> <12>?<3F>?<3F><08> <12> <1C> <1C> <09>U<01>09<>B*<2A>  <09><1D><1D>s<EFBFBD>U<EFBFBD>F<EFBFBD>O<EFBFBD><1D>,<2C>28<>-<2D>28<>h <09><1D><1D>(<28>)<29>9<>*<2A>9<> <09><1D><1D>*<2A>U<EFBFBD>F<EFBFBD>O<EFBFBD><1D>D<>F<01>E<01>F<01>" <09><1D><1D>0<>1<><07>2<><07> <09><1D><1D>1<>H<EFBFBD>:<3A><1D>F<>$<10>G<01>$<10>N <09><1D><1D>!<21>F<EFBFBD>8<EFBFBD><1D>4<>- <0B>5<>- <0B>^ <09><1D><1D>"<22>U<EFBFBD>G<EFBFBD><1D>4<>- <0B>5<>- <0B>^ <09><1D><1D>3<>e<EFBFBD>W<EFBFBD><1D>E<> <0B>F<01> <0B>: <09><1D><1D><EFBFBD><16><08><1D>1<>S <0B>2<>S <0B>j <09><1D><1D>(<28>6<EFBFBD>(<28><1D>;<3B>> <0B><<3C>> <0B>@ <09><1D><1D> <20>5<EFBFBD>'<27><1D>2<>3 <0B>3<>3 <0B>j <09><1D><1D>/<2F>%<25><17><1D>A<>% <0B>B<01>% <0B>N <09><1D><1D>&<26><15><07><1D>8<>- <0B>9<>- <0B>^ <09><1D><1D>/<2F>(<28><1A><1D>D<>- <0B>E<01>- r%