cwadayi commited on
Commit
173d3a0
·
verified ·
1 Parent(s): 411b84b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -20
app.py CHANGED
@@ -6,7 +6,7 @@ def generate_tutorial_step(step):
6
  return """
7
  ## 🚀 你的任務:成為一名星際遠端開發者!
8
 
9
- 歡迎來到艦長訓練模擬器!在這個教學中,你將扮演一名坐在地球指揮艙(Windows 電腦)的艦長,遠端駕駛一台駐紮在火星基地、性能超群的「泰坦號」機甲(Mac Studio)。
10
 
11
  **你的目標:** 在不離開舒適駕駛艙的情況下,為「泰坦號」安裝一個特製的「任務模組」(Dev Container),讓它能夠執行複雜的開發任務。
12
 
@@ -16,6 +16,14 @@ def generate_tutorial_step(step):
16
  * **🛰️ 量子通訊頻道 (SSH):** 連接你和機甲的超光速安全通道。
17
  * **📦 任務模組 (Dev Container):** 一個自給自足的隔離環境,內含任務所需的一切工具和零件,可隨時安裝或卸除,不影響機甲本體。
18
 
 
 
 
 
 
 
 
 
19
  準備好了嗎,艦長?請從下拉選單中選擇你的第一個訓練科目!
20
  """
21
  elif step == "第 1 步:啟動泰坦號主機 (Mac Studio)":
@@ -122,6 +130,9 @@ with gr.Blocks(theme=gr.themes.Soft(), title="星際開發者訓練模擬器") a
122
  )
123
  tutorial_output = gr.Markdown()
124
  step_selector.change(fn=generate_tutorial_step, inputs=step_selector, outputs=tutorial_output)
 
 
 
125
 
126
  with gr.TabItem("🛰️ 實際任務案例", id=1):
127
  gr.Markdown("理論學習完畢,來看看「泰坦號」機甲在真實的星際任務中能發揮什麼作用。")
@@ -131,29 +142,27 @@ with gr.Blocks(theme=gr.themes.Soft(), title="星際開發者訓練模擬器") a
131
  """
132
  ### 任務情境:建構台灣地震 AI 分析與預警系統原型
133
 
 
 
 
 
 
 
 
134
  **挑戰:**
135
- 台灣位於環太平洋地震帶,開發更快速、更準確的地震預警系統至關重要。這項研究需要處理大量的即時地震波形資料,並訓練 AI 模型來預測 P 波到達時間與地震規模。這個過程有三大挑戰:
136
  1. **環境複雜:** 地震科學研究需要用到 `Obspy`, `Scipy`, `Pandas` 等大量科學計算庫,版本之間互相依賴,在本機上設定非常耗時且容易出錯。
137
  2. **運算密集:** 處理原始地震波資料(濾波、去噪)和訓練深度學習模型(如 CNN)需要強大的 CPU 和 GPU 運算能力。
138
  3. **研究再現性:** 確保研究團隊的每個人,甚至未來的自己,都能重現完全相同的實驗結果,這在科學研究中至關重要。
139
 
140
  **解決方案:**
141
- 1. **建立「地震分析任務模組」(Dev Container):**
142
- * `.devcontainer/Dockerfile` 中,精確地定義作業系統、Python 版本,並安裝**特定版本**的 `Obspy`, `TensorFlow-Metal` (Apple Silicon GPU 加速版), `Jupyter Lab` 等所有工具。
143
- * **成果:** 團隊任何人(無論用 Windows/Mac)只需一鍵「Reopen in Container」,就能獲得一個完全一致、立即可用的地震科學研究環境,徹底解決了環境設定與研究再現性的問題。
144
-
145
- 2. **利用「泰坦號」(Mac Studio) 的超性能核心:**
146
- * **CPU 核心** 用於高速處理 P-Alert 等來源的即時地震波資料。
147
- * **強大的 GPU/神經網路核心** 透過 `TensorFlow-Metal` 加速 AI 模型的訓練過程,大幅縮短了模型迭代的時間。
148
- * **龐大的統一記憶體** 讓載入和處理大型歷史地震資料集時不會有效能瓶頸。
149
-
150
- 3. **艦長 (研究員) 的工作流程:**
151
- * 科學家在他舒適的 Windows 駕駛艙中,透過 VS Code SSH 連線到「泰坦號」。
152
- * 進入「地震分析任務模組」,並在裡面啟動 Jupyter Lab 服務。
153
- * 透過 Port Forwarding,在 Windows 的瀏覽器上打開 Jupyter Notebook,撰寫程式碼、繪製圖表,並提交一個需要運行數小時的模型訓練任務。
154
- * 任務在遠端的「泰坦號」上全力運行,科學家自己的 Windows 電腦資源完全不受影響,可以繼續撰寫論文或進行其他工作。
155
-
156
- **最終成果:** 打造了一個高效、穩定且可重現的地震科學研究工作流程,讓科學家能專注於演算法和模型本身,而不是耗費心力在處理軟硬體環境問題上。這是開發下一代地震預警系統原型的絕佳基礎。
157
  """
158
  )
159
  with gr.TabItem("📱 案例二:跨平台 App 開發", id=3):
@@ -216,8 +225,11 @@ with gr.Blocks(theme=gr.themes.Soft(), title="星際開發者訓練模擬器") a
216
  quiz_feedback = gr.Markdown()
217
  quiz_question.change(fn=check_quiz_answer, inputs=quiz_question, outputs=quiz_feedback)
218
 
219
- # 應用啟動時,預先載入教學第一頁
220
- demo.load(fn=generate_tutorial_step, inputs=step_selector, outputs=tutorial_output)
 
 
221
 
