|
|
|
import os |
|
|
|
import gradio as gr |
|
import numpy as np |
|
import pandas as pd |
|
|
|
os.environ["no_proxy"] = "localhost,127.0.0.1,::1" |
|
|
|
def read_ui(username,password): |
|
if (username=='' or password==''): |
|
return '请填写完整信息' |
|
user_login_df=pd.read_csv('./user_login/login.csv',encoding='gbk',converters = {'password':str}) |
|
user_login=user_login_df.set_index('username')['password'].T.to_dict() |
|
user_data1_df=pd.read_csv('./user_data/data_1.csv',encoding='gbk') |
|
user_data2_df=pd.read_csv('./user_data/data_2.csv',encoding='gbk',converters ={'senti_flt':float,'hobby_flt':float,'all_flt':float}) |
|
|
|
results='' |
|
is_usn=(username in user_login) |
|
if(is_usn): |
|
pswd_crct=(password==user_login[username]) |
|
if(is_usn and pswd_crct): |
|
report1=user_data1_df[user_data1_df['username'] == username] |
|
report1=np.array(report1).tolist() |
|
report2=user_data2_df[user_data2_df['username'] == username] |
|
report2=np.array(report2).tolist() |
|
|
|
results='用户名:'+username+'\n' |
|
for i in range(len(report1)): |
|
line1=report1[i] |
|
results=results+'第'+str(i+1)+'次量表测试 '+'日期:'+str(line1[1])+' 时间:'+str(line1[2])+'\n' |
|
results=results+'量表分数:'+str(line1[3])+'\n结果解释:'+str(line1[4])+'\n建议:'+str(line1[5])+'\n' |
|
results+='\n' |
|
|
|
|
|
for i in range (len(report2)): |
|
line2=report2[i] |
|
results=results+'第'+str(i+1)+'次咨询 '+'日期:'+str(line2[1])+' 时间:'+str(line2[2])+'\n' |
|
results=results+'睡眠情况:'+str(line2[3])+'\n食欲情况:'+str(line2[4])+'\n情绪情况:'+str(line2[5])+'\n情绪分数:'+str(line2[6])+'\n情绪回答:'+str(line2[7])+'\n轻生倾向:'+str(line2[8])+'\n' |
|
results=results+'兴趣爱好分数:'+str(line2[9])+'\n兴趣爱好回答:'+str(line2[10])+'\n近期总体分数:'+str(line2[11])+'\n近期总体回答:'+str(line2[12])+'\n'+'最终建议:'+line2[13]+'\n\n' |
|
|
|
elif(is_usn): |
|
results='密码错误,无法读取报告数据。' |
|
else: |
|
results='账户不存在,无法读取报告数据。' |
|
|
|
|
|
return results |
|
|
|
|
|
def delete_ui(username,password): |
|
if (username=='' or password==''): |
|
return '请填写完整信息' |
|
user_login_df=pd.read_csv('./user_login/login.csv',encoding='gbk',converters = {'password':str}) |
|
user_login=user_login_df.set_index('username')['password'].T.to_dict() |
|
user_data1_df=pd.read_csv('./user_data/data_1.csv',encoding='gbk') |
|
user_data2_df=pd.read_csv('./user_data/data_2.csv',encoding='gbk',converters ={'senti_flt':float,'hobby_flt':float,'all_flt':float}) |
|
|
|
results='' |
|
is_usn=(username in user_login) |
|
if(is_usn): |
|
pswd_crct=(password==user_login[username]) |
|
if(is_usn and pswd_crct): |
|
user_data1_df.drop(user_data1_df[user_data1_df['username'] == username].index,inplace=True) |
|
user_data2_df.drop(user_data2_df[user_data2_df['username'] == username].index,inplace=True) |
|
user_login_df.drop(user_login_df[user_login_df['username'] == username].index,inplace=True) |
|
user_login_df.to_csv('./user_login/login.csv',encoding='gbk',index=False) |
|
user_data1_df.to_csv('./user_data/data_1.csv',encoding='gbk',index=False) |
|
user_data2_df.to_csv('./user_data/data_2.csv',encoding='gbk',index=False) |
|
results='已删除对应账户所有数据' |
|
|
|
elif(is_usn): |
|
results='密码错误,无法删除报告数据。' |
|
else: |
|
results='账户不存在,无法删除报告数据。' |
|
return results |
|
|
|
|
|
def clear_info(): |
|
return ( |
|
gr.Textbox(""), |
|
gr.Textbox(""), |
|
gr.Textbox(""), |
|
) |
|
|
|
|
|
with gr.Blocks() as user_center: |
|
with gr.Tab("查询历史"): |
|
with gr.Row(): |
|
gr.HTML("<h3 style='text-align:center;'>输入账号密码查看个人历史记录</h3>") |
|
with gr.Row(): |
|
with gr.Column(scale=1): |
|
input_name1 = gr.Textbox(label="用户名",interactive=True) |
|
input_pwd1 = gr.Textbox(label="密码",interactive=True) |
|
with gr.Row(): |
|
clear_button1 = gr.Button("清除") |
|
login_button1 = gr.Button("登录") |
|
with gr.Column(scale=1): |
|
output_info1 = gr.Textbox(label="输出", lines=5,interactive=False) |
|
with gr.Tab("清空数据"): |
|
with gr.Row(): |
|
gr.HTML("<h3 style='text-align:center;'>输入账号密码清空个人历史记录与账号</h3>") |
|
with gr.Row(): |
|
with gr.Column(scale=1): |
|
input_name2 = gr.Textbox(label="用户名",interactive=True) |
|
input_pwd2 = gr.Textbox(label="密码",interactive=True) |
|
with gr.Row(): |
|
clear_button2 = gr.Button("清除") |
|
delete_button2 = gr.Button("登录") |
|
with gr.Column(scale=1): |
|
output_info2 = gr.Textbox(label="输出", lines=5,interactive=False) |
|
|
|
|
|
clear_button1.click( |
|
fn=clear_info, |
|
inputs=[], |
|
outputs=[input_name1, input_pwd1, output_info1], |
|
) |
|
login_button1.click( |
|
fn=read_ui, |
|
inputs=[input_name1, input_pwd1], |
|
outputs=output_info1, |
|
) |
|
clear_button2.click( |
|
fn=clear_info, |
|
inputs=[], |
|
outputs=[input_name2, input_pwd2, output_info2], |
|
) |
|
delete_button2.click( |
|
fn=delete_ui, |
|
inputs=[input_name2,input_pwd2], |
|
outputs=[output_info2], |
|
) |