Lashtw commited on
Commit
841b2cd
·
verified ·
1 Parent(s): 981f127

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -49
app.py CHANGED
@@ -1,38 +1,38 @@
1
- import gradio as gr
 
2
 
3
- # Replace the CSV data loading with in-memory data
4
  data = [
5
- {"蛛絲馬跡": 1, "嫌疑犯": "5冰淇淋師傅", "直接證據": "SAS", "間接證據": "RHS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/5%E5%86%B0%E6%B7%87%E6%B7%8B%E5%B8%AB%E5%82%85.png"},
6
- {"蛛絲馬跡": 2, "嫌疑犯": "7候選人", "直接證據": "SSS", "間接證據": "SAS ASA AAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/7%E5%80%99%E9%81%B8%E4%BA%BA.png"},
7
- {"蛛絲馬跡": 3, "嫌疑犯": "8列車長", "直接證據": "SAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/8%E5%88%97%E8%BB%8A%E9%95%B7.png"},
8
- {"蛛絲馬跡": 4, "嫌疑犯": "2農夫", "直接證據": "SSS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/2%E8%BE%B2%E5%A4%AB.png"},
9
- {"蛛絲馬跡": 5, "嫌疑犯": "1漁夫", "直接證據": "RHS", "間接證據": "SAS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/1%E6%BC%81%E5%A4%AB.png"},
10
- {"蛛絲馬跡": 6, "嫌疑犯": "4廚師", "直接證據": "ASA", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/4%E5%BB%9A%E5%B8%AB.png"},
11
- {"蛛絲馬跡": 7, "嫌疑犯": "3女僕", "直接證據": "RHS", "間接證據": "SAS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/3%E5%A5%B3%E5%83%95.png"},
12
- {"蛛絲馬跡": 8, "嫌疑犯": "6棋士", "直接證據": "AAS", "間接證據": "ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/6%E6%A3%8B%E5%A3%AB.png"},
13
- {"蛛絲馬跡": 9, "嫌疑犯": "10芭蕾舞者", "直接證據": "SSS", "間接證據": "SAS AAS ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/10%E8%8A%AD%E8%95%BE%E8%88%9E%E8%80%85.png"},
14
- {"蛛絲馬跡": 10, "嫌疑犯": "9 DJ", "直接證據": "SAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/9_DJ.png"},
15
- {"蛛絲馬跡": 11, "嫌疑犯": "16造型師", "直接證據": "RHS", "間接證據": "SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/16%E9%80%A0%E5%9E%8B%E5%B8%AB.png"},
16
- {"蛛絲馬跡": 12, "嫌疑犯": "12教宗", "直接證據": "SSS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/12%E6%95%99%E5%AE%97.png"},
17
- {"蛛絲馬跡": 13, "嫌疑犯": "14音樂家", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/14%E9%9F%B3%E6%A8%82%E5%AE%B6.png"},
18
- {"蛛絲馬跡": 14, "嫌疑犯": "13軍人", "直接證據": "ASA", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/13%E8%BB%8D%E4%BA%BA.png"},
19
- {"蛛絲馬跡": 15, "嫌疑犯": "17和尚", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/17%E5%92%8C%E5%B0%9A.png"},
20
- {"蛛絲馬跡": 16, "嫌疑犯": "18歌手", "直接證據": "AAS", "間接證據": "ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/18%E6%AD%8C%E6%89%8B.png"},
21
- {"蛛絲馬跡": 17, "嫌疑犯": "11醫生", "直接證據": "SAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/11%E9%86%AB%E7%94%9F.png"},
22
- {"蛛絲馬跡": 18, "嫌疑犯": "15壽司師傅", "直接證據": "SAS", "間接證據": "AAS ASA SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/15%E5%A3%BD%E5%8F%B8%E5%B8%AB%E5%82%85.png"},
23
- {"蛛絲馬跡": 19, "嫌疑犯": "21郵差", "直接證據": "RHS", "間接證據": "SAS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/21%E9%83%B5%E5%B7%AE.png"},
24
- {"蛛絲馬跡": 20, "嫌疑犯": "19籃球員", "直接證據": "RHS", "間接證據": "SSS SAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/19%E8%97%8D%E7%90%83%E5%93%A1.png"},
25
- {"蛛絲馬跡": 21, "嫌疑犯": "22法官", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/22%E6%B3%95%E5%AE%98.png"},
26
- {"蛛絲馬跡": 22, "嫌疑犯": "20漫畫家", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/20%E6%BC%AB%E7%95%AB%E5%AE%B6.png"},
27
- {"蛛絲馬跡": 23, "嫌疑犯": "25殺手", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/25%E6%AE%BA%E6%89%8B.png"},
28
- {"蛛絲馬跡": 24, "嫌疑犯": "28科學家", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/28%E7%A7%91%E5%AD%B8%E5%AE%B6.png"},
29
- {"蛛絲馬跡": 25, "嫌疑犯": "27太空人", "直接證據": "SSS", "間接證據": "ASA AAS RHS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/27%E5%A4%AA%E7%A9%BA%E4%BA%BA.png"},
30
- {"蛛絲馬跡": 26, "嫌疑犯": "23酒保", "直接證據": "AAS", "間接證據": "ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/23%E9%85%92%E4%BF%9D.png"},
31
- {"蛛絲馬跡": 27, "嫌疑犯": "24魔術師", "直接證據": "ASA", "間接證據": "AAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/24%E9%AD%94%E8%A1%93%E5%B8%AB.png"},
32
- {"蛛絲馬跡": 28, "嫌疑犯": "26保全", "直接證據": "ASA", "間接證據": "AAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/blob/main/26%E4%BF%9D%E5%85%A8.png"}
33
  ]
34
 
35
- # To store the indirect evidence dynamically
36
  indirect_evidence_store = ""
37
 
38
  def query_data(clue_number):
@@ -43,13 +43,16 @@ def query_data(clue_number):
43
  if row:
44
  suspect = row['嫌疑犯']
45
  direct_evidence = row['直接證據']
46
- indirect_evidence_store = row['間接證據'] if row['間接證據'] else "無間接證據"
47
- image_url = row['嫌疑犯圖片'] if row['嫌疑犯圖片'] else None
 
 
 
48
  return (
49
  f"嫌疑犯: {suspect}\n直接證據: {direct_evidence}",
50
  gr.update(visible=True),
51
  gr.update(value="", visible=False),
52
- image_url if image_url else None
53
  )
54
  else:
55
  return (
@@ -81,26 +84,24 @@ def reset_fields():
81
  None
82
  )
83
 
84
- # Create the Gradio interface
85
  with gr.Blocks() as demo:
86
  gr.Markdown("<h1>嫌疑犯ABC的現身</h1>")
87
  gr.Markdown("<h3>法官系統</h3>")
88
 
89
  with gr.Row():
90
  input_box = gr.Textbox(label="請輸入蛛絲馬跡號碼", placeholder="例如: 11", lines=1)
91
- query_button = gr.Button("查詢")
92
 
93
  with gr.Row():
94
  with gr.Column(scale=1):
95
  output_box = gr.Textbox(label="查詢結果", interactive=False)
96
  with gr.Column(scale=1):
97
- image_output = gr.Image(label="嫌疑犯圖片", visible=True, elem_id="suspect-image")
98
-
99
- indirect_button = gr.Button("間接證據", visible=False)
100
  indirect_output = gr.Textbox(label="間接證據內容", interactive=False, visible=False)
101
- reset_button = gr.Button("重新查詢")
102
 
103
- # Bind actions to functions
104
  query_button.click(
105
  query_data,
106
  inputs=input_box,
@@ -117,13 +118,13 @@ with gr.Blocks() as demo:
117
  outputs=[input_box, indirect_button, indirect_output, output_box, image_output]
118
  )
119
 
120
- # Add inline CSS to adjust image size
121
- demo.css = """
122
- #suspect-image img {
123
- max-width: 150px;
124
- max-height: 150px;
125
- }
126
- """
 
127
 
128
- # Launch the Gradio app
129
  demo.launch()
 
1
+ iimport gradio as gr
2
+ import time # 新增 time 模組處理快取
3
 
4
+ # 使用正確的圖片路徑格式
5
  data = [
6
+ {"蛛絲馬跡": 1, "嫌疑犯": "5冰淇淋師傅", "直接證據": "SAS", "間接證據": "RHS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/5%E5%86%B0%E6%B7%87%E6%B7%8B%E5%B8%AB%E5%82%85.png"},
7
+ {"蛛絲馬跡": 2, "嫌疑犯": "7候選人", "直接證據": "SSS", "間接證據": "SAS ASA AAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/7%E5%80%99%E9%81%B8%E4%BA%BA.png"},
8
+ {"蛛絲馬跡": 3, "嫌疑犯": "8列車長", "直接證據": "SAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/8%E5%88%97%E8%BB%8A%E9%95%B7.png"},
9
+ {"蛛絲馬跡": 4, "嫌疑犯": "2農夫", "直接證據": "SSS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/2%E8%BE%B2%E5%A4%AB.png"},
10
+ {"蛛絲馬跡": 5, "嫌疑犯": "1漁夫", "直接證據": "RHS", "間接證據": "SAS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/1%E6%BC%81%E5%A4%AB.png"},
11
+ {"蛛絲馬跡": 6, "嫌疑犯": "4廚師", "直接證據": "ASA", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/4%E5%BB%9A%E5%B8%AB.png"},
12
+ {"蛛絲馬跡": 7, "嫌疑犯": "3女僕", "直接證據": "RHS", "間接證據": "SAS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/3%E5%A5%B3%E5%83%95.png"},
13
+ {"蛛絲馬跡": 8, "嫌疑犯": "6棋士", "直接證據": "AAS", "間接證據": "ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/6%E6%A3%8B%E5%A3%AB.png"},
14
+ {"蛛絲馬跡": 9, "嫌疑犯": "10芭蕾舞者", "直接證據": "SSS", "間接證據": "SAS AAS ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/10%E8%8A%AD%E8%95%BE%E8%88%9E%E8%80%85.png"},
15
+ {"蛛絲馬跡": 10, "嫌疑犯": "9 DJ", "直接證據": "SAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/9_DJ.png"},
16
+ {"蛛絲馬跡": 11, "嫌疑犯": "16造型師", "直接證據": "RHS", "間接證據": "SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/16%E9%80%A0%E5%9E%8B%E5%B8%AB.png"},
17
+ {"蛛絲馬跡": 12, "嫌疑犯": "12教宗", "直接證據": "SSS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/12%E6%95%99%E5%AE%97.png"},
18
+ {"蛛絲馬跡": 13, "嫌疑犯": "14音樂家", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/14%E9%9F%B3%E6%A8%82%E5%AE%B6.png"},
19
+ {"蛛絲馬跡": 14, "嫌疑犯": "13軍人", "直接證據": "ASA", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/13%E8%BB%8D%E4%BA%BA.png"},
20
+ {"蛛絲馬跡": 15, "嫌疑犯": "17和尚", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/17%E5%92%8C%E5%B0%9A.png"},
21
+ {"蛛絲馬跡": 16, "嫌疑犯": "18歌手", "直接證據": "AAS", "間接證據": "ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/18%E6%AD%8C%E6%89%8B.png"},
22
+ {"蛛絲馬跡": 17, "嫌疑犯": "11醫生", "直接證據": "SAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/11%E9%86%AB%E7%94%9F.png"},
23
+ {"蛛絲馬跡": 18, "嫌疑犯": "15壽司師傅", "直接證據": "SAS", "間接證據": "AAS ASA SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/15%E5%A3%BD%E5%8F%B8%E5%B8%AB%E5%82%85.png"},
24
+ {"蛛絲馬跡": 19, "嫌疑犯": "21郵差", "直接證據": "RHS", "間接證據": "SAS SSS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/21%E9%83%B5%E5%B7%AE.png"},
25
+ {"蛛絲馬跡": 20, "嫌疑犯": "19籃球員", "直接證據": "RHS", "間接證據": "SSS SAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/19%E8%97%8D%E7%90%83%E5%93%A1.png"},
26
+ {"蛛絲馬跡": 21, "嫌疑犯": "22法官", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/22%E6%B3%95%E5%AE%98.png"},
27
+ {"蛛絲馬跡": 22, "嫌疑犯": "20漫畫家", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/20%E6%BC%AB%E7%95%AB%E5%AE%B6.png"},
28
+ {"蛛絲馬跡": 23, "嫌疑犯": "25殺手", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/25%E6%AE%BA%E6%89%8B.png"},
29
+ {"蛛絲馬跡": 24, "嫌疑犯": "28科學家", "直接證據": "ASA AAS", "間接證據": "無", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/28%E7%A7%91%E5%AD%B8%E5%AE%B6.png"},
30
+ {"蛛絲馬跡": 25, "嫌疑犯": "27太空人", "直接證據": "SSS", "間接證據": "ASA AAS RHS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/27%E5%A4%AA%E7%A9%BA%E4%BA%BA.png"},
31
+ {"蛛絲馬跡": 26, "嫌疑犯": "23酒保", "直接證據": "AAS", "間接證據": "ASA", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/23%E9%85%92%E4%BF%9D.png"},
32
+ {"蛛絲馬跡": 27, "嫌疑犯": "24魔術師", "直接證據": "ASA", "間接證據": "AAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/24%E9%AD%94%E8%A1%93%E5%B8%AB.png"},
33
+ {"蛛絲馬跡": 28, "嫌疑犯": "26保全", "直接證據": "ASA", "間接證據": "AAS", "嫌疑犯圖片": "https://huggingface.co/spaces/Lashtw/Judge_system/resolve/main/26%E4%BF%9D%E5%85%A8.png"}
34
  ]
35
 
 
36
  indirect_evidence_store = ""
37
 
38
  def query_data(clue_number):
 
43
  if row:
44
  suspect = row['嫌疑犯']
45
  direct_evidence = row['直接證據']
46
+ indirect_evidence_store = row['間接證據'] if row['間接證據'] != "無" else "無間接證據"
47
+
48
+ # 加入時間戳記處理快取問題
49
+ image_url = f"{row['嫌疑犯圖片']}?{int(time.time())}" if row['嫌疑犯圖片'] else None
50
+
51
  return (
52
  f"嫌疑犯: {suspect}\n直接證據: {direct_evidence}",
53
  gr.update(visible=True),
54
  gr.update(value="", visible=False),
55
+ image_url
56
  )
57
  else:
58
  return (
 
84
  None
85
  )
86
 
 
87
  with gr.Blocks() as demo:
88
  gr.Markdown("<h1>嫌疑犯ABC的現身</h1>")
89
  gr.Markdown("<h3>法官系統</h3>")
90
 
91
  with gr.Row():
92
  input_box = gr.Textbox(label="請輸入蛛絲馬跡號碼", placeholder="例如: 11", lines=1)
93
+ query_button = gr.Button("查詢", variant="primary")
94
 
95
  with gr.Row():
96
  with gr.Column(scale=1):
97
  output_box = gr.Textbox(label="查詢結果", interactive=False)
98
  with gr.Column(scale=1):
99
+ image_output = gr.Image(label="嫌疑犯圖片", elem_id="suspect-image", show_label=True)
100
+
101
+ indirect_button = gr.Button("顯示間接證據", visible=False)
102
  indirect_output = gr.Textbox(label="間接證據內容", interactive=False, visible=False)
103
+ reset_button = gr.Button("重新查詢", variant="secondary")
104
 
 
105
  query_button.click(
106
  query_data,
107
  inputs=input_box,
 
118
  outputs=[input_box, indirect_button, indirect_output, output_box, image_output]
119
  )
120
 
121
+ demo.css = """
122
+ #suspect-image {
123
+ max-width: 250px !important;
124
+ max-height: 250px !important;
125
+ border: 2px solid #e0e0e0;
126
+ border-radius: 8px;
127
+ }
128
+ """
129
 
 
130
  demo.launch()