Spaces:
Runtime error
Runtime error
File size: 6,243 Bytes
7950af4 556940a 7950af4 8c32d97 43e151d 556940a 7950af4 e5d3159 7950af4 a5762e5 7950af4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
import gradio as gr
import os
os.environ["no_proxy"] = "localhost,127.0.0.1,::1"
def advice1(radio1, radio2, radio3):
# 有关睡眠问题的建议
if radio1 == 0:
if radio2 == "存在":
return "嗜睡"
else:
return radio2
if radio1 == 1:
return radio3
def advice2(radio4):
# 有关饮食问题的建议
if radio4 == 0:
return "不存在"
if radio4 == 1:
return "增重"
else:
return "消瘦"
def advice3(radio5, radio6):
# 有关情绪问题的建议
if radio5 == "好":
return "不存在情绪问题"
if radio5 == "不好":
return "抑郁情绪持续了" + radio6
def advice4(radio5, text3_1, radio8, radio9, radio10):
# 有关自杀倾向的建议
if radio5 == "不好":
if keyword(text3_1):
if radio8 == 0:
if radio9 == 0:
if radio10 == "没想过":
return ",有自杀倾向"
if radio10 == "想过,没想过具体时间和地点":
return ",自杀倾向较严重"
if radio10 == "想过具体做法,时间和地点,没实践过":
return ",自杀倾向严重"
if radio10 == "实践过":
return ",有过自杀行为"
else:
return ",有自杀倾向"
else:
return ""
else:
return ""
def advice(
radio1, radio2, radio3, radio4, radio5, radio6, text3_1, radio8, radio9, radio10,result1,result2,result3
):
symptoms = ""
if advice1(radio1, radio2, radio3) == "不存在" and advice2(radio4) == "不存在":
symptoms = "不存在睡眠、饮食问题且"
if advice1(radio1, radio2, radio3) != "不存在" and advice2(radio4) == "不存在":
symptoms = "存在" + advice1(radio1, radio2, radio3) + "问题,不存在饮食问题且"
if advice1(radio1, radio2, radio3) == "不存在" and advice2(radio4) != "不存在":
symptoms = "不存在睡眠问题,存在" + advice2(radio4) + "问题且"
final_score=result1+result2+result3
print("最终得分:",final_score)
return (
gr.Column(visible=True),
gr.Markdown(visible=True),
final_score,
gr.Textbox(
value="你"
+ symptoms
+ advice3(radio5, radio6)
+ advice4(radio5, text3_1, radio8, radio9, radio10)
+ "。\n 抑郁症症状因人而异,并不应当只以是否存在上述症状来判断,并且可能存在上述症状以外更个人化的症状,如果存在强烈的各种不适或者怀疑自己有抑郁症,建议及时去进行专业检查和干预治疗,也有可能存在抑郁症以外的各类精神障碍与心理疾病,如焦虑症或双相情感障碍等等。\n 抑郁症和其他各类精神上的疾病不是患者的问题或者错误,也不是矫情或者敏感,也不说明患者与其他人有什么不同,他们只是生病了,需要进行治疗而已。此外,一次测试结果不能代表全部,我们希望你能持续地关注自己的心理健康状态,常来这里自测评估一下。最后,不管你有没有抑郁症或者其他疾病,都拍拍你,抱抱你,祝愿你接下来的生活光明灿烂!",
visible=True,
),
)
def final_advice(
radio1, radio2, radio3, radio4, radio5, radio6, text3_1, radio8, radio9, radio10
):
return gr.Textbox(
visible=True,
value=advice(
radio1,
radio2,
radio3,
radio4,
radio5,
radio6,
text3_1,
radio8,
radio9,
radio10,
),
)
def visibility(): # 让下一部分出现
return gr.Column(visible=True)
def visibility2(): # 让下一道选择题出现
return gr.Radio(visible=True)
def visibility3(): # 针对有标题切换的情况
return (
gr.Markdown(visible=True),
gr.Radio(visible=True),
)
def visibility4():
return gr.Markdown(visible=True)
def visibility_choice(choice): # 根据选择选项的不同决定下一道题是哪个
if choice == 0:
return gr.Column(visible=True), gr.Column(visible=False)
else:
return gr.Column(visible=False), gr.Column(visible=True)
def visibility_choice2(choice): # 选择视频,语音还是文本输入
if choice == 0:
return (
gr.Column(visible=True),
gr.Column(visible=False),
gr.Column(visible=False),
)
if choice == 1:
return (
gr.Column(visible=False),
gr.Column(visible=True),
gr.Column(visible=False),
)
else:
return (
gr.Column(visible=False),
gr.Column(visible=False),
gr.Column(visible=True),
)
def visibility_choice3(choice): # 根据选择选项的不同决定下一道题是哪个
if choice == "不好":
return (
gr.Radio(visible=True),
gr.Column(visible=False),
gr.Column(visible=False),
)
else:
return (
gr.Radio(visible=False),
gr.Column(visible=False),
gr.Column(visible=True),
)
def visibility_choice4(choice): # 根据选择选项的不同决定下一道题是哪个
if choice == 0:
return gr.Radio(visible=True), gr.Radio(visible=False)
else:
return gr.Radio(visible=False), gr.Radio(visible=True)
def keyword(
text,
): # 设置关于自杀倾向问题的触发词(你决定要不要加一个文本负向概率大于一定值的判定)
keywords = ["轻生", "自杀", "死", "活着", "意义", "意思", "干劲"]
for i in range(len(keywords)):
if keywords[i].find(text) != -1:
return True
return False
def visibility_choice5(text): # 关于自杀倾向问题是否触发
if keyword(text) is True:
return gr.Radio(visible=True), gr.Column(visible=False)
else:
return gr.Radio(visible=False), gr.Column(visible=True)
|