dayuian commited on
Commit
792e10f
·
verified ·
1 Parent(s): c63812d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -14
app.py CHANGED
@@ -27,22 +27,37 @@ def process_sentence(mode, word, source, num, use_ai, model_name):
27
  except Exception as e:
28
  return f"<p style='color:red;'>❌ 發生錯誤:{str(e)}</p>", f"錯誤:{str(e)}"
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  with gr.Blocks(css="""
31
  #card-group { padding: 15px; border-radius: 12px; background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); margin-bottom: 15px; }
32
  .gradio-container { max-width: 800px; margin: auto; }
33
  #generate-button.ai-active { background-color: #ff9800 !important; color: white !important; }
34
  """) as demo:
35
- gr.Markdown(
36
- """
37
- # 📖 VocabLine 單字例句工具
38
- 支援單字例句查詢,AI 自動生成句子。適合作為 LINE 單字推播、英文學習輔助工具。
39
-
40
- ## 👨‍💻 開發者資訊
41
- - 開發者:余彦志 (大宇 ian)
42
- - 信箱:[email protected]
43
- - GitHub:[https://github.com/dayuian](https://github.com/dayuian)
44
- """
45
- )
46
 
47
  with gr.Group():
48
  with gr.Row():
@@ -71,9 +86,9 @@ with gr.Blocks(css="""
71
  label="選擇 AI 模型",
72
  visible=False
73
  )
 
74
 
75
  generate_button = gr.Button("✨ 生成句子", elem_id="generate-button")
76
- gr.Markdown("⚠️ 若使用 AI 生成句子,生成過程可能需要 30 秒以上,請耐心等待。")
77
 
78
  result_output = gr.HTML(label="結果")
79
  status_output = gr.Textbox(label="處理狀態", interactive=False)
@@ -92,6 +107,7 @@ with gr.Blocks(css="""
92
 
93
  def toggle_ai_button(use_ai):
94
  model_visibility = gr.update(visible=use_ai)
 
95
  js_toggle_class = f"""
96
  function toggleButtonClass() {{
97
  const btn = document.getElementById('generate-button');
@@ -103,12 +119,12 @@ with gr.Blocks(css="""
103
  }}
104
  toggleButtonClass();
105
  """
106
- return model_visibility, gr.update(_js=js_toggle_class)
107
 
108
  use_ai_checkbox.change(
109
  toggle_ai_button,
110
  inputs=[use_ai_checkbox],
111
- outputs=[model_dropdown, generate_button]
112
  )
113
 
114
  generate_button.click(
 
27
  except Exception as e:
28
  return f"<p style='color:red;'>❌ 發生錯誤:{str(e)}</p>", f"錯誤:{str(e)}"
29
 
30
+ def project_description():
31
+ return """
32
+ # 📖 VocabLine 單字例句工具
33
+ 支援單字例句查詢,AI 自動生成句子。適合作為 LINE 單字推播、英文學習輔助工具。
34
+
35
+ ## 🔍 核心功能
36
+ - 查詢單字 → 獲取例句
37
+ - 抽取單字 → 批量獲取例句
38
+ - 可選 AI 生成句子(模型:GPT2 / Pythia)
39
+
40
+ ## 🧑‍💻 技術架構
41
+ - Gradio Blocks + Transformers (Hugging Face)
42
+ - SQLite 句庫管理
43
+ - 支援多單字庫擴展
44
+
45
+ ## 📚 資料來源
46
+ - 常用 3000 單字表
47
+ - 英文例句資料庫 (Tatoeba)
48
+
49
+ ## 👨‍💻 開發資訊
50
+ - 開發者:余彦志 (大宇 ian)
51
+ - 信箱:[email protected]
52
+ - GitHub:[https://github.com/dayuian](https://github.com/dayuian)
53
+ """
54
+
55
  with gr.Blocks(css="""
56
  #card-group { padding: 15px; border-radius: 12px; background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); margin-bottom: 15px; }
57
  .gradio-container { max-width: 800px; margin: auto; }
58
  #generate-button.ai-active { background-color: #ff9800 !important; color: white !important; }
59
  """) as demo:
60
+ gr.Markdown(project_description())
 
 
 
 
 
 
 
 
 
 
61
 
62
  with gr.Group():
63
  with gr.Row():
 
86
  label="選擇 AI 模型",
87
  visible=False
88
  )
89
+ ai_warning = gr.Markdown("⚠️ 若使用 AI 生成句子,生成過程可能需要 30 秒以上,請耐心等待。", visible=False)
90
 
91
  generate_button = gr.Button("✨ 生成句子", elem_id="generate-button")
 
92
 
93
  result_output = gr.HTML(label="結果")
94
  status_output = gr.Textbox(label="處理狀態", interactive=False)
 
107
 
108
  def toggle_ai_button(use_ai):
109
  model_visibility = gr.update(visible=use_ai)
110
+ warning_visibility = gr.update(visible=use_ai)
111
  js_toggle_class = f"""
112
  function toggleButtonClass() {{
113
  const btn = document.getElementById('generate-button');
 
119
  }}
120
  toggleButtonClass();
121
  """
122
+ return model_visibility, gr.update(_js=js_toggle_class), warning_visibility
123
 
124
  use_ai_checkbox.change(
125
  toggle_ai_button,
126
  inputs=[use_ai_checkbox],
127
+ outputs=[model_dropdown, generate_button, ai_warning]
128
  )
129
 
130
  generate_button.click(