校園資訊組 LINE Bot AI 智慧小幫手
用 Google 試算表當資料庫,結合 Gemini API 與 Google Apps Script, 打造能回答校園網路、帳號、研習、平板與設備問題的 24 小時 AI 助手。
適用於中小型國小、國中、高中職的資訊組長、資訊行政人員與校務數位推動教師。
因為沒有採用付費方案,大型學校使用時,免費額度可能無法支應。
文章較長,閱讀前請先準備一杯茶,算是我的實作筆記。
「Wi-Fi 帳號、密碼是什麼?」
「公務帳號是多少?為什麼登不進去?」
「印表機要如何安裝?」
每天的固定行程真的很耗時,老師們也常常需要排隊等候。
剛好在 Facebook 上看到一位強者分享學校使用的開源 LINE Bot, 便試著玩玩看,希望能減輕行政負擔,也減少老師們等待回覆的時間。
Google 試算表負責儲存學校資料,Google Apps Script 負責串接服務, Gemini 負責整理答案,LINE 負責讓老師用熟悉的聊天室提問。
一、完成後,會得到什麼?
二、整體運作流程
三、開始前請先準備
LINE Channel access token、Gemini API Key、管理者密碼都屬於機密資料。 請不要貼到公開文章、公開簡報、GitHub、群組或社群貼文中。 本文中的設定值都請替換成您自己的資料。
建立 LINE 官方帳號並啟用 Messaging API
現在請先建立 LINE 官方帳號,再從官方帳號管理後台啟用 Messaging API。
-
進入 LINE Official Account Manager,使用您的 LINE 帳號或 Business ID 登入。
https://tw.linebiz.com/login/ - 建立新的 LINE 官方帳號。 建議名稱可以是: 校園資訊組 AI 小幫手
-
填寫官方帳號基本資料,例如:
- 帳號名稱:校園資訊組 AI 小幫手
- 帳號簡介:協助全校同仁查詢校園網路、帳號、研習、設備與平板借用資訊
- 組織名稱:學校名稱或資訊組名稱
-
建立完成後,進入官方帳號管理後台:
設定 → Messaging API → 啟用 Messaging API - 如果畫面要求選擇 Provider,請選擇學校資訊組預計長期管理的 Provider。
- 啟用完成後,進入 LINE Developers Console, 選擇剛才使用的 Provider,再選擇 Messaging API Channel。
LINE 官方帳號指定 Provider 後,未來不能任意更換或取消指定。 如果是學校長期使用,建議使用學校資訊組或學校專用的 Provider, 不要隨意放在個人或外部服務商的 Provider 底下。
取得 LINE Channel access token
-
在 LINE Developers Console 中進入:
https://developers.line.biz/en/ - Provider → Messaging API Channel → Messaging API
- 找到: Channel access token
- 依畫面選擇產生 Token 的方式。 如果使用具有期限的 Token,請注意未來需要在到期前更新。
- 複製產生的長串英文與數字,稍後填入 Apps Script。
LINE_ACCESS_TOKEN: '請貼上您自己的 LINE Channel access token'
- 公開網頁的前端 JavaScript。
- Google Blog 或公開簡報。
- GitHub 或其他公開程式碼平台。
- LINE 回覆訊息或網址參數中。
取得 Gemini API Key
- 進入 Google AI Studio,使用 Google 帳號登入。
- 開啟 API Key 管理頁面,選擇: Create API key
- 如果系統要求選擇 Google Cloud Project, 請選擇您要使用的專案。
- 複製產生的 Gemini API Key。 常見的舊格式可能以 AIzaSy 開頭, 但請以目前 Google AI Studio 顯示的格式為準。
Gemini API 的可用模型、速率限制、免費配額與是否需要計費設定, 會依 Google 帳號、專案與當時政策而不同。 請以 Google AI Studio 與 Google Cloud 專案頁面顯示的資訊為準, 不要把「一定免費」或「不限額度」寫入正式教學。
建議保留多模型備援
為避免單一模型暫時忙碌、配額限制或模型下架, 可以在 CONFIG 中保留多個模型。 程式會依序嘗試,前一個失敗就換下一個。
GEMINI_MODELS: [
'gemini-3.7-flash',
'gemini-3.6-flash',
'gemini-3.5-flash',
'gemini-3.1-flash-lite',
'gemini-2.5-flash',
'gemini-2.5-flash-lite'
]
實際可使用的模型請以 Google Gemini API 官方 Models 頁面或 Models API 回傳結果為準。 Preview 或已停止服務的模型,不建議放在正式環境的主要順位。
建立 Google 試算表知識庫
- 開啟 Google 試算表,建立新的空白試算表。
- 建議將試算表命名為: 校園資訊組智慧小幫手知識庫
- 下方預設的「工作表1」可以先保留。 程式第一次執行初始化函式時,會自動建立知識庫工作表。
- 複製試算表網址中的純 ID。 試算表網址通常長這樣:
https://docs.google.com/spreadsheets/d/這一段就是試算表ID/edit
設定時建議填入純 ID:
SPREADSHEET_ID: '請貼上試算表ID'
不要包含:
/edit
?gid=123456789
#gid=123456789
程式會使用的工作表
| 工作表名稱 | 用途 |
|---|---|
| 資訊組AI小幫手知識庫 | 存放分類、標題、詳細內容、狀態與更新時間。 |
| 對話紀錄 | 記錄使用者問題、AI 回覆與必要的識別資訊。 |
如果知識庫工作表已經有正式資料,請不要再次執行 initKnowledgeBaseSheet。 某些初始化版本會清除同名工作表,再重新建立範例資料。
建立 Apps Script,貼上 Code.gs 與 index.html
-
在剛才建立的 Google 試算表上方選單點選:
擴充功能 → Apps Script - 進入 Apps Script 編輯器後, 將原本預設的 myFunction 刪除。
- 建立或使用預設的: Code.gs
- 將下方收闔選單中的完整後端程式碼複製到 Code.gs。
- 在 CONFIG 中填入自己的設定。
CONFIG 基本設定範例
const CONFIG = {
SPREADSHEET_ID: '請貼上Google試算表ID',
GEMINI_API_KEY: '請貼上Gemini API Key',
LINE_ACCESS_TOKEN: '請貼上LINE Channel access token',
ADMIN_PASSWORD: '請設定管理者密碼',
GEMINI_MODELS: [
'gemini-3.7-flash',
'gemini-3.6-flash',
'gemini-3.5-flash',
'gemini-3.1-flash-lite',
'gemini-2.5-flash',
'gemini-2.5-flash-lite'
],
SHEET_NAME: '資訊組AI小幫手知識庫',
LOG_SHEET_NAME: '對話紀錄'
};
📄 展開/收起 Code.gs 後端程式碼
請展開後查看完整 Code.gs,按下「一鍵複製」即可複製全部內容。
VIEW_PASSWORD 只能登入查看; ADMIN_PASSWORD 才能新增、修改與刪除。 兩組密碼務必不同。
建立 index.html
-
在 Apps Script 左側檔案列表點選:
+ → HTML -
檔案名稱輸入:
index
系統會自動建立 index.html。 - 將下方收闔選單中的完整前端管理頁面複製到 index.html。
- 按下儲存按鈕,先不要急著部署。
🌐 展開/收起 index.html 前端程式碼
請展開後查看完整 index.html,按下「一鍵複製」即可複製全部內容。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。