AI NotebookLM Runtime Lab
學生教學導覽手冊 (v3.01) - 探索地端優先的 AI 排程與治理系統
架構導覽 (Architecture Layers)
| 分層名稱 | 對應檔案 | 作用說明 |
|---|---|---|
| 1. 啟動與引導層 |
FALO_Runtime.commandFALO_Runtime.batenvironment_check.pyfalo_launcher.py
|
地端一鍵啟動入口。執行環境完整度偵測與自動 Port 衝突排除。 |
| 2. 後端核心服務 |
runtime_server.pyapp_config.py
|
負責處理 API 請求、Session 認證(帳密與臨時 Key 登入)、讀寫地端 JSON 檔案資料庫以及排程調度 Task Queue。 |
| 3. 前端 UI 面板 |
index.htmladmin.html
|
使用者主要的 UI 介面。index.html 負責日常對話與上傳,admin.html 供管理員配發 Key、稽核與清除紀錄。 |
| 4. 雲端整合 (GAS) |
Code.gs (或 程式碼.js)setup.gsgas-web.html
|
部署在 Google App Script,作為雲端 Google Sheets 或 AppSheet 與地端 Runtime 的資料與控制面板橋樑。 |
📂 專案檔案清單與詳細作用說明
啟動與引導組件
FALO_Runtime (command/bat):自動偵測並載入專案的 python 虛擬環境,在背景啟用伺服器並開啟 Ngrok 穿透通道。
falo_launcher.py:如果 8765 Port 被佔用,此檔會自動尋找 8766/8767 等備用 Port 確保順利啟動。
地端控制大腦
runtime_server.py:核心 Python 伺服器,利用內建 http.server 提供高性能多執行緒服務,不依賴任何外部 Python web 框架即可流暢運作。
app_config.py:管理所有地端系統資料夾路徑與設定參數。
前端與操作面板
index.html:暗黑磨砂玻璃美學設計。整合對話串接、自動轉檔 ETL、批次上傳與即時任務佇列進度顯示。
admin.html:管理專用。包含臨時 6 位數匿名金鑰(防重防 0 開頭)產生、增量匯入匯出 Excel 憑證與一鍵二階段確認清除。
gas-web.html:部署至 Google Apps Script 的雲端控制台前端,供查看主機狀態與日誌。
🔒 v3.01 核心教學設計:角色隔離與防 hijacking 語意
為了讓學員理解企業級軟體開發中的最小權限原則(Least Privilege),v3.01 引入了嚴格的對話 Session 擁有權隔離:
- 個人對話專屬:一般同仁與訪客只能調閱自己所擁有的 Session 列表與歷史紀錄。
- 管理員唯讀審計:Admin 在
admin.html可查看所有人對話的文本,但系統於後端 API(/ask端點)阻擋了 Admin 對他人對話發送訊息的權限,防止 Admin 的訊息干擾到對方的對話視窗。
📚 v3.01 延伸功能:跨書庫交叉對話與精細稽核設計
為了解決企業在不同專案知識間的交叉比對與綜合查詢需求,v3.01 實現了極具彈性的跨書庫對話:
- 打破官方鎖定限制:Google 官方的對話 Conversation 預設只能終身鎖定單一筆記本。地端系統支援使用者在同一個對話中,隨時切換下拉選單向不同書庫發問,極大地提升了交叉查詢與對照分析的靈活性。
- 問答輪次級審計 (Turn-level Audit):在
data/multichat_sessions.json資料庫中,系統會精準在每一輪提問的userturn 內部,單獨記錄當時發問選取的notebook_id與notebook_title,使稽核日誌完整可溯。
Lab 建議:學員可以直接在專案啟動後打開
data/multichat_sessions.json,在發送對話的同時觀察 JSON 中的 user_id 欄位以及 turns 陣列內部的 notebook_title 是如何動態寫入的。