MonicaChen0330 commited on
Commit
a591cb1
·
verified ·
1 Parent(s): 803445b

add: faq update

Browse files
Files changed (1) hide show
  1. app.py +22 -19
app.py CHANGED
@@ -57,27 +57,29 @@ def log_to_google_sheet(question, answer, contexts, scores):
57
  except Exception as e:
58
  print("寫入 Google Sheet 失敗:", str(e))
59
 
60
- def fetch_announcement_from_sheet():
61
- DEFAULT_MESSAGE = "尚無公告"
 
 
62
  try:
63
  url = os.environ.get("ANNOUNCEMENT_URL")
64
  if not url:
65
- print("Warning: 環境變數 'ANNOUNCEMENT_URL' 未設定")
66
- return DEFAULT_MESSAGE
67
 
68
  df = pd.read_csv(url)
69
 
70
- if "Announcement" not in df.columns:
71
- print("Error: CSV 檔案中無 'Announcement' 欄位")
72
- return DEFAULT_MESSAGE
 
 
73
 
74
- content = str(df["Announcement"].iloc[0]).strip()
75
- content = content.replace("\\n", "<br>").replace("\n", "<br>")
76
- return content if content else DEFAULT_MESSAGE
77
 
78
  except Exception as e:
79
- print(f"Error: 載入公告失敗:{e}")
80
- return DEFAULT_MESSAGE
81
 
82
 
83
  def validate_openai_key(api_key):
@@ -288,7 +290,6 @@ with gr.Blocks() as demo:
288
  ### 📢 系統公告
289
  """)
290
  announcement_display = gr.Markdown()
291
- demo.load(fn=fetch_announcement_from_sheet, inputs=[], outputs=announcement_display)
292
 
293
  file_input = gr.File(label="上傳 Evaluation_Dataset.csv")
294
  api_key_input = gr.Textbox(label="OpenAI API Key", type="password")
@@ -297,15 +298,17 @@ with gr.Blocks() as demo:
297
  result_output = gr.Dataframe(label="評估結果")
298
  download_link = gr.File(label="下載評估結果(CSV)")
299
 
300
- # 常見QA文字
301
  gr.Markdown("""
302
  ---
303
- ### ❓ 常見問題 & 解答
304
-
305
- **Q: 什麼是「指令集」?**
306
- A: 「指令集」是我們用來描述老師在課堂上所設計的各種學習活動操作流程。在與教學系統互動時,老師通常會透過一系列結構化的指令來引導學生完成任務,因此我們將這些可重複使用的操作流程統稱為「指令集」。
307
- 指令集也如同RESTful API一樣,我們有先盡力的與老師們溝通他們的需求,不過這些需求都只能視為一個草案,最終仍需要仰賴得標業者與老師們收斂,並且確定最終的版本來加以實作。
308
  """)
 
 
 
 
 
 
309
 
310
  def wrapped_fn(file, key):
311
  return RAG_evaluation(file, key)
 
57
  except Exception as e:
58
  print("寫入 Google Sheet 失敗:", str(e))
59
 
60
+ def fetch_sheet_content():
61
+ DEFAULT_ANNOUNCEMENT = "尚無公告"
62
+ DEFAULT_FAQ = "尚無常見問題"
63
+
64
  try:
65
  url = os.environ.get("ANNOUNCEMENT_URL")
66
  if not url:
67
+ print("Warning: 未設定 ANNOUNCEMENT_URL")
68
+ return DEFAULT_ANNOUNCEMENT, DEFAULT_FAQ
69
 
70
  df = pd.read_csv(url)
71
 
72
+ announcement = df["Announcement"].iloc[0].strip() if "Announcement" in df.columns else DEFAULT_ANNOUNCEMENT
73
+ faq = df["FAQ"].iloc[0].strip() if "FAQ" in df.columns else DEFAULT_FAQ
74
+
75
+ announcement = announcement.replace("\\n", "<br>").replace("\n", "<br>")
76
+ faq = faq.replace("\\n", "<br>").replace("\n", "<br>")
77
 
78
+ return announcement or DEFAULT_ANNOUNCEMENT, faq or DEFAULT_FAQ
 
 
79
 
80
  except Exception as e:
81
+ print("載入 Sheet 錯誤:", e)
82
+ return DEFAULT_ANNOUNCEMENT, DEFAULT_FAQ
83
 
84
 
85
  def validate_openai_key(api_key):
 
290
  ### 📢 系統公告
291
  """)
292
  announcement_display = gr.Markdown()
 
293
 
294
  file_input = gr.File(label="上傳 Evaluation_Dataset.csv")
295
  api_key_input = gr.Textbox(label="OpenAI API Key", type="password")
 
298
  result_output = gr.Dataframe(label="評估結果")
299
  download_link = gr.File(label="下載評估結果(CSV)")
300
 
301
+ # 常見QA
302
  gr.Markdown("""
303
  ---
304
+ ### ❓ 常見問題 & 解答
 
 
 
 
305
  """)
306
+ faq_display = gr.Markdown()
307
+
308
+ # 載入公告與 FAQ
309
+ def load_sheet():
310
+ return fetch_sheet_content()
311
+ demo.load(fn=load_sheet, inputs=[], outputs=[announcement_display, faq_display])
312
 
313
  def wrapped_fn(file, key):
314
  return RAG_evaluation(file, key)