EduTechTeam commited on
Commit
8275bff
·
verified ·
1 Parent(s): 570f054

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -13
app.py CHANGED
@@ -2,8 +2,8 @@ import requests
2
  import json
3
  import gradio as gr
4
 
5
- def calculate1(course_input, course_profile, course_hour):
6
- url = "https://ai-knowledge-navigator.onrender.com/process"
7
 
8
  headers = {
9
  "Content-Type": "application/json"
@@ -21,26 +21,27 @@ def calculate1(course_input, course_profile, course_hour):
21
  if response.status_code == 200:
22
  try:
23
  response_json = response.json()
24
- # 解析回傳結果
25
  success = response_json.get("success", False)
26
  title = response_json.get("title", "未知課程")
27
- competencies = response_json.get("competencies", ["未能成功匹配"])
 
28
 
29
  if success:
30
- return f"課程 '{title}' 職能匹配成功!", ", ".join(competencies)
 
31
  else:
32
- return "匹配失敗,請稍後再試", "無職能項目"
33
 
34
  except json.JSONDecodeError:
35
- return "錯誤: 伺服器回應非 JSON 格式", "無職能項目"
36
 
37
  else:
38
- return f"錯誤: 伺服器返回 HTTP {response.status_code}", "無職能項目"
39
 
40
  except requests.exceptions.Timeout:
41
- return "錯誤: 伺服器回應超時", "無職能項目"
42
  except requests.exceptions.RequestException as e:
43
- return f"請求失敗: {str(e)}", "無職能項目"
44
 
45
  def setup_gradio_interface():
46
  with gr.Blocks() as demo:
@@ -54,12 +55,13 @@ def setup_gradio_interface():
54
  with gr.Row():
55
  txt_response = gr.Textbox(label="計算狀態", placeholder="計算結果")
56
  course_competencies = gr.Textbox(label="職能項目", placeholder="職能項目")
57
-
 
58
  # 修正 inputs 和 outputs
59
  submit_button.click(
60
- calculate1,
61
  inputs=[course_input, course_profile, course_hour],
62
- outputs=[txt_response, course_competencies]
63
  )
64
 
65
  return demo
 
2
  import json
3
  import gradio as gr
4
 
5
+ def calculate(course_input, course_profile, course_hour):
6
+ url = "https://rd-ai-knowledge-navigator.onrender.com/process"
7
 
8
  headers = {
9
  "Content-Type": "application/json"
 
21
  if response.status_code == 200:
22
  try:
23
  response_json = response.json()
 
24
  success = response_json.get("success", False)
25
  title = response_json.get("title", "未知課程")
26
+ top_competencies = response_json.get("top_competencies", [])
27
+ competencies = response_json.get("competencies", [])
28
 
29
  if success:
30
+ competencies_list = [f"{item['item']} ({item['score']})" for item in competencies]
31
+ return (f"課程 '{title}' 職能匹配成功!", top_competencies, "\n".join(competencies_list))
32
  else:
33
+ return "匹配失敗,請稍後再試", "無職能項目", "無職能項目"
34
 
35
  except json.JSONDecodeError:
36
+ return "錯誤: 伺服器回應非 JSON 格式", "無職能項目", "無職能項目"
37
 
38
  else:
39
+ return f"錯誤: 伺服器返回 HTTP {response.status_code}", "無職能項目", "無職能項目"
40
 
41
  except requests.exceptions.Timeout:
42
+ return "錯誤: 伺服器回應超時", "無職能項目", "無職能項目"
43
  except requests.exceptions.RequestException as e:
44
+ return f"請求失敗: {str(e)}", "無職能項目", "無職能項目"
45
 
46
  def setup_gradio_interface():
47
  with gr.Blocks() as demo:
 
55
  with gr.Row():
56
  txt_response = gr.Textbox(label="計算狀態", placeholder="計算結果")
57
  course_competencies = gr.Textbox(label="職能項目", placeholder="職能項目")
58
+ with gr.Row():
59
+ json_competencies = gr.Textbox(label="JSON內容", placeholder="職能項目")
60
  # 修正 inputs 和 outputs
61
  submit_button.click(
62
+ calculate,
63
  inputs=[course_input, course_profile, course_hour],
64
+ outputs=[txt_response, course_competencies, json_competencies]
65
  )
66
 
67
  return demo