iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
生成式 AI

用 Vertex AI 在 30 天內,打造個人 IP 品牌內容系列 第 30

Day 30: 邁向自動化(二):設定觸發器,讓你的 AI 內容助手自動運行

  • 分享至 

  • xImage
  •  

歡迎來到 Day 30,打造你個人IP品牌旅程的終點,也是你成為「自動化創作者」之路的起點。

昨天,我們成功地將 Vertex AI 嵌入了 Google Sheets,打造了一個強大的「內容儀表板」。但它仍然需要我們「手動觸發」——輸入主題、下拉公式。

如果...我們能讓這個儀表板,在例如每週一早上 9 點,自動為我們規劃好一整週的內容主題,那該有多棒?

今天,我們就要來實現這個終極夢想。我們將學習 Google Apps Script 中最核心的自動化功能——觸發器 (Triggers)。

▋什麼是「觸發器 (Triggers)」?

你可以把「觸發器」想像成一個「智慧鬧鐘」。

傳統的鬧鐘,只能在特定時間「發出聲音」。而 Apps Script 的觸發器,則可以在特定時間(或發生特定事件時),自動執行一段你寫好的程式。

它有兩種主要的觸發模式:

  • 時間驅動 (Time-driven):例如,每天早上 8 點、每週一、每月第一天...
  • 事件驅動 (Event-driven):例如,當有人提交 Google 表單時、當試算表的某個儲存格被編輯時...

今天,我們將聚焦在「時間驅動觸發器」,來實現內容規劃的完全自動化。

▋實戰開始:打造你的「每週內容規劃」自動化流程

打開我們昨天 Day 29 使用的 Google Sheet 和 Apps Script 專案。

第一步:設計一個「自動規劃」的函式

我們昨天寫的 GENERATE_IDEAS 函式,需要一個「輸入」才能運作。
但自動化流程,需要的是一個「不需要任何輸入,就能自己完成所有事」的函式。

因此,我們要來編寫一個新的函式,叫做 planWeeklyContent。

【在 Apps Script 編輯器中,加入以下新的函式】

// 這個函式將由觸發器自動執行
function planWeeklyContent() {
// 1. 定義本週的核心主題
// 這裡可以寫得更複雜,例如從某個儲存格讀取,但為了簡單起見,我們先寫死
const weeklyTheme = "用 AI 提升個人生產力";

// 2. 取得我們的儀表板工作表
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AI Content Dashboard");

// 3. 找到第一個空白的儲存格,用來填寫新內容
const firstEmptyRow = sheet.getLastRow() + 1;

// 4. 在 A 欄填入本週主題
sheet.getRange(firstEmptyRow, 1).setValue(【本週主題】${weeklyTheme});

// 5. 設計一個專門用來腦力激盪子主題的 Prompt
const prompt = 你是一位內容策略總監。 本週的核心內容主題是:「${weeklyTheme}」 請為這個核心主題,腦力激盪出 5 個具體的、可以獨立成篇的子主題。 請直接以條列式呈現,不要有任何額外的前言或結語。;

// 6. 呼叫我們昨天寫的 GENERATE_IDEAS 函式,但這次是從程式內部呼叫
// 為了簡化,我們直接在這裡重寫 API 呼叫的邏輯
const requestBody = {
"contents": [{"parts": [{"text": prompt}]}],
"generation_config": {"temperature": 0.7}
};
const options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(requestBody),
'headers': {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()},
'muteHttpExceptions': true
};
const response = UrlFetchApp.fetch(API_ENDPOINT, options);
const jsonResponse = JSON.parse(response.getContentText());

try {
const subTopicsText = jsonResponse.candidates[0].content.parts[0].text;
const subTopics = subTopicsText.split('\n').filter(topic => topic.trim() !== ''); // 將回傳的文字拆成陣列

// 7. 將 AI 生成的子主題,依序填入下方的儲存格
for (let i = 0; i < subTopics.length; i++) {
  let row = firstEmptyRow + 1 + i;
  sheet.getRange(row, 1).setValue(subTopics[i]);
  // 我們甚至可以讓 B 欄自動帶入公式,讓它自己去生成點子
  sheet.getRange(row, 2).setFormula(`=GENERATE_IDEAS(A${row})`);
}

// 8. 在 C 欄標示狀態
sheet.getRange(firstEmptyRow, 3).setValue("自動規劃於 " + new Date().toLocaleString());

} catch (e) {
sheet.getRange(firstEmptyRow, 3).setValue("自動規劃失敗:" + e.toString());
}
}
寫完後,記得點擊「儲存專案 (💾)」。你可以手動執行一次這個函式,看看它是否能在你的試算表中,自動填入一週的主題。

第二步:設定「時間驅動觸發器」

現在,我們要為這個函式裝上「鬧鐘」。

  1. 在 Apps Script 編輯器的左側選單,點擊「觸發條件 (⏰)」(一個鬧鐘圖示)。
  2. 在右下角,點擊「+ 新增觸發條件 (+ Add Trigger)」。
  3. 在跳出的設定視窗中,進行以下設定:
  • 選擇要執行的功能:選擇我們剛剛寫的 planWeeklyContent。
  • 選取應執行的部署作業:維持「Head」即可。
  • 選取活動來源:選擇「時間驅動」。
  • 選取時間型觸發條件類型:選擇「週計時器」。
  • 選取星期幾:選擇「每個星期一」。
  • 選取時段:選擇「上午 8 點至 9 點」。
  • 點擊「儲存」。
  1. 系統可能會再次要求你授權,因為現在是 Google 的伺服器要代表你在特定時間自動執行程式。請完成授權。

大功告成!

你已經成功地建立了一個全自動的 AI 內容規劃系統。從現在開始,每個星期一的早上,當你打開 AI Content Dashboard 這個 Google Sheet 時,你將會驚喜地發現,Vertex AI 已經自動為你規劃好了未來一週的內容主題,並填寫在表格中,等待你進一步的創作。

30 天挑戰總結:從「創作者」到「AI產品經理」

恭喜你!完成了這趟長達 30 天的挑戰:

  • 我們從一個對 Vertex AI 感到陌生的「創作者」,開始學習。
  • 我們學會了如何像「策略師」一樣,定義品牌、分析受眾。
  • 我們學會了如何像「AI 訓練師」一樣,用範例和迭代指令,優化產出品質。
  • 我們學會了如何像「開發者」一樣,初探程式碼,打造自己的小工具。
  • 最終,我們學會了如何像「產品經理」一樣,將所有流程整合、串連、自動化,打造了一個能為我們持續創造價值的系統。

將想法變為影響力,從今天開始,你有了最可靠的 AI 夥伴。

這 30 天的終點,不是結束,而是你作為一個「AI 賦能創作者 (AI-Powered Creator)」的真正開始。你所建立的,不僅僅是一些提示或工具,而是一套可以不斷成長、不斷優化的「智慧內容資產」。


上一篇
Day 29: 邁向自動化(一):用 Apps Script 串接 Vertex AI 與 Google Sheets
系列文
用 Vertex AI 在 30 天內,打造個人 IP 品牌內容30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言