2026年2月12日 星期四

效率革命:構建基於 Google Gemini 的模組化 AI 工作流

效率革命:構建基於 Google Gemini 的模組化 AI 工作流

在 AI 驅動的開發範式中,我們不再是編寫每一行邏輯,而是建立一個「編排系統」(Orchestration System)。以下是利用 Google AI 技術實現「從內容生成到自動執行」的完整技術路徑。

一、 核心架構:AI 工作流的四層模型

一個健壯的 AI 工作流必須像微服務架構一樣,具備模組化與可觀測性。

  1. 感知層 (Ingestion):透過 Google Drive API 或 Vertex AI Vision 收集數據。

  2. 邏輯層 (Reasoning):由 Gemini 1.5 Pro 進行結構化思考與決策。

  3. 執行層 (Action):透過 Function Calling 串接 Google Workspace 或外部 API。

  4. 監控層 (Observability):利用 Google Cloud Logging 追蹤 AI 的決策路徑與 Token 消耗。


二、 技術實作路徑:從原型到生產環境

1. 模組化 Prompt 工程:結構化提示 (Structured Prompts)

Google AI Studio 中,不要使用長篇大論的敘述,應採用「變數化」設計。

  • System Instruction: 定義 AI 的角色與限制(例如:你是一位嚴謹的專案排程師)。

  • Input Variables: 使用 {{input_data}} 標籤,便於後續在 Google Sheets 或程式碼中批次替換。

  • Output Schema: 強制要求輸出為 JSON 格式。這是模組化的命脈——只有結構化數據,下一個模組(如自動發信程式)才能解讀。

JSON
// 預期的結構化輸出範例
{
  "task_priority": "High",
  "action_required": "Email_Supplier",
  "reasoning": "Inventory levels for Item_A dropped below 15%."
}

2. 中間件轉發:Google Apps Script (低代碼路徑)

這是將 Google Sheets 變成「AI 指揮中心」最有效的方式。你可以撰寫一個簡單的腳本,將表格內容發送到 Gemini API,並將結果回填。

  • 場景應用:當 Google 表單收到新的客戶需求,腳本自動觸發 Gemini 進行分類,並根據分類將任務派發到不同的 Trello 看板或 Gmail 轉發。

3. 進階執行力:Function Calling (函式調用)

這是 AI 從「說」到「做」的關鍵技術。Gemini API 允許你定義一系列工具(Tools),AI 會根據語境決定「何時」以及「如何」使用這些工具。

Python
# 定義一個查詢庫存的工具函數
def get_inventory_stock(item_name: str):
    """查詢特定商品的即時庫存數量"""
    # 這裡串接你的資料庫或 Google Sheets API
    return db.query(item_name)

# 將工具傳遞給 Gemini
model = GenerativeModel("gemini-1.5-pro")
chat = model.start_chat()
response = chat.send_message("目前妖怪御守還有多少貨?", tools=[get_inventory_stock])

三、 實戰範例:自動化 Vlog 內容生產流水線

假設你要管理一個旅遊 Vlog 頻道,我們可以建立以下模組化流程:

模組名稱使用技術輸入內容AI 任務輸出/執行動作
素材分析Vertex AI (Multimodal)原始錄影檔識別關鍵畫面、語音轉文字結構化分鏡腳本
文案轉化Gemini 1.5 Flash腳本與主題撰寫標題、SEO 描述與社群貼文多平台文案 JSON
自動排程Google Calendar API發布計劃尋找最佳發布時間點自動佔用日曆時段
庫存/週邊管理Apps Script + Sheets銷售數據監控週邊商品庫存紅色警示與自動補貨提醒

四、 關鍵的 Trade-offs 與架構考量

身為架構師,在設計時必須權衡以下三點:

  • 成本 (Cost):Gemini 1.5 Flash 速度快且便宜,適合處理簡單的分類與格式化;Pro 模型則留給需要複雜邏輯推理的環節。

  • 延遲 (Latency):為了提升用戶體驗,應採用「非同步處理」(Asynchronous Processing)。不要讓用戶在前端等待 AI 生成,而是處理完後透過通知(Webhook)回傳。

  • 安全性 (Safety):避免讓 AI 直接擁有「寫入」核心資料庫的最高權限。應設計一個「隔離區」(Staging Area),所有 AI 的執行動作需經過一層驗證邏輯或人工審核。


五、 總結:流程設計能力即資產

未來的技術競爭,在於誰能將 Gemini 的推理能力Google Workspace 的執行能力完美封裝成一個個獨立、可重複使用的「積木」。

