📌 引言
人工智慧 (AI) 正迅速改變我們的工作方式。從日常任務到複雜的數據分析,AI 的應用無處不在。Google Sheets 作為一款強大的電子表格應用,似乎還有更多潛力等待挖掘。想像一下,如果我們能夠將 AI 的力量注入到 Google Sheets 中,會發生什麼呢?
本文探索如何利用 Google Apps Script 和 Gemini 大語言模型 (LLM) 為 Google Sheets 賦予 AI 能力。實際展示如何將這些技術整合到您日常使用的電子表格中。
接下來,我們將實際演示如何在 Google Sheets 中實現一個有趣而實用的 AI 功能:
「智能造句器」
給定一輸入陣列:
[雲朵, 書房, 辣椒, 音樂, 樹根, 鏡子, 馬路, 微風]
輸出一個合理的句子,該句子必須包含陣列當中所有的詞 (下方為 AI 輸出答案):
午後(微風)吹來,我坐在(書房)裡,聽著(音樂),看著窗外(馬路)上車水馬龍,心情就像(鏡子)般,明亮清澈;即使生活像(辣椒)一樣帶點刺激,也要像(樹根)一樣 firmly 抓住每一天,讓生命像天邊的(雲朵)自由飄盪。
乍看之下,實用性似乎不高,但從下面的 demo 影片中,我們可以看到兩個優勢:
LLM (大語言模型) 強大的語文理解與組織能力:要人類用兩三個詞造一個句子可能還行,但要在短時間內想出一個句子可以串起 8 組詞,那可不是那麼容易。
機器平行處理的能力:假如今天有 100 道這樣的題目,1 題得花 1 分鐘想,那人類加起來得花 100 分鐘。但是電腦可以並行處理,同時解 100 道題,也只需要 1 分鐘 (當然得花 $ 付出算力成本,但比人力成本來的便宜得多),快 100 倍!
.
📌 技術背景與架構概覽
Google Apps Script 簡介
Google Apps Script 是一個強大的腳本平台,允許開發者擴展和自定義 Google Workspace 應用程序的功能。它使用 JavaScript 作為編程語言,並提供了豐富的 API 來操作 Google Sheets、Docs、Gmail 等服務。
.
Gemini LLM 模型介紹
Gemini 是 Google 最新推出的大型語言模型(LLM),具有強大的自然語言處理能力。它可以執行各種任務,如文字生成、問答、翻譯等,並且可以通過 API 輕鬆整合到各種應用中。
.
「智能造句器」架構概覽
利用 Apps Script 的自定義函數擴展 Google Sheets 原生功能:
我們將創建一個名為
rangeprompt
的自定義函數。這個函數可以直接在 Google Sheets 的單元格中調用,就像使用內置函數 (e.g. SUM) 一樣。
在自定義函數中調用 Gemini API:
自定義函數將接收兩個輸入參數: 1. 儲存格範圍 (以陣列形式輸入) 2. 給模型的提示詞 (prompt)。
使用 Apps Script 的
UrlFetchApp.fetch()
方法發送 HTTP POST 請求到 Gemini API 的端點。Gemini API 返回生成的句子, 函數將生成的句子返回到 Sheet 中的相應單元格。
利用 Google Sheets 的並行處理能力:
Google Sheets 在貼上範圍(range)時,能夠並行執行函數。
這意味著當我們將函數應用到多個單元格時,Sheet 會自動並行處理,大大提高效率。
此特性特別適合批次任務,如:同時為多組詞語生成句子。
.
📌 實現關鍵步驟和注意事項
從上面的概覽中可以了解到,關鍵的兩個元件就是 自定義函數(Custom function) 和 Gemini API。
自定義函數請參考 Custom Functions in Google Sheets;Gemini API 的話,重點就是拿到 Gemini API key (← 進去拿 key)。
了解了自定義函數的運作原理也拿到 Gemini API key 之後,我們來看看有哪些需要注意的地方:
1. 可以直接從 Google sheet 啟動一個 Apps Script 專案
.
2. 綁定正確的 GCP project 和設定 api_key 腳本變數
進到 Apps Script 專案後,先到 Project Settings 裡面,把原本的 Default project 換成 Gemini API key 所在的 GCP Project。
Note: 直接把你創建 Gemini API key 的時候對應的那組 Project number 貼過來,這邊會遇到 OAuth consent screen 的錯誤,接下來會說明。
然後把 Gemini API key 的內容設定到 api_key
的腳本變數上 (待會程式裡會用到)。
.
3. 設定 GCP project 的 OAuth consent screen 和 Test users
.
4. 貼上 custom function 的程式碼: Code.gs, gemini.gs
.
5. 大功告成 🥳。
可以回到 Google sheet 調用 rangeprompt
函數啦,然後把智能造句的指令傳給他:
=rangeprompt($A2, "用陣列中所有的詞,組成1個語意通順的句子,並標示出該詞的位置。注意: 1.每一個詞都要完全和陣列中一樣,不能取同義詞。2. 使用繁體中文。例如 input:[時光,微笑,沙發]; output:午後(時光),我坐在(沙發)上(微笑)")
.
📌 結語
將 AI 能力整合到 Google Sheets 這樣的日常辦公工具中,為所有使用者開啟了一個充滿機遇的新世界。考慮到大量的批次數據處理工作目前都在 Excel 或 Google Sheets 中進行,AI 功能的無縫整合將帶來以下關鍵變革:
智能數據分析的民主化:即使不具備 AI 或編程技能的用戶,也能輕鬆利用高級分析功能。例如,市場分析師可以使用內置的 AI 函數自動識別銷售趨勢,生成洞察報告,而無需深厚的數據科學知識。這使得複雜的數據分析變得平易近人,讓每個人都能從數據中獲取有價值的資訊。
自動化報告生成與預測分析:AI 可以理解數據上下文,自動生成摘要、可視化圖表,甚至進行基本的預測分析。這意味著月度報告可以在幾分鐘內完成,而不是花費數小時手動整理。銷售團隊可以基於歷史數據預測未來銷量,財務部門可以快速識別異常支出,所有這些都無需依賴專門的數據科學團隊。
創意支援與內容生成:如同我們的造句功能所示,AI 可以成為創意過程中的得力助手。營銷團隊可以快速生成產品描述或廣告文案的初稿,人力資源部門可以自動生成工作描述,客戶服務可以獲得回覆建議。這不僅加速了創意過程,還為不同領域的專業人士提供了新的靈感來源。
.
希望這個趣味的動手作,可以激發你利用 AI 工具,加速日常工作的 new idea,也歡迎與我分享 ~
📌 References
智能造句器靈感來源:link 🤣
Apps script 程式碼參考來源:How to integrate Gemini and Sheets with BigQuery