222
  if __name__ == "__main__":
223
  demo.launch()
 
 
6
  return """
7
  ## 🚀 你的任務:成為一名星際遠端開發者!
8
 
9
+ 這是一個專為星際開發者準備的模擬訓練。你將扮演一名坐在地球指揮艙(Windows 電腦)的艦長,遠端駕駛一台駐紮在火星基地、性能超群的「泰坦號」機甲(Mac Studio)。
10
 
11
  **你的目標:** 在不離開舒適駕駛艙的情況下,為「泰坦號」安裝一個特製的「任務模組」(Dev Container),讓它能夠執行複雜的開發任務。
12
 
 
16
  * **🛰️ 量子通訊頻道 (SSH):** 連接你和機甲的超光速安全通道。
17
  * **📦 任務模組 (Dev Container):** 一個自給自足的隔離環境,內含任務所需的一切工具和零件,可隨時安裝或卸除,不影響機甲本體。
18
 
19
+ ---
20
+ **星際開發者,準備就緒!**
21
+
22
+ """ + """
23
+ <p align="center">
24
+ <img src="file/galaxy.jpg" alt="星際開發者封面圖" style="width:100%; max-width: 800px; border-radius: 8px;">
25
+ </p>
26
+ """ + """
27
  準備好了嗎,艦長?請從下拉選單中選擇你的第一個訓練科目!
28
  """
29
  elif step == "第 1 步:啟動泰坦號主機 (Mac Studio)":
 
130
  )
131
  tutorial_output = gr.Markdown()
132
  step_selector.change(fn=generate_tutorial_step, inputs=step_selector, outputs=tutorial_output)
133
+ # 在應用啟動時,也讓介紹頁顯示圖片
134
+ demo.load(fn=generate_tutorial_step, inputs=step_selector, outputs=tutorial_output, queue=False)
135
+
136
 
137
  with gr.TabItem("🛰️ 實際任務案例", id=1):
138
  gr.Markdown("理論學習完畢,來看看「泰坦號」機甲在真實的星際任務中能發揮什麼作用。")
 
142
  """
143
  ### 任務情境:建構台灣地震 AI 分析與預警系統原型
144
 
145
+ 台灣位於環太平洋地震帶,開發更快速、更準確的地震預警系統至關重要。這項研究需要處理大量的即時地震波形資料,並訓練 AI 模型來預測 P 波到達時間與地震規模。
146
+
147
+ """ + """
148
+ <p align="center">
149
+ <img src="file/seismic.jpg" alt="地震科學封面圖" style="width:100%; max-width: 800px; border-radius: 8px;">
150
+ </p>
151
+ """ + """
152
  **挑戰:**
 
153
  1. **環境複雜:** 地震科學研究需要用到 `Obspy`, `Scipy`, `Pandas` 等大量科學計算庫,版本之間互相依賴,在本機上設定非常耗時且容易出錯。
154
  2. **運算密集:** 處理原始地震波資料(濾波、去噪)和訓練深度學習模型(如 CNN)需要強大的 CPU 和 GPU 運算能力。
155
  3. **研究再現性:** 確保研究團隊的每個人,甚至未來的自己,都能重現完全相同的實驗結果,這在科學研究中至關重要。
156
 
157
  **解決方案:**
158
+ 1. **建立「地震分析任務模組」(Dev Container):** 精確地定義作業系統、Python 版本,並安裝**特定版本**的 `Obspy`, `TensorFlow-Metal` (Apple Silicon GPU 加速版), `Jupyter Lab` 等所有工具。
159
+ * **成果:** 團隊任何人(無論用 Windows/Mac)只需一鍵「Reopen in Container」,就能獲得一個完全一致、立即可用的地震科學研究環境。
160
+
161
+ 2. **利用「泰坦號」(Mac Studio) 的超性能核心:** 強大的 CPU 用於高速處理 P-Alert 等來源的即時地震波資料;GPU/神經網路核心透過 `TensorFlow-Metal` 加速 AI 模型的訓練過程;龐大的統一記憶體讓載入大型歷史地震資料集時不會有效能瓶頸。
162
+
163
+ 3. **艦長 (研究員) 的工作流程:** 科學家在他的 Windows 駕駛艙中,透過 VS Code SSH 連線到「泰坦號」,進入「地震分析任務模組」,並在裡面啟動 Jupyter Lab 服務。所有運算都在遠端的「泰坦號」上全力運行,科學家自己的 Windows 電腦資源完全不受影響。
164
+
165
+ **最終成果:** 打造了一個高效、穩定且可重現的地震科學研究工作流程,讓科學家能專注於演算法和模型本身,這是開發下一代地震預警系統原型的絕佳基礎。
 
 
 
 
 
 
 
 
166
  """
167
  )
168
  with gr.TabItem("📱 案例二:跨平台 App 開發", id=3):
 
225
  quiz_feedback = gr.Markdown()
226
  quiz_question.change(fn=check_quiz_answer, inputs=quiz_question, outputs=quiz_feedback)
227
 
228
+ # 應用啟動時,預先載入教學第一頁的內容
229
+ demo.load(fn=generate_tutorial_step, inputs=step_selector, outputs=tutorial_output, queue=False) # 確保初始載入
230
+ demo.load(fn=generate_case_study, inputs=case_tabs.select(value="🌍 案例一:地震科學與 AI 預警"), outputs=gr.Markdown(), queue=False)
231
+
232
 
233
  if __name__ == "__main__":
234
  demo.launch()
235
+