「Prompt 是火花,工作流才是引擎。」


以下我為你撰寫了一段完整的 Google Apps Script。它具備以下特性:

  1. 結構化輸出:讓你可以自定義系統指令(System Instruction)。

  2. 錯誤攔截:當 API 失效或 Token 超限時會給出明確提示。

  3. 靈活性:你可以直接在試算表格格中使用 =GEMINI(A2, B2)


第一步:獲取 API Key

  1. 前往 Google AI Studio

  2. 點擊 "Get API key" 並複製該金鑰。

第二步:部署腳本

  1. 打開你的 Google Sheets。

  2. 點擊選單:延伸功能 > Apps Script

  3. 刪除原有代碼,貼入以下內容:

JavaScript
/**
 * 調用 Google Gemini API 的自定義函數
 * * @param {string} prompt 使用者輸入的內容
 * @param {string} systemInstruction (選填) 設定 AI 的角色或邏輯(例如:你是一位專業文案師)
 * @return {string} AI 生成的結果
 * @customfunction
 */
function GEMINI(prompt, systemInstruction = "你是一位專業的助手,請提供簡潔且結構化的回答。") {
  
  // 1. 設定你的 API Key (建議將來存放在 Script Properties 中更安全)
  const API_KEY = 'YOUR_API_KEY_HERE'; // <--- 請在此處貼上你的 API Key
  const API_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${API_KEY}`;

  if (!prompt) return "錯誤:請輸入提示內容";

  // 2. 構建請求載體 (Payload)
  // 我們使用 Gemini 1.5 Flash,因為它速度快、成本低,非常適合批次處理表格數據
  const payload = {
    "contents": [
      {
        "role": "user",
        "parts": [{ "text": prompt }]
      }
    ],
    "system_instruction": {
      "parts": [{ "text": systemInstruction }]
    },
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 800,
    }
  };

  const options = {
    "method": "post",
    "contentType": "application/json",
    "payload": JSON.stringify(payload),
    "muteHttpExceptions": true
  };

  try {
    // 3. 發送請求
    const response = UrlFetchApp.fetch(API_URL, options);
    const json = JSON.parse(response.getContentText());

    // 4. 解析結果
    if (json.candidates && json.candidates[0].content && json.candidates[0].content.parts) {
      return json.candidates[0].content.parts[0].text.trim();
    } else {
      return "錯誤分析:" + response.getContentText();
    }
  } catch (e) {
    return "系統錯誤:" + e.toString();
  }
}

第三步:在試算表中使用

現在回到你的 Google Sheets,你可以像使用 SUM() 一樣使用 AI 了:

A 欄 (原始資料)B 欄 (系統指令)C 欄 (公式)
客戶說:鞋子尺寸不合想退貨你是一位客服專家,請判斷情緒並給出簡短回覆建議=GEMINI(A2, B2)
健行筆記:今日攻頂玉山,雲海很美你是一位 Vlog 攝影師,請幫這段文字生成 3 個吸睛的標題=GEMINI(A3, B3)

💡 架構師的進階實戰建議:

  1. 批次處理的限制:Google Apps Script 的 UrlFetchApp 在單次執行中有時間限制(通常是 6 分鐘)。如果你有幾千行資料,建議不要一次全部拉下公式,而是分批拖曳填充。

  2. 安全存取:在生產環境中,不要把 API Key 直接寫在代碼裡。點擊 Apps Script 左側的「齒輪(專案設定)」,找到「指令碼屬性」,新增一個 GEMINI_API_KEY,然後在代碼中用 PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY') 來調用。

  3. 結構化輸出的威力

    • 如果你希望 C 欄直接變成可用的 JSON。

    • 在 B 欄(系統指令)加入:"請嚴格以 JSON 格式回覆,包含 {'sentiment': '...', 'urgent': boolean}"

    • 這樣你的下一個模組(例如自動發信腳本)就能直接讀取 C 欄的屬性。

這就是模組化工作流的基礎——你已經成功把 Gemini 的大腦,封裝進了一個標準化的 Excel 函數積木中!

效率革命:構建基於 Google Gemini 的模組化 AI 工作流

效率革命:構建基於 Google Gemini 的模組化 AI 工作流 在 AI 驅動的開發範式中,我們不再是編寫每一行邏輯,而是建立一個「編排系統」(Orchestration System)。以下是利用 Google AI 技術實現「從內容生成到自動執行」的完整技術路徑。 一...