youngtsai commited on
Commit
b5c6a12
1 Parent(s): 2b5e430

socratic_mode_btn = gr.Checkbox(label="蘇格拉底家教助理模式", value=False)

Browse files
Files changed (1) hide show
  1. app.py +32 -15
app.py CHANGED
@@ -460,7 +460,7 @@ def get_video_id_summary(video_id, df_string):
460
  if not exists:
461
  summary = generate_summarise(df_string)
462
  # processed_summary = processed_video_summary_to_json(summary)
463
- summary_json = { "summary": str(summary) }
464
  summary_text = json.dumps(summary_json, ensure_ascii=False, indent=2)
465
 
466
  try:
@@ -618,27 +618,43 @@ def send_question(question, df_string_output, chat_history):
618
  # 当问题按钮被点击时调用此函数
619
  return respond(question, df_string_output, chat_history)
620
 
621
- def respond(user_message, df_string_output, chat_history):
622
  print("=== 變數:user_message ===")
623
  print(user_message)
624
  print("=== 變數:chat_history ===")
625
  print(chat_history)
626
 
627
- sys_content = f"""
628
- 你是一個擅長資料分析跟影片教學的老師,user 為學生
629
- 請用 {df_string_output} 為資料文本,自行判斷資料的種類,
630
- 並進行對話,使用 zh-TW
 
631
 
632
- 如果是影片類型,不用解釋逐字稿格式,直接回答學生問題
633
- 請你用蘇格拉底式的提問方式,引導學生思考,並且給予學生一些提示
634
- 不要直接給予答案,讓學生自己思考
635
- 但可以給予一些提示跟引導,例如給予影片的時間軸,讓學生自己去找答案
636
 
637
- 如果學生問了一些問題你無法判斷,請告訴學生你無法判斷,並建議學生可以問其他問題
638
- 或者你可以問學生一些問題,幫助學生更好的理解資料
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
639
 
640
- 如果學生的問題與資料文本無關,請告訴學生你無法回答超出範圍的問題
641
- """
642
  messages = [
643
  {"role": "system", "content": sys_content}
644
  ]
@@ -726,6 +742,7 @@ with gr.Blocks() as demo:
726
  file_upload = gr.File(label="Upload your CSV or Word file", visible=False)
727
  youtube_link = gr.Textbox(label="Enter YouTube Link")
728
  web_link = gr.Textbox(label="Enter Web Page Link", visible=False)
 
729
  chatbot = gr.Chatbot()
730
  msg = gr.Textbox(label="Message")
731
  send_button = gr.Button("Send")
@@ -755,7 +772,7 @@ with gr.Blocks() as demo:
755
 
756
  send_button.click(
757
  respond,
758
- inputs=[msg, df_string_output, chatbot],
759
  outputs=[msg, chatbot]
760
  )
761
  # 连接按钮点击事件
 
460
  if not exists:
461
  summary = generate_summarise(df_string)
462
  # processed_summary = processed_video_summary_to_json(summary)
463
+ summary_json = str(summary) ]
464
  summary_text = json.dumps(summary_json, ensure_ascii=False, indent=2)
465
 
466
  try:
 
618
  # 当问题按钮被点击时调用此函数
619
  return respond(question, df_string_output, chat_history)
620
 
621
+ def respond(user_message, df_string_output, chat_history, socratic_mode=False):
622
  print("=== 變數:user_message ===")
623
  print(user_message)
624
  print("=== 變數:chat_history ===")
625
  print(chat_history)
626
 
627
+ if socratic_mode:
628
+ sys_content = f"""
629
+ 你是一個擅長資料分析跟影片教學的老師,user 為學生
630
+ 請用 {df_string_output} 為資料文本,自行判斷資料的種類,
631
+ 並進行對話,使用 zh-TW
632
 
633
+ 如果是影片類型,不用解釋逐字稿格式,直接回答學生問題
634
+ 請你用蘇格拉底式的提問方式,引導學生思考,並且給予學生一些提示
635
+ 不要直接給予答案,讓學生自己思考
636
+ 但可以給予一些提示跟引導,例如給予影片的時間軸,讓學生自己去找答案
637
 
638
+ 如果學生問了一些問題你無法判斷,請告訴學生你無法判斷,並建議學生可以問其他問題
639
+ 或者你可以問學生一些問題,幫助學生更好的理解資料
640
+
641
+ 如果學生的問題與資料文本無關,請告訴學生你無法回答超出範圍的問題
642
+ """
643
+ else:
644
+ sys_content = f"""
645
+ 你是一個擅長資料分析跟影片教學的老師,user 為學生
646
+ 請用 {df_string_output} 為資料文本,自行判斷資料的種類,
647
+ 並進行對話,使用 zh-TW
648
+
649
+ 如果是影片類型,不用解釋逐字稿格式,直接回答學生問題
650
+ 但可以給予一些提示跟引導,例如給予影片的時間軸,讓學生可以找到相對應的時間點
651
+
652
+ 如果學生問了一些問題你無法判斷,請告訴學生你無法判斷,並建議學生可以問其他問題
653
+ 或者你可以問學生一些問題,幫助學生更好的理解資料
654
+
655
+ 如果學生的問題與資料文本無關,請告訴學生你無法回答超出範圍的問題
656
+ """
657
 
 
 
658
  messages = [
659
  {"role": "system", "content": sys_content}
660
  ]
 
742
  file_upload = gr.File(label="Upload your CSV or Word file", visible=False)
743
  youtube_link = gr.Textbox(label="Enter YouTube Link")
744
  web_link = gr.Textbox(label="Enter Web Page Link", visible=False)
745
+ socratic_mode_btn = gr.Checkbox(label="蘇格拉底家教助理模式", value=False)
746
  chatbot = gr.Chatbot()
747
  msg = gr.Textbox(label="Message")
748
  send_button = gr.Button("Send")
 
772
 
773
  send_button.click(
774
  respond,
775
+ inputs=[msg, df_string_output, chatbot, socratic_mode_btn],
776
  outputs=[msg, chatbot]
777
  )
778
  # 连接按钮点击